[アップデート] Amazon FSx for NetApp ONTAPがONTAP 9.12.1に対応したことにより300TiBのボリュームを作成できるようになりました
100TiBよりも大きいボリュームを作成したいな
こんにちは、のんピ(@non____97)です。
皆さんはAmazon FSx for NetApp ONTAP(以降FSxN)で100TiBよりも大きいボリュームを作成したいなと思ったことはありますか? 私はあります。
FlexVolumeの場合、1つのボリュームの最大サイズは100TiBでした。これ以上のサイズのボリュームを作成する場合はFlexGroupを使う必要がありました。FlexGroupについては以下記事をご覧ください。
FlexGroupの場合、FSxNのボリュームバックアップに対応していなかったり、SnapMirrorの推奨間隔がFlexVolumeよりも長かったり注意事項がいくつかあります。
そんな折、2023年6月末から徐々にFSxNでONTAP 9.12.1が使えるようになりました。これによりONTAP 9.12.1のアップデートである300TiBのFlexVolumeを作成できるようになりました。
実際に試してみたので紹介します。
いきなりまとめ
- FlexVolumeでも300TiBのボリュームを作成できるようになった
- 128TiBのLUNやファイルも作成可能
- ただし、無闇やたらに単一のボリュームで賄おうとすると辛くなる
- バックアップからのリストアに時間がかかる & リストア時にSSDを圧迫しやすい
- マルチFlexVolumeよりもパフォーマンスが出にくい
- ボリューム単位での設定項目や作業の調整が大変
- 適切なサイズや分類でボリュームを分割しよう
ONTAP 9.12.1のアップデート
FSxNに関係ありそうなONTAP 9.12.1のアップデート内容は以下の通りです。
- Support for larger FlexVol volumes
- Support for larger file and LUN sizes
- Enhanced consistency group functionality
- SnapLock for SnapVault support for FlexGroup volumes
- SnapLock option to set minimum retention time "unspecified" absolute retention time
- Tamperproof Snapshot copies
- System Manager support for SnapLock
- NFS extended attributes
- Disable weak encryption types for Kerberos communication
- S3 client access to NAS data
- Additional support for S3 actions
- Increase in usable aggregate space
- FlexGroup rebalancing
- SnapLock for SnapVault support for FlexGroup volumes
詳細はONTAPのリリースノートをご覧ください。
また、ネットワールドさんの記事も参考になります。
個人的にはSupport for larger file and LUN sizes
とIncrease in usable aggregate space
、FlexGroup rebalancing
も嬉しいです。
Support for larger file and LUN sizes
は元々16TiBまでだったLUNや1ファイルのサイズが128TiBになったというものです。
The maximum file and LUN size supported in SnapMirror Synchronous configurations has increased from 16 TB to 128 TB. Both the source and destination clusters must be running ONTAP 9.12.1 P2 or later.
これによりゲノムデータやVMDKといった大容量のデータファイルが扱いやすくなります。
16TiB以上のファイルを作成する場合は、以下KBにも記載にあるとおりFlexVolumeのis-large-size-enabled
がtrue
になっている必要があります。
Increase in usable aggregate space
はアグリゲートでリザーブド領域が30TB以上の場合10%から5%に減るというものです。
For All Flash FAS (AFF) and the FAS500f platforms, the WAFL reserve for aggregates greater than 30TB is reduced from 10% to 5%, resulting in increased usable space in the aggregate.
AFFとFAS500fが対象のようなのでFSxNが対象かどうかは怪しいところですが、対象の場合最低でも1.5TBは容量を削減することができるためコスト的にかなり嬉しいです。
FlexGroup rebalancing
はFlexGroupのメンバーボリューム間でファイルを無停止で移動させる機能です。特定のメンバーボリュームの偏りを解消することができます。詳細は以下NetApp公式ドキュメントをご覧ください。
やってみた
実際に試してみます。
以下のように20MiBのボリュームを用意しました。
ONTAP CLIからも確認してみます。
# FSxNファイルシステムのONTAPのバージョンがONTAP 9.12.1であることを確認 ::> version NetApp Release 9.12.1P4: Tue Jun 06 20:41:34 UTC 2023 # ボリュームサイズの確認 ::> volume show Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- svm svm_root aggr1 online RW 1GB 972.4MB 0% svm vol1 aggr1 online RW 20MB 18.75MB 1% 2 entries were displayed.
ボリュームサイズを拡張した際にメタデータなどで使用量が変化するか確認したいので、フットプリントやaggregateサイズなども確認しておきます。
::> volume show-footprint -volume vol1 Vserver : svm Volume : vol1 Feature Used Used% -------------------------------- ---------- ----- Volume Data Footprint 252KB 0% Footprint in Performance Tier 376KB 100% Footprint in FSxFabricpoolObjectStore 0B 0% Volume Guarantee 0B 0% Flexible Volume Metadata 208KB 0% Delayed Frees 124KB 0% Total Footprint 584KB 0% ::> aggr show-space Aggregate : aggr1 Performance Tier Feature Used Used% -------------------------------- ---------- ------ Volume Footprints 1.01GB 0% Aggregate Metadata 18.39MB 0% Snapshot Reserve 47.88GB 5% Total Used 48.90GB 5% Total Physical Used 229.8MB 0% Total Provisioned Space 1.02GB 0% Aggregate : aggr1 Object Store: FSxFabricpoolObjectStore Feature Used Used% -------------------------------- ---------- ------ Logical Used 0B - Logical Referenced Capacity 0B - Logical Unreferenced Capacity 0B - Total Physical Used 0B - 2 entries were displayed. ::> vserver show-aggregates Available Vserver Aggregate State Size Type SnapLock Type -------------- -------------- ------- ---------- ------- -------------- svm aggr1 online 908.6GB ssd non-snaplock
NFSクライアントからもマウントしてみましょう。
$ sudo mkdir -p /mnt/fsxn $ sudo mount -t nfs4 svm-082e4c3914fc50e98.fs-0a3fea624cfa58381.fsx.us-east-1.amazonaws.com:/vol1 /mnt/fsxn $ df -hT Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 462M 0 462M 0% /dev tmpfs tmpfs 470M 0 470M 0% /dev/shm tmpfs tmpfs 470M 352K 470M 1% /run tmpfs tmpfs 470M 0 470M 0% /sys/fs/cgroup /dev/nvme0n1p1 xfs 8.0G 1.7G 6.4G 21% / svm-082e4c3914fc50e98.fs-0a3fea624cfa58381.fsx.us-east-1.amazonaws.com:/vol1 nfs4 19M 192K 19M 1% /mnt/fsxn
19MBで認識されました。20MBではないのはSnapshot Reserve分が目減りしているためです。
それでは20MiBのボリュームを300TiBまで拡張させます。
ボリュームサイズに314,572,800
を指定して更新します。
更新後のボリュームサイズを確認すると確かに300TiBになっていました。
ONTAP CLIからも確認します。
::> volume show Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- svm svm_root aggr1 online RW 1GB 972.4MB 0% svm vol1 aggr1 online RW 300TB 908.5GB 0% 2 entries were displayed. ::> volume show-footprint -volume vol1 Vserver : svm Volume : vol1 Feature Used Used% -------------------------------- ---------- ----- Volume Data Footprint 264KB 0% Footprint in Performance Tier 388KB 100% Footprint in FSxFabricpoolObjectStore 0B 0% Volume Guarantee 0B 0% Flexible Volume Metadata 107.7MB 0% Delayed Frees 124KB 0% Total Footprint 108.1MB 0% ::> aggr show-space Aggregate : aggr1 Performance Tier Feature Used Used% -------------------------------- ---------- ------ Volume Footprints 1.12GB 0% Aggregate Metadata 18.95MB 0% Snapshot Reserve 47.88GB 5% Total Used 49.01GB 5% Total Physical Used 238.0MB 0% Total Provisioned Space 300.0TB 32083% Aggregate : aggr1 Object Store: FSxFabricpoolObjectStore Feature Used Used% -------------------------------- ---------- ------ Logical Used 0B - Logical Referenced Capacity 0B - Logical Unreferenced Capacity 0B - Total Physical Used 0B - 2 entries were displayed. ::> vserver show-aggregates Available Vserver Aggregate State Size Type SnapLock Type -------------- -------------- ------- ---------- ------- -------------- svm aggr1 online 908.5GB ssd non-snaplock
Flexible Volume Metadata
が208KBから107.7MBと増えていますね。その分Volume Footprints
も増加しています。
NFSクライアントからも確認してみましょう。
$ df -hT -t nfs4 Filesystem Type Size Used Avail Use% Mounted on svm-082e4c3914fc50e98.fs-0a3fea624cfa58381.fsx.us-east-1.amazonaws.com:/vol1 nfs4 285T 285T 909G 100% /mnt/fsxn
300TiB × (1 - Snapshot Reserve 5%) = 285TiBとして認識されていますね。
128TiBのLUNの作成
ついでにONTAP 9.12.1で128TiBのLUNも作成できるようになったので、試してみます。
# 128TiBのLUNの作成 ::> lun create -path /vol/vol1/lun -size 128TB -ostype linux -space-allocation enabled Created a LUN of size 128t (140737488355328) # 128TiB以上のLUNを作成しようとしてみる ::> lun create -path /vol/vol1/lun -size 129TB -ostype linux -space-allocation enabled Error: command failed: Requested LUN size is too large. Maximum size: 128t (140737488355328) # 128TiBのLUNが作成できたことを確認 ::> lun show Vserver Path State Mapped Type Size --------- ------------------------------- ------- -------- -------- -------- svm /vol/vol1/lun online unmapped linux 128TB ::> lun show -instance Vserver Name: svm LUN Path: /vol/vol1/lun Volume Name: vol1 Qtree Name: "" LUN Name: lun LUN Size: 128TB OS Type: linux Space Reservation: enabled Serial Number: lWB0S?VCDUk- Serial Number (Hex): 6c574230533f564344556b2d Comment: Space Reservations Honored: false Space Allocation: enabled State: online LUN UUID: 3450215e-bda5-4a8e-bf0a-747ce9aaa6dd Mapped: unmapped Physical Size of Logical Block: 512B Device Legacy ID: - Device Binary ID: - Device Text ID: - Read Only: false Fenced Due to Restore: false Used Size: 0 Maximum Resize Size: 128TB Creation Time: 8/20/2023 00:42:54 Class: regular Node Hosting the LUN: FsxId0a3fea624cfa58381-01 QoS Policy Group: - QoS Adaptive Policy Group: - Caching Policy Name: - Clone: false Clone Autodelete Enabled: false Inconsistent Import: false Application: - ZRTO Volume consensus: -
128TiBのLUNは作成できて、129TiBのLUNは作成できませんでした。
128TiBのファイルを作成できるように設定
さらについでに、128TiBのファイルを作成できるように設定してみましょう。
まず、現在のボリュームの設定を確認してみます。
::> volume show -fields is-large-size-enabled vserver volume is-large-size-enabled ------- -------- --------------------- svm svm_root false svm vol1 true 2 entries were displayed.
デフォルトでis-large-size-enabled
はtrue
でした。
面白くないので一度false
にして、再度true
にします。
::> volume modify ? [ -vserver <vserver name> ] Vserver Name (default: svm) [-volume] <volume name> Volume Name [ -size {<integer>[KB|MB|GB|TB|PB]} ] Volume Size [ -state {online|restricted|offline|force-online|force-offline|mixed} ] Volume State [ -policy <text> ] Export Policy [ -user <user name> ] User ID [ -group <group name> ] Group ID [ -security-style <security style> ] Security Style [ -unix-permissions <unix perm> ] UNIX Permissions [ -comment <text (size 0..1023)> ] Comment [ -space-nearly-full-threshold-percent <percent> ] Volume Nearly Full Threshold Percent [ -space-full-threshold-percent <percent> ] Volume Full Threshold Percent { [ -max-autosize {<integer>[KB|MB|GB|TB|PB]} ] Maximum Autosize [ -min-autosize {<integer>[KB|MB|GB|TB|PB]} ] Minimum Autosize [ -autosize-grow-threshold-percent <percent> ] Autosize Grow Threshold Percentage [ -autosize-shrink-threshold-percent <percent> ] Autosize Shrink Threshold Percentage [ -autosize-mode {off|grow|grow_shrink} ] Autosize Mode | [ -autosize-reset [true] ] } Autosize Reset [ -files <integer> ] Total Files (for user-visible data) { [ -space-slo {none|thick|semi-thick} ] Space SLO | [ -space-guarantee|-s {none|volume} ] Space Guarantee Style [ -fractional-reserve <percent> ] Fractional Reserve [ -snapdir-access {true|false} ] Snapshot Directory Access Enabled [ -percent-snapshot-space <percent> ] Space Reserved for Snapshot Copies [ -snapshot-policy <snapshot policy> ] Snapshot Policy [ -language <language_code> ] Language [ -foreground {true|false} ] Foreground Process [ -nvfail {on|off} ] NVFAIL Option [ -dr-force-nvfail {on|off} ] Force NVFAIL on MetroCluster Switchover [ -filesys-size-fixed {true|false} ] Is File System Size Fixed [ -extent-enabled {off|on|space-optimized} ] (DEPRECATED)-Extent Option [ -space-mgmt-try-first {volume_grow|snap_delete} ] Primary Space Management Strategy [ -read-realloc {off|on|space-optimized} ] Read Reallocation Option [ -sched-snap-name {create-time|ordinal} ] Naming Scheme for Automatic Snapshot Copies { [ -qos-policy-group <text> ] QoS Policy Group Name | [ -qos-adaptive-policy-group <text> ] } QoS Adaptive Policy Group Name [ -caching-policy <text> ] Caching Policy Name [ -vserver-dr-protection {protected|unprotected} ] Vserver DR Protection [ -is-space-reporting-logical {true|false} ] Logical Space Reporting [ -is-space-enforcement-logical {true|false} ] Logical Space Enforcement [ -tiering-policy <Tiering Policy> ] Volume Tiering Policy [ -tiering-object-tags <text>, ... ] Tags to be Associated with Objects Stored on a FabricPool [ -anti-ransomware-state {disabled|enabled|dry-run|paused|dry-run-paused|enable-paused|disable-in-progress} ] Anti-ransomware State [ -granular-data {disabled|enabled} ] Granular data [ -snapshot-locking-enabled {true|false} ] Enable Snapshot Copy Locking [ -is-large-size-enabled {true|false} ] Are Large Size Volumes and Files Enabled ::> volume modify -volume vol1 -is-large-size-enabled false Error: command failed: Disabling large volume size is not supported because the volume contains files larger than 16TB or the volume size is larger than 100TB.
ボリュームサイズが100TB以上であるため無効にできないと怒られました。
ということであるなら、一度100TiB未満に変更してfalse
できるか確認します。
# LUNの削除 ::> lun delete -path /vol/vol1/lun Warning: LUN "/vol/vol1/lun" in Vserver "svm" is not mapped, but it might still contain data. Are you sure you want to delete it? {y|n}: y # LUNが削除されたことを確認 ::> lun show This table is currently empty. # ボリュームサイズを99TBに変更 ::> volume modify -volume vol1 -size 99TB Volume modify successful on volume vol1 of Vserver svm. # is-large-size-enabled を false に変更 ::> volume modify -volume vol1 -is-large-size-enabled false Error: command failed: Disabling large volume size is not supported because the volume contains files larger than 16TB or the volume size is larger than 100TB.
100TB未満かつ16TB以上のファイルは存在しないはずですが、エラーになりました。
しょうがないので、新しくボリュームを作成してis-large-size-enabled
をtrue
にします。
# ボリュームの作成 ::> volume create -volume vol2 -aggregate aggr1 -size 100GB -state online -policy default -tiering-policy none [Job 50] Job succeeded: Successful # ボリュームが作成されたことを確認 ::> volume show Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- svm svm_root aggr1 online RW 1GB 972.1MB 0% svm vol1 aggr1 online RW 300TB 908.3GB 0% svm vol2 aggr1 online RW 100GB 95.00GB 0% 3 entries were displayed. # is-large-size-enabled の確認 ::> volume show -fields is-large-size-enabled vserver volume is-large-size-enabled ------- -------- --------------------- svm svm_root false svm vol1 true svm vol2 false 3 entries were displayed. # 作成したボリュームの is-large-size-enabled を true に変更 ::> volume modify -volume vol2 -is-large-size-enabled true Warning: Either the specified volume size or maximum autosize is larger than 100 TB or you are setting is-large-size-enabled flag to true. This will result in the volume supporting larger size limits. The new limit on the size of the volume will be 300TB. The limit on the size of a file or LUN will be 128TB. If this volume will become the source of a SnapMirror relationship, creation of SnapMirror or FlexCache relationships is only supported with volumes that reside in clusters with an effective cluster version of 9.12.1 or later, because of incompatible size limits. Revert of the cluster to an earlier version is not supported when a volume supports larger size limits. All volumes must be 100 TB or less, have all files be 16TB or less, and have larger size limit support disabled prior to revert. Do you want to continue? {y|n}: y Volume modify successful on volume vol2 of Vserver svm. # 作成したボリュームの is-large-size-enabled を true に変更されたことを確認 ::> volume show -fields is-large-size-enabled vserver volume is-large-size-enabled ------- -------- --------------------- svm svm_root false svm vol1 true svm vol2 true 3 entries were displayed.
デフォルトではis-large-size-enabled
はfalse
のようですね。
is-large-size-enabled
をtrue
にすることができました。
また、Either the specified volume size or maximum autosize is larger than 100 TB or you are setting is-large-size-enabled flag to true.
というメッセージから自動拡張の最大ボリュームサイズが100TBより大きい場合にも自動でis-large-size-enabled
がtrue
になりそうです。
実際に試してみましょう。
# ボリュームの is-large-size-enabled を false に変更 ::> volume modify -volume vol2 -is-large-size-enabled false Volume modify successful on volume vol2 of Vserver svm. # ボリュームの is-large-size-enabled を false に変更されたことを確認 ::> volume show -volume vol2 -fields is-large-size-enabled vserver volume is-large-size-enabled ------- ------ --------------------- svm vol2 false # 現在のボリュームの自動拡張の最大サイズを確認 ::> volume show -volume vol2 -fields max-autosize vserver volume max-autosize ------- ------ ------------ svm vol2 120GB # 自動拡張の最大サイズを100TBに設定 ::> volume autosize -volume vol2 -maximum-size 100TB vol autosize: Volume "svm:vol2" autosize settings updated. # 自動拡張の最大サイズを100TBに設定されたことを確認 ::> volume show -volume vol2 -fields max-autosize vserver volume max-autosize ------- ------ ------------ svm vol2 100TB # ボリュームの is-large-size-enabled の確認 ::> volume show -volume vol2 -fields is-large-size-enabled vserver volume is-large-size-enabled ------- ------ --------------------- svm vol2 false # 自動拡張の最大サイズを101TBに設定 ::> volume autosize -volume vol2 -maximum-size 101TB Warning: Either the specified volume size or maximum autosize is larger than 100 TB or you are setting is-large-size-enabled flag to true. This will result in the volume supporting larger size limits. The new limit on the size of the volume will be 300TB. The limit on the size of a file or LUN will be 128TB. If this volume will become the source of a SnapMirror relationship, creation of SnapMirror or FlexCache relationships is only supported with volumes that reside in clusters with an effective cluster version of 9.12.1 or later, because of incompatible size limits. Revert of the cluster to an earlier version is not supported when a volume supports larger size limits. All volumes must be 100 TB or less, have all files be 16TB or less, and have larger size limit support disabled prior to revert. Do you want to continue? {y|n}: y vol autosize: Volume "svm:vol2" autosize settings updated. # ボリュームの is-large-size-enabled の確認 ::> volume show -volume vol2 -fields is-large-size-enabled vserver volume is-large-size-enabled ------- ------ --------------------- svm vol2 true
最大ボリュームサイズが100TB超の場合にis-large-size-enabled
がtrue
になることを確認できました。
便利だけどあまりにも大きいFlexVolumeの利用は注意しよう
Amazon FSx for NetApp ONTAPがONTAP 9.12.1に対応したことにより300TiBのボリュームを作成できるようになったアップデートを紹介しました。
100TiB超の単一領域を見せたい場合に、FlexGroupを使わずにFlexVolumeを使えるようになりました。
ただし、無闇やたらに単一のボリュームで賄おうとすると辛くなります。個人的に単一ボリュームで対応するのをオススメしない理由は以下3点です
- バックアップからのリストアに時間がかかる & リストア時にSSDを圧迫しやすい
- マルチFlexVolumeよりもパフォーマンスが出にくい
- ボリューム単位での設定項目や作業の調整が大変
どうしても巨大なボリュームとなるとリストアにも時間がかかります。ある程度のまとまりでボリュームを分割すれば、リストアが完了したボリュームから使用することが可能です。また、FSxNのバックアップからリストアする場合必ずSSDに書き込まれます。加えて、SnapMirrorと異なりQoSをかけることもできません。そのため、どうしてもリストア時にSSDを圧迫しやすいです。
2つ目の理由は先述のFlexGroupの記事内でも記載していますが、FlexVolumeはシリアル処理です。そのため、複数のFlexVolumeに分散させた方がパフォーマンスが出やすいです。こちらはNetAppの方がQiitaに投稿されているので併せてご覧ください。
1つのボリュームとなると影響範囲が大きくなることも見逃せません。例えば、複数業務や部署のデータを1つのボリュームで管理している場合、ボリューム単位で設定するパラメーターは全て同じである必要がありますし、Snapshotからボリュームごとリストアしたい場合は調整が大変です。適度なサイズで分割することをお勧めします。
また、300TiBのボリュームを用意する場合、重複排除やアクセス頻度にもよりますが、Tiering PolicyをAllにしても1TiB以上のSSDのプロビジョニングは必要かと思います。SSDのサイジングは以下記事をご覧ください。
この記事が誰かの助けになれば幸いです。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!