0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ONTAP管理操作】QoSのNest機能やBurst調整について

0
Last updated at Posted at 2026-09-30

はじめに

ONTAPにおけるQuality of Service(QoS)とは、特定アプリケーションによる過剰なリソース占有(いわゆるNoisy Neighbor問題)を防ぎ、サービスレベル合意(SLA)を保護する制御機構として動作する機能となってます。

従来のアーキテクチャでは、QoSはSVM、FlexVol、LUN、個別ファイルのいずれか単一のオブジェクトにのみ排他的に割り当てる仕様でしたが、ONTAP 9.18.1 で Nested QoS(階層型 QoS)が導入され、ONTAP 9.19.1 では従来固定だった短時間Burst値の挙動を管理者が調整できるようになっています。

本記事では、上記のNested QoSとBurst値の調整について記載いたします。

013.png

何をしたい?できる?

  • SVMとVolumeの両方にQoSを設定する
  • QoSのBurst値を調整する

Nested QoSについて

マニュアルに記載があるように、全オブジェクトへの設定がサポートされているのでは無く、以下の構成についてサポートされます。
(2026/9の段階ではLUNやFileはサポートされていない)

  • SVMとFlexVolume or FlexGroup
  • FlexVolume or FlexGroupとQtree

Nested QoSを利用することで、SVMで最大10000 IOPSを設定し、各Volumeの設定値の合計を20000 IOPSとなるようなパフォーマンスのオーバーコミットを設定しつつ、SVMに設定した最大値を超えさせないような設定が可能です。
もちろん、物理Nodeの最大値を超えることはできません。

qiita-square

Burst値の調整について

以前までは、上限を1秒間だけ50%引き上げるといった挙動となっていたのを
ONTAP9.19.1から割合や時間を調整できるようになってます。
調整できる項目は以下の通りです。

  • burst-percent :増加率(%)
  • burst duration:増加時間(秒)
  • burst-iops :スループット上限を超える最大IOP数

Burst値を変更できるから設定というよりは、今までの1秒間だけ50%引き上げをbaselineとし、ワークロードに合わせて調整しながら割合や時間を延ばすといった使い方になるかと思います。

qiita-square

調整時の初回設定例

ワークロード 調整値 備考
低Latency向けのシステム用 10–25%の増加 / 1–2秒 隣接への影響は小さくする
DB startup 25–50%の増加 / 1–5秒 初期化時間を改善
VM boot / VDI login 25–50%の増加 / 1–5秒 一時的 spike を吸収

また、Nested QoSと組み合わせることで「tenant(SVM)全体の性能予算」「volume毎の上限(ガードレール)」「未使用 Headroom の短時間活用」を柔軟に設計できるようになります。

記事における環境情報

本記事では、以下の環境で実施した内容となります。

  • ONTAP: 9.19.1

環境のイメージとしては以下の通りです。

qiita-square

設定手順

1. Nest QoSの設定

1-1. QoS Policy Groupの作成

SVMへ設定するQoSについては、Shareが無効なPolicyを設定しようとするとエラーとなるので、Shareが有効なPolicyの作成を実行します。

# SVM用
> qos policy-group create -vserver nfs500 -policy-group qos_svm -is-shared true -max-throughput 80mb/s

# vol1用
>  qos policy-group create -vserver nfs500 -policy-group qos_vol1 -is-shared false -max-throughput 60mb/s -min-throughput 30mb/s

# vol2用
> qos policy-group create -vserver nfs500 -policy-group qos_vol2 -is-shared false -max-throughput 50mb/s -min-throughput 25mb/s


# 設定値の確認
> qos policy-group show -vserver nfs500 -policy-group qos_* -fields max-throughput,min-throughput
policy-group max-throughput min-throughput
------------ -------------- --------------
qos_svm      80MB/s         0
qos_vol1     60MB/s         30MB/s
qos_vol2     50MB/s         25MB/s
3 entries were displayed.

1-2. QoS Policyの割り当て

# SVM用
> vserver modify -vserver nfs500 -qos-policy-group qos_svm

# vol1用
>  volume modify -vserver nfs500 -volume vol1 -qos-policy-group qos_vol1
Volume modify successful on volume vol1 of Vserver nfs500.

# vol2用
> volume modify -vserver nfs500 -volume vol2 -qos-policy-group qos_vol2
Volume modify successful on volume vol2 of Vserver nfs500.



# SVMへのQoS割り当て確認
> vserver show -vserver nfs500 -fields qos-policy-group
vserver qos-policy-group
------- ----------------
nfs500  qos_svm

# VolumeへのQoS割り当て確認
> volume  show -vserver nfs500 -volume vol* -fields qos-policy-group
vserver volume qos-policy-group
------- ------ ----------------
nfs500  vol1   qos_vol1
nfs500  vol2   qos_vol2
2 entries were displayed.

1-3. ClientからI/Oを掛けて挙動の確認

Linuxからmountされている状態を確認し、fioで負荷を掛けます。

# dfの確認
> df -h 
ファイルシス                サイズ  使用  残り  使用% マウント位置
/dev/mapper/almalinux-root   190G   43G  148G   23% /
<中略>
172.16.21.140:/vol1          9.5G  7.2G  2.4G   76% /vol1
172.16.21.140:/vol2          9.5G  6.4G  3.2G   67% /vol2

# Linuxから実行
> fio --name=/vol1/random-write-test --ioengine=libaio --rw=randrw --bs=16k --size=1G --numjobs=4 --time_based --runtime=180s --group_reporting

vol1だけに負荷を掛けているので、total行とvolume行に約60MB/sの値が表示されているのが確認できます。

> qos statistics volume characteristics show -vserver nfs500 -volume vol1
Workload            ID     IOPS       Throughput Request Size Read Concurrency
--------------- ------ -------- ---------------- ------------ ---- -----------
-total-              -        0            0KB/s           0B   0%           0
-total-              -     3279        51.09MB/s       16339B  99%           0
vol1-wid62675    62675     3279        51.09MB/s       16339B  99%           0
-total-              -     4459        69.68MB/s       16384B 100%           1
vol1-wid62675    62675     4459        69.68MB/s       16384B 100%           1
-total-              -     3830        59.84MB/s       16384B 100%           1
vol1-wid62675    62675     3830        59.84MB/s       16384B 100%           1
-total-              -     3839        59.98MB/s       16384B 100%           3
vol1-wid62675    62675     3839        59.98MB/s       16384B 100%           3
-total-              -     3866        60.41MB/s       16384B 100%           1
vol1-wid62675    62675     3866        60.41MB/s       16384B 100%           1
-total-              -     3706        59.78MB/s       16914B  77%           3
vol1-wid62675    62675     3706        59.78MB/s       16914B  77%           3
-total-              -     3417        60.11MB/s       18443B   1%           8
vol1-wid62675    62675     3417        60.11MB/s       18443B   1%           8

上記のvol1へ負荷が掛かっている状態でvol2にも負荷を掛けるとSVMへ設定したQoS値がガードレールとなり、total(SVM)としては約80MB/secで頭打ちになります。
vol1はvol2にも負荷が掛かっている為、vol1としては60MB/s以下で動作する点が確認できます。(vol1とvol2で合計80MB/sの負荷となった状態)
なお、1秒だけ高い値が出ているのはデフォルトBurst値の影響となります。

> qos statistics volume characteristics show -vserver nfs500 -volume vol1
Workload            ID     IOPS       Throughput Request Size Read Concurrency
--------------- ------ -------- ---------------- ------------ ---- -----------
-total-              -        9            0KB/s           0B   0%           0
vol1-wid62675    62675        9            0KB/s           0B   0%           0
-total-              -     4750        74.22MB/s       16384B 100%           1
vol1-wid62675    62675     4750        74.22MB/s       16384B 100%           1
-total-              -     3951        61.73MB/s       16384B 100%           1
vol1-wid62675    62675     3951        61.73MB/s       16384B 100%           1
-total-              -     3854        60.22MB/s       16384B 100%           3
vol1-wid62675    62675     3854        60.22MB/s       16384B 100%           3
-total-              -     3846        60.09MB/s       16384B 100%           1
vol1-wid62675    62675     3846        60.09MB/s       16384B 100%           1
-total-              -     4654        72.59MB/s       16352B  99%           3
vol1-wid62675    62675     3688        57.63MB/s       16384B 100%           2
-total-              -     6091        95.19MB/s       16386B 100%           3
vol1-wid62675    62675     3059        47.81MB/s       16389B 100%           1
-total-              -     5104        79.73MB/s       16380B 100%           6
vol1-wid62675    62675     2557        39.94MB/s       16377B 100%           3
-total-              -     5137        80.27MB/s       16384B 100%           3
vol1-wid62675    62675     2556        39.94MB/s       16384B 100%           1
-total-              -     5103        79.73MB/s       16384B 100%           6
vol1-wid62675    62675     2575        40.23MB/s       16384B 100%           3

3. QoSへのBurst値の設定

3-1. QoS Policy Groupの編集

本記事では既にQoS Policy Groupを作成済なので、以下の内容でmodifyを実施します。

  • burst-percentを50%
  • burst-durationを10秒
# vol1用
> qos policy-group modify  -policy-group qos_vol1 -max-throughput 50mb/s -burst-percent 50 -burst-duration 10


# 設定値の確認
> qos policy-group show -vserver nfs500 -policy-group qos_vol1 -instance

              Policy Group Name: qos_vol1
                        Vserver: nfs500
                           Uuid: 4faa03e4-bbd8-11f1-ba79-d039ead56cfd
             Policy Group Class: user-defined
                Policy Group ID: 7341
             Maximum Throughput: 50MB/s
             Minimum Throughput: 30MB/s
            Number of Workloads: 1
              Throughput Policy: 30MB/s-50MB/s
                      Is Shared: false
       Is Policy Auto Generated: -
       Throughput burst percent: 50
  Throughput burst IOPS Maximum: -
Throughput burst duration (sec): 10

3-2. クライアントから負荷を掛けて確認

# Linuxから実行
> fio --name=/vol1/random-write-test --ioengine=libaio --rw=randrw --bs=16k --size=1G --numjobs=4 --time_based --runtime=180s --group_reporting

本来は突発的に高負荷が発生する為の対策として利用されますが、
ツールの都合上、負荷を掛けた際に冒頭の10秒間はMaximum Throughputの50MB/sを超える負荷が掛かっている事を確認します。

# ONTAPから負荷確認
> qos statistics volume characteristics show -vserver nfs500 -volume vol1
Workload            ID     IOPS       Throughput Request Size Read Concurrency
--------------- ------ -------- ---------------- ------------ ---- -----------
-total-              -        0            0KB/s           0B   0%           0
-total-              -     2071        32.14MB/s       16273B  99%           0
vol1-wid62675    62675     2071        32.14MB/s       16273B  99%           0
-total-              -     4456        69.62MB/s       16384B 100%           1
vol1-wid62675    62675     4456        69.62MB/s       16384B 100%           1
-total-              -     4493        70.20MB/s       16384B 100%           1
vol1-wid62675    62675     4493        70.20MB/s       16384B 100%           1
-total-              -     4493        70.20MB/s       16384B 100%           1
vol1-wid62675    62675     4493        70.20MB/s       16384B 100%           1
-total-              -     4441        69.39MB/s       16384B 100%           3
vol1-wid62675    62675     4441        69.39MB/s       16384B 100%           3
-total-              -     4519        70.61MB/s       16384B 100%           1
vol1-wid62675    62675     4519        70.61MB/s       16384B 100%           1
-total-              -     3835        69.42MB/s       18981B   1%           9
vol1-wid62675    62675     3835        69.42MB/s       18981B   1%           9
-total-              -     4165        70.45MB/s       17737B  41%           7
vol1-wid62675    62675     4165        70.45MB/s       17737B  41%           7
-total-              -     4454        69.59MB/s       16384B 100%           1
vol1-wid62675    62675     4454        69.59MB/s       16384B 100%           1
-total-              -     4486        70.09MB/s       16384B 100%           1
vol1-wid62675    62675     4486        70.09MB/s       16384B 100%           1
-total-              -     3952        61.75MB/s       16384B 100%           3
vol1-wid62675    62675     3952        61.75MB/s       16384B 100%           3
-total-              -     2692        50.08MB/s       19505B  15%           6
vol1-wid62675    62675     2692        50.08MB/s       19505B  15%           6
-total-              -     2556        50.10MB/s       20548B   1%           8
vol1-wid62675    62675     2556        50.10MB/s       20548B   1%           8
-total-              -     2982        49.83MB/s       17521B  67%           3
vol1-wid62675    62675     2982        49.83MB/s       17521B  67%           3

参考及びリンク

Learn about ONTAP QoS throughput guarantee

QoS policy group assignment restrictions

Set a throughput ceiling with ONTAP QoS policy groups

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?