Amazon FSx for NetApp ONTAPの容量制限機能「qtree」を試してみた

記事タイトルとURLをコピーする

はじめに

こんにちは!新型iPhoneの無印/Air/Proどれを購入しようかとても迷っているSA課の阿部です。

今回はAmazon FSx for NetApp ONTAP(以下FSx ONTAP)での容量制限機能について、実際に検証した内容を記載していきたいと思います。

FSx ONTAPの容量制限機能

たとえば、FSx ONTAP上でディレクトリごとに容量制限をしたい場合、という要件があった場合、それは「qtree」という機能を 利用することで実現可能できます。

「qtree」とは、FSx ONTAP 上に作成できる特別なディレクトリで、あらかじめ設定した容量制限ルールをそのディレクトリに適用することで、柔軟に容量制御を行うことができます。

以下、NetApp社のナレッジベース(KB)もご参照ください。

kb-ja.netapp.com

やってみた

今回は検証環境にfsx-mid4という名前のStorage Virtual Machine(SVM)をデプロイして検証していきます。
(SVM名が中途半端なのは、何回もSVMを作り直していたからです)

検証構成

qtree作成

今回は容量制限の需要がありそうな、ユーザープロファイルを想定し、user1~user3のqtree(ディレクトリ)を作成します。

::>volume qtree create -vserver fsx-mid4 -qtree-path /vol/vol1/user1
::>volume qtree create -vserver fsx-mid4 -qtree-path /vol/vol1/user2
::>volume qtree create -vserver fsx-mid4 -qtree-path /vol/vol1/user3

qtree createコマンドを実行すると、ディレクトリが作成されます。

qtree createコマンド実行後は、自動的にディレクトリが作成される

デフォルトクォータルール設定

今回は検証なので、既設のデフォルトクォータに対して設定をします。 「user1とuser2は500MB、user3は1GBまで」というクォータルールでやってみます。

::>volume quota policy rule create -vserver fsx-mid4 -policy-name default -volume vol1 -type tree -target user1 -disk-limit 500MB
::>volume quota policy rule create -vserver fsx-mid4 -policy-name default -volume vol1 -type tree -target user2 -disk-limit 500MB
::>volume quota policy rule create -vserver fsx-mid4 -policy-name default -volume vol1 -type tree -target user3 -disk-limit 1GB

ルール確認

ルールが設定できていることを確認します。

::>volume quota policy rule show -vserver fsx-mid4 -volume vol1

Vserver: fsx-mid4          Policy: default           Volume: vol1

                                               Soft             Soft
                         User         Disk     Disk   Files    Files
Type   Target    Qtree   Mapping     Limit    Limit   Limit    Limit  Threshold
-----  --------  ------- -------  --------  -------  ------  -------  ---------
tree   user1     ""      -           500MB        -       -        -          -
tree   user2     ""      -           500MB        -       -        -          -
tree   user3     ""      -             1GB        -       -        -          -
3 entries were displayed.

qtree有効化

qtreeの設定後は一度クォータを再適用します。

::>volume quota on -vserver fsx-mid4 -volume vol1
[Job 46] Job is queued: "quota on" performed for quota policy "default" on volume "vol1" in Vserver "fsx-mid4".
::>volume quota resize -vserver fsx-mid4 -volume vol1
[Job 47] Job is queued: "quota resize" performed for quota policy "default" on volume "vol1" in Vserver "fsx-mid4".

容量制限の確認

試しにuser2とuser3のディレクトリ内に1MBのダミーデータを書き込んでみます。

ダミーデータの書き込み

この状態でqtreeの状態を確認すると

::> volume quota report -vserver fsx-mid4 -volume vol1
Vserver: fsx-mid4

                                    ----Disk----  ----Files-----   Quota
Volume   Tree      Type    ID        Used  Limit    Used   Limit   Specifier
-------  --------  ------  -------  -----  -----  ------  ------   ---------
vol1     user1     tree    1           0B  500MB       1       -   user1
vol1     user2     tree    2
                                   1.04MB  500MB       2       -   user2
vol1     user3     tree    3
                                   1.04MB    1GB       2       -   user3
3 entries were displayed.

書き込んだ分が反映されています。

ちなみに、容量制限が500MBのuser2に対し、1GBを超えるダミーファイルを書き込もうとすると、エラーで弾かれます。

制限した容量より大きいデータを書き込もうとするとエラーとなる

既にデータが格納されているqtreeに対して、容量を超過したクォータを設定してみる

user3ディレクトリに1GBのファイルを書き込みます。

user3ディレクトリに1GBのデータを書き込む

この状態でクォータを設定します。

::> volume quota policy rule create -vserver fsx-mid4 -policy-name default -volume vol1 -type tree -target user3 -disk-limit 1GB

レポートを確認すると

::> volume quota report -vserver fsx-mid4 -volume vol1
Vserver: fsx-mid4

                                    ----Disk----  ----Files-----   Quota
Volume   Tree      Type    ID        Used  Limit    Used   Limit   Specifier
-------  --------  ------  -------  -----  -----  ------  ------   ---------
vol1     user1     tree    1           0B  500MB       1       -   user1
vol1     user2     tree    2           0B  500MB       1       -   user2
vol1     user3     tree    3
                                   1.00GB    1GB       2       -   user3
3 entries were displayed.

すでに1GB使われていると認識されているようです。 さらに1MBのファイルを書き込もうとすると、エラーで弾かれました。

クォータ設定後に制限を超過したファイルを書き込むとエラーとなる

設定した容量制限を変更したい時

例えば、user3に設定済みの1GB制限を2GB制限に変更したい場合

::> volume quota policy rule modify -vserver fsx-mid4 -policy-name default -volume vol1 -type tree -target user3 -disk-limit 2GB

上記コマンドで変更した後に、リサイズコマンドをかけます。

::> volume quota resize -vserver fsx-mid4 -volume vol1 -foreground
[Job 56] Job succeeded: Successful

この状態で再度レポートを確認すると

::> volume quota report -vserver fsx-mid4 -volume vol1
Vserver: fsx-mid4

                                    ----Disk----  ----Files-----   Quota
Volume   Tree      Type    ID        Used  Limit    Used   Limit   Specifier
-------  --------  ------  -------  -----  -----  ------  ------   ---------
vol1     user1     tree    1           0B  500MB       1       -   user1
vol1     user2     tree    2           0B  500MB       1       -   user2
vol1     user3     tree    3
                                   1.00GB    2GB       2       -   user3
3 entries were displayed.

変更後の制限値で反映されていますね。 先ほど、書き込めなかったファイルを再度試したところ、書き込めるようになっていました。

クォータを無効化したい時

以下のコマンドでクォータを無効化できます。

::> volume quota off -vserver fsx-mid4 -volume vol1

特定のクォータルールのみ削除したい時

以下は、user2のクォータルールを指定して削除する場合のコマンド例です。

# 特定のルール削除
::> volume quota policy rule delete -vserver fsx-mid4 -policy-name default -volume vol1 -type tree -target user2
# リサイズで設定反映
::>volume quota resize -vserver fsx-mid4 -volume vol1
[Job 47] Job is queued: "quota resize" performed for quota policy "default" on volume "vol1" in Vserver "fsx-mid4".

おわりに

今回は、FSx for NetApp ONTAPのqtreeの機能についてまとめてみました。
この記事がどなたかのお役に立てれば幸いです。

阿部伊織(執筆記事の一覧)

インフラエンジニアからクラウドエンジニアへ転職。