Capacity-based QoS

Blueprint: capacity-based-qos

Change-Id: I8e753320e1405721286ea4bbad9bbdfdfc025c9c
This commit is contained in:
Eric Harney 2017-03-29 16:55:13 -04:00
parent 7d8dccabcd
commit 304d5f5b82

View File

@ -0,0 +1,135 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
==========================================
Capacity-based QoS
==========================================
Include the URL of your launchpad blueprint:
https://blueprints.launchpad.net/cinder/+spec/capacity-based-qos
QoS values in Cinder currently are able to be set to static
values. This work proposes a way to derive QoS limit values
based on volume capacities rather than static values.
Problem description
===================
This proposes a mechanism to provision IOPS on a per-volume basis with
the IOPS values adjusted based on the volume's size. (IOPS per GB)
Use Cases
=========
A deployer wishes to cap "usage" of this system to limits based
on space usage as well as throughput, in order to bill customers
and not exceed limits of the backend.
Associating IOPS and size allows you to provide tiers such as
Gold: 1000 GB at 10000 IOPS per GB
Silver: 1000 GB at 5000 IOPS per GB
Bronze: 500 GB at 5000 IOPS per GB
Proposed change
===============
Allow creation of qos_keys:
read_iops_sec_per_gb
write_iops_sec_per_gb
total_iops_sec_per_gb
These function the same as our current <x>_iops_sec keys,
except they are scaled by the volume size.
Alternatives
------------
None
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
---------------------
New optional qos spec values.
Off by default, opt-in.
Developer impact
----------------
None
Implementation
==============
Assignee(s)
-----------
Primary assignee:
eharney
Work Items
----------
* https://review.openstack.org/#/c/447127/
Dependencies
============
Testing
=======
Documentation Impact
====================
Document new fields available in qos types.
References
==========
Code: https://review.openstack.org/#/c/447127/