4.3. Block Storage quality of service property keys
The Block Storage service (cinder) provides you with quality of service (QoS) property keys so that you can limit the performance of the volumes that your cloud users create. The default value for all QoS property keys is 0, which means that the limit is unrestricted.
These limits use the following two industry standard measurements of storage volume performance:
- Input/output operations per second (IOPS)
- Data transfer rate, measured in bytes per second
The consumer of the QoS specification determines which QoS property keys are supported. For more information, see Consumers of QoS specifications.
Block Storage cannot perform error checking of QoS property keys, because some QoS property keys are defined externally by back-end drivers. Therefore, Block Storage ignores any invalid or unsupported QoS property key. Ensure that you spell the QoS property keys correctly. The volume performance limits that contain incorrectly spelled property keys are ignored.
For both the IOPS and data transfer rate measurements, you can configure the following performance limits:
- Fixed limits
- Typically, fixed limits should define the average usage of the volume performance measurement.
- Burst limits
- All burst limits use a burst length of one second. Typically, burst limits should define periods of intense activity of the volume performance measurement. A burst limit makes allowance for an increased rate of activity for a specific time, while keeping the fixed limits low for average usage.
- Total limits
-
Specify a global limit for both the read and write operations of the required performance limit, by using the
total_*QoS property key. Read and write limits are ignored when you specify a total limit. Instead of using a total limit, you can apply separate limits to the read and write operations or choose to limit only the read or write operations. - Read limits
-
Specify a limit that only applies to the read operations of the required performance limit, by using the
read_*QoS property key. - Write limits
-
Specify a limit that only applies to the write operations of the required performance limit, by using the
write_*QoS property key.
You can use the following Block Storage QoS property keys to create volume performance limits for your deployment:
| Performance limit | Measurement unit | QoS property keys |
|---|---|---|
| Fixed IOPS | IOPS |
|
| Fixed IOPS calculated by the size of the volume. For more information about the usage restrictions of these limits, see QoS limits that scale according to volume size. | IOPS per GB |
|
| Burst IOPS | IOPS |
|
| Fixed data transfer rate | Bytes per second |
|
| Burst data transfer rate | Bytes per second |
|
| Size of an IO request when calculating IOPS limits. For more information, see Set the IO request size for IOPS limits. | Bytes |
|
4.3.1. IO request size for IOPS limits 复制链接链接已复制到粘贴板!
The size_iops_sec QoS property defines the size, in bytes, of a standard IO request that the Block Storage service (cinder) uses as a reference when calculating IOPS limits. This property prevents users from circumventing IOPS limits by submitting fewer large IO requests instead of many smaller ones.
When you set size_iops_sec, the Block Storage service calculates the proportional number of standard requests represented by each submitted IO request. For example, when size_iops_sec=4096:
- An 8 KB request is counted as two requests.
- A 6 KB request is counted as one and a half requests.
- Any request less than 4 KB is counted as one request.
The default value of size_iops_sec is 0, which ignores the size of IO requests when applying IOPS limits.