[Amazon FSx for NetApp ONTAP] FlexGroupで100TB以上のボリュームを作成してみた

[Amazon FSx for NetApp ONTAP] FlexGroupで100TB以上のボリュームを作成してみた

大量のファイルを扱いたいときはFlexGroupを使おう
Clock Icon2023.04.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

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 CompressionCompressionを有効化されたFlexGroupにはメンバーボリュームは追加できない
    • 追加したメンバーボリュームのStorage Efficiency Modeを直接efficientにすることはできない = TSSE を有効化できない
    • Application IO SizeautoにすることでStorage Efficiency Modeefficientにすることが可能
  • メンバーボリューム追加前に取得されたSnapshotでSnapRestoreすることはできない
    • Snapshotからファイルやディレクトリをリストアしたい場合は対象のファイルやディレクトリを選択する必要がある
  • ファイルを分割して複数のメンバーボリュームに保存する(=ストライピング)することはできない
    • 大容量ファイルを扱うことは向いていない
  • その他のFlexGroup利用時の主な注意点は以下
    1. NASアクセス(NFS、SMB 2.0以降)のみ
    2. 2023/4/9時点ではFSxのバックアップ機能でバックアップすることができない
    3. ONTAP 9.11.1以前ではメンバーボリュームに保存したデータのリバランシングができない
    4. 1ファイルの最大サイズは16TB
    5. メンバーボリュームの推奨サイズは100GB以上
    6. Snapshot、SnapMirrorの最小間隔の推奨値は30分
    7. SnapMirrorでメンバーボリューム単位でリストアすることはできない
    8. メンバーボリュームの使用率をCloudWatchメトリクスで監視することができない
    9. FlexGroupをFlexVolumeに変換することはできない
    10. NFSv3でアクセスする場合はファイルIDの衝突を防ぐために、64ビットのNFSv3 FSIDとファイルIDを使用するようにSVMの設定を変更する必要がある
    11. FlexGroupボリュームごとに少なくとも8つのコンスティチュエント(メンバーボリューム)を作成することが推奨
    12. 一度追加したメンバーボリュームの削除はできない
    13. 使用率が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つのボリュームに見せます。

fg-overview-flexgroup

抜粋 : 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利用時の主な注意点は以下の通りです。

  1. NASアクセス(NFS、SMB 2.0以降)のみ
    • SMB 1.0、iSCSIではアクセスできない
  2. 2023/4/9時点ではFSxのバックアップ機能でバックアップすることができない
  3. ONTAP 9.11.1以前ではメンバーボリュームに保存したデータのリバランシングができない
    • ONTAP 9.12.1からは可能
  4. 1ファイルの最大サイズは16TB
  5. メンバーボリュームの推奨サイズは100GB以上
    • メンバーボリューム数を3つにするのであればFlexGroupのサイズは300GBとなる
  6. Snapshot、SnapMirrorの最小間隔の推奨値は30分
    • FlexVolumeの場合は5分
  7. SnapMirrorでメンバーボリューム単位でリストアすることはできない
  8. メンバーボリュームの使用率をCloudWatchメトリクスで監視することができない
  9. FlexGroupをFlexVolumeに変換することはできない
    • FlexVolumeをFlexGroupに変換することは可能
  10. NFSv3でアクセスする場合はファイルIDの衝突を防ぐために、64ビットのNFSv3 FSIDとファイルIDを使用するようにSVMの設定を変更する必要がある
  11. FlexGroupボリュームごとに少なくとも8つのコンスティチュエント(メンバーボリューム)を作成することが推奨
  12. 一度追加したメンバーボリュームの削除はできない
  13. 使用率が100TB近いなど大容量のFlexVolumeをFlexGroupに変換するのは非推奨

参考 :

バックアップに対応していないのは痛いですね。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 CompressionCompressionを有効化しておく必要があるようですね。

これまたしょうがないので今度は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 CompressionCompressionを無効化しました。これはかなり複雑です。

この状態でメンバーボリュームを追加します。

::> 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 CompressionCompressionを有効化されたFlexGroupにはメンバーボリュームは追加できない」ということになります。

メンバーボリューム追加後にTSSEを有効化してあげます。

先の検証でvolume efficiency modifyStorage Efficiency Modeefficientを指定することはできませんでした。

NetAppのKBを見ると、application-io-sizeautoすることでもStorage Efficiency Modeefficientになるようです。

  • 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 Nameautoに変更します。

::> 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-sizeautoします。

# 権限レベルを 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-sizecompressionとセットで指定する必要があるようですね。

一緒にcompressiontrueにしてあげて再チャレンジします。

# 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 Modeefficientになりましたね。

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)でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.