Bug 1041667

Summary: [RFE][cinder]: Add RBD Stripe Parameters to Cinder Volume Creation
Product: Red Hat OpenStack Reporter: RHOS Integration <rhos-integ>
Component: RFEsAssignee: RHOS Maint <rhos-maint>
Status: CLOSED UPSTREAM QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: markmc, yeylon
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/cinder/+spec/rbd-stripe-parameters
Whiteboard: upstream_milestone_none upstream_status_needs-code-review upstream_definition_obsolete
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-19 17:04:14 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description RHOS Integration 2013-12-12 18:34:25 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/cinder/+spec/rbd-stripe-parameters.

Description:

When Cinder uses Ceph RBD as its volume backend, RBD volumes are created with no stripe_count and stripe_unit parameters.

Users therefore cannot adjust the level of striping dependent on the application/data present on the volume.

This can be solved by following the steps below:

1) When Cinder reads the driver(s) loaded, it creates a volume type for each driver

2) Upon volume creation, Horizon will allow the stripe parameters to be entered via the interface only when the RBD driver is in use. This can be achieved by using switchable fields where the 'Stripe Count' and 'Stripe Unit' fields will be displayed when the RBD volume (assigned to the RBD driver) is selected.

3) The stripe parameter inputs are sanitized to ensure incorrect inputs are not used (otherwise a volume will remain in the 'Creating' state).

4) The stripe parameters are passed into the existing create_volume method calls, which upon completion, are stored into the cinder/volumes database

5) The modified RBD driver reads these values and places them into the rbd creation command

6) By displaying the RBD volume information, we see that stripe parameters were used successfully upon creation.

Note: This implementation makes modifications to Horizon, Cinder and python-cinderclient

Specification URL (additional information):

None