Reproposes Hyper-V Storage QOS spec to Newton
Previously-approved: Liberty, Mitaka Change-Id: Id85ed00a20b88286c9f6273c4039695103feac18 Implements: blueprint hyperv-storage-qos
This commit is contained in:
169
specs/newton/approved/hyperv-storage-qos.rst
Normal file
169
specs/newton/approved/hyperv-storage-qos.rst
Normal file
@@ -0,0 +1,169 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
==========================================
|
||||
Hyper-V Storage QoS
|
||||
==========================================
|
||||
|
||||
https://blueprints.launchpad.net/nova/+spec/hyperv-storage-qos
|
||||
|
||||
Hyper-V provides options to specify maximum IOPS per virtual disk image.
|
||||
|
||||
By leveraging this feature, this blueprint proposes to add support for setting
|
||||
QoS specs targeting instance local disks as well as volumes exported through
|
||||
SMB.
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
At the moment, the Nova Hyper-V driver does not support setting storage IOPS
|
||||
limits. For this reason, some instances might exhaust storage resources,
|
||||
impacting other tenants.
|
||||
|
||||
Use Cases
|
||||
----------
|
||||
|
||||
* Associate front-end QoS specs for volumes exported through SMB, which will
|
||||
be handled on the hypervisor side
|
||||
|
||||
* Set IOPS caps for instance local disks by using flavor extra specs
|
||||
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
Cinder volumes can have QoS specs assigned. Front-end QoS specs should be
|
||||
applied by Nova when the volume is attached. Those are applied per volume.
|
||||
|
||||
In addition, this blueprint proposes per instance QoS specs that will be
|
||||
specified using flavor extra specs. The Hyper-V driver will apply those IOPS
|
||||
caps to all the local instance disks equally.
|
||||
|
||||
For example, if a specific IOPS cap is specified in the flavor extra specs,
|
||||
this cap will be applied to the instance root, ephemeral and configdrive disk
|
||||
equally.
|
||||
|
||||
Front-end volume specs will be supported only in case of volumes exported
|
||||
through SMB.
|
||||
|
||||
Use case examples:
|
||||
|
||||
* Admin sets front-end QoS specs on a specific volume type
|
||||
cinder qos-create my-qos consumer=front-end \
|
||||
total_bytes_sec=20971520 \
|
||||
|
||||
cinder qos-associate my-qos <volume_type_id>
|
||||
|
||||
# SMB must be used as a volume backend, iSCSI support may be
|
||||
# added in the future
|
||||
cinder create <size> --volume-type <volume_type_id>
|
||||
|
||||
# Those QoS specs are applied when the volume is
|
||||
# attached to a Hyper-V instance
|
||||
nova volume-attach <hyperv_instance_id> <volume_id>
|
||||
|
||||
* Admin sets instance storage QoS specs on the flavor
|
||||
nova flavor-key <my_flavor> set \
|
||||
storage_local_qos:total_bytes_sec=20971520
|
||||
|
||||
Available QoS specs:
|
||||
* total_bytes_sec - includes read/writes
|
||||
|
||||
* total_iops_sec
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
Flavor QoS specs could be applied not only for instance local disks but
|
||||
attached volumes as well. In this case, if volume QoS specs are present, we may
|
||||
apply the lowest IOPS cap.
|
||||
|
||||
Also, the cap could be divided among the disks, but this may not be desired.
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
None
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
Setting storage QoS specs will prevent instances from exhausting storage
|
||||
resources, which may impact other tenants.
|
||||
|
||||
Notifications impact
|
||||
--------------------
|
||||
|
||||
None
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
Preventing instances from exhausting storage resources can have a significant
|
||||
performance impact.
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
Lucian Petrut <lpetrut@cloudbasesolutions.com>
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
* Add front-end QoS specs support in the Hyper-V SMB volume driver
|
||||
|
||||
* Add flavor storage QoS specs support
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
None
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
This feature will be tested by the Hyper-V CI. We'll add tempest tests
|
||||
verifying that the IOPS cap is actually enforced.
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
The QoS features should be described in the Hyper-V driver documentation.
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
Hyper-V Storage QoS reference:
|
||||
https://technet.microsoft.com/en-us/library/dn282281.aspx
|
||||
|
||||
History
|
||||
=======
|
||||
|
||||
None
|
||||
Reference in New Issue
Block a user