Jump to: navigation, search

Difference between revisions of "Cinder"

(OpenStack Block Storage ("Cinder"))
(PTG and Summit Meeting Summaries)
 
(95 intermediate revisions by 18 users not shown)
Line 1: Line 1:
 +
'''Note:''' The wiki.openstack.org pages are for development team collaboration and documentation. If you are looking for official project documentation, please go to https://docs.openstack.org/cinder/latest/.
  
= OpenStack Block Storage ("Cinder") =
+
'''Official Title:''' OpenStack Block Storage Cinder<br />
  
{| border="1" cellpadding="2" cellspacing="0"
+
'''PTL:''' Rajat Dhasmana <rajatdhasmana@gmail.com><br />
| [[https://launchpad.net/cinder/ Cinder on launchpad (including bug tracker and blueprints)]]
+
 
|-
+
'''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>
|  [[https://github.com/openstack/cinder Source code]]
+
 
|-
+
'''[https://wiki.openstack.org/wiki/Cinder#Active Jump to the Active Etherpads List]'''
|  [[http://docs.openstack.org/developer/cinder/ Developer docs]]
+
 
|-
+
== Description ==
|  [[http://docs.openstack.org/grizzly/openstack-block-storage/admin/content/ OpenStack Block Storage Service Administration Guide]]
+
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.
|}
+
 
 +
== Documentation ==
 +
For a quick overview of the Cinder project's organization, deliverables, and processes, take a look at our [https://docs.openstack.org/cinder/latest/contributor/contributing.html Getting Started] page.
 +
 
 +
See https://docs.openstack.org/cinder for the official cinder documentation.
 +
 
 +
== Core Team ==
 +
See [https://review.openstack.org/#/admin/groups/83,members current members].
 +
 
 +
== Project Meetings ==
 +
See [[CinderMeetings|Meetings/Cinder]].
 +
 
 +
== Getting in Touch ==
 +
We use the [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-discuss openstack-discuss@lists.openstack.org] mailing list for discussions using subjects with the prefix "[cinder]".
 +
* Mailing list archive: http://lists.openstack.org/pipermail/openstack-discuss/
 +
* For discussions prior to Mon Nov 19 00:04:26 UTC 2018, see the old "dev list" archive: http://lists.openstack.org/pipermail/openstack-dev/
 +
 
 +
 
 +
We also hang out on IRC in '''<code><nowiki>#openstack-cinder</nowiki></code>''' ... you can find out where (that is, which IRC network we use) and get IRC tips in the [https://docs.openstack.org/contributors/common/irc.html OpenStack contributor guide].
 +
* IRC logs are available in: [http://eavesdrop.openstack.org/irclogs/%23openstack-cinder/ http://eavesdrop.openstack.org/irclogs/#openstack-cinder/]
  
 
== Related projects ==
 
== Related projects ==
* Python Cinder client
+
* [https://github.com/openstack/python-cinderclient Python Cinder client]
* Block Storage API documentation
+
* [https://wiki.openstack.org/wiki/CinderBrick Brick]
  
== What is Cinder ? ==
+
== Core Volume Drivers ==
 +
For a list of the core drivers in each OpenStack release and the volume operations they support, see https://docs.openstack.org/cinder/latest/reference/support-matrix.html
  
Cinder provides an infrastructure for managing volumes in OpenStack. It was originally a Nova component called nova-volume, but has become an independent project since the Folsom release.
+
== 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 [http://docs.openstack.org/developer/reno/usage.html#creating-new-release-notes Reno Documentation] for details on how to generate new release notes.
  
== Reasoning: ==
+
=== How To Contribute A Driver ===
# Nova is currently a very large project; managing all of the dependencies in linkages of services within Nova can make the  ability to advance new features and functionality very difficult.
+
See [https://wiki.openstack.org/wiki/Cinder/how-to-contribute-a-driver How to contribute a driver]
# As a result of the many components and dependencies in Nova, it's difficult for anybody to really have a complete view of Nova and to be a true expert.  This makes the job of core team member on Nova very difficult, and inhibits good thorough reviews of bug and blueprint submissions.
 
# Block storage is a critical component of [[OpenStack]], as such it warrants focused and dedicated attention.
 
# Having Block Storage as a dedicated core project in [[OpenStack]] enables the ability to greatly improve functionality and reliability of the block storage component of [[OpenStack]]
 
  
== Documents: ==
+
NOTE: For people working on getting their CI to handle Python 3, see [https://wiki.openstack.org/wiki/Cinder/3rdParty-drivers-py3-update Cinder Third Party CI update to Python 3.7]
* Cinder deep dive (updated for Grizzly): [[File:cinder-grizzly-deep-dive-pub.pdf]]
 
  
== Minimum Driver Features ==
+
=== How To Contribute A New Feature ===
See [https://github.com/openstack/cinder/blob/master/doc/source/devref/drivers.rst driver dev docs]
+
See [https://wiki.openstack.org/wiki/Cinder/how-to-contribute-new-feature How to contribute a new feature]
  
=== Keeping consistant with multi backend ===
+
== Sample cinder.conf ==
In order to maintain consistency with multi backend, do not directly use FLAGS.my_flag, instead use the self.configuration that is provided to the volume drivers. If this does not exist, look @ lvm.py and add it to your driver. using FLAGS.my_flag instead of self.configuration.my_flag will cause multi backend to not work properly. Multi backend relies on the configurations to be within a specific config group in the config file, and the self.configuration abstracts that away from the drivers.
+
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.  
  
== Keeping informed and providing '''CONSTRUCTIVE INPUT''' ==
+
The newly generated file will have all options in the Cinder project, driver options included.
The Cinder team currently meets on a weekly basis in #openstack-meeting at 16:00 UTC on Wednesdays.  I try to keep the meetings wiki agenda page http://wiki.openstack.org/CinderMeetings up to date and follow it.  Also keep in mind that '''anybody''' is able to add/suggest agenda items via the meeting wiki page.
 
  
Of course, there's also IRC... a number of us monitor #openstack-cinder or you can always send a PM to jgriffith (that's me)
+
Additionally, the generated file is available in the Cinder documentation:
 +
https://docs.openstack.org/cinder/latest/configuration/block-storage/samples/cinder.conf.html
  
== Concerns from the community: ==
+
== Resources ==
=== Compatibility and Migration: ===
+
===Etherpads===
There has been a significant amount of concern raised regarding "compatibility"; unfortunately this seems to mean different things to different people. For those that haven't looked at the Cinder code or tried a demo in devstack, here are some question/answers:
+
====Active====
 +
*[https://etherpad.opendev.org/p/cinder-xena-ci-tracking Tracking cinder check/gate failures during Xena development]
 +
*[https://etherpad.openstack.org/p/cinder-spec-review-tracking Spec Review Tracking]
 +
*[https://etherpad.openstack.org/p/cinder-outreachy-project-ideas Outreachy Project Ideas]
  
* Do the same nova client commands I use for volumes today still work the same? '''YES'''
+
====Historic====
* Do the same euca2ools that I use for volumes today still work the same? '''YES'''
+
*[https://etherpad.openstack.org/p/cinder-default-iscsihelper-lio Default iscsihelper LIO]
* Does block storage still work the same as it does today in terms of LVM, iSCSI and the drivers that are curently in place? '''YES'''
+
*[https://etherpad.openstack.org/p/cinder-nova-api-changes Cinder/Nova API Changes]
* Are the associated database tables the same as they are in the current nova volume code?  '''For the most part YES, all volume related tables and columns are migrated, non-volume related tables however are not present'''
+
*[https://etherpad.openstack.org/p/newton-cinder-midcycle Newton Midcycle]
* Does it use the same nova database as we use today? '''No, it does require a new independent database'''
+
*[https://etherpad.openstack.org/p/newton-cinder-summit-ideas Newton Summit Ideas]
* Are you going to implement cinder with complete disregard for my current install and completely change everything out from under me?  '''ABSOLUTELY NOT'''
+
*[https://etherpad.openstack.org/p/cinder-mataka-release-final-push Mitaka Final Push]
* Are you going to test migrating from nova-vol to Cinder? '''YES'''
+
*[https://etherpad.openstack.org/p/mitaka-cinder-spec-review-tracking Mitaka Spec Review Tracking]
* Are those migration tests going to be done just using fakes/unit tests?  '''NO, we would require running setups, most likely devstack'''
+
*[https://etherpad.openstack.org/p/mitaka-cinder-midcycle Mitaka Midcycle Meetup- Planning]
* Are you planning to provide migration scripts/tools to move from nova to cinder?  '''YES'''
+
*[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]
  
=== Additional thoughts to keep in mind: ===
+
=== Review Links ===
* The Cinder core team is fortunate enough to have a number of members who currently work for companies that are using [[OpenStack]] and nova-volumes in production environments. There is a strong representation and the concerns of Providers is in fact a major consideration
+
* [https://review.opendev.org/dashboard/?foreach=%28project%3Aopenstack%2Fcinder+OR%0Aproject%3Aopenstack%2Fpython%2Dcinderclient+OR%0Aproject%3Aopenstack%2Fpython%2Dbrick%2Dcinderclient%2Dext+OR%0Aproject%3Aopenstack%2Fos%2Dbrick+OR%0Aproject%3Aopenstack%2Fcinderlib+OR%0Aproject%3Aopenstack%2Frbd%2Discsi%2Dclient+OR%0Aopenstack%2Fcinder%2Dtempest%2Dplugin%29+status%3Aopen&title=Cinder+Priorities+Dashboard&High+Priority+Changes=label%3AReview%2DPriority%3D2&Priority+Changes=label%3AReview%2DPriority%3D1&Blocked+Reviews=label%3AReview%2DPriority%3D%2D1 Cinder Priority Reviews Dashboard]
* The goal is '''NOT''' to throw away nova-volume as it is today, but to separate it, focus on it and improve it.
+
* [https://review.opendev.org/dashboard/?title=Cinder+Review+Dashboard&foreach=(project:openstack/cinder+OR%0Aproject:openstack/python-cinderclient+OR%0Aproject:openstack/os-brick+OR%0Aproject:openstack/cinderlib+OR%0Aproject:openstack/python-brick-cinderclient-ext+OR%0Aproject:openstack/rbd-iscsi-client+OR%0Aproject:openstack/cinder-tempest-plugin)+status:open&Small+Patches=NOT+label:Code-Review%3C=-1,cinder-core+delta:%3C=10&5+Days+Without+Feedback=NOT+label:Code-Review%3C=-1+NOT+label:Code-Review%3E=1+NOT+is:reviewed+age:5d&Bug+Fixes+without+Negative+Feedback=NOT+label:Workflow%3E=1+NOT+label:Workflow%3C=-1+NOT+owner:self+limit:50+branch:master+intopic:%5Ebug.*+NOT+reviewedby:self&Blueprints+without+Negative+Feedback=NOT+label:Workflow%3E=1+NOT+label:Workflow%3C=-1+label:Verified%3E=1+NOT+owner:self+NOT+label:Code-Review%3C=-1+NOT+label:Code-Review%3E=2+limit:50+branch:master+intopic:%5Ebp.*+NOT+reviewedby:self&Needs+Final++2=label:Code-Review%3E=2+NOT+label:Code-Review%3C=-2+NOT+reviewedby:self&Patches+I+-2%27d=label:Code-Review%3C=-2,self&Stable+Branches=branch:%5Estable/.*+NOT+reviewedby:self Cinder Projects Review Inbox]
* Migration is one of the top priorities for introduction of Cinder into Folsom (regardless of whether nova-volume is still in place or not).  This is something that is just considered a part of the requirements for the project.
+
* [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://bugs.launchpad.net/cinder/+bugs?field.searchtext=&orderby=-importance&search=Search&field.status%3Alist=NEW&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= New bugs]
 +
* Stable Branches Reviews
 +
** [https://review.openstack.org/#/dashboard/?foreach=%28project%3Aopenstack%2Fcinder+OR%0Aproject%3Aopenstack%2Fpython%2Dcinderclient+OR%0Aproject%3Aopenstack%2Fos%2Dbrick+OR%0Aproject%3Aopenstack%2Fcinderlib+OR%0Aproject%3Aopenstack%2Fpython%2Dbrick%2Dcinderclient%2Dext%29+status%3Aopen%0A%28branch%3A%5Edriverfixes%2F.%2A+OR%0Abranch%3A%5Estable%2F.%2A%29&title=Cinder+Project%3A+All+Stable+and+Driverfix+Branches&Needs+Final+%2B2=label%3ACode%2DReview%3E%3D2+NOT+label%3ACode%2DReview%3C%3D%2D2&Without+Negative+Feedback=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+label%3AVerified%3E%3D1+NOT+owner%3Aself+NOT+label%3ACode%2DReview%3C%3D%2D1+NOT+label%3ACode%2DReview%3E%3D2+limit%3A50&Probably+Not=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+label%3ACode%2Dreview%3C%3D%2D1+NOT+owner%3Aself+limit%3A50&Own+Patches=owner%3Aself&Patches+I+%2D2%27d=label%3ACode%2DReview%3C%3D%2D2%2Cself all stable and driverfix branches]
 +
** [https://review.openstack.org/#/dashboard/?foreach=%28project%3Aopenstack%2Fcinder+OR%0Aproject%3Aopenstack%2Fpython%2Dcinderclient+OR%0Aproject%3Aopenstack%2Fos%2Dbrick+OR%0Aproject%3Aopenstack%2Fcinderlib+OR%0Aproject%3Aopenstack%2Fpython%2Dbrick%2Dcinderclient%2Dext%29%0Astatus%3Aopen%0Abranch%3Astable%2Fstein&title=Cinder+stable%2Fstein+Reviews&Needs+Final+%2B2=label%3ACode%2DReview%3E%3D2+NOT+label%3ACode%2DReview%3C%3D%2D2&Without+Negative+Feedback=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+label%3AVerified%3E%3D1+NOT+owner%3Aself+NOT+label%3ACode%2DReview%3C%3D%2D1+NOT+label%3ACode%2DReview%3E%3D2+limit%3A50&Probably+Not=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+label%3ACode%2Dreview%3C%3D%2D1+NOT+owner%3Aself+limit%3A50&Own+Patches=owner%3Aself&Patches+I+%2D2%27d=label%3ACode%2DReview%3C%3D%2D2%2Cself stable/stein only]
 +
** [https://review.openstack.org/#/dashboard/?foreach=%28project%3Aopenstack%2Fcinder+OR%0Aproject%3Aopenstack%2Fpython%2Dcinderclient+OR%0Aproject%3Aopenstack%2Fos%2Dbrick+OR%0Aproject%3Aopenstack%2Fcinderlib+OR%0Aproject%3Aopenstack%2Fpython%2Dbrick%2Dcinderclient%2Dext%29+status%3Aopen%0A%28branch%3A%5Edriverfixes%2F.%2A+OR%0Abranch%3Astable%2Focata+OR%0Abranch%3Astable%2Fpike%29&title=Cinder+Extended+Maintenance+Branches+Reviews&Needs+Final+%2B2=label%3ACode%2DReview%3E%3D2+NOT+label%3ACode%2DReview%3C%3D%2D2&Without+Negative+Feedback=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+label%3AVerified%3E%3D1+NOT+owner%3Aself+NOT+label%3ACode%2DReview%3C%3D%2D1+NOT+label%3ACode%2DReview%3E%3D2+limit%3A50&Probably+Not=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+label%3ACode%2Dreview%3C%3D%2D1+NOT+owner%3Aself+limit%3A50&Own+Patches=owner%3Aself&Patches+I+%2D2%27d=label%3ACode%2DReview%3C%3D%2D2%2Cself extended maintenance (including driverfixes) only]
  
== Cinder Core Drivers ==
+
=== PTG and Summit Meeting Summaries ===
For a list of the core drivers in each OpenStack release and the volume operations they support, see https://wiki.openstack.org/wiki/CinderSupportMatrix
+
*[[CinderCaracalMidCycleSummary|2024.1 (Caracal) Midcycle Summary]]
 +
*[[CinderCaracalPTGSummary|2024.1 (Caracal) PTG Summary]]
 +
*[[CinderBobcatMidCycleSummary|2023.2 (Bobcat) Midcycle Summary]]
 +
*[[CinderBobcatPTGSummary|2023.2 (Bobcat) PTG Summary]]
 +
*[[CinderAntelopeMidCycleSummary|2023.1 (Antelope) Midcycle Summary]]
 +
*[[CinderAntelopePTGSummary|2023.1 (Antelope) PTG Summary]]
 +
*[[CinderZedMidCycleSummary| Zed Midcycle Summary]]
 +
*[[CinderZedPTGSummary|Zed PTG Summary]]
 +
*[[CinderYogaMidCycleSummary|Yoga Midcycle Summary]]
 +
*[[CinderYogaPTGSummary|Yoga PTG Summary]]
 +
*[[CinderXenaMidCycleSummary|Xena Mid-Cycle Summary]]
 +
*[[CinderXenaPTGSummary|Xena PTG Summary]]
 +
*[[CinderWallabyMidCycleSummary|Wallaby Mid-Cycle Summary]]
 +
*[[CinderWallabyPTGSummary|Wallaby PTG Summary]]
 +
*[[CinderVictoriaMidCycleSummary|Victoria Mid-Cycle Summary]]
 +
*[[CinderVictoriaPTGSummary|Victoria PTG Summary]]
 +
*[[CinderUssuriMidCycleSummary|Ussuri Mid-Cycle Summary]]
 +
*[[CinderUssuriPTGSummary|Ussuri PTG Summary]]
 +
*[[CinderTrainMidCycleSummary|Train Mid-Cycle Summary]]
 +
*[[CinderTrainSummitandPTGSummary|Train Summit and PTG Summary]]
 +
*[[CinderSteinMidCycleSummary|Stein Mid-Cycle Summary]]
 +
*[[CinderSteinPTGSummary|Stein PTG Summary]]
 +
*[[VancouverSummit2018Summary|Vancouver Summit 2018 Summary]]
 +
*[[CinderRockyPTGSummary|Rocky PTG Summary]]
 +
*[[CinderQueensPTGSummary|Queens PTG Summary]]
 +
*[[CinderPikePTGSummary|Pike PTG Summary]]
  
== Cinder Plugins ==
+
=== Cinder YouTube Channel ===
How to submit a plugin/driver: https://wiki.openstack.org/wiki/Cinder/how-to-contribute-a-driver
+
* [https://www.youtube.com/channel/UCJ8Koy4gsISMy0qW3CWZmaQ/videos Midcycle/PTG Videos and Related Content]
  
The following plugins (from other sources) are avaialble for this project
+
[[Category: Cinder]]
* [https://wiki.openstack.org/wiki/Mellanox-Cinder Mellanox Cinder Plugin] Mellanox Cinder Plugin
 

Latest revision as of 09:50, 16 January 2024

Note: The wiki.openstack.org pages are for development team collaboration and documentation. If you are looking for official project documentation, please go to https://docs.openstack.org/cinder/latest/.

Official Title: OpenStack Block Storage Cinder

PTL: Rajat Dhasmana <rajatdhasmana@gmail.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.

Jump to the Active Etherpads List

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.

Documentation

For a quick overview of the Cinder project's organization, deliverables, and processes, take a look at our Getting Started page.

See https://docs.openstack.org/cinder for the official cinder documentation.

Core Team

See current members.

Project Meetings

See Meetings/Cinder.

Getting in Touch

We use the openstack-discuss@lists.openstack.org mailing list for discussions using subjects with the prefix "[cinder]".


We also hang out on IRC in #openstack-cinder ... you can find out where (that is, which IRC network we use) and get IRC tips in the OpenStack contributor guide.

Related projects

Core Volume Drivers

For a list of the core drivers in each OpenStack release and the volume operations they support, see https://docs.openstack.org/cinder/latest/reference/support-matrix.html

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

NOTE: For people working on getting their CI to handle Python 3, see Cinder Third Party CI update to Python 3.7

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.

Additionally, the generated file is available in the Cinder documentation: https://docs.openstack.org/cinder/latest/configuration/block-storage/samples/cinder.conf.html

Resources

Etherpads

Active

Historic

Review Links

PTG and Summit Meeting Summaries

Cinder YouTube Channel