Add RBD Stripe Parameters to Cinder Volume Creation
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
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Adding RBD data striping capabilities to OpenStack (Cinder)