Skip to main content
Keystone

Quality of Service (QoS) in Keystone

Contributors netapp-manini netapp-aruldeepa

Storage quality of service (QoS) is a critical technology that ensures that applications obtain consistent and predictable performance. Without QoS, certain workloads, such as those for booting of multiple systems, may consume most or all of the resources for a period, and affect other workloads. For information about QoS, see Guarantee throughput with QoS overview.

Adaptive QoS

Adaptive QoS (AQoS) is used by Keystone services to dynamically maintain the IOPS/TiB ratio based on the volume size. For information about AQoS policies, see About adaptive QoS.

Keystone provides you with AQoS polices that you can set up once your cluster is in production. You should ensure that all your volumes are associated with the correct AQoS policies that are already created and available in your system.

An ONTAP volume is non-compliant if it does not have an AQoS policy applied. A volume without a QoS policy is the last on the list of priority for the system to provide any available input-output operations. However, if any input-output operations are available, then the volume could consume all available IOs.

Note If you have not applied AQoS policies to your volumes, those volumes will be measured and charged at the highest service level as per your subscription. This may result in unintended burst charges.

Adaptive QoS settings

The Adaptive QoS (AQoS) settings vary with service levels.

Policy name

Extreme

Premium

Performance

Standard

Value

Expected IOPS

6,144

2,048

1,024

256

64

Expected IOPS Allocation

Allocated space

Peak IOPS

12,288

4,096

2,048

512

128

Peak IOPS Allocation

Used space

Block Size

32K

Configuration of adaptive QoS policy group

You can configure adaptive QoS (AQoS) policies to automatically scale a throughput ceiling or floor to volume size. Not all Keystone service levels are aligned with the default ONTAP QoS policies. You can create custom QoS policies for them. For configuring a policy, you should be aware of the following:

  • Policy group name: The name of the AQoS policy group. For example, Keystone_extreme.

  • VServer: The name of the VServer or storage VM (storage virtual machine).

  • Expected IOPS: The minimum number of IOPS, per allocated TiB per volume, that the system attempts to provide when enough system IOPS are available.

  • Peak IOPS: The maximum number of IOPS, per used TiB per volume, that the system allows the volume to reach before it throttles the IOPS through injection of latency.

  • Expected IOPS allocation: This parameter controls whether the expected IOPS available to the volume is based on the allocated or used size of the volume. In Keystone, this is based on the allocated space.

  • Peak IOPS allocation: This parameter controls whether the peak IOPS available to the volume is based on the allocated or used size of the volume. In Keystone, this is based on the used space.

  • Absolute minimum IOPS: The lowest number of expected IOPS that will be applied to a volume if the volume size is very small and would otherwise result in an unacceptable number of IOPS. This value defaults to 1,000 for Extreme, 500 for Premium, and 250 for Performance, and 75 for Standard and Value service levels.

    Note This is not IOPS density (for example, 75 IOPS/TiB), but an absolute minimum number of IOPS.

For information about IO density, see Metrics and definitions used in Keystone Services. For more information about AQoS policy groups, see Use adaptive QoS policy groups.

Settings of adaptive QoS policies

The settings for adaptive QoS (AQoS) policies for each service level are described in the following sections. The minimum and maximum volume sizes for each service level provided here allow for optimal IOPs and latency values for a volume. Creating too many volumes outside of these guidelines may negatively impact performance in those volumes.

Settings for Extreme service level

Settings and commands for the Extreme service level:

  • Sample command:

qos adaptive-policy-group create -policy-group <Keystone_extreme> -vserver <SVM_name> -expected-iops 6144 -peak-iops 12288 -expected-iops-allocation allocated-space -peak-iops-allocation used-space -block-size 32K -absolute-min-iops 1000
  • Minimum volume size: 100GiB, 0.1TiB

  • Maximum volume size: 10TiB

Settings for Premium service level

Settings and commands for the Premium service level:

  • Sample command:

qos adaptive-policy-group create -policy-group <Keystone_premium> -vserver <SVM_name> -expected-iops 2048 -peak-iops 4096 -expected-iops-allocation allocated-space -peak-iops-allocation used-space -block-size 32K -absolute-min-iops 500
  • Minimum volume size: 500GiB, 0.5TiB

  • Maximum volume size: 50TiB

Settings for Performance service level

Settings and commands for the Performance service level:

  • Sample command:

qos adaptive-policy-group create -policy-group <Keystone_performance> -vserver <SVM_name> -expected-iops 1024 -peak-iops 2048 -expected-iops-allocation allocated-space -peak-iops-allocation used-space -block-size 32K -absolute-min-iops 250
  • Minimum volume size: 500GiB, 0.5TiB

  • Maximum volume size: 80TiB

Settings for Standard service level

Settings and commands for the Standard service level:

  • Sample command:

qos adaptive-policy-group create -policy-group <Keystone_standard> -vserver <SVM_name> -expected-iops 256 -peak-iops 512 -expected-iops-allocation allocated-space -peak-iops-allocation used-space -block-size 32K -absolute-min-iops 75
  • Minimum volume size: 1TiB

  • Maximum volume size: 100TiB

Settings for Value service level

Settings and commands for the Value service level:

  • Sample command:

qos adaptive-policy-group create -policy-group <Keystone_value> -vserver <SVM_name> -expected-iops 64 -peak-iops 128 -expected-iops-allocation allocated-space -peak-iops-allocation used-space -block-size 32K -absolute-min-iops 75
  • Minimum volume size: 1TiB

  • Maximum volume size: 100TiB

Block size calculation

Note these points before you calculate the block size by using these settings:

  • IOPS/TiB = MBps/TiB divided by (block size * 1024)

  • Block size is in KB/IO

  • TiB = 1024GiB; GiB = 1024MiB; MiB = 1024KiB; KiB = 1024Bytes; as per base 2

  • TB = 1000GB; GB = 1000MB; MB = 1000KB; KB = 1000Bytes; as per base 10

Sample block size calculation

To calculate the throughput for a service level, for example Extreme service level:

  • Maximum IOPS: 12,288

  • Block size per I/O: 32KB

  • Maximum throughput = (12288 * 32 * 1024) / (1024*1024) = 384MBps/TiB

If a volume has 700GiB of logical used data, the available throughput will be:

Maximum throughput = 384 * 0.7 = 268.8MBps