[Amazon FSx for NetApp ONTAP] FlexGroupで100TB以上のボリュームを作成してみた
100TB以上のボリュームを作成したいな
こんにちは、のんピ(@non____97)です。
皆さんはAmazon FSx for NetApp ONTAP(以降FSx for ONTAP)で100TBのボリュームを作成したいなと思ったことはありますか? 私はあります。
ONTAP 9.11.1では一般的なボリュームであるFlexVolumeの最大サイズは100TBです。
これは階層化ポリシーを使ってキャパシティプールストレージを使うようにしても100TBの制限を超えることはできません。
このように1ボリュームで100TBより大きい領域を見せる必要がある場合はFlexGroupを使用することになります。
FlexGroupを使えば最大20PB、4,000億ファイルを1つのボリュームとして見せることが可能です。
しかし、いくつか注意点もあります。
以降FlexGroupについて紹介します。
いきなりまとめ
- FlexGroupとは1つのボリュームで大きな空間を扱うためのONTAPの機能
- 最大20PB、4,000億ファイルを1つのボリュームとして見せることが可能
- FlexGroupではメンバーボリュームやコンスティチュエントボリュームと呼ばれる複数のボリュームを束ねて1つのボリュームに見せる
- FlexVolumeはシリアル処理だが、内部的に複数のFlexVolumeを使用しているためパラレルで処理が可能
- メンバーボリュームのサイズは「FlexGroupのサイズ / メンバーボリューム数」
- FlexGroupの拡大・縮小は可能
- FlexGroup作成後にメンバーボリュームを追加することも可能
Inline Compression
とCompression
を有効化されたFlexGroupにはメンバーボリュームは追加できない- 追加したメンバーボリュームの
Storage Efficiency Mode
を直接efficient
にすることはできない = TSSE を有効化できない Application IO Size
をauto
にすることでStorage Efficiency Mode
をefficient
にすることが可能
- メンバーボリューム追加前に取得されたSnapshotでSnapRestoreすることはできない
- Snapshotからファイルやディレクトリをリストアしたい場合は対象のファイルやディレクトリを選択する必要がある
- ファイルを分割して複数のメンバーボリュームに保存する(=ストライピング)することはできない
- 大容量ファイルを扱うことは向いていない
- その他のFlexGroup利用時の主な注意点は以下
- NASアクセス(NFS、SMB 2.0以降)のみ
- 2023/4/9時点ではFSxのバックアップ機能でバックアップすることができない
- ONTAP 9.11.1以前ではメンバーボリュームに保存したデータのリバランシングができない
- 1ファイルの最大サイズは16TB
- メンバーボリュームの推奨サイズは100GB以上
- Snapshot、SnapMirrorの最小間隔の推奨値は30分
- SnapMirrorでメンバーボリューム単位でリストアすることはできない
- メンバーボリュームの使用率をCloudWatchメトリクスで監視することができない
- FlexGroupをFlexVolumeに変換することはできない
- NFSv3でアクセスする場合はファイルIDの衝突を防ぐために、64ビットのNFSv3 FSIDとファイルIDを使用するようにSVMの設定を変更する必要がある
- FlexGroupボリュームごとに少なくとも8つのコンスティチュエント(メンバーボリューム)を作成することが推奨
- 一度追加したメンバーボリュームの削除はできない
- 使用率が100TB近いなど大容量のFlexVolumeをFlexGroupに変換するのは非推奨
FlexGroupとは
FlexGroupとは1つのボリュームで大きな空間を扱うためのONTAPの機能です。
1つのファイル共有で150TB保存できるようにしたい場合、ディレクトリを分けても良いのであれば以下のように複数のFlexVolumeのジャンクションパスを階層化することで対応できます。
. └── tier1 ....... FlexVolume : ボリュームサイズ 80TB └── tier2 ... FlexVolume : ボリュームサイズ 70TB
ジャンクションパスの詳細については以下記事で紹介しています。
しかし、1階層で100TBよりも大きくある必要がある場合はONTAP 9.11.1現在の FlexVolumeでは対応することができません。
FlexGroupではメンバーボリュームやコンスティチュエントボリュームと呼ばれる複数のボリュームを束ねて1つのボリュームに見せます。
抜粋 : FlexGroup ボリュームとは
例えば150TBのFlexGroupが必要であればメンバーボリュームを2つ以上用意することで実現することができます。
150TBのFlexGroupで、メンバーボリューム数が2つなら以下のような構成になります。
. └── flexgroup ......... FlexGroup : ボリュームサイズ 150TB ├── flexgroup_1 ... メンバーボリューム : ボリュームサイズ 75TB └── flexgroup_2 ... メンバーボリューム : ボリュームサイズ 75TB
また、FlexGroupは大量のアクセスを捌くことにも向いています。
FlexVolumeへのアクセスはシリアル処理となります。そのため、1つのボリュームに大量のファイルを配置してアクセスすることは向いていません。
FlexVol volumes are limited to a single node for metadata processing and serial processing of metadata, which does not take full advantage of the node’s CPU threads.
(以下機械翻訳)
FlexVolボリュームは、メタデータ処理のために1つのノードに制限され、ノードのCPUスレッドを十分に活用できないメタデータのシリアル処理が行われます。
NetApp ONTAP FlexGroup volumes — Best practices and implementation guide | TR-4571
一方で、FlexGroupは内部的に複数のFlexVolumeを使用しているため、パラレル処理が可能となります。
3.1 Massive Capacity and Predictable Low Latency for High-Metadata Workloads
NetApp ONTAP FlexGroup offers a way for storage administrators to easily provision massive amounts of capacity with the ability to nondisruptively scale out that capacity. FlexGroup also enables parallel performance for high metadata workloads that can increase throughput and total operations while still providing low latency for mission-critical workloads.
(以下機械翻訳)
3.1 大容量と予測可能な低レイテンシーでハイメタデータワークロードを実現します。
NetApp ONTAP FlexGroupは、ストレージ管理者が大量の容量を簡単にプロビジョニングし、その容量を無停止でスケールアウトできるようにするための手段を提供します。また、FlexGroupは、高メタデータのワークロードに対して並列パフォーマンスを実現し、スループットと総運用を向上させる一方で、ミッションクリティカルなワークロードに対しては低レイテンシーを提供します。
TR-4557: NetApp ONTAP FlexGroup Volumes- A Technical Overview | NetApp
FlexGroupが向いているユースケースは以下のように細かいIOが求められる場合です。
5.1 Ideal Use Cases
A FlexGroup volume works best with workloads that are heavy on ingest (a high level of new data creation), heavily concurrent, and evenly distributed among subdirectories:
- Electronic design automation
- Artificial intelligence and machine learning log file repositories
- Software build and test environments (such as Git)
- Seismic, oil, and gas
- Media asset or HIPAA archives
- File streaming workflows
- Unstructured NAS data (such as home directories)
- Big data and data lakes (Hadoop with the NetApp NFS connector)
(以下機械翻訳)
5.1 理想的な使用例
FlexGroupボリュームは、インジェスト(新しいデータの作成)が多く、同時並行性が高く、サブディレクトリに均等に分散されているワークロードで最も効果的に機能します:
- 電子設計自動化
- 人工知能・機械学習のログファイルリポジトリ
- ソフトウェアのビルドおよびテスト環境(Gitなど)
- 地震・石油・ガス
- メディア資産またはHIPAAアーカイブ
- ファイルストリーミングワークフロー
- 非構造化NASデータ(ホームディレクトリなど)
- ビッグデータ、データレイク(NetApp NFSコネクタを使用したHadoop)
TR-4557: NetApp ONTAP FlexGroup Volumes- A Technical Overview | NetApp
一方で大容量ファイルを扱うことは向いていません。これは1ファイルは1メンバーボリュームに保存する必要があるためです。大きいファイルを分割して複数のメンバーボリュームに保存する(=ストライピング)することはできません。
5.2 Non-Ideal Cases
Some workloads are currently not recommended for FlexGroup volumes. These workloads include the following:
- Virtualized workloads
- Workloads that require striping (large files spanning multiple nodes or volumes)
- Workloads that require specific control over the layout of the relationships of data to NetApp FlexVol volumes
- Workloads that require specific features and functionality that are not currently available withFlexGroup volumes
(以下機械翻訳)
5.2 非理想的なケース
現在、一部のワークロードは、FlexGroupボリュームに推奨されていません。これらのワークロードには、以下が含まれます:
- 仮想化ワークロード
- ストライピングを必要とするワークロード(複数のノードやボリュームにまたがる大きなファイル)
- NetApp FlexVolボリュームへのデータの関係のレイアウトを特別に制御する必要があるワークロード
- FlexGroupボリュームでは現在利用できない特定の特徴や機能を必要とするワークロード。
TR-4557: NetApp ONTAP FlexGroup Volumes- A Technical Overview | NetApp
FlexGroupの注意点
FlexGroup利用時の主な注意点は以下の通りです。
- NASアクセス(NFS、SMB 2.0以降)のみ
- SMB 1.0、iSCSIではアクセスできない
- 2023/4/9時点ではFSxのバックアップ機能でバックアップすることができない
- ONTAP 9.11.1以前ではメンバーボリュームに保存したデータのリバランシングができない
- ONTAP 9.12.1からは可能
- 1ファイルの最大サイズは16TB
- メンバーボリュームの推奨サイズは100GB以上
- メンバーボリューム数を3つにするのであればFlexGroupのサイズは300GBとなる
- Snapshot、SnapMirrorの最小間隔の推奨値は30分
- FlexVolumeの場合は5分
- SnapMirrorでメンバーボリューム単位でリストアすることはできない
- メンバーボリュームの使用率をCloudWatchメトリクスで監視することができない
- FlexGroupをFlexVolumeに変換することはできない
- FlexVolumeをFlexGroupに変換することは可能
- NFSv3でアクセスする場合はファイルIDの衝突を防ぐために、64ビットのNFSv3 FSIDとファイルIDを使用するようにSVMの設定を変更する必要がある
- FlexGroupボリュームごとに少なくとも8つのコンスティチュエント(メンバーボリューム)を作成することが推奨
- 一度追加したメンバーボリュームの削除はできない
- 使用率が100TB近いなど大容量のFlexVolumeをFlexGroupに変換するのは非推奨
参考 :
- NetApp ONTAP FlexGroup volumes — Best practices and implementation guide | TR-4571
- TR-4557: NetApp ONTAP FlexGroup Volumes- A Technical Overview | NetApp
- Data protection and backup — NetApp ONTAP FlexGroup volumes | TR-4678 | NetApp
- FlexGroup ボリュームでサポートされる構成とされない構成
- FlexVol ボリュームから FlexGroup ボリュームへの変換の概要を参照してください
- NFSv3 と NFSv4.x で 64 ビット ID を有効または無効にするとどのような影響があるか - NetApp
- FlexGroup ボリュームを作成します
- Technical QRG: FlexVol - FlexGroup Feature Comparison
- NetAppアカウントが必要です
- NetApp FlexGroup Volumes ONTAP 9.12.1
- NetAppアカウントが必要です
- FlexVol の最大容量が100TBに達しました。FlexGroup に変換して容量を増やすことはできますか? - NetApp
バックアップに対応していないのは痛いですね。FSx for ONTAPにおいてはFlexVolumeを使った方が良いように思います。
実際バックアップしようとするとVolume with style FLEXGROUP is not backupable.
と怒られます。
もし、バックアップを取りたいようであればバックアップ用にFSx for ONTAPファイルシステムを作成して、SnapMirrorもしくはSnapVaultでSnapshotを転送しておくのが良いでしょう。
やってみた
FlexGroupの作成
2023/4/9時点ではAWSマネジメントコンソールやAWS CLIから作成することはできないため、ONTAP CLIから作成します。
FlexVolumeと同じくvolume createを使用します。今回は200GBでメンバーボリューム数2のFlexGroupボリュームを作成します。
# FlexGroupボリュームの作成 ::> volume create -vserver SVM -volume fg -aggr-list aggr1 -aggr-list-multiplier 2 -size 200GB Notice: The FlexGroup volume "fg" will be created with the following number of constituents of size 100GB: 2. Do you want to continue? {y|n}: y Warning: You are attempting to create a FlexGroup volume in Vserver "SVM", which currently uses 32-bit NFSv3 FSIDs and file IDs. This could result in collisions between different file IDs on the FlexGroup volume. Modify the Vserver to use 64-bit NFSv3 identifiers before using the FlexGroup volume with the commands "set advanced; vserver nfs modify -vserver SVM -v3-64bit-identifiers enabled". Do you want to continue? {y|n}: y [Job 1502] Job succeeded: Successful # 作成したボリュームの確認 ::> volume show -vserver SVM -volume fg* Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- SVM fg - online RW 200GB 189.9GB 0% # メンバーボリュームの確認 ::> volume show -vserver SVM -volume fg* -is-constituent true Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- SVM fg__0001 aggr1 online RW 100GB 94.94GB 0% SVM fg__0002 aggr1 online RW 100GB 94.94GB 0% 2 entries were displayed.
FlexGroupへのファイルの書き込み
FlexGroupにファイルを書き込みして、作成したファイルがストライピングされないことを確認します。
まず、FlexGroupボリュームにジャンクションパスの設定をします。
# ジャンクションパスの設定 ::> volume mount -vserver SVM -volume fg -junction-path /fg # ジャンクションパスの確認 ::> volume show -vserver SVM -volume fg -fields junction-path vserver volume junction-path ------- ------ ------------- SVM fg /fg
NFSクライアントからマウントして、128MiBのファイルを作成します。
# マウントポイントの作成 $ sudo mkdir -p /mnt/fsxn/fg # マウント $ sudo mount -t nfs svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/fg /mnt/fsxn/fg # マウントできたことを確認 $ df -hT -t nfs4 Filesystem Type Size Used Avail Use% Mounted on svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/fg nfs4 190G 115M 190G 1% /mnt/fsxn/fg # テストファイルの作成 $ sudo dd if=/dev/urandom of=/mnt/fsxn/fg/test-file-1 bs=32M count=4 4+0 records in 4+0 records out 134217728 bytes (134 MB) copied, 1.35903 s, 98.8 MB/s
ファイル作成後、データがストライピングされているか確認します。
::> volume show-footprint -vserver SVM -volume fg* Vserver : SVM Volume : fg__0001 Feature Used Used% -------------------------------- ---------- ----- Volume Data Footprint 187.3MB 0% Footprint in Performance Tier 133.0MB 100% Footprint in FSxFabricpoolObjectStore 0B 0% Volume Guarantee 0B 0% Flexible Volume Metadata 107.5MB 0% Delayed Frees 2.65MB 0% Total Footprint 297.5MB 0% Vserver : SVM Volume : fg__0002 Feature Used Used% -------------------------------- ---------- ----- Volume Data Footprint 57.50MB 0% Footprint in Performance Tier 2.59MB 100% Footprint in FSxFabricpoolObjectStore 0B 0% Volume Guarantee 0B 0% Flexible Volume Metadata 107.5MB 0% Delayed Frees 2.10MB 0% Total Footprint 167.1MB 0% 2 entries were displayed.
メンバーボリュームfg__0001
のみに書き込まれたことが分かります。
FlexGroupの拡大・縮小
FlexVolume同様拡大・縮小をすることも可能です。
その際はvolume modifyで行います。
試しにボリュームサイズを200GBから200TBに変更します。
# ボリュームサイズを200TBに変更 ::> volume modify -vserver SVM -volume fg -size 200TB [Job 1509] Job succeeded: volume modify succeeded # FlexGroupボリュームが200TBになったことを確認 ::> volume show -vserver SVM -volume fg* Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- SVM fg - online RW 200TB 797.2GB 0% # FlexGroupのメンバーボリュームが100TBになったことを確認 ::> volume show -vserver SVM -volume fg* -is-constituent true Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- SVM fg__0001 aggr1 online RW 100TB 797.2GB 0% SVM fg__0002 aggr1 online RW 100TB 797.2GB 0% 2 entries were displayed.
どちらのメンバーボリュームも100TBになりましたね。
縮小もしてみます。200GBに戻します。
# ボリュームサイズを200GBに変更 ::> volume modify -vserver SVM -volume fg -size 200GB [Job 1508] Job succeeded: volume modify succeeded # FlexGroupボリュームが200GBになったことを確認 ::> volume show -vserver SVM -volume fg* Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- SVM fg - online RW 200GB 189.8GB 0% # FlexGroupのメンバーボリュームが100GBになったことを確認 ::> volume show -vserver SVM -volume fg* -is-constituent true Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- SVM fg__0001 aggr1 online RW 100GB 94.82GB 0% SVM fg__0002 aggr1 online RW 100GB 94.94GB 0% 2 entries were displayed.
FlexGroupのメンバーボリュームの追加
メンバーボリュームの追加をしてみます。
メンバーボリュームの追加はvolume expandで行います。
::> volume expand -vserver SVM -volume fg -aggr-list aggr1 -aggr-list-multiplier 1 Warning: The following number of constituents of size 100GB will be added to FlexGroup volume "fg": 1. Expanding the FlexGroup volume will cause the state of all Snapshot copies to be set to "partial". Partial Snapshot copies cannot be restored. Do you want to continue? {y|n}: y [Job 1505] Initializing Error: command failed: [Job 1505] Job failed: Failed to modify efficiency configuration for volume "fg__0003" of Vserver "SVM": Inline compression cannot be enabled when compression is disabled. Enable compression and retry the command. Request to expand FlexGroup volume "fg" failed. Address the above issue, and then try the expand command again.
追加しようとしたメンバーボリュームfg__0003
のStorage Efficiencyの設定をする場合にエラーが発生したようです。圧縮が無効だとインライン圧縮を有効にすることはできないとのことです。
FlexGroupのStorage Efficiencyを確認してみます。
::> volume efficiency show -vserver SVM -volume fg Vserver Name: SVM Volume Name: fg Volume Path: /vol/fg State: Enabled Status: Idle Progress: - Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 16:43:22 2023 Last Success Operation End: Sun Apr 09 16:43:22 2023 Last Operation Begin: Sun Apr 09 16:43:22 2023 Last Operation End: Sun Apr 09 16:43:22 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 130.5MB Logical Data Limit: 1.25PB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: true Inline Compression: true Storage Efficiency Mode: efficient Constituent Volume: false Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: -
Compression: true
となっていますね。
メンバーボリュームのStorage Efficiencyも確認します。
::> volume efficiency show -vserver SVM -volume fg* -is-constituent true -instance Vserver Name: SVM Volume Name: fg__0001 Volume Path: /vol/fg__0001 State: Enabled Status: Idle Progress: Idle for 05:40:41 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 16:43:21 2023 Last Success Operation End: Sun Apr 09 16:43:21 2023 Last Operation Begin: Sun Apr 09 16:43:21 2023 Last Operation End: Sun Apr 09 16:43:21 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 130.5MB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: true Storage Efficiency Mode: efficient Constituent Volume: true Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: true Vserver Name: SVM Volume Name: fg__0002 Volume Path: /vol/fg__0002 State: Enabled Status: Idle Progress: Idle for 05:40:40 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 16:43:22 2023 Last Success Operation End: Sun Apr 09 16:43:22 2023 Last Operation Begin: Sun Apr 09 16:43:22 2023 Last Operation End: Sun Apr 09 16:43:22 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 476KB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: true Storage Efficiency Mode: efficient Constituent Volume: true Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: true 2 entries were displayed.
こちらはどちらもCompression: false
となっています。
以前、以下記事でStorage Efficiencyの検証した際にCompression
を有効化できないことを確認しました。
試しにCompression
を有効化しようとした後、メンバーボリュームを再度追加しようとしましたが結果は変わりませんでした。
# Compression の有効化 ::> volume efficiency modify -vserver SVM -volume fg -compression true [Job 1516] Job succeeded: Successful # メンバーボリュームを1つ追加 ::> volume expand -vserver SVM -volume fg -aggr-list aggr1 -aggr-list-multiplier 1 Warning: The following number of constituents of size 100GB will be added to FlexGroup volume "fg": 1. Expanding the FlexGroup volume will cause the state of all Snapshot copies to be set to "partial". Partial Snapshot copies cannot be restored. Do you want to continue? {y|n}: y [Job 1517] Initializing Error: command failed: [Job 1517] Job failed: Failed to modify efficiency configuration for volume "fg__0003" of Vserver "SVM": Inline compression cannot be enabled when compression is disabled. Enable compression and retry the command. Request to expand FlexGroup volume "fg" failed. Address the above issue, and then try the expand command again.
もしかすると、FSx for ONTAPにおいてはCompression
が有効なFlexGroupにはメンバーボリュームを後から追加することはできないかもしれません。
試しにStorage Efficiencyを無効化してみます。
# Storage Efficiencyの無効化 ::> volume efficiency off -vserver SVM -volume fg [Job 1518] Job succeeded: Successful # Storage Efficiencyが無効化されたことを確認 ::> volume efficiency show -vserver SVM -volume fg Vserver Name: SVM Volume Name: fg Volume Path: /vol/fg State: Disabled Status: Idle Progress: - Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 16:43:22 2023 Last Success Operation End: Sun Apr 09 16:43:22 2023 Last Operation Begin: Sun Apr 09 16:43:22 2023 Last Operation End: Sun Apr 09 16:43:22 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 131.0MB Logical Data Limit: 1.25PB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: false Storage Efficiency Mode: efficient Constituent Volume: false Inline Dedupe: false Data Compaction: false Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: - ::> volume efficiency show -vserver SVM -volume fg* -is-constituent true Vserver Volume State Status Progress Policy ---------- ---------------- --------- ----------- ------------------ ---------- SVM fg__0001 Disabled Idle Idle for 05:52:31 auto SVM fg__0002 Disabled Idle Idle for 05:52:30 auto
この状態でメンバーボリュームを追加しようとします。
# メンバーボリュームを1つ追加 ::> volume expand -vserver SVM -volume fg -aggr-list aggr1 -aggr-list-multiplier 1 Warning: The following number of constituents of size 100GB will be added to FlexGroup volume "fg": 1. Expanding the FlexGroup volume will cause the state of all Snapshot copies to be set to "partial". Partial Snapshot copies cannot be restored. Do you want to continue? {y|n}: y [Job 1519] Job succeeded: Successful # メンバーボリュームが1つ追加されたことを確認 ::> volume show -vserver SVM -volume fg* -is-constituent true Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- SVM fg__0001 aggr1 online RW 100GB 94.82GB 0% SVM fg__0002 aggr1 online RW 100GB 94.94GB 0% SVM fg__0003 aggr1 online RW 100GB 94.94GB 0% 3 entries were displayed.
メンバーボリュームの追加が出来ました。Storage Efficiencyが無効化であれば問題なくメンバーボリュームの追加ができるようです。
次に、Storage Efficiencyを有効化してみます。
# Storage Efficiencyの有効化 ::> volume efficiency on -vserver SVM -volume fg [Job 1521] Job succeeded: Successful # Storage Efficiencyが有効化されたことを確認 ::> volume efficiency show -vserver SVM -volume fg Vserver Name: SVM Volume Name: fg Volume Path: /vol/fg State: Enabled Status: Idle Progress: - Type: Regular Schedule: Staggered Schedule Efficiency Policy Name: Staggered Policy Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 22:36:28 2023 Last Success Operation End: Sun Apr 09 22:36:28 2023 Last Operation Begin: Sun Apr 09 22:36:28 2023 Last Operation End: Sun Apr 09 22:36:28 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 131.3MB Logical Data Limit: 1.88PB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: false Storage Efficiency Mode: mixed Constituent Volume: false Inline Dedupe: false Data Compaction: false Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: - ::> volume efficiency show -vserver SVM -volume fg* -is-constituent true -instance Vserver Name: SVM Volume Name: fg__0001 Volume Path: /vol/fg__0001 State: Enabled Status: Idle Progress: Idle for 05:55:26 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 16:43:21 2023 Last Success Operation End: Sun Apr 09 16:43:21 2023 Last Operation Begin: Sun Apr 09 16:43:21 2023 Last Operation End: Sun Apr 09 16:43:21 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 130.5MB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: false Storage Efficiency Mode: efficient Constituent Volume: true Inline Dedupe: false Data Compaction: false Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: true Vserver Name: SVM Volume Name: fg__0002 Volume Path: /vol/fg__0002 State: Enabled Status: Idle Progress: Idle for 05:55:25 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 16:43:22 2023 Last Success Operation End: Sun Apr 09 16:43:22 2023 Last Operation Begin: Sun Apr 09 16:43:22 2023 Last Operation End: Sun Apr 09 16:43:22 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 480KB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: false Storage Efficiency Mode: efficient Constituent Volume: true Inline Dedupe: false Data Compaction: false Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: true Vserver Name: SVM Volume Name: fg__0003 Volume Path: /vol/fg__0003 State: Enabled Status: Idle Progress: Idle for 00:02:19 Type: Regular Schedule: sun-sat@0 Efficiency Policy Name: - Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 22:36:28 2023 Last Success Operation End: Sun Apr 09 22:36:28 2023 Last Operation Begin: Sun Apr 09 22:36:28 2023 Last Operation End: Sun Apr 09 22:36:28 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 320KB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: false Storage Efficiency Mode: - Constituent Volume: true Inline Dedupe: false Data Compaction: false Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: false 3 entries were displayed.
追加したメンバーボリュームのEfficiency PolicyやStorage Efficiency Modeの指定されていないのがちょっと気になりますね。
この状態でさらにメンバーボリュームを追加してみます。
::> volume expand -vserver SVM -volume fg -aggr-list aggr1 -aggr-list-multiplier 1 Warning: The following number of constituents of size 100GB will be added to FlexGroup volume "fg": 1. Expanding the FlexGroup volume will cause the state of all Snapshot copies to be set to "partial". Partial Snapshot copies cannot be restored. Do you want to continue? {y|n}: y [Job 1526] Job succeeded: Successful ::> volume show -vserver SVM -volume fg* -is-constituent true Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- SVM fg__0001 aggr1 online RW 100GB 94.82GB 0% SVM fg__0002 aggr1 online RW 100GB 94.94GB 0% SVM fg__0003 aggr1 online RW 100GB 94.94GB 0% SVM fg__0004 aggr1 online RW 100GB 94.94GB 0% 4 entries were displayed.
Storage Efficiencyが有効であるにも関わらず、メンバーボリュームの追加が出来ました。
やはりFlexGroupのStorage EfficiencyのCompression
が有効化されているとメンバーボリュームの追加が出来ないのではないでしょうか。
次に追加したメンバーボリュームにEfficiency PolicyやStorage Efficiency Modeを指定してあげます。
::> volume efficiency modify -vserver SVM -volume fg -policy auto -storage-efficiency-mode efficient Error: command failed: The "-storage-efficiency-mode" parameter is only supported on AFF.
どうやら、Storage Efficiency Modeは指定できないようです。つまりはFlexGroupのメンバーボリューム間で複数Storage Efficiency Modeが混在しそうです。
しょうがないので、Compression
以外を有効化してみます。
::> volume efficiency modify -vserver SVM -volume fg -policy auto -inline-compression true -inline-dedupe true -data-compaction true Error: command failed: Failed to modify efficiency configuration for volume "fg" of Vserver "SVM": Inline compression can only be enabled when both efficiency and compression are enabled on the volume.
Inline Compression
はCompression
を有効化しておく必要があるようですね。
これまたしょうがないので今度はInline Compression
以外を有効化してみます。
::> volume efficiency modify -vserver SVM -volume fg -policy auto -compression true -inline-dedupe true -data-compaction true [Job 1528] Job succeeded: Successful ::> volume efficiency show -vserver SVM -volume fg Vserver Name: SVM Volume Name: fg Volume Path: /vol/fg State: Enabled Status: Idle Progress: - Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 23:29:08 2023 Last Success Operation End: Sun Apr 09 23:29:08 2023 Last Operation Begin: Sun Apr 09 23:29:08 2023 Last Operation End: Sun Apr 09 23:29:08 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 132.8MB Logical Data Limit: 2.50PB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: true Inline Compression: - Storage Efficiency Mode: mixed Constituent Volume: false Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: - ::> volume efficiency show -vserver SVM -volume fg* -is-constituent true -instance Vserver Name: SVM Volume Name: fg__0001 Volume Path: /vol/fg__0001 State: Enabled Status: Idle Progress: Idle for 07:01:41 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 16:43:21 2023 Last Success Operation End: Sun Apr 09 16:43:21 2023 Last Operation Begin: Sun Apr 09 16:43:21 2023 Last Operation End: Sun Apr 09 16:43:21 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 131.7MB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: true Storage Efficiency Mode: efficient Constituent Volume: true Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: true Vserver Name: SVM Volume Name: fg__0002 Volume Path: /vol/fg__0002 State: Enabled Status: Idle Progress: Idle for 07:01:40 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 16:43:22 2023 Last Success Operation End: Sun Apr 09 16:43:22 2023 Last Operation Begin: Sun Apr 09 16:43:22 2023 Last Operation End: Sun Apr 09 16:43:22 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 460KB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: true Storage Efficiency Mode: efficient Constituent Volume: true Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: true Vserver Name: SVM Volume Name: fg__0003 Volume Path: /vol/fg__0003 State: Enabled Status: Idle Progress: Idle for 01:08:34 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 22:36:28 2023 Last Success Operation End: Sun Apr 09 22:36:28 2023 Last Operation Begin: Sun Apr 09 22:36:28 2023 Last Operation End: Sun Apr 09 22:36:28 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 352KB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: true Inline Compression: false Storage Efficiency Mode: default Constituent Volume: true Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: false Vserver Name: SVM Volume Name: fg__0004 Volume Path: /vol/fg__0004 State: Enabled Status: Idle Progress: Idle for 00:15:54 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 23:29:08 2023 Last Success Operation End: Sun Apr 09 23:29:08 2023 Last Operation Begin: Sun Apr 09 23:29:08 2023 Last Operation End: Sun Apr 09 23:29:08 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 320KB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: true Inline Compression: false Storage Efficiency Mode: default Constituent Volume: true Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: false 4 entries were displayed.
今回は設定が出来ました。
この状態でメンバーボリュームを追加しようとします。
::> volume expand -vserver SVM -volume fg -aggr-list aggr1 -aggr-list-multiplier 1 Warning: The following number of constituents of size 100GB will be added to FlexGroup volume "fg": 1. Do you want to continue? {y|n}: y [Job 1529] Initializing Error: command failed: [Job 1529] Job failed: Failed to modify efficiency configuration for volume "fg__0005" of Vserver "SVM": Inline compression cannot be enabled when compression is disabled. Enable compression and retry the command. Request to expand FlexGroup volume "fg" failed. Address the above issue, and then try the expand command again.
やはり怒られました。Compression
を有効化しているとメンバーボリュームの追加はできませんでした。
ではCompression
を無効化しましょう。
# Compressionの無効化 ::> volume efficiency modify -vserver SVM -volume fg -compression false [Job 1531] Job is queued: Volume Efficiency Modify Job. Error: command failed: [Job 1531] Job failed: Failed to modify efficiency configuration for volume "fg" of Vserver "SVM": The following constituents failed to have efficiency changes applied: 1,2. The error was the same for all constituents, and was "Compression cannot be disabled when inline compression is enabled on the volume. Disable inline compression and retry the command.". # Inline Compression と Compression を無効化 ::> volume efficiency modify -vserver SVM -volume fg -compression false -inline-compression false [Job 1535] Job succeeded: Successful # Storage Efficiency の確認 ::> volume efficiency show -vserver SVM -volume fg Vserver Name: SVM Volume Name: fg Volume Path: /vol/fg State: Enabled Status: Idle Progress: - Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 23:29:08 2023 Last Success Operation End: Sun Apr 09 23:29:08 2023 Last Operation Begin: Sun Apr 09 23:29:08 2023 Last Operation End: Sun Apr 09 23:29:08 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 132.8MB Logical Data Limit: 2.50PB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: false Storage Efficiency Mode: mixed Constituent Volume: false Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: - ::> volume efficiency show -vserver SVM -volume fg* -is-constituent true -instance Vserver Name: SVM Volume Name: fg__0001 Volume Path: /vol/fg__0001 State: Enabled Status: Idle Progress: Idle for 07:32:58 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 16:43:21 2023 Last Success Operation End: Sun Apr 09 16:43:21 2023 Last Operation Begin: Sun Apr 09 16:43:21 2023 Last Operation End: Sun Apr 09 16:43:21 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 131.7MB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: false Storage Efficiency Mode: efficient Constituent Volume: true Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: true Vserver Name: SVM Volume Name: fg__0002 Volume Path: /vol/fg__0002 State: Enabled Status: Idle Progress: Idle for 07:32:57 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 16:43:22 2023 Last Success Operation End: Sun Apr 09 16:43:22 2023 Last Operation Begin: Sun Apr 09 16:43:22 2023 Last Operation End: Sun Apr 09 16:43:22 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 456KB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: false Storage Efficiency Mode: efficient Constituent Volume: true Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: true Vserver Name: SVM Volume Name: fg__0003 Volume Path: /vol/fg__0003 State: Enabled Status: Idle Progress: Idle for 01:39:51 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 22:36:28 2023 Last Success Operation End: Sun Apr 09 22:36:28 2023 Last Operation Begin: Sun Apr 09 22:36:28 2023 Last Operation End: Sun Apr 09 22:36:28 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 368KB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: false Storage Efficiency Mode: default Constituent Volume: true Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: false Vserver Name: SVM Volume Name: fg__0004 Volume Path: /vol/fg__0004 State: Enabled Status: Idle Progress: Idle for 00:47:11 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 23:29:08 2023 Last Success Operation End: Sun Apr 09 23:29:08 2023 Last Operation Begin: Sun Apr 09 23:29:08 2023 Last Operation End: Sun Apr 09 23:29:08 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 332KB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: false Storage Efficiency Mode: default Constituent Volume: true Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: false 4 entries were displayed.
Storage EfficiencyはFlexGroup単位で行うCompression
のみを無効化することはできなかったので、Inline Compression
とCompression
を無効化しました。これはかなり複雑です。
この状態でメンバーボリュームを追加します。
::> volume expand -vserver SVM -volume fg -aggr-list aggr1 -aggr-list-multiplier 1 Warning: The following number of constituents of size 100GB will be added to FlexGroup volume "fg": 1. Expanding the FlexGroup volume will cause the state of all Snapshot copies to be set to "partial". Partial Snapshot copies cannot be restored. Do you want to continue? {y|n}: y [Job 1536] Job succeeded: Successful ::> volume show -vserver SVM -volume fg* -is-constituent true Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- SVM fg__0001 aggr1 online RW 100GB 94.82GB 0% SVM fg__0002 aggr1 online RW 100GB 94.94GB 0% SVM fg__0003 aggr1 online RW 100GB 94.94GB 0% SVM fg__0004 aggr1 online RW 100GB 94.94GB 0% SVM fg__0005 aggr1 online RW 100GB 94.94GB 0% 5 entries were displayed. ::> volume efficiency show -vserver SVM -volume fg* -is-constituent true -instance Vserver Name: SVM Volume Name: fg__0001 Volume Path: /vol/fg__0001 State: Enabled Status: Idle Progress: Idle for 07:34:44 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 16:43:21 2023 Last Success Operation End: Sun Apr 09 16:43:21 2023 Last Operation Begin: Sun Apr 09 16:43:21 2023 Last Operation End: Sun Apr 09 16:43:21 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 131.7MB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: false Storage Efficiency Mode: efficient Constituent Volume: true Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: true Vserver Name: SVM Volume Name: fg__0002 Volume Path: /vol/fg__0002 State: Enabled Status: Idle Progress: Idle for 07:34:43 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 16:43:22 2023 Last Success Operation End: Sun Apr 09 16:43:22 2023 Last Operation Begin: Sun Apr 09 16:43:22 2023 Last Operation End: Sun Apr 09 16:43:22 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 456KB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: false Storage Efficiency Mode: efficient Constituent Volume: true Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: true Vserver Name: SVM Volume Name: fg__0003 Volume Path: /vol/fg__0003 State: Enabled Status: Idle Progress: Idle for 01:41:37 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 22:36:28 2023 Last Success Operation End: Sun Apr 09 22:36:28 2023 Last Operation Begin: Sun Apr 09 22:36:28 2023 Last Operation End: Sun Apr 09 22:36:28 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 368KB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: false Storage Efficiency Mode: default Constituent Volume: true Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: false Vserver Name: SVM Volume Name: fg__0004 Volume Path: /vol/fg__0004 State: Enabled Status: Idle Progress: Idle for 00:48:57 Type: Regular Schedule: - Efficiency Policy Name: auto Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Sun Apr 09 23:29:08 2023 Last Success Operation End: Sun Apr 09 23:29:08 2023 Last Operation Begin: Sun Apr 09 23:29:08 2023 Last Operation End: Sun Apr 09 23:29:08 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 332KB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: false Storage Efficiency Mode: default Constituent Volume: true Inline Dedupe: true Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: false Vserver Name: SVM Volume Name: fg__0005 Volume Path: /vol/fg__0005 State: Enabled Status: Idle Progress: Idle for 00:00:41 Type: Regular Schedule: - Efficiency Policy Name: default Blocks Skipped Sharing: 0 Last Operation State: Success Last Success Operation Begin: Mon Apr 10 00:17:24 2023 Last Success Operation End: Mon Apr 10 00:17:24 2023 Last Operation Begin: Mon Apr 10 00:17:24 2023 Last Operation End: Mon Apr 10 00:17:24 2023 Last Operation Size: 0B Last Operation Error: - Changelog Usage: 0% Logical Data Size: 312KB Logical Data Limit: 640TB Logical Data Percent: 0% Queued Job: - Stale Fingerprint Percentage: 0 Compression: false Inline Compression: false Storage Efficiency Mode: - Constituent Volume: true Inline Dedupe: false Data Compaction: true Cross Volume Inline Deduplication: false Cross Volume Background Deduplication: false Extended Compressed Data: false 5 entries were displayed.
メンバーボリュームの追加が出来ました。
結論としては「Inline Compression
とCompression
を有効化されたFlexGroupにはメンバーボリュームは追加できない」ということになります。
メンバーボリューム追加後にTSSEを有効化してあげます。
先の検証でvolume efficiency modify
でStorage Efficiency Mode
をefficient
を指定することはできませんでした。
NetAppのKBを見ると、application-io-size
にauto
することでもStorage Efficiency Mode
がefficient
になるようです。
- If desired to set TSSE enabled for specific volumes, use the volume efficiency modify command with storage-efficiency-mode set to efficient
- Following values are possible for storage-efficiency-mode during volume efficiency modify:
- default - Volume is having file based compression scheme
- efficient - Volume is having TSSE based compression scheme
- Setting "Storage-efficiency-mode" to "efficient" is same as enabling TSSE using "volume efficiency modify" ("application-io-size" will be set as "auto") and also all forms of deduplication will be enabled.
- Setting "Storage-efficiency-mode" to "default" is same as enabling file based compression ("application-io-size" will be set as "8k").
How do I enable TSSE on volumes created prior to 9.8 - NetApp Knowledge Base
SB C&Sさんの技術ブログでもTSSEの有効化について紹介されていますね。
compression:ポストプロセスデータ圧縮
inline-compression:インラインデータ圧縮
compression-type:圧縮方式
application-io-size:圧縮する際のIOサイズTSSEによるデータ圧縮は、上記4つのパラメータがそれぞれ「adaptive」「true」「true」「auto」である必要があります。
ONTAP 9.8のStorage Efficiency機能アップデート|技術ブログ|C&S ENGINEER VOICE
実際に試してみます。
まず、falseになっていたインライン圧縮、ポストプロセス圧縮、インライン重複排除の有効化と、Efficiency Policy Name
をauto
に変更します。
::> volume efficiency modify -vserver SVM -volume fg -compression true -inline-compression true -inline-dedupe true -policy auto [Job 1915] Job succeeded: Successful ::> volume efficiency show -vserver SVM -volume fg* -is-constituent true -fields policy, compression, inline-compression, state, inline-dedupe, storage-efficiency-mode vserver volume state policy compression inline-compression storage-efficiency-mode inline-dedupe ------- -------- ------- ------ ----------- ------------------ ----------------------- ------------- SVM fg__0001 Enabled auto false true efficient true SVM fg__0002 Enabled auto false true efficient true SVM fg__0003 Enabled auto true true default true SVM fg__0004 Enabled auto true true default true SVM fg__0005 Enabled auto true true default true 5 entries were displayed.
権限レベルをdiag
に変更してapplication-io-size
にauto
します。
# 権限レベルを diag に変更 ::*> set diagnostic Warning: These diagnostic commands are for use by NetApp personnel only. Do you want to continue? {y|n}: y # 設定可能なプロパティに application-io-size があることを確認 ::*> volume efficiency modify ? -vserver <vserver name> Vserver Name { [-volume] <volume name> Volume Name | -path </vol/volume> } Volume Path { [ -schedule <text> ] Schedule | [ -policy <text (size 1..32)> ] } Efficiency Policy Name [ -optimize {performance|space-saving} ] *Optimization [ -min-blocks-shared {1..64} ] *Min Blocks Shared { [ -compression {true|false} ] Compression [ -inline-compression {true|false} ] Inline Compression [ -application-io-size {default|8K|16K|32K|auto} ] *Application IO Size [ -compression-type {none|secondary|adaptive} ] *Compression Type | [ -storage-efficiency-mode {default|efficient} ] } Storage Efficiency Mode [ -verify-trigger-rate {1..300} ] *Verify Trigger Rate [ -inline-dedupe {true|false} ] Inline Dedupe [ -data-compaction {true|false} ] Data Compaction [ -cross-volume-inline-dedupe {true|false} ] Cross Volume Inline Deduplication [ -compression-algorithm {lzopro|gzip|lzrw1a|zstd} ] *Compression Algorithm [ -cross-volume-background-dedupe {true|false} ] Cross Volume Background Deduplication # application-io-size を auto に設定 ::*> volume efficiency modify -vserver SVM -volume fg -application-io-size auto [Job 1917] Job is queued: Volume Efficiency Modify Job. Error: command failed: [Job 1917] Job failed: Failed to modify efficiency configuration for volume "fg" of Vserver "SVM": option "-application-io-size" is valid only when option "-compression" is specified.
application-io-size
はcompression
とセットで指定する必要があるようですね。
一緒にcompression
をtrue
にしてあげて再チャレンジします。
# application-io-size を auto 、 compression を true に設定 ::*> volume efficiency modify -vserver SVM -volume fg -application-io-size auto -compression true [Job 1918] Job succeeded: Successful # storage-efficiency-mode が default から efficient に変わったことを確認 ::*> volume efficiency show -vserver SVM -volume fg* -is-constituent true -fields policy, compression, inline-compression, state, inline-dedupe, storage-efficiency-mode, application-io-size, compression-type vserver volume state policy compression inline-compression application-io-size compression-type storage-efficiency-mode inline-dedupe ------- -------- ------- ------ ----------- ------------------ ------------------- ---------------- ----------------------- ------------- SVM fg__0001 Enabled auto false true auto adaptive efficient true SVM fg__0002 Enabled auto false true auto adaptive efficient true SVM fg__0003 Enabled auto false true auto adaptive efficient true SVM fg__0004 Enabled auto false true auto adaptive efficient true SVM fg__0005 Enabled auto false true auto adaptive efficient true 5 entries were displayed.
Storage Efficiency Mode
がefficient
になりましたね。
FlexGroupのSnapshotとSnapRestore
次にFlexGroupのSnapshotとSnapRestoreを試します。
現在のSnapshotを確認します。
::> snapshot show -vserver SVM -volume fg ---Blocks--- Vserver Volume Snapshot Size Total% Used% -------- -------- ------------------------------------- -------- ------ ----- SVM fg hourly.2023-04-09_1705 130.5MB 0% 50% hourly.2023-04-09_1805 130.6MB 0% 50% hourly.2023-04-09_1905 130.7MB 0% 50% hourly.2023-04-09_2005 130.8MB 0% 50% hourly.2023-04-09_2105 130.8MB 0% 50% hourly.2023-04-09_2205 130.9MB 0% 50% 6 entries were displayed.
デフォルトのSnapshot policyによりいくつかSnapshotが取得されていますね。
いずれもメンバーボリューム追加前に取得されたSnapshotです。
メンバーボリューム追加時に1. Expanding the FlexGroup volume will cause the state of all Snapshot copies to be set to "partial". Partial Snapshot copies cannot be restored.
とあるので、リストアできないと思いますが試します。
下準備として、ボリューム上のテストファイルを削除します。
$ sudo rm /mnt/fsxn/fg/test-file-1 $ ls -l /mnt/fsxn/fg/ total 0
テストファイル削除後SnapRestoreします。
::> snapshot restore -vserver SVM -volume fg -snapshot hourly.2023-04-09_2205 Error: command failed: Promoting a partial Snapshot copy is not supported. ::> snapshot restore -vserver SVM -volume fg -snapshot hourly.2023-04-09_2105 Error: command failed: Promoting a partial Snapshot copy is not supported.
直近2つのSnapshotで試しましたが、やはりリストアはできませんでした。
NFSクライアントからSnapshot directoryにアクセスして、Snapshotのファイルを確認します。
$ ls -l /mnt/fsxn/fg/.snapshot/hourly.2023-04-09_2105/ total 131592 -rw-r--r-- 1 root root 134217728 Apr 9 08:04 test-file-1 $ ls -l /mnt/fsxn/fg/.snapshot/hourly.2023-04-09_2205/ total 131592 -rw-r--r-- 1 root root 134217728 Apr 9 08:04 test-file-1
どちらのSnapshot上にもテストファイルがあります。
リストアできるかも確認します。
$ sudo cp -p /mnt/fsxn/fg/.snapshot/hourly.2023-04-09_2205/test-file-1 /mnt/fsxn/fg $ ls -l /mnt/fsxn/fg/ total 131592 -rw-r--r-- 1 root root 134217728 Apr 9 08:04 test-file-1
問題なくリストアできました。
メンバーボリューム追加前に取得したSnapshotを使ってファイルを復元する場合は、個々に選択する必要がありますね。
メンバーボリューム追加後のSnapshot/SnapRestoreも確認します。
まず、Snapshotを取得します。
::> snapshot create -vserver SVM -volume fg -snapshot test-snapshot
その後、テストファイルを削除します。
$ sudo rm /mnt/fsxn/fg/test-file-1 $ ls -l /mnt/fsxn/fg/ total 0
テストファイル削除後、取得したSnapshotでSnapRestoreをします。
::> snapshot restore -vserver SVM -volume fg -snapshot test-snapshot Warning: Quota rules currently enforced on volume "fg" might change during this operation. If the currently enforced quota rules are different from those in Snapshot copy "test-snapshot", you might have to resize or reinitialize quotas on this volume after this operation. Do you want to continue? {y|n}: y Warning: Export policies currently enforced on the qtrees of volume "fg" will not change during this operation. If the currently enforced export policies are different from those in Snapshot copy "test-snapshot", reassign the export policies of the qtrees on this volume after this operation. Do you want to continue? {y|n}: y
SnapRestoreできましたね。
NFSクライアントからアクセスしてテストファイルがリストアされていることを確認します。
$ ls -l /mnt/fsxn/fg/ total 131592 -rw-r--r-- 1 root root 134217728 Apr 9 08:04 test-file-1
FlexVolumeからFlexGroupへの変換
FlexVolumeからFlexGroupへ変換することも可能です。
変換処理中は以下の処理が実行されないので注意が必要です。
- ボリュームの移動
- アグリゲートの自動負荷分散
- アグリゲートの再配置
- HA構成での計画的なテイクオーバーとギブバック
- HA構成での手動および自動のギブバック
- クラスターのアップグレードとリバート
- FlexClone ボリュームの切り離し
- ボリュームのリホスト
- ボリュームの変更と自動拡張
- ボリュームの名前変更
- アグリゲートのオブジェクトストアへの接続
- MetroCluster 構成でのネゴシエートスイッチオーバー
- SnapMirror
- SnapshotRestore
- クォータの処理
- Storage Efficiencyの処理
参考 : FlexVol ボリュームから FlexGroup ボリュームへの変換の概要を参照してください
試してみましょう。
適当にFlexVolumeを作成します。
# FlexVolumeの作成 ::> volume create -vserver SVM -volume fv -aggregate aggr1 -size 100GB -state online [Job 1541] Job succeeded: Successful # 作成したボリュームがFlexVolume、オンラインであることを確認 ::> volume show -vserver SVM -volume fv -fields volume-style-extended, state vserver volume state volume-style-extended ------- ------ ------ --------------------- SVM fv online flexvol
FlexGroupへの変換を行います。FlexGroupへの変換時はvolume conversion startを実行します。
# 権限レベルを advanced に変更 ::> set advanced Warning: These advanced commands are potentially dangerous; use them only when directed to do so by NetApp personnel. Do you want to continue? {y|n}: y # FlexGroupへの変換前の検証 ::*> volume conversion validation show -vserver SVM -volume fv Vserver : SVM Volume : fv Precheck Status ------------------------------------------------ ------------ volume-state supported container-type supported pre-conversion-snapshots supported snapshot-schedule supported snapshot-policy supported snapshot-autodelete supported snapshot-scale supported snapshot-id supported volume-quota-state supported snapshot-expiry-time supported volume-is-moving supported volume-name supported volume-nvfailed-state supported volume-quota-rule-path-target supported volume-vmalign supported arl-in-progress supported aggregate-consistency-checker supported nfs-security-tracing supported ha-takeover-giveback supported smb1-enabled supported qos supported flexcache-origin supported storage-efficiency-background-operation supported is-transitioned supported vserver-root supported snaplock supported volume-has-enough-free-space supported aggregate-is-root supported directory-traversal supported ndas-on-demand supported Vserver : SVM Volume : fv Precheck Status ------------------------------------------------ ------------ volume-nearly-full supported backup-recover-operation supported volume-size supported aggregate-object-store-attach supported volume-autosize supported luns supported volume-type supported volume-snapmirror-quiesce supported volume-snapmirror-cascade supported volume-snapmirror-nosnap supported volume-snapmirror-bre supported volume-snapmirror-storage-efficiency supported volume-snapmirror-fvSource supported volume-snapmirror-LTR supported volume-snapmirror-VserverDR supported volume-snapmirror supported volume-snapmirror-broken supported volume-snapmirror-fanout supported volume-snapmirror-dstconvert-check supported volume-reallocation-schedule supported volume-nvme-namespace supported volume-statistics supported volume-space-slo supported volume-snapmirror-sync supported application-volume supported volume-v4-inode supported volume-qtree-statistics supported volume-clone supported volume-clone-parent supported vserver-migrate-in-progress supported Vserver : SVM Volume : fv Precheck Status ------------------------------------------------ ------------ file-move supported file-copy supported volume-logical-space-reporting supported volume-logical-space-enforcement supported volume-clone-sharing-by-split supported nfs-nlm-share-lock supported nfs-msdos-client supported all-san supported audit-volume supported volume-remote-files supported quota-metadata-valid supported consistency_groups supported svm_migrate supported volume-anti-ransomware-disable supported 74 entries were displayed. # FlexGroupに変換 ::*> volume conversion start -vserver SVM -volume fv Warning: * After the volume is converted to a FlexGroup, it will not be possible to change it back to a flexible volume. * Converting the volume to a FlexGroup will not add additional resources for capacity. After converting, use the "volume expand" command to add resources. Do you want to continue? {y|n}: y [Job 1543] Job succeeded: success # 変換できたことを確認 ::*> volume show -vserver SVM -volume fv -fields volume-style-extended, state vserver volume state volume-style-extended ------- ------ ------ --------------------- SVM fv online flexgroup ::*> volume show -vserver SVM -volume fv* -fields volume-style-extended, state -is-constituent true vserver volume state volume-style-extended ------- -------- ------ --------------------- SVM fv__0001 online flexgroup-constituent
FlexVolumeからFlexGroupに変換できました。
大量のファイルを扱いたいときはFlexGroupを使おう
Amazon FSx for NetApp ONTAPでFlexGroupを使って100TB以上のボリュームを作成してみました。
最大20PB、4,000億ファイルを1つのボリュームとして扱えるのは非常に魅力的ですね。
一方でFSx for ONTAPで使う場合においては、ボリュームのバックアップができなかったり、メンバーボリューム追加時の手順が複雑であったり、気にする必要があるポイントがかなり多い印象を持ちました。
本番利用する場合は注意して利用しましょう。
この記事が誰かの助けになれば幸いです。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!