Welcome to OpenSDS’s documentation!

https://www.opensds.io/wp-content/uploads/sites/18/2016/11/logo_opensds.png

OpenSDS is an industry-wide open source project under Linux Foundation for software-defined storage management, which promotes the use of simplified storage interfaces using a scalable storage controller architecture with open standard APIs, with the objective of providing applicaiton-oriented storage services.

EUAC

OpenSDS End User Advisory Committee

Mission

The End User Advisory Committee (EUAC) is to assist and support the OpenSDS community in its objectives by providing technical and strategic guidance real-world storage challenges

Members

  • Cosimo Rosetti (Vodafone)
  • Kei Kusunoki (NTT Communications)
  • Yusuke Sato (Yahoo Japan)
  • Yuji Yazawa (Toyota)
  • Wim Jacobs (KPN)
  • Shinya Tsunematsu (GMO Pepabo)

Bi-weekly Meetings

This meeting is hosted on zoom. Join the EUAC mailing list for info on meetings

Zoom Meeting: https://zoom.us/j/477192859

Or iPhone one-tap : US: +19294362866,,477192859# or +16699006833,,477192859# Or Telephone: Dial(for higher quality, dial a number based on your current location): US: +1 929 436 2866 or +1 669 900 6833 Meeting ID: 477 192 859 International numbers available: https://zoom.us/zoomconference?m=h0x5xsxAwYr_grrKRsEx_7PLkOfvL3bm

Meeting Minutes

TSC

OpenSDS Technical Steering Commitee

Mission

To provide technical guidance for OpenSDS community development.

Members

  • Anjaneya Chagam (Intel)
  • Rakesh Jain (IBM)
  • Allen Samuels (WD/SanDisk)
  • Steven Tan (Huawei)
  • Jay Bryant (Lenovo)
  • Shinya Hamano (Fujitsu)

Bi-Weekly Meetings

This meeting is hosted on zoom. Join the TSC mailing list for info on meetings

Zoom Meeting: https://zoom.us/j/477192859

Or iPhone one-tap : US: +19294362866,,477192859# or +16699006833,,477192859# Or Telephone: Dial(for higher quality, dial a number based on your current location): US: +1 929 436 2866 or +1 669 900 6833 Meeting ID: 477 192 859 International numbers available: https://zoom.us/zoomconference?m=h0x5xsxAwYr_grrKRsEx_7PLkOfvL3bm

Meeting Minutes

OpenSDS

Introduction

The OpenSDS Project is a collaborative project under Linux Foundation supported by storage users and vendors, including Dell EMC, Intel, Huawei, Fujitsu, Western Digital, Vodafone, NTT and Oregon State University. The project will also seek to collaborate with other upstream open source communities such as Cloud Native Computing Foundation, Docker, OpenStack, and Open Container Initiative.

It is a software defined storage controller that provides unified block, file, object storage services and focuses on:

  • Simple: well-defined API that follows the OpenAPI specification.
  • Lightweight: no external dependencies, deployed once in binary file or container.
  • Extensible: pluggable framework available for different storage systems, identity services, capability filters, etc.

Community

The OpenSDS community welcomes anyone who is interested in software defined storage and shaping the future of cloud-era storage. If you are a company, you should consider joining the OpenSDS Project. If you are a developer want to be part of the code development that is happening now, please refer to the Contributing sections below.

Contact

REST API

OpenAPI

OpenSDS Northbound Plugin Project

Introduction

The SUSHI Project is an umbrella project for all the OpenSDS Project NorthBound Plugins, for OpenStack, Kubernetes, Mesos, VMware and more. The plugins themselves could have multiple hosting location, however the OpenSDS Sushi Project repo should always have the most up-to-date version.

Sushi will also seek to collaborate with other upstream open source communities such as Cloud Native Computing Foundation, Docker, OpenStack, and Open Container Initiative.

Community

The OpenSDS community welcomes anyone who is interested in software defined storage and shaping the future of cloud-era storage. If you are a company, you should consider joining the OpenSDS Project. If you are a developer want to be part of the code development that is happening now, please refer to the Contributing sections below.

Contact

OpenSDS Installer

For detailed information about this project, please refer to the repo.

Introduction

This project is designed for locating the code for installing all required components to set up a cluster, including controller and nbp plugins. Currently we support several install tools for diversity.

Ansible

Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. OpenSDS installer project holds all code related to opensds-ansible in ansible folder for installing and configuring OpenSDS cluster through ansible tool.

Helm

Helm is a popular tool for managing Kubernetes charts. Charts are packages of pre-configured Kubernetes resources. OpenSDS installer project also holds all code related to opensds-charts in charts folder for installing and configuring OpenSDS cluster through helm tool.

Contact

Local-Cluster-Installation

Here is a tutorial guiding users and new contributors to get familiar with OpenSDS by installing a simple local cluster.

If you are an end-user who are interested in this project, some links for installation and testing are as follows:

If you are a code developer and wish to contribute in this project, here are some links for quickly installing OpenSDS Hotpot project:

If you want to deploy and test opensds integrated with Kubernetes scenario, please refer to:

Official Releases

Bali

The OpenSDS Bali release completed December 19, 2018.

Features

The Bali release adds the following functionality:

  • Introduced management of multiple OpenStack deployments
  • Multi-Cloud support
    • S3 API support with AWS, Azure, Huawei Cloud, and local Ceph object store and Fusion Storage backends.
    • Manual and basic policy based migration for AWS, Azure, Huawei Cloud, Ceph, and Fusion Storage.
  • Dashboard UI interface has been broken out into separately installed component and integrated with multicloud support.
  • Added ability to upload/download snapshot to/from cloud storage
  • Updated support for the Container Storage Interface (CSI) v1.0 specification
    • Added support to create snapshot and create volume from snapshot
    • Added support for NodeStageVolume and NodeUnstageVolume.
  • Support to provision replicated volumes using OpenSDS CSI plugin
  • CSI plugin refactoring and FC support
  • Southbound Fusion Storage and OceanStor V3/V5 volume drivers
  • Integrated profiles properties definition and selector filtering.
  • Support external volumes for VMs or baremetal.
  • Add API support for AvailabilityZone.
  • Installation with Helm (tested with LVM)

The OpenSDS controller (Hotpot), the north bound plugins (Sushi), the multiple cloud(Gelato), the opensds dashboard and the installer can be downloaded from here:

Hotpot Sushi Gelato Dashboard Installer

Aruba

The OpenSDS Aruba release completed June 30, 2018.

Features

The Aruba release adds the following functionality:

  • Array-based replication
  • Cinder compatible API
  • Containerized deployment
  • Controller API request filter
  • Create volume from snapshot
  • Dashboard UI interface
  • Extend volume support
  • Fibre channel protocol support
  • Host-based replication
  • Multi-tenancy support in the API
  • OpenStack Keystone authentication
  • Storage backend capabilities reporting
  • Storage pool capability reporting
  • Volume groups

The OpenSDS controller (Hotpot), the north bound plugins (Sushi), and the installer can be downloaded from here:

Hotpot Sushi Installer

Tutorials-for-Beginners

If you are a beginner and expect opensds project as the gate to open source world, this tutorial is one of the best choices for you. Just follow the guidance and you will find the pleasure to becoming a contributor.

Step 1: Fork opensds repository

Before making modifications of opensds project, you need to make sure that this project have been forked to your own repository. It means that there will be parallel development between opensds repo and your own repo, so be careful to avoid the inconsistency between these two repos.

Step 2: Clone the remote repository

If you want to download the code to the local machine, git is the best way:

git clone https://your_repo_url/opensds.git

Step 3: Configure upstream repository

To reduce the conflicts between your remote repo and opensds repo, we SUGGEST you configure opensds as the upstream repo:

git remote add upstream https://github.com/sodafoundation/api.git
git fetch upstream

Step 4: Develop code locally

To avoid inconsistency between multiple branches, we SUGGEST checking out to a new branch:

git checkout -b new_branch_name upstream/development
git pull

Then you can change the code arbitrarily.

Step 5: Push the code to the remote repository

After updating the code, you should push the update in the formal way:

git add .
git status (Check the update status)
git commit -m "Your commit title"
git commit --amend (Add the concrete description of your commit)
git push origin new_branch_name

Step 6: Pull a request to opensds repository

In the last step, your need to pull a compare request between your new branch and opensds development branch. After finishing the pull request, the travis CI will be automatically set up for building test.

The tutorial is done, enjoy your contributing work!

Community-Contributing

How to contribute

opensds is Apache 2.0 licensed and accepts contributions via GitHub pull requests. This document outlines some of the conventions on commit message formatting, contact points for developers and other resources to make getting your contribution into opensds easier.

Email and chat

Before you start, NOTICE that master branch is the relatively stable version provided for customers and users. So all code modifications SHOULD be submitted to development branch.

Getting started

  • Fork the repository on GitHub.
  • Read the README.md and INSTALL.md for project information and build instructions.

For those who just get in touch with this project recently, here is a proposed contributing tutorial.

Contribution Workflow

Code style

The coding style suggested by the Golang community is used in opensds. See the doc for more details.

Please follow this style to make opensds easy to review, maintain and develop.

Report issues

A great way to contribute to the project is to send a detailed report when you encounter an issue. We always appreciate a well-written, thorough bug report, and will thank you for it!

When reporting issues, refer to this format:

  • What version of env (opensds, os, golang etc) are you using?
  • Is this a BUG REPORT or FEATURE REQUEST?
  • What happened?
  • What you expected to happen?
  • How to reproduce it?(as minimally and precisely as possible)

Propose PRs

  • Raise your idea as an issue
  • If it is a new feature that needs lots of design details, a design proposal should also be submitted here.
  • After reaching consensus in the issue discussions and design proposal reviews, complete the development on the forked repo and submit a PR. Here are the PRs that are already closed.
  • If a PR is submitted by one of the core members, it has to be merged by a different core member.
  • After PR is sufficiently discussed, it will get merged, abondoned or rejected depending on the outcome of the discussion.

Thank you for your contribution !

How to Develop an OpenSDS Native Storage Driver

To learn how to develop a native storage driver in OpenSDS, see the document here.