Jump to: navigation, search

Difference between revisions of "Cinder"

m (Getting in Touch)
 
(87 intermediate revisions by 21 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:''' Brian Rosmaita <rosmaita daht fossdev at gmail d0t com><br />
|  Source code 
 
|-
 
|  Bug tracker 
 
|-
 
|  Blueprints   
 
|-
 
|  Developer doc
 
|}
 
  
== Related projects ==
+
'''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>
* Python Cinder client
+
 
* Block Storage API documentation
+
== 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 [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/
  
== What is Cinder ? ==
 
  
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.
+
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/]
  
== Reasoning: ==
+
== Related projects ==
# 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.
+
* [https://github.com/openstack/python-cinderclient Python Cinder client]
# 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.
+
* [https://wiki.openstack.org/wiki/CinderBrick Brick]
# 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: ==
+
== 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
  
== Minimum Driver Features ==
+
== Contributing Code ==
A Cinder driver must implement the following features in order to be accepted by the Cinder team for a given milestone release.
+
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.
  
'''Grizzly Release:'''
+
=== How To Contribute A Driver ===
* Volume Create/Delete
+
See [https://wiki.openstack.org/wiki/Cinder/how-to-contribute-a-driver How to contribute a driver]
* Volume Attach/Detach
 
* Snapshot Create/Delete
 
* Create Volume from Snapshot
 
* Get Volume Stats
 
  
The current list of volume stats that should be populated by the driver include:
+
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]
* driver_version
 
* free_capacity_gb
 
* reserved_percentage
 
* storage_protocol
 
* total_capacity_gb
 
* vendor_name
 
* volume_backend_name
 
  
'''NOTE:''' If the driver in unable to provide a value for free_capacity_gb or total_capacity_gb, keywords can be provided instead.
+
=== How To Contribute A New Feature ===
Please use 'unknown' if the array cannot report the value or 'infinite' if the array has no upper limit.
+
See [https://wiki.openstack.org/wiki/Cinder/how-to-contribute-new-feature How to contribute a new feature]
  
'''Havana Release:'''
+
== Sample cinder.conf ==
* Above Release features '''plus'''
+
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.
* Copy Image to Volume
 
* Copy Volume to Image
 
* Clone Volume
 
  
It is strongly encouraged that you implement all the features for a given release if possible. However, the Cinder team understands that the turnaround time might be too tight for some, due to corporate legal approval, new features landing at the very end of a sprint, etc… Each major release the list will be updated to include additions that will be required to be supported.
+
The newly generated file will have all options in the Cinder project, driver options included.
  
=== Keeping consistant with multi backend ===
+
Additionally, the generated file is available in the Cinder documentation:
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.
+
https://docs.openstack.org/cinder/latest/configuration/block-storage/samples/cinder.conf.html
  
== Keeping informed and providing '''CONSTRUCTIVE INPUT''' ==
+
== Resources ==
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.
+
===Etherpads===
 +
====Active====
 +
*[https://etherpad.openstack.org/p/cinder-spec-review-tracking 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]
  
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)http://wiki.openstack.org/CinderMeetings
 
  
== Concerns from the community: ==
+
====Historic====
=== Compatibility and Migration: ===
+
*[https://etherpad.openstack.org/p/cinder-nova-api-changes Cinder/Nova API Changes]
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:
+
*[https://etherpad.openstack.org/p/newton-cinder-midcycle Newton Midcycle]
 +
*[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]
  
* Do the same nova client commands I use for volumes today still work the same? '''YES'''
+
=== Review Links ===
* Do the same euca2ools that I use for volumes today still work the same? '''YES'''
+
* [https://review.openstack.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%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]
* 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://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)+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]
* 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://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]
* Does it use the same nova database as we use today? '''No, it does require a new independent database'''
+
* [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]
* Are you going to implement cinder with complete disregard for my current install and completely change everything out from under me?  '''ABSOLUTELY NOT'''
+
* Stable Branches Reviews
* Are you going to test migrating from nova-vol to Cinder? '''YES'''
+
** [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]
* Are those migration tests going to be done just using fakes/unit tests? '''NO, we would require running setups, most likely devstack'''
+
** [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]
* Are you planning to provide migration scripts/tools to move from nova to cinder? '''YES'''
+
** [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]
  
=== Additional thoughts to keep in mind: ===
+
=== PTG and Summit Meeting Summaries ===
* 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
+
*[[CinderXenaPTGSummary|Xena PTG Summary]]
* The goal is '''NOT''' to throw away nova-volume as it is today, but to separate it, focus on it and improve it.
+
*[[CinderWallabyMidCycleSummary|Wallaby Mid-Cycle Summary]]
* 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.
+
*[[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 Core Drivers ==
+
=== Cinder YouTube Channel ===
For a list of the core drivers in each OpenStack release and the volume operations they support, see https://wiki.openstack.org/wiki/CinderSupportMatrix
+
* [https://www.youtube.com/channel/UCJ8Koy4gsISMy0qW3CWZmaQ/videos Midcycle/PTG Videos and Related Content]
  
== Cinder Plugins ==
+
[[Category: Cinder]]
The following plugins (from other sources) are avaialble for this project
 
* [https://wiki.openstack.org/wiki/Mellanox-Cinder Mellanox Cinder Plugin] Mellanox Cinder Plugin
 

Latest revision as of 19:35, 26 May 2021

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: Brian Rosmaita <rosmaita daht fossdev 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.

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