Add RBD Stripe Parameters to Cinder Volume Creation

Registered by Gary McGilvary

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

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
Gary McGilvary
Definition:
Obsolete
Series goal:
None
Implementation:
Needs Code Review
Milestone target:
None
Started by
Gary McGilvary
Completed by
Mike Perez

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:rbd-stripe-parameters,n,z

Addressed by: https://review.openstack.org/47473
    Adding RBD data striping capabilities to OpenStack (Cinder)

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.