[Openstack-docs] [openstack/cinder] DocImpact review request change Iabc61b941aaff10395b30e2045e3421369a317e2
gerrit2 at review.openstack.org
gerrit2 at review.openstack.org
Mon May 20 05:55:11 UTC 2013
Hi, I'd like you to take a look at this patch for potential
DocImpact.
https://review.openstack.org/29737
Log:
commit 23786613a709c969d0c84c2ef4d7170ae4c0b9e8
Author: Zhiteng Huang <zhiteng.huang at intel.com>
Date: Sat May 18 22:21:28 2013 +0800
Add rate limit columns to volume_types table
This is part of the effort to implement client-side volume rate limiting
feature. The idea of client-side volume rate limiting is quite simple: Cinder
stores rate-limiting parameters in for each volume, and then when Nova asks
for connection infomration of volume, Cinder sends back rate limiting
parameters so that Nova can apply to its side via virtualization layer. Take
KVM hypervisor (or libvirt virt layer) for example: with libvirt later than
0.9.8, it's able to put following rate limit controls of a block device for
VM:
* total_bytes_sec: total throughput limit in bytes per second. This cannot
appear with read_bytes_sec or write_bytes_sec.
* read_bytes_sec: read throughput limit in bytes per second.
* write_bytes_sec: write throughput limit in bytes per second.
* total_iops_sec: total I/O operations per second. This cannot appear with
read_iops_sec or write_iops_sec.
* read_iops_sec: read I/O operations per second.
* write_iops_sec: write I/O operations per second.
Note that while it's possible for Cinder to set the granularity of rate limit
to every single volume, this patch puts the control granularity to the level
of volumes of the same type to minimize the impact of other Cinder parts.
In other words, the design in this patch is to bond rate limiting with volume
types. So Cinder admin can create various volume types with different rate
limit controls, and volumes of same volume type have same rate limit
parameters.
To store rate limit parameters with volume types also have two different
options: 1) extend volume type table itself and add new columns for rate limit;
2) use volume_type_extra_spec to store rate limit parameters. While the latter
design seems to have lowest impact of Cinder code, it does bring in new
challenges: Cinder volume manager needs an fixed way (i.e. doesn't reply on how
admin create a volume type) to retrieve rate limiting parameters for volumes,
but extra specs are dynamic by nature (all defined by admin). Therefore, this
patch takes first approach to store rate limiting paramenters, that's adding
new columns to volume_types table. It's generic description of how client (and
/or back-end) should limit throughput/IOPS of volumes, and by default, all rate
limiting parameters are set to zero, which means there's no rate limit of
existing volumes.
This patch changes the internal API interface for creating volume types, so no
impact of compatibility at all. The rest part of the changes needed in Cinder
are:
* enable volume manager/driver to read and send rate limit parameters to Nova
in initliaize_connection() call;
* enable cinder client to process rate limit parameters when creating new
volume types.
DocImpact
partically implement blueprint: pass-ratelimit-info-to-nova
Change-Id: Iabc61b941aaff10395b30e2045e3421369a317e2
More information about the Openstack-docs
mailing list