はじめに
こんにちは!新型iPhoneの無印/Air/Proどれを購入しようかとても迷っているSA課の阿部です。
今回はAmazon FSx for NetApp ONTAP(以下FSx ONTAP)での容量制限機能について、実際に検証した内容を記載していきたいと思います。
FSx ONTAPの容量制限機能
たとえば、FSx ONTAP上でディレクトリごとに容量制限をしたい場合、という要件があった場合、それは「qtree」という機能を 利用することで実現可能できます。
「qtree」とは、FSx ONTAP 上に作成できる特別なディレクトリで、あらかじめ設定した容量制限ルールをそのディレクトリに適用することで、柔軟に容量制御を行うことができます。
以下、NetApp社のナレッジベース(KB)もご参照ください。
やってみた
今回は検証環境に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コマンドを実行すると、ディレクトリが作成されます。

デフォルトクォータルール設定
今回は検証なので、既設のデフォルトクォータに対して設定をします。 「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のファイルを書き込みます。

この状態でクォータを設定します。
::> 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の機能についてまとめてみました。
この記事がどなたかのお役に立てれば幸いです。
阿部伊織(執筆記事の一覧)
インフラエンジニアからクラウドエンジニアへ転職。