
When I read this specs file, I found a lot of spelling mistakes, and I made a change here to give you a good code reading experience. In specs, modify "acording" to "according" and "priviledges" to "privileges" and "Additionaly" to "Additionally" and so on. you can get them from the "File Path" in the web. Change-Id: I95228e1a57c7aa588c78d4a3af46b18daadac01d
157 lines
3.4 KiB
ReStructuredText
157 lines
3.4 KiB
ReStructuredText
..
|
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
|
License.
|
|
|
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
|
|
|
=============================================
|
|
Add QoS capability to the IBM Storwize driver
|
|
=============================================
|
|
|
|
https://blueprints.launchpad.net/cinder/+spec/cinder-storwize-driver-qos
|
|
|
|
Storwize driver can provide the QoS capability with the parameter of
|
|
IO throttling, which caps the amount of I/O that is accepted. This
|
|
blueprints proposes to add the QoS support for Storwize driver.
|
|
|
|
Problem description
|
|
===================
|
|
|
|
Storwize backend storage can be enabled with the QoS support by limiting
|
|
the amount of I/O for a specific volume. QoS has been implemented for
|
|
some cinder storage drivers, and it is feasible for the storwize driver
|
|
to add this feature as well.
|
|
|
|
Use Cases
|
|
=========
|
|
|
|
Proposed change
|
|
===============
|
|
|
|
To enable the QoS for storwize driver, an extra spec with IOThrottling as the
|
|
key needs to bind to a volume type. All the following changes apply to the
|
|
Storwize driver code.
|
|
|
|
Create volume:
|
|
|
|
* If QoS is enabled and IOThrottling is available as the QoS key, set the I/O
|
|
throttling of the volume into the specified IOThrottling value.
|
|
|
|
Create clone volume:
|
|
|
|
* If the QoS is set for the original volume, the target volume needs to set
|
|
to the same QoS.
|
|
|
|
Create snapshot:
|
|
|
|
* The QoS attributes will be copied to the snapshot.
|
|
|
|
Create volume from snapshot:
|
|
|
|
* If QoS is enabled and IOThrottling is available as the QoS key, set the IO
|
|
throttling of the volume into the specified IOThrottling value.
|
|
|
|
Re-type volume:
|
|
|
|
* If a volume type is changed, a different IOThrottling value will apply to
|
|
the volume and the I/O of the volume needs to be set to the new IO
|
|
throttling.
|
|
|
|
|
|
Alternatives
|
|
------------
|
|
|
|
The proposed change follows the pattern, in which other drivers implement the
|
|
QoS feature.
|
|
|
|
Data model impact
|
|
-----------------
|
|
|
|
None.
|
|
|
|
REST API impact
|
|
---------------
|
|
|
|
None.
|
|
|
|
Security impact
|
|
---------------
|
|
|
|
None.
|
|
|
|
Notifications impact
|
|
--------------------
|
|
|
|
None.
|
|
|
|
Other end user impact
|
|
---------------------
|
|
|
|
None.
|
|
|
|
Performance Impact
|
|
------------------
|
|
|
|
None.
|
|
|
|
Other deployer impact
|
|
---------------------
|
|
|
|
The QoS for Storwize driver can be configurable with a configuration option
|
|
in cinder.conf. An extra spec with the key of IOThrottling can bind to a
|
|
volume type, so that the volumes with this volume type are guaranteed with
|
|
an I/O throttling rate.
|
|
|
|
Developer impact
|
|
----------------
|
|
|
|
None.
|
|
|
|
|
|
Implementation
|
|
==============
|
|
|
|
Assignee(s)
|
|
-----------
|
|
|
|
Primary assignee:
|
|
Vincent Hou
|
|
|
|
Other contributors:
|
|
TBD
|
|
|
|
Work Items
|
|
----------
|
|
|
|
* Add a configuration option to allow the user the use the QoS for Storwize
|
|
driver.
|
|
* Add the QoS enablement check and set the I/O throttling in create volume.
|
|
* Add the QoS enablement check and set the I/O throttling in create volume
|
|
from snapshot.
|
|
* Set the I/O throttling to the new volume according to the original volume
|
|
in create clone volume.
|
|
* Copy the QoS attributes to the snapshot in create snapshot.
|
|
* Change the I/O throttling of the volume if the volume type is changed.
|
|
|
|
Dependencies
|
|
============
|
|
|
|
None.
|
|
|
|
Testing
|
|
=======
|
|
|
|
* Unit tests need to be added to test the QoS for Storwize driver.
|
|
|
|
Documentation Impact
|
|
====================
|
|
|
|
* Add how to configure the QoS for the Storwize driver in the document.
|
|
|
|
References
|
|
==========
|
|
|
|
* Add QoS capability to the IBM storwize driver
|
|
https://blueprints.launchpad.net/cinder/+spec/cinder-storwize-driver-qos
|
|
|