Enable creation of BDM via Instance Flavor Extra-Specs
There has been an expressed desire among OpenStack Deployers to have the ability to use Cinder Volumes as ephemeral backing stores for their Nova Instances. We have offered the ability to specify this via the block-device options to Nova boot, but it is a bit of an awkward command line, and more importantly there are a number of folks that would prefer to just use a Cinder volume for their Instances as a default.
We can do this pretty easily via the Flavor Extra-Specs. We can just add some simple logic to Nova to check the extra-specs of a flavor during Instance creation and if indicated by the Flavor build the BDM and use a Cinder Volume.
Additionally in the future, we can use this is conjunction with Cinder backed Glance and optimize a number of things in the image creation process and migration for any Cinder backend.
The idea here is simply to provide a mechanism to utilize a Cinder deployment for disk space for Nova Ephemeral Instances. There are lots of other ways to go about this, including API changes or actually going through and implementing instance backing in Nova like:
Ceph
NFS
Gluster
Scality
...
Honestly though, that seems like a ton of code for a simple thing; AND I am attempting to provide a general mechanism for multiple backends to use as opposed to continuing to proliferate one-off vendor-specific implementations that are far reaching inside the Nova code and introduce a significant maintenance and test burden.
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- John Griffith
- Direction:
- Needs approval
- Assignee:
- John Griffith
- Definition:
- Superseded
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
- Matt Riedemann
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Enable specifying BDM in Flavor Extra-Specs
mgagne shared what they do in their cloud, which is the same idea, just implemented via API paste middleware:
https:/