Jump to: navigation, search

Difference between revisions of "Cinder"

(first round of clean up in the main wiki)
(PTG and Summit Meeting Summaries)
(34 intermediate revisions by 11 users not shown)
Line 1: Line 1:
 
'''Official Title:''' OpenStack Block Storage Cinder<br />
 
'''Official Title:''' OpenStack Block Storage Cinder<br />
  
'''PTL:''' Mike Perez <thingee at gmail d0t com><br />
+
'''PTL:''' Sean McGinnis <sean d0t mcginnis at gmail d0t com><br />
  
 
'''Mission Statement:''' <blockquote>To implement services and libraries to provide on demand, self-service access to Block Storage resources.  Provide Software Defined Block Storage via abstraction and automation on top of various traditional backend block storage devices.</blockquote>
 
'''Mission Statement:''' <blockquote>To implement services and libraries to provide on demand, self-service access to Block Storage resources.  Provide Software Defined Block Storage via abstraction and automation on top of various traditional backend block storage devices.</blockquote>
  
{| border="1" cellpadding="2" cellspacing="0"
+
== Description ==
| [[https://launchpad.net/cinder/ Cinder on launchpad (including bug tracker and blueprints)]]
+
Cinder is a Block Storage service for OpenStack. It's designed to present storage resources to end users that can be consumed by the OpenStack Compute Project (Nova).  This is done through the use of either a reference implementation (LVM) or plugin drivers for other storage. The short description of Cinder is that it virtualizes the management of block storage devices and provides end users with a self service API to request and consume those resources without requiring any knowledge of where their storage is actually deployed or on what type of device.
|-
 
|  [[https://github.com/openstack/cinder Source code]]
 
|-
 
| [[http://docs.openstack.org/developer/cinder/ Developer docs]]
 
|}
 
  
=== Description ===
+
== Core Team ==
Cinder is a Block Storage service for OpenStack. It's designed to allow the use of either a reference implementation (LVM) to present storage resources to end users that can be consumed by the OpenStack Compute Project (Nova). The short description of Cinder is that it virtualizes pools of block storage devices and provides end users with a self service API to request and consume those resources without requiring any knowledge of where their storage is actually deployed or on what type of device.
+
See [https://review.openstack.org/#/admin/groups/83,members current members].
  
=== Project Meetings ===
+
== Project Meetings ==
 
See [[CinderMeetings|Meetings/Cinder]].
 
See [[CinderMeetings|Meetings/Cinder]].
  
=== Getting in Touch ===
+
== Getting in Touch ==
We use the [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev openstack-dev@lists.openstack.org] mailing list for discussions and we all hang out in #openstack-cinder on freenode.
+
We use the [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev openstack-dev@lists.openstack.org] mailing list for discussions using subjects with the prefix "[cinder]". We also hang out on IRC in #openstack-cinder on freenode. IRC logs are available in: [http://eavesdrop.openstack.org/irclogs/%23openstack-cinder/ http://eavesdrop.openstack.org/irclogs/#openstack-cinder/]
  
=== Related projects ===
+
== Related projects ==
 
* [https://github.com/openstack/python-cinderclient Python Cinder client]
 
* [https://github.com/openstack/python-cinderclient Python Cinder client]
 +
* [https://wiki.openstack.org/wiki/CinderBrick Brick]
  
=== Core Volume Drivers ===
+
== Core Volume Drivers ==
 
For a list of the core drivers in each OpenStack release and the volume operations they support, see https://wiki.openstack.org/wiki/CinderSupportMatrix
 
For a list of the core drivers in each OpenStack release and the volume operations they support, see https://wiki.openstack.org/wiki/CinderSupportMatrix
  
=== Cinder Plugins ===
+
== Contributing Code ==
How to submit a plugin/driver: https://wiki.openstack.org/wiki/Cinder/how-to-contribute-a-driver
+
For any new features, significant code changes, new drivers, or major bug fixes, please add a release note along with your patch. See the [http://docs.openstack.org/developer/reno/usage.html#creating-new-release-notes Reno Documentation] for details on how to generate new release notes.
  
Cinder Plugin/Driver certification page: https://wiki.openstack.org/wiki/Cinder/certified-drivers
+
=== How To Contribute A Driver ===
 +
See [https://wiki.openstack.org/wiki/Cinder/how-to-contribute-a-driver How to contribute a driver]
  
The following plugins (from other sources) are available for this project
+
=== How To Contribute A New Feature ===
* [https://wiki.openstack.org/wiki/Mellanox-Cinder Mellanox Cinder Plugin] Mellanox Cinder Plugin
+
See [https://wiki.openstack.org/wiki/Cinder/how-to-contribute-new-feature How to contribute a new feature]
  
=== Configuring devstack to use your driver and backend ===
+
== Sample cinder.conf ==
One of the things you'll be required to do when submitting a new driver is running your backend and driver in a devstack environment and executing the tempest volume tests against it.  Currently we provide a driver_cert wrapper (mentioned in the how-to-contribute-a-driver section).  One thing that causes some confusion is how do I configure devstack to use my backend device.  It used to be that your driver info would have to be added to lib/cinder in devstack to set your options.  We then created a cinder/plugin module in devstack.  Fortunately though it's MUCH easier than that.  For *most* drivers, the only changes that are made consist of cinder.conf file changes.  That can easily be accomplished by using devstacks local.conf file (more info here: http://devstack.org/configuration.html). For more complex actions (like the need to install packages etc, the plugin directory in devstack can be used).  An example of what this file would look like to add driver FOO is shown below, the default localrc section is included for completeness, but the section of interest is the post-config cinder.conf section:
+
The cinder.conf.sample is no longer maintained and tested in the source tree.  Currently you can obtain a copy by running the command 'tox -e genconfig' in a cloned version of the Cinder project and then look in etc/cinder/ for the cinder.conf.sample file.  
  
<nowiki>[[local|localrc]]</nowiki><br />
+
The newly generated file will have all options in the Cinder project, driver options included.
<sub>:# Passwords<br />
 
ADMIN_PASSWORD=password<br />
 
MYSQL_PASSWORD=password<br />
 
RABBIT_PASSWORD=password<br />
 
SERVICE_PASSWORD=password<br />
 
SERVICE_TOKEN=password<br />
 
SCREEN_LOGDIR=/opt/stack/logs<br />
 
HOST_IP=172.16.140.246<br />
 
disable_service n-net<br />
 
enable_service q-svc<br />
 
enable_service q-agt<br />
 
enable_service q-dhcp<br />
 
enable_service q-l3<br />
 
enable_service q-meta<br />
 
enable_service neutron<br />
 
<br />
 
  
<nowiki># These options define  expected driver capabilities </nowiki><br />
+
For more information about the generation of the file, please see: [https://github.com/openstack/cinder/blob/master/doc/source/devref/genconfig.rst Cinder Sample Configuration Devref]
TEMPEST_VOLUME_DRIVER=foo<br />
 
TEMPEST_VOLUME_VENDOR="Foo Inc"<br />
 
TEMPEST_STORAGE_PROTOCOL=iSCSI<br />
 
<br />
 
<nowiki># These options allow you to specify a branch other than "master" be used </nowiki><br />
 
CINDER_REPO=https://review.openstack.org/openstack/cinder<br />
 
CINDER_BRANCH=refs/changes/83/72183/4<br />
 
<br />
 
<nowiki># Disable security groups entirely</nowiki><br />
 
Q_USE_SECGROUP=False<br />
 
LIBVIRT_FIREWALL_DRIVER=nova.virt.firewall.NoopFirewallDriver<br />
 
CINDER_SECURE_DELETE=False<br />
 
<br />
 
<nowiki>[[post-config|$CINDER_CONF]]</nowiki><br />
 
volume_driver = cinder.volume.drivers.foo.FooDriver<br />
 
foos_var = something<br />
 
another_foo_var = something-else</sub><br />
 
<br />
 
  
=== Cinder Brick Proposal ===
+
== Resources ==
https://wiki.openstack.org/wiki/CinderBrick
+
===Etherpads===
 +
====Active====
 +
*[https://etherpad.openstack.org/p/newton-cinder-midcycle Newton Midcycle]
 +
*[https://etherpad.openstack.org/p/cinder-spec-review-tracking Newton Spec Review Tracking]
 +
*[https://etherpad.openstack.org/p/cinder-outreachy-project-ideas Outreachy Project Ideas]
 +
*[https://etherpad.openstack.org/p/cinder-default-iscsihelper-lio Default iscsihelper LIO]
 +
*[https://etherpad.openstack.org/p/cinder-nova-api-changes Cinder/Nova API Changes]
 +
 
 +
====Historic====
 +
*[https://etherpad.openstack.org/p/newton-cinder-summit-ideas Newton Summit Ideas]
 +
*[https://etherpad.openstack.org/p/cinder-mataka-release-final-push Mitaka Final Push]
 +
*[https://etherpad.openstack.org/p/mitaka-cinder-spec-review-tracking Mitaka Spec Review Tracking]
 +
*[https://etherpad.openstack.org/p/mitaka-cinder-midcycle Mitaka Midcycle Meetup- Planning]
 +
*[https://etherpad.openstack.org/p/cinder-mitaka-summit-topics Mitaka Summit- Planning]
 +
*[https://etherpad.openstack.org/p/cinder-meetup-summer-2015 Liberty Midcycle Meetup- Notes]
 +
*[https://etherpad.openstack.org/p/cinder-liberty-midcycle-meetup Liberty Midcycle Meetup- Planning]
 +
 
 +
=== Review Links ===
 +
* [https://review.openstack.org/#/dashboard/?foreach=project%3A%5Eopenstack%2F.%2Acinder.%2A+status%3Aopen+NOT+owner%3Aself+NOT+label%3AWorkflow%3C%3D%252D1+label%3AVerified%3E%3D1+NOT+label%3ACode%252DReview%3C%3D%252D1%252cself+NOT+label%3ACode%252DReview%3E%3D1%252cself&title=Cinder+Review+Inbox&Cinder+Specs=project%3Aopenstack%2Fcinder%252Dspecs&Bug+Fixes=topic%3A%5Ebug%2F.%2A&Needs+Feedback+%28Changes+older+than+5+days+that+have+not+been+reviewed+by+anyone%29=NOT+label%3ACode%252DReview%3C%3D2+age%3A5d&You+are+a+reviewer%252c+but+haven%27t+voted+in+the+current+revision=reviewer%3Aself&Needs+final+%2B2=label%3ACode%252DReview%3E%3D2+limit%3A50&New+Contributors=reviewer%3A10068&Passed+Jenkins%252c+No+Negative+Feedback=NOT+label%3ACode%252DReview%3E%3D2+NOT+label%3ACode%252DReview%3C%3D%252D1+limit%3A50&Wayward+Changes+%28Changes+with+no+code+review+in+the+last+2days%29=NOT+label%3ACode%252DReview%3C%3D2+age%3A2d Cinder Projects Review Inbox]
 +
* [https://bugs.launchpad.net/cinder/+bugs?field.searchtext=&orderby=-importance&search=Search&field.status%3Alist=INPROGRESS&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_commenter=&field.subscriber=&field.structural_subscriber=&field.tag=-drivers&field.tags_combinator=ANY&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_no_branches.used=&field.has_blueprints.used=&field.has_no_blueprints.used= In progress bugs]
 +
* [https://review.openstack.org/#/dashboard/?foreach=project%3A%5Eopenstack%2F.%2Aos-brick.%2A+status%3Aopen+NOT+owner%3Aself+NOT+label%3AWorkflow%3C%3D%252D1+label%3AVerified%3E%3D1+NOT+label%3ACode%252DReview%3C%3D%252D1%252cself+NOT+label%3ACode%252DReview%3E%3D1%252cself&title=OS-Brick+Review+Inbox&Cinder+Specs=project%3Aopenstack%2Fcinder%252Dspecs&Bug+Fixes=topic%3A%5Ebug%2F.%2A&Needs+Feedback+%28Changes+older+than+5+days+that+have+not+been+reviewed+by+anyone%29=NOT+label%3ACode%252DReview%3C%3D2+age%3A5d&You+are+a+reviewer%252c+but+haven%27t+voted+in+the+current+revision=reviewer%3Aself&Needs+final+%2B2=label%3ACode%252DReview%3E%3D2+limit%3A50&New+Contributors=reviewer%3A10068&Passed+Jenkins%252c+No+Negative+Feedback=NOT+label%3ACode%252DReview%3E%3D2+NOT+label%3ACode%252DReview%3C%3D%252D1+limit%3A50&Wayward+Changes+%28Changes+with+no+code+review+in+the+last+2days%29=NOT+label%3ACode%252DReview%3C%3D2+age%3A2d os-brick Review Inbox]
 +
* [https://review.openstack.org/#/dashboard/?foreach=project:%5Eopenstack/.*python-brick-cinderclient-ext.*%20status:open%20NOT%20owner:self%20NOT%20label:Workflow%3C=%252D1%20label:Verified%3E=1%20NOT%20label:Code%252DReview%3C=%252D1%252cself%20NOT%20label:Code%252DReview%3E=1%252cself&title=python-brick-cinderclient-ext%20Review%20Inbox&Cinder%20Specs=project:openstack/cinder%252Dspecs&Bug%20Fixes=topic:%5Ebug/.*&Needs%20Feedback%20(Changes%20older%20than%205%20days%20that%20have%20not%20been%20reviewed%20by%20anyone)=NOT%20label:Code%252DReview%3C=2%20age:5d&You%20are%20a%20reviewer%252c%20but%20haven't%20voted%20in%20the%20current%20revision=reviewer:self&Needs%20final%20+2=label:Code%252DReview%3E=2%20limit:50&New%20Contributors=reviewer:10068&Passed%20Jenkins%252c%20No%20Negative%20Feedback=NOT%20label:Code%252DReview%3E=2%20NOT%20label:Code%252DReview%3C=%252D1%20limit:50&Wayward%20Changes%20(Changes%20with%20no%20code%20review%20in%20the%20last%202days)=NOT%20label:Code%252DReview%3C=2%20age:2d python-brick-cinderclient-ext Review Inbox]
 +
 
 +
=== PTG and Summit Meeting Summaries ===
 +
 
 +
*[[CinderPikePTGSummary|Pike PTG Summary]]
 +
 
 +
[[Category: Cinder]]

Revision as of 23:06, 27 February 2017

Official Title: OpenStack Block Storage Cinder

PTL: Sean McGinnis <sean d0t mcginnis at gmail d0t com>

Mission Statement:
To implement services and libraries to provide on demand, self-service access to Block Storage resources. Provide Software Defined Block Storage via abstraction and automation on top of various traditional backend block storage devices.

Description

Cinder is a Block Storage service for OpenStack. It's designed to present storage resources to end users that can be consumed by the OpenStack Compute Project (Nova). This is done through the use of either a reference implementation (LVM) or plugin drivers for other storage. The short description of Cinder is that it virtualizes the management of block storage devices and provides end users with a self service API to request and consume those resources without requiring any knowledge of where their storage is actually deployed or on what type of device.

Core Team

See current members.

Project Meetings

See Meetings/Cinder.

Getting in Touch

We use the openstack-dev@lists.openstack.org mailing list for discussions using subjects with the prefix "[cinder]". We also hang out on IRC in #openstack-cinder on freenode. IRC logs are available in: http://eavesdrop.openstack.org/irclogs/#openstack-cinder/

Related projects

Core Volume Drivers

For a list of the core drivers in each OpenStack release and the volume operations they support, see https://wiki.openstack.org/wiki/CinderSupportMatrix

Contributing Code

For any new features, significant code changes, new drivers, or major bug fixes, please add a release note along with your patch. See the Reno Documentation for details on how to generate new release notes.

How To Contribute A Driver

See How to contribute a driver

How To Contribute A New Feature

See How to contribute a new feature

Sample cinder.conf

The cinder.conf.sample is no longer maintained and tested in the source tree. Currently you can obtain a copy by running the command 'tox -e genconfig' in a cloned version of the Cinder project and then look in etc/cinder/ for the cinder.conf.sample file.

The newly generated file will have all options in the Cinder project, driver options included.

For more information about the generation of the file, please see: Cinder Sample Configuration Devref

Resources

Etherpads

Active

Historic

Review Links

PTG and Summit Meeting Summaries