HP 3PAR StoreServ Concepts Guide: HP 3PAR OS 3.1.3
If the current limit for IOPS or bandwidth for a particular VVset has been reached, HP 3PAR Priority
Optimization delays SCSI I/O request responses for the volumes contained in that VVset. These
delayed I/O requests are pushed onto an outstanding I/O queue for the VV(s) in the VVset
experiencing the limit breach.
Every QoS rule maintains its own queue for delayed I/Os. These queues are constructed inside
each HP 3PAR StoreServ controller node that receives an I/O request that needs to be delayed.
Only the I/O request descriptions are queued, not the actual data. A controller node’s cache is
not impacted, because the QoS rules are applied before write I/O data reaches the cache.
The size of a request queue varies by rule priority, maximum delay time and QoS limits. When
I/O requests reside longer than 100 ms, 200 ms, or 400 ms for low, normal, or high priority rules
in a QoS queue, or 1 sec, 2 sec, or 3 sec of I/O based on low, normal, or high priority is in the
QoS queue, any more incoming I/Os to the volumes in the VVset are rejected, and a QFULL
response is returned to the server using the volumes. QFULL prevents delayed I/O from holding all
system resources, such as host, HBA, and VV layer buffers and queues. Hosts should respond to
the QFULL message appropriately and throttle I/O. The I/O delay and the eventual QFULL response
applies to all members of the VVset, even if only one of the VVs causes the QoS threshold breach.
HP 3PAR Priority Optimization features a system-wide, built-in QoS rule called all_others that
is inactive by default. This rule limits the IOPS and/or bandwidth to all volumes and VVsets that
are not subject to a named rule. Enabling the all_others rule obviates the need to define a
specific, named rule for all workloads on the storage system.
QoS Rule Minimum and Maximum
HP 3PAR Priority Optimization sets the values for IOPS and bandwidth in QoS rules in absolute
numbers, not in percentages. The IOPS number is stated as an integer between 0 and 2
31
-1,
although a more realistic upper limit is the number of IOPS that the particular array in question is
capable of providing, given its configuration. The value for bandwidth is stated as an integer
between 0 and 2
63
-1, expressed in KB/second, although a more realistic upper limit is the
throughput in KB/second that the particular array in question is capable of providing, given its
configuration.
NOTE: Throughput, also called bandwidth, is a measure of the amount of data processed by the
array per unit of time. It is usually measured in MB/second.
QoS rules support specifying an IOPS upper limit and/or a lower limit. The iteration towards a
new IOPS or bandwidth setting follows a damped exponential curve and is completed in a few
seconds. During operation, HP 3PAR Priority Optimization samples the IOPS and bandwidth values
per VVset every 8 ms, and assembles 625 of these periods into a moving 5 second averaged
window to adjust the ingress of the I/O to the QoS cap that was set.
QoS Rule Actions
QoS rules are subject to five distinct actions:
Create A QoS rule is created.
Enable A disabled QoS rule is made active.
Disable An active QoS rule is made inactive.
Change The limit values for a QoS rule are modified.
Clear The QoS rule is removed from the system.
A QoS rule that is created becomes active immediately. This default behavior can be overridden
when using the HP 3PAR CLI to create the rule; the HP 3PAR MC does not offer that option.
Changing one or both limit values in a QoS rule activates those values instantly on the VVset; there
is no need to disable the QoS rule first. An active QoS rule can be removed without first disabling
it.
62 Enhanced Storage Applications