What is Quality of Service (QoS) in ONTAP?
Applies to
- Clustered Data ONTAP 8.2 and later
- ONTAP 9
Answer
Quality-of-Service is a way to throttle storage objects, but also includes performance monitoring of volumes with the qos statistics commands.
What is a storage object?
- A Vserver with FlexVol volumes
- A FlexVol volumeQoS workload
- A LUN
- A file (typically represents a virtual machine)
- Can include system processes internal to ONTAP, called a System-defined workload
Note: Beginning with ONTAP 9.2, Adaptive QoS was introduced for SAN workloads, and expanded to NAS in ONTAP 9.3. For more information, please reference the Adaptive QoS page.
When is there a need to use QoS?
- Prevent workloads from impacting performance
- Enable critical applications to achieve consistent performance
- Monitors and manages application workloads.
What are the components in a QoS policy?
- Workload: a storage object. Types include:
- User-defined workload. This is a storage object.
- Beginning with Clustered Data ONTAP 8.3, all created FlexVols automatically are assigned a workload ID.
- I/O to storage objects that are not assigned to policy groups belong to the "
User-Default
" workload.
- System-defined workload. Examples include:
_DEDUP
or_Efficiency_Besteffort
: Storage Efficiency, Single Instance Storage (SIS), also called Deduplication. Can include inline storage efficiency._WAFL_SCAN
: WAFL scanners._SNAPMIRROR
: A kind of background workload._Background_Delete
: Background deletions_ocs_vserver
: Copy offload.System-Default
: Anything not covered by a separate workload.
- User-defined workload. This is a storage object.
- QoS policy group: A group of one or more workloads that have a shared throttle limit
- User-defined policy group - Enforces a maximum throughput limit on the storage objects that belong to the policy group by throttling input/output (I/O) requests.
- System-defined policy group - Manages internal work that the cluster performs.
- QoS policy: The maximum IOPs and/or throughput allowed.
What are the rules for assigning storage objects to policy groups?
- Storage objects and policy groups must belong to the same Vserver.
- Specify the Vserver to which the policy group belongs when you create the policy group.
- Multiple policy groups can belong to the same Vserver.
- Multiple storage objects can be put in a single policy group.
- A single storage object can be put in a single policy group.
- A storage object cannot have two different policy groups assigned.
- Nested storage objects cannot belong to policy groups:
If you assign a... | Then you cannot assign... |
Vserver to a policy group | Any storage objects contained by the Vserver to a policy group |
Volume to a policy group | The volume's containing Vserver or any child LUNs or files to a policy group |
LUN to a policy group | The LUN's containing volume or Vserver to a policy group |
File to a policy group | The file's containing volume or Vserver to a policy group |
What is not supported with QoS?
- Aggregates
- Entire nodes
- Load-sharing mirrors
- Node root volumes
- Data ONTAP 7-mode FlexCache volumes
- Note: The 7-mode FlexCache uses a different technology than the ONTAP 9 version. For more information see the FlexCache Techncial Report.
What are the configuration limits in QoS in ONTAP 9?
The following table shows the maximum number of workloads and policy groups by ONTAP 9 version.
Workload Support | 9.3 and earlier | 9.4 and later |
Maximum workloads per cluster | 12,000 | 40,000 |
Maximum workloads per node | 12,000 | 40,000 |
Maximum policy groups | 12,000 | 12,000 |
Additional Information
Example of creating a QoS policy.
Cluster::> qos policy-group create -policy-group vol1-qos -vserver svm0 -max-throughput 50iops,10MB/s -min-throughput 0 Cluster::> vol modify -volume vol1 -qos-policy-group vol1-qos Volume modify successful on volume test_cifs_homedir of Vserver svm0. Cluster::> qos policy-group show Name Vserver Class Wklds Throughput Is Shared ---------------- ----------- ------------ ----- ------------ --------- vol3-qos svm0 user-defined 0 0-3000IOPS,200MB/s true vol1-qos svm0 user-defined 1 0-50IOPS,10MB/s true 2 entries were displayed. Cluster::> vol show -fields volume,qos-policy-group,qos-adaptive-policy-group vserver volume qos-policy-group qos-adaptive-policy-group --------------- ------ ---------------- ------------------------- Cluster-node1 vol0 - - svm0 svm_root - - svm0 vol1 vol1-qos - svm0 vol3 vol3-qos - 3 entries were displayed. Cluster::>