[Amazon FSx for NetApp ONTAP] キャパシティプールストレージのデータにはポストプロセス重複排除が効かないので注意しよう

2023.01.18

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

なんだか重複排除の効きが悪いな

こんにちは、のんピ(@non____97)です。

皆さんは「Amazon FSx for NetApp ONTAP(以降FSx for ONTAP)のボリュームの重複排除の効きが悪いな」と思ったことはありますか? 私はあります。

私がこの場面に遭遇したのは、いずれも階層化ポリシーがALLのボリュームだったので、原因はボリュームの階層化ポリシーがALLであることなのかもしれません。

重複排除についての説明は以下記事をご覧ください。

重複排除が行われるタイミングは以下2種類あります。

  • インライン
    • ストレージに保存する前にメモリ上のデータ間で重複排除を実施
  • ポストプロセス
    • ストレージに保存された後にストレージ上のデータ間で重複排除を実施

階層化ポリシーをALLにしてしまうと、基本的にすぐさまオブジェクトストレージベースのキャパシティプールストレージに階層化されてしまいます。階層化はブロック単位で行われますが、もしかしたらオブジェクトストレージにある関係上、キャパシティプール上のブロックのハッシュ値の計算は行っていないかもしれません。

気になったので、確認をしてみます。

いきなりまとめ

  • キャパシティプールストレージ上のデータに対してはポストプロセスの重複排除が効かない
  • インライン重複排除は階層化ポリシーがALLでも効く
  • キャパシティプールストレージ上のデータをプライマリストレージに移動してもポストプロセスの重複排除は効かない
  • プライマリストレージ上で効かせたポストプロセス重複排除は、キャパシティプールストレージに移動しても維持される
  • 「重複排除を効かせた状態で移行をしたい。ただ、ほとんどのデータをキャパシティプールストレージに持っていきたい」のであれば、FSx for ONTAPを2つ用意して、以下のステップで移行する
    1. 現行ファイルサーバーから1台目のFSx for ONTAPの階層化ポリシーをAuto or Noneしたボリュームにファイルを移行する
    2. 1台目のFSx for ONTAP上で重複排除が効くまで待つ
    3. SnapMirrorを使って、1台目のFSx for ONTAPのボリュームから2台目のFSx for ONTAPの階層化ポリシーをALLにしたボリュームにデータを移行する
    4. 現行ファイルサーバーと2台目のFSx for ONTAP間で差分同期をする
  • FSx for ONTAPのボリュームではTSSEが有効化されている
  • TSSEはFabricPoolのローカル(FSx for ONTAPでいうところのプライマリストレージ)のみサポートしている

検証のシナリオ

Fsx for ONTAPの階層化ポリシーをALLAutoのボリュームを1つづつ用意します。どちらのボリュームもStorage Efficiency(ストレージ効率化)はマネジメントコンソールから有効化しておきます。

# ボリュームの確認
::> volume show
Vserver   Volume       Aggregate    State      Type       Size  Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
SVM       SVM_root     aggr1        online     RW          1GB    972.0MB    0%
SVM       vol1         aggr1        online     RW         10GB     9.50GB    0%
SVM       vol2         aggr1        online     RW         10GB     9.50GB    0%
3 entries were displayed.

# 各ボリュームの階層化ポリシーを確認
::> volume show -fields tiering-policy
vserver volume   tiering-policy
------- -------- --------------
SVM     SVM_root none
SVM     vol1     auto
SVM     vol2     all
3 entries were displayed.

# 各ボリュームでStorage Efficiencyが有効になっていることを確認
::> volume efficiency show
Vserver    Volume           State     Status      Progress           Policy
---------- ---------------- --------- ----------- ------------------ ----------
SVM        vol1             Enabled   Idle        Idle for 00:06:36  auto
SVM        vol2             Enabled   Idle        Idle for 00:06:16  auto
2 entries were displayed.

# 各ボリュームのStorage Efficiencyの詳細を確認
::> volume efficiency show -volume vol* -instance

                                     Vserver Name: SVM
                                      Volume Name: vol1
                                      Volume Path: /vol/vol1
                                            State: Enabled
                                           Status: Idle
                                         Progress: Idle for 00:07:45
                                             Type: Regular
                                         Schedule: -
                           Efficiency Policy Name: auto
                           Blocks Skipped Sharing: 0
                             Last Operation State: Success
                     Last Success Operation Begin: Sun Jan 15 11:16:09 2023
                       Last Success Operation End: Sun Jan 15 11:16:09 2023
                             Last Operation Begin: Sun Jan 15 11:16:09 2023
                               Last Operation End: Sun Jan 15 11:16:09 2023
                              Last Operation Size: 0B
                             Last Operation Error: -
                                  Changelog Usage: 0%
                                Logical Data Size: 308KB
                               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: false
                                    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: vol2
                                      Volume Path: /vol/vol2
                                            State: Enabled
                                           Status: Idle
                                         Progress: Idle for 00:07:25
                                             Type: Regular
                                         Schedule: -
                           Efficiency Policy Name: auto
                           Blocks Skipped Sharing: 0
                             Last Operation State: Success
                     Last Success Operation Begin: Sun Jan 15 11:16:29 2023
                       Last Success Operation End: Sun Jan 15 11:16:29 2023
                             Last Operation Begin: Sun Jan 15 11:16:29 2023
                               Last Operation End: Sun Jan 15 11:16:29 2023
                              Last Operation Size: 0B
                             Last Operation Error: -
                                  Changelog Usage: 0%
                                Logical Data Size: 296KB
                               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: false
                                    Inline Dedupe: true
                                  Data Compaction: true
                Cross Volume Inline Deduplication: false
            Cross Volume Background Deduplication: false
                         Extended Compressed Data: true
2 entries were displayed.

# 各ボリュームのStorage Efficiencyで削減されたデータ量を確認
::> volume show -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume   available total   used  percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- -------- --------- ------- ----- ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     SVM_root 972.0MB   972.8MB 792KB 0%           0B              0B                 0B                  0B                      none
SVM     vol1     9.50GB    9.50GB  308KB 0%           0B              0B                 0B                  0B                      auto
SVM     vol2     9.50GB    9.50GB  296KB 0%           0B              0B                 0B                  0B                      all
3 entries were displayed.

この状態で各ボリュームにランダムなデータブロックで構成されるファイルを作成して、そのファイルをコピーした際に重複排除が効くか確認します。重複排除が効く場合、ボリュームの消費量は1ファイル分になるはずです。

階層化ポリシーがALLだとポストプロセス重複排除が効かないことを確認

テストファイルの書き込み

それでは検証をしてみます。

NFSクライアントからFSx for ONTAPの各ボリュームをマウントします。

# マウントポイントの作成
$ sudo mkdir -p /mnt/fsxn/vol1
$ sudo mkdir -p /mnt/fsxn/vol2

# マウント
$ sudo mount -t nfs svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol1 /mnt/fsxn/vol1
$ sudo mount -t nfs svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol2 /mnt/fsxn/vol2

# マウントされたことを確認
$ df -hT -t nfs4
Filesystem                                                                   Type  Size  Used Avail Use% Mounted on
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol1 nfs4  9.5G  256K  9.5G   1% /mnt/fsxn/vol1
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol2 nfs4  9.5G  256K  9.5G   1% /mnt/fsxn/vol2

それでは1GBのランダムなデータブロックで構成されるファイルを各ボリュームに書き込みます。

# テストファイルの作成
$ sudo dd if=/dev/urandom of=/mnt/fsxn/vol1/test-file_1 bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 6.74191 s, 159 MB/s

$ sudo dd if=/dev/urandom of=/mnt/fsxn/vol2/test-file_1 bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 6.52896 s, 164 MB/s

# テストファイル書き込み後の各ボリュームの使用量を確認
$ df -hT -t nfs4
Filesystem                                                                   Type  Size  Used Avail Use% Mounted on
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol1 nfs4  9.5G  1.1G  8.5G  11% /mnt/fsxn/vol1
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol2 nfs4  9.5G  1.1G  8.5G  11% /mnt/fsxn/vol2

どちらも等しく1.1GB書き込まれいますね。

ONTAP CLIからも確認しましょう。

# 各ボリュームのStorage Efficiencyで削減されたデータ量を確認
::> volume show -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume   available total   used  percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- -------- --------- ------- ----- ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     SVM_root 972.0MB   972.8MB 792KB 0%           0B              0B                 0B                  0B                      none
SVM     vol1     8.49GB    9.50GB  1.01GB
                                         10%          0B              0B                 0B                  0B                      auto
SVM     vol2     8.49GB    9.50GB  1.01GB
                                         10%          0B              0B                 0B                  0B                      all
3 entries were displayed.

# 各ボリュームのデータの階層を確認
::> volume show-footprint -volume vol1, vol2


      Vserver : SVM
      Volume  : vol1

      Feature                                         Used       Used%
      --------------------------------             ----------    -----
      Volume Data Footprint                            1.01GB       0%
             Footprint in Performance Tier
                                                       1.02GB     100%
             Footprint in FSxFabricpoolObjectStore
                                                           0B       0%
      Volume Guarantee                                     0B       0%
      Flexible Volume Metadata                        61.95MB       0%
      Delayed Frees                                    2.79MB       0%

      Total Footprint                                  1.08GB       0%



      Vserver : SVM
      Volume  : vol2

      Feature                                         Used       Used%
      --------------------------------             ----------    -----
      Volume Data Footprint                            1.01GB       0%
             Footprint in Performance Tier
                                                      17.24MB       2%
             Footprint in FSxFabricpoolObjectStore
                                                          1GB      98%
      Volume Guarantee                                     0B       0%
      Flexible Volume Metadata                        61.95MB       0%
      Delayed Frees                                    2.49MB       0%

      Total Footprint                                  1.08GB       0%

2 entries were displayed.

# 各ボリュームのStorage Efficiencyの詳細を確認
::> volume efficiency show -volume vol* -instance

                                     Vserver Name: SVM
                                      Volume Name: vol1
                                      Volume Path: /vol/vol1
                                            State: Enabled
                                           Status: Idle
                                         Progress: Idle for 00:21:37
                                             Type: Regular
                                         Schedule: -
                           Efficiency Policy Name: auto
                           Blocks Skipped Sharing: 0
                             Last Operation State: Success
                     Last Success Operation Begin: Sun Jan 15 11:16:09 2023
                       Last Success Operation End: Sun Jan 15 11:16:09 2023
                             Last Operation Begin: Sun Jan 15 11:16:09 2023
                               Last Operation End: Sun Jan 15 11:16:09 2023
                              Last Operation Size: 0B
                             Last Operation Error: -
                                  Changelog Usage: 9%
                                Logical Data Size: 1.01GB
                               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: false
                                    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: vol2
                                      Volume Path: /vol/vol2
                                            State: Enabled
                                           Status: Idle
                                         Progress: Idle for 00:21:17
                                             Type: Regular
                                         Schedule: -
                           Efficiency Policy Name: auto
                           Blocks Skipped Sharing: 0
                             Last Operation State: Success
                     Last Success Operation Begin: Sun Jan 15 11:16:29 2023
                       Last Success Operation End: Sun Jan 15 11:16:29 2023
                             Last Operation Begin: Sun Jan 15 11:16:29 2023
                               Last Operation End: Sun Jan 15 11:16:29 2023
                              Last Operation Size: 0B
                             Last Operation Error: -
                                  Changelog Usage: 9%
                                Logical Data Size: 1.01GB
                               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: false
                                    Inline Dedupe: true
                                  Data Compaction: true
                Cross Volume Inline Deduplication: false
            Cross Volume Background Deduplication: false
                         Extended Compressed Data: true
2 entries were displayed.

どちらも階層化ポリシーをALLにしたvol2はほとんどのデータがFSxFabricpoolObjectStore = キャパシティプールに保存されていますね。

テストファイルのコピー

作成したテストファイルをコピーします。

# テストファイルのコピー
$ sudo cp -p /mnt/fsxn/vol1/test-file_1 /mnt/fsxn/vol1/test-file_2
$ sudo cp -p /mnt/fsxn/vol2/test-file_1 /mnt/fsxn/vol2/test-file_2

# 各ボリュームの使用量の確認
$ df -hT -t nfs4
Filesystem                                                                   Type  Size  Used Avail Use% Mounted on
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol1 nfs4  9.5G  1.1G  8.5G  11% /mnt/fsxn/vol1
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol2 nfs4  9.5G  2.1G  7.5G  22% /mnt/fsxn/vol2

階層化ポリシーがAutoのvol1は使用量が1.1GBのままですが、階層化ポリシーがALLのvol2の使用量は2.1GBになりました。

確かに階層化ポリシーがALLだとポストプロセス重複排除が効いていなさそうです。

ONTAP CLIからも確認してみましょう。

# 各ボリュームのStorage Efficiencyで削減されたデータ量を確認
::> volume show -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume   available total   used  percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- -------- --------- ------- ----- ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     SVM_root 972.0MB   972.8MB 792KB 0%           0B              0B                 0B                  0B                      none
SVM     vol1     8.46GB    9.50GB  1.04GB
                                         10%          1001MB          1001MB             1001MB              0B                      auto
SVM     vol2     7.46GB    9.50GB  2.04GB
                                         21%          0B              0B                 0B                  0B                      all
3 entries were displayed.

# 各ボリュームのデータの階層を確認
::> volume show-footprint -volume vol1, vol2

      Vserver : SVM
      Volume  : vol1

      Feature                                         Used       Used%
      --------------------------------             ----------    -----
      Volume Data Footprint                            1.04GB       0%
             Footprint in Performance Tier
                                                       1.04GB     100%
             Footprint in FSxFabricpoolObjectStore
                                                           0B       0%
      Volume Guarantee                                     0B       0%
      Flexible Volume Metadata                        61.95MB       0%
      Delayed Frees                                    4.31MB       0%

      Total Footprint                                  1.11GB       0%



      Vserver : SVM
      Volume  : vol2

      Feature                                         Used       Used%
      --------------------------------             ----------    -----
      Volume Data Footprint                            2.04GB       0%
             Footprint in Performance Tier
                                                      43.08MB       2%
             Footprint in FSxFabricpoolObjectStore
                                                          2GB      98%
      Volume Guarantee                                     0B       0%
      Flexible Volume Metadata                        61.95MB       0%
      Deduplication Metadata                           6.02MB       0%
           Deduplication                               6.02MB       0%
      Delayed Frees                                    5.16MB       0%

      Total Footprint                                  2.11GB       0%

# 各ボリュームのStorage Efficiencyの詳細を確認
::> volume efficiency show -volume vol* -instance
                                     Vserver Name: SVM
                                      Volume Name: vol1
                                      Volume Path: /vol/vol1
                                            State: Enabled
                                           Status: Idle
                                         Progress: Idle for 00:26:01
                                             Type: Regular
                                         Schedule: -
                           Efficiency Policy Name: auto
                           Blocks Skipped Sharing: 0
                             Last Operation State: Success
                     Last Success Operation Begin: Sun Jan 15 11:16:09 2023
                       Last Success Operation End: Sun Jan 15 11:16:09 2023
                             Last Operation Begin: Sun Jan 15 11:16:09 2023
                               Last Operation End: Sun Jan 15 11:16:09 2023
                              Last Operation Size: 0B
                             Last Operation Error: -
                                  Changelog Usage: 9%
                                Logical Data Size: 2.02GB
                               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: false
                                    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: vol2
                                      Volume Path: /vol/vol2
                                            State: Enabled
                                           Status: Idle
                                         Progress: Idle for 00:02:54
                                             Type: Regular
                                         Schedule: -
                           Efficiency Policy Name: auto
                           Blocks Skipped Sharing: 0
                             Last Operation State: Success
                     Last Success Operation Begin: Sun Jan 15 11:38:59 2023
                       Last Success Operation End: Sun Jan 15 11:39:16 2023
                             Last Operation Begin: Sun Jan 15 11:38:59 2023
                               Last Operation End: Sun Jan 15 11:39:16 2023
                              Last Operation Size: 1.26GB
                             Last Operation Error: -
                                  Changelog Usage: 9%
                                Logical Data Size: 2.04GB
                               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: false
                                    Inline Dedupe: true
                                  Data Compaction: true
                Cross Volume Inline Deduplication: false
            Cross Volume Background Deduplication: false
                         Extended Compressed Data: true
2 entries were displayed.

階層化ポリシーがAutoのvol1dedupe-space-saved1001MBになっていることから、1GBほど重複排除によりデータの消費量を減らしていることが分かります。一方、階層化ポリシーがALLのvol2ではdedupe-space-saved0Bとなっています。

ちなみに、ポストプロセスの重複排除の実行タイミングは、どちらのボリュームも自動バックグラウンド重複排除機能により決定されます。

ONTAP 9.3 以降では ' 事前定義された auto AFF ポリシーを使用して ' ボリューム・レベルのバックグラウンド重複排除を自動的に実行するように管理できますスケジュールを手動で設定する必要はありません。auto ポリシーは ' バックグラウンドで継続的な重複排除を実行します

AFF システムで、ボリュームレベルの自動バックグラウンド重複排除を管理します

Efficiency Policyがautoのときに自動バックグラウンド重複排除により、重複排除の実行されます。FSx for ONTAPの場合デフォルトではautoが指定されます。

デフォルトのEfficiency Policyはdefaultinline-onlyとがあります。

::> volume efficiency policy show
         Policy       Job        Duration
Vserver  Name         Schedule   (Hours)  QoS Policy  Enabled  Comment
-------- ------------ ---------- -------- ----------- -------- --------------
SVM      auto         -          -        -           true     ADS-auto
                                                               policy
SVM      default      daily      -        best_effort true     Default policy
SVM      inline-only  -          -        -           -        Inline-Only
                                                               policy
3 entries were displayed.

手動でポストプロセス重複排除を実行する

念の為、手動でポストプロセス重複排除を実行します。

# 手動でポストプロセス重複排除を実行
::> volume efficiency start -volume vol2
The efficiency operation for volume "vol2" of Vserver "SVM" has started.

# 重複排除によりデータ量が削減できているか確認
::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   7.46GB    9.50GB 2.04GB 21%          10MB            10MB               10MB                0B                      all

10MBほど重複排除が効きました。プライマリストレージにメタデータがわずかに保存されているので、その分かなと推測します。

インライン重複排除は効くことを確認する

キャパシティプールストレージのファイルを同時に複数コピー

次に階層化ポリシーがALLであってもインライン重複排除が効くことを確認します。

まず、キャパシティプールストレージのファイルを同時に複数コピーした場合の挙動を確認します。

先の検証で作成した/vol2のファイルを/vol2/copiedにコピーします。/vol2にはtest-file_1test-file_2があり、test-file_2test-file_1のコピーです。

# コピー先のディレクトリの作成
$ sudo mkdir /mnt/fsxn/vol2/copied

# コピー
$ sudo cp -p /mnt/fsxn/vol2/test-file_* /mnt/fsxn/vol2/copied/

# サイズの確認
$ df -hT -t nfs4
Filesystem                                                                   Type  Size  Used Avail Use% Mounted on
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol1 nfs4  9.5G  1.1G  8.5G  11% /mnt/fsxn/vol1
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol2 nfs4  9.5G  4.1G  5.5G  43% /mnt/fsxn/vol2

そのまま2GB増えていることから、重複排除は効いていなさそうです。

ONTAP CLIからも確認します。

# ボリュームのStorage Efficiencyで削減されたデータ量を確認
::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   5.42GB    9.50GB 4.08GB 42%          23.42MB         23.42MB            23.42MB             0B                      all

# ボリュームのデータの階層を確認
::> volume show-footprint -volume vol2

      Vserver : SVM
      Volume  : vol2

      Feature                                         Used       Used%
      --------------------------------             ----------    -----
      Volume Data Footprint                            4.08GB       0%
             Footprint in Performance Tier
                                                      90.34MB       2%
             Footprint in FSxFabricpoolObjectStore
                                                          4GB      98%
      Volume Guarantee                                     0B       0%
      Flexible Volume Metadata                        61.95MB       0%
      Deduplication Metadata                          12.03MB       0%
           Deduplication                              12.03MB       0%
      Delayed Frees                                    8.84MB       0%

      Total Footprint                                  4.16GB       0%

13MBほど重複排除が効いたようです。もっと効くと思ったのですが思ったより効きませんね。

手動で重複排除をしてみます。

# 手動でポストプロセス重複排除を実行
::> volume efficiency start -volume vol2
The efficiency operation for volume "vol2" of Vserver "SVM" has started.

# 重複排除によりデータ量が削減できているか確認
::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   5.42GB    9.50GB 4.08GB 42%          7.25MB          7.25MB             7.25MB              0B                      all

# ボリュームのデータの階層を確認
::> volume show-footprint -volume vol2

      Vserver : SVM
      Volume  : vol2

      Feature                                         Used       Used%
      --------------------------------             ----------    -----
      Volume Data Footprint                            4.08GB       0%
             Footprint in Performance Tier
                                                      91.61MB       2%
             Footprint in FSxFabricpoolObjectStore
                                                          4GB      98%
      Volume Guarantee                                     0B       0%
      Flexible Volume Metadata                        61.95MB       0%
      Deduplication Metadata                          16.21MB       0%
           Deduplication                              16.21MB       0%
      Delayed Frees                                   11.07MB       0%

      Total Footprint                                  4.17GB       0%

重複排除によって削減されたデータ量が23.42MBから7.25MBに減ってしまいました。これは謎ですね。

プライマリストレージのファイルを同時に複数コピー

次に、プライマリストレージのファイルを同時に複数コピーした場合の挙動を確認します。

先の検証で作成した/vol1のファイルを/vol2/copied2にコピーします。/vol1にはtest-file_1test-file_2があり、test-file_2test-file_1のコピーです。

# コピー先のディレクトリの作成
$ sudo mkdir /mnt/fsxn/vol2/copied2

# コピー
$ sudo cp -p /mnt/fsxn/vol1/test-file_* /mnt/fsxn/vol2/copied2/

# サイズの確認
$ df -hT -t nfs4
Filesystem                                                                   Type  Size  Used Avail Use% Mounted on
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol1 nfs4  9.5G  1.1G  8.5G  11% /mnt/fsxn/vol1
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol2 nfs4  9.5G  6.2G  3.4G  65% /mnt/fsxn/vol2

2GB増えているのであまり重複排除は効いていなさそうです。

ONTAP CLIからも確認します。

# ボリュームのStorage Efficiencyで削減されたデータ量を確認
::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   3.64GB    9.50GB 5.86GB 61%          295.9MB         295.9MB            295.9MB             0B                      all

# ボリュームのデータの階層を確認
::> volume show-footprint -volume vol2


      Vserver : SVM
      Volume  : vol2

      Feature                                         Used       Used%
      --------------------------------             ----------    -----
      Volume Data Footprint                            5.86GB       1%
             Footprint in Performance Tier
                                                      132.8MB       2%
             Footprint in FSxFabricpoolObjectStore
                                                       5.81GB      98%
      Volume Guarantee                                     0B       0%
      Flexible Volume Metadata                        61.95MB       0%
      Deduplication Metadata                          30.07MB       0%
           Deduplication                              30.07MB       0%
      Delayed Frees                                   74.52MB       0%

      Total Footprint                                  6.03GB       1%

重複排除によって削減されたデータ量が7.25MBから295.9MBになりました。30%弱ほど重複排除が効いていますね。

こちらも手動で重複排除をしてみます。

# 手動でポストプロセス重複排除を実行
::> volume efficiency start -volume vol2
The efficiency operation for volume "vol2" of Vserver "SVM" has started.

# 重複排除によりデータ量が削減できているか確認
::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   3.63GB    9.50GB 5.86GB 61%          303.4MB         303.4MB            303.4MB             0B                      all

# ボリュームのデータの階層を確認
::> volume show-footprint -volume vol2

      Vserver : SVM
      Volume  : vol2

      Feature                                         Used       Used%
      --------------------------------             ----------    -----
      Volume Data Footprint                            5.86GB       1%
             Footprint in Performance Tier
                                                      134.8MB       2%
             Footprint in FSxFabricpoolObjectStore
                                                       5.81GB      98%
      Volume Guarantee                                     0B       0%
      Flexible Volume Metadata                        61.95MB       0%
      Deduplication Metadata                          33.98MB       0%
           Deduplication                              33.98MB       0%
      Delayed Frees                                   75.41MB       0%

      Total Footprint                                  6.03GB       1%

8MBほど重複排除量が増えました。こちらもメタデータ分でしょうか。

階層化ポリシーをALLからNoneに変更した場合にポストプロセス重複排除が動作するのか

階層化ポリシーをNoneに変更

次に、階層化ポリシーをALLからNoneに変更した場合にポストプロセス重複排除が動作するのか確認します。

階層化ポリシーをNoneに変更します。

# 階層化ポリシーをNoneに変更
::> volume modify -volume vol2 -tiering-policy none
Volume modify successful on volume vol2 of Vserver SVM.

# 階層化ポリシーがNoneになったことを確認
::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   3.64GB    9.50GB 5.86GB 61%          303.4MB         303.4MB            303.4MB             0B                      none

# データがキャパシティプールストレージからプライマリストレージに移動していないことを確認
::> volume show-footprint -volume vol2

      Vserver : SVM
      Volume  : vol2

      Feature                                         Used       Used%
      --------------------------------             ----------    -----
      Volume Data Footprint                            5.86GB       1%
             Footprint in Performance Tier
                                                      134.9MB       2%
             Footprint in FSxFabricpoolObjectStore
                                                       5.81GB      98%
      Volume Guarantee                                     0B       0%
      Flexible Volume Metadata                        61.95MB       0%
      Deduplication Metadata                          33.98MB       0%
           Deduplication                              33.98MB       0%
      Delayed Frees                                   75.55MB       0%

      Total Footprint                                  6.03GB       1%

以下記事で紹介している通り、階層化ポリシーをNoneに変更しても、すぐにはキャパシティプールストレージからプライマリストレージへデータは移動しません。

-cloud-retrieval-policy promoteで強制的にキャパシティプールストレージからプライマリストレージにデータを移動させます。

# 権限レベルを変更
::> 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

# 全てのデータをプライマリストレージに移動するようポリシーを変更
::*> volume modify -volume vol2 -cloud-retrieval-policy promote

Warning: The "promote" cloud retrieve policy retrieves all of the cloud data for the specified volume. If the tiering policy is "snapshot-only" then only AFS data is retrieved. If
         the tiering policy is "none" then all data is retrieved. Volume "vol2" in Vserver "SVM" is on a FabricPool, and there are approximately 6234456064 bytes tiered to the
         cloud that will be retrieved. Cloud retrieval may take a significant amount of time, and may degrade performance during that time. The cloud retrieve operation may also
         result in data charges by your object store provider.
Do you want to continue? {y|n}: y
Volume modify successful on volume vol2 of Vserver SVM.

# 権限レベルを元に戻す
::*> set admin

# データがキャパシティプールストレージからプライマリストレージに移動していっているか確認
::> volume show-footprint -volume vol2


      Vserver : SVM
      Volume  : vol2

      Feature                                         Used       Used%
      --------------------------------             ----------    -----
      Volume Data Footprint                            5.86GB       1%
             Footprint in Performance Tier
                                                      136.0MB       2%
             Footprint in FSxFabricpoolObjectStore
                                                       5.81GB      98%
      Volume Guarantee                                     0B       0%
      Flexible Volume Metadata                        61.95MB       0%
      Deduplication Metadata                          34.58MB       0%
           Deduplication                              34.58MB       0%
      Delayed Frees                                   76.56MB       0%

      Total Footprint                                  6.03GB       1%


::> volume show-footprint -volume vol2


      Vserver : SVM
      Volume  : vol2

      Feature                                         Used       Used%
      --------------------------------             ----------    -----
      Volume Data Footprint                            5.86GB       1%
             Footprint in Performance Tier
                                                      836.2MB      14%
             Footprint in FSxFabricpoolObjectStore
                                                       5.12GB      86%
      Volume Guarantee                                     0B       0%
      Flexible Volume Metadata                        61.95MB       0%
      Deduplication Metadata                          34.58MB       0%
           Deduplication                              34.58MB       0%
      Delayed Frees                                   77.01MB       0%

      Total Footprint                                  6.03GB       1%


::> volume show-footprint -volume vol2


      Vserver : SVM
      Volume  : vol2

      Feature                                         Used       Used%
      --------------------------------             ----------    -----
      Volume Data Footprint                            5.86GB       1%
             Footprint in Performance Tier
                                                       5.33GB      90%
             Footprint in FSxFabricpoolObjectStore
                                                      631.2MB      10%
      Volume Guarantee                                     0B       0%
      Flexible Volume Metadata                        61.95MB       0%
      Deduplication Metadata                          34.58MB       0%
           Deduplication                              34.58MB       0%
      Delayed Frees                                   88.17MB       0%

      Total Footprint                                  6.04GB       1%

::> volume show-footprint -volume vol2


      Vserver : SVM
      Volume  : vol2

      Feature                                         Used       Used%
      --------------------------------             ----------    -----
      Volume Data Footprint                            5.86GB       1%
             Footprint in Performance Tier
                                                       5.92GB     100%
             Footprint in FSxFabricpoolObjectStore
                                                      22.05MB       0%
      Volume Guarantee                                     0B       0%
      Flexible Volume Metadata                        61.95MB       0%
      Deduplication Metadata                          34.58MB       0%
           Deduplication                              34.58MB       0%
      Delayed Frees                                   79.22MB       0%

      Total Footprint                                  6.04GB       1%

# ボリュームのStorage Efficiencyで削減されたデータ量を確認
::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   3.63GB    9.50GB 5.86GB 61%          304.4MB         304.4MB            304.4MB             0B                      none

しばらく待つと全てのデータがプライマリストレージに移動しました。その時の重複排除量を確認すると、特に変わりありませんでした。

手動で重複排除をしてみましょう。

# 手動でポストプロセス重複排除を実行
::> volume efficiency start -volume vol2
The efficiency operation for volume "vol2" of Vserver "SVM" has started.

# 重複排除によりデータ量が削減できているか確認
::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   3.63GB    9.50GB 5.87GB 61%          304.4MB         304.4MB            304.4MB             0B                      none

# ボリュームのデータの階層を確認
::> volume show-footprint -volume vol2

      Vserver : SVM
      Volume  : vol2

      Feature                                         Used       Used%
      --------------------------------             ----------    -----
      Volume Data Footprint                            5.87GB       1%
             Footprint in Performance Tier
                                                       5.92GB     100%
             Footprint in FSxFabricpoolObjectStore
                                                      22.05MB       0%
      Volume Guarantee                                     0B       0%
      Flexible Volume Metadata                        61.95MB       0%
      Deduplication Metadata                          34.58MB       0%
           Deduplication                              34.58MB       0%
      Delayed Frees                                   79.39MB       0%

      Total Footprint                                  6.04GB       1%

手動で重複排除をしても、変わりありませんでした。キャパシティプールストレージ上のデータをプライマリストレージに移動してもポストプロセスの重複排除は効かないようです。

元々キャパシティプールストレージにあったファイルを同時に複数コピー

最後に元々キャパシティプールストレージにあったファイルを同時に複数コピーした場合の挙動を確認します。

先の検証で作成した/vol2のファイルを/vol2/copied3にコピーします。/vol2にはtest-file_1とtest-file_2があり、test-file_2はtest-file_1のコピーです。

# コピー先のディレクトリの作成
$ sudo mkdir /mnt/fsxn/vol2/copied3

# コピー
$ sudo cp -p /mnt/fsxn/vol2/test-file_* /mnt/fsxn/vol2/copied3/

# サイズの確認
$ df -hT -t nfs4
Filesystem                                                                   Type  Size  Used Avail Use% Mounted on
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol1 nfs4  9.5G  1.1G  8.5G  11% /mnt/fsxn/vol1
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol2 nfs4  9.5G  6.9G  2.7G  72% /mnt/fsxn/vol2

2GBのファイルをコピーしましたが、1GBほどしか増えていませんね。これは重複排除が効いている予感がします。

ONTAP CLIから確認します。

# ボリュームのStorage Efficiencyで削減されたデータ量を確認
::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   2.82GB    9.50GB 6.68GB 70%          1.50GB          1.50GB             933.2MB             0B                      none

重複排除によって削減されたデータ量が304.4MBから1.50GBになりました。

手動で重複排除をしてみます。

# 手動でポストプロセス重複排除を実行
::> volume efficiency start -volume vol2
The efficiency operation for volume "vol2" of Vserver "SVM" has started.

# 重複排除によりデータ量が削減できているか確認
::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   2.82GB    9.50GB 6.68GB 70%          1.74GB          1.74GB             1.15GB              0B                      none

::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   2.81GB    9.50GB 6.68GB 70%          1.89GB          1.89GB             1.30GB              0B                      none

::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   2.81GB    9.50GB 6.69GB 70%          2.11GB          2.11GB             1.32GB              0B                      none

::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   2.82GB    9.50GB 6.68GB 70%          2.30GB          2.30GB             1.32GB              0B                      none

::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   3.62GB    9.50GB 5.88GB 61%          2.30GB          2.30GB             1.33GB              0B                      none

重複排除によって削減されたデータ量dedupe-space-saved1.50GBから2.30GBになりました。この検証を始める前は304.4MBだったので、2GBほど増えていますね。

一方で重複しているデータ量dedupe-space-shared1.33GBと1GBしか増えていません。

作成したファイルのサイズはいずれも1GBで、重複しているデータ量が1GB。そして、削除されたデータ量が2GBであることから、3つのファイルが重複していると判定されていそうです。2つのファイルをコピーしたタイミングで重複排除されたデータ量が2GBになったため、その内2つは今回作成したファイル分だと推測します。

残りの1ファイルがどれか、怪しいファイルを削除して潰していきます。

重複排除されたデータを保持している場合は、ファイルを削除しても重複排除が1GB減るため、ボリュームの使用量は±0になるはずです。

まずは/mnt/fsxn/vol2/test-file_2を削除してみます。

$ sudo rm /mnt/fsxn/vol2/test-file_2

$ df -hT -t nfs4
Filesystem                                                                   Type  Size  Used Avail Use% Mounted on
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol1 nfs4  9.5G  1.1G  8.5G  11% /mnt/fsxn/vol1
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol2 nfs4  9.5G  4.9G  4.7G  52% /mnt/fsxn/vol2

ファイル削除後に1GBボリューム使用量が減りました。このファイルは重複排除されたデータを保持していないようです。

ONTAP CLIからも確認します。

::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   4.46GB    9.50GB 5.04GB 53%          2.25GB          2.25GB             1.28GB              0B                      none

重複排除量は50MBほど減っていました。メタデータ分が重複していたのでしょうか。

次に/mnt/fsxn/vol2/test-file_1を削除してみます。

$ sudo rm /mnt/fsxn/vol2/test-file_2

$ df -hT -t nfs4
Filesystem                                                                   Type  Size  Used Avail Use% Mounted on
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol1 nfs4  9.5G  1.1G  8.5G  11% /mnt/fsxn/vol1
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol2 nfs4  9.5G  3.9G  5.7G  41% /mnt/fsxn/vol2

ファイル削除後に1GBボリューム使用量が減りました。こちらのファイルも重複排除されたデータを保持していないようです。

ONTAP CLIからも確認します。

::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   5.62GB    9.50GB 3.88GB 40%          2.25GB          2.25GB             1.28GB              0B                      none

こちらは重複排除量は全く変わっていません。

以上のことから、元々キャパシティプールストレージ上にあったファイルとコピーされたファイル間での重複排除も効かないということでしょうか。

次に/mnt/fsxn/vol2/copied/test-file_1を削除します。

$ sudo rm /mnt/fsxn/vol2/copied/test-file_1

$ df -hT -t nfs4
Filesystem                                                                   Type  Size  Used Avail Use% Mounted on
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol1 nfs4  9.5G  1.1G  8.5G  11% /mnt/fsxn/vol1
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol2 nfs4  9.5G  3.7G  5.9G  39% /mnt/fsxn/vol2

ファイル削除後のデータ量の減りが少ないです。ONTAP CLIで重複排除量を確認します。

::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   5.84GB    9.50GB 3.66GB 38%          1.49GB          1.49GB             1.25GB              0B                      none

760MB重複排除量が減っていますね。こちらのファイルと重複していたようです。

こちらのファイルも元々キャパシティプールストレージ上にあったので、「元々キャパシティプールストレージ上にあったファイルとコピーされたファイル間での重複排除も効かない」という仮説は誤りのようです。

最後に/mnt/fsxn/vol2/copied/test-file_2を削除します。

$ sudo rm /mnt/fsxn/vol2/copied/test-file_2

$ df -hT -t nfs4
Filesystem                                                                   Type  Size  Used Avail Use% Mounted on
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol1 nfs4  9.5G  1.1G  8.5G  11% /mnt/fsxn/vol1
svm-0404cd705c847e961.fs-05f72eb8f8d03c709.fsx.us-east-1.amazonaws.com:/vol2 nfs4  9.5G  3.0G  6.6G  31% /mnt/fsxn/vol2

700MBほど削除されました。ONTAP CLIで重複排除量を確認します。

::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   6.60GB    9.50GB 2.90GB 30%          1.23GB          1.23GB             1.22GB              0B                      none

重複排除量が260MBほど減っていますね。

重複排除が効いているデータをキャパシティプールストレージに移動した場合も重複排除を維持するか

最後に、重複排除が効いているデータをキャパシティプールストレージに移動した場合も重複排除を維持するかを確認します。

こちらが動作しないと、せっかくの重複排除がもったいないことになってしまいます。

試しにvol2の階層化ポリシーをNoneからALLに変更します。

# 階層化ポリシーをALLに変更
::> volume modify -volume vol2 -tiering-policy all
Volume modify successful on volume vol2 of Vserver SVM.

# ボリュームのデータの階層を確認
::> volume show-footprint -volume vol2


      Vserver : SVM
      Volume  : vol2

      Feature                                         Used       Used%
      --------------------------------             ----------    -----
      Volume Data Footprint                            2.90GB       0%
             Footprint in Performance Tier
                                                      223.4MB       7%
             Footprint in FSxFabricpoolObjectStore
                                                       2.78GB      93%
      Volume Guarantee                                     0B       0%
      Flexible Volume Metadata                        61.95MB       0%
      Deduplication Metadata                          34.58MB       0%
           Deduplication                              34.58MB       0%
      Delayed Frees                                   96.53MB       0%

      Total Footprint                                  3.09GB       0%

# ボリュームのStorage Efficiencyで削減されたデータ量を確認
::> volume show -volume vol2 -fields tiering-policy, total, used, available, percent-used, sis-space-saved, dedupe-space-saved, dedupe-space-shared, compression-space-saved
vserver volume available total  used   percent-used sis-space-saved dedupe-space-saved dedupe-space-shared compression-space-saved tiering-policy
------- ------ --------- ------ ------ ------------ --------------- ------------------ ------------------- ----------------------- --------------
SVM     vol2   6.60GB    9.50GB 2.90GB 30%          1.23GB          1.23GB             1.22GB              0B                      all

ほとんどのデータがキャパシティプールストレージに移動しましたが、重複排除はしっかりキープされていますね。

階層化ポリシーをALLにしていると重複排除の効果が薄まる

Amazon FSx for NetApp ONTAPのキャパシティプールストレージのデータにはポストプロセス重複排除が効かない事象を紹介しました。

階層化ポリシーをALLにしていると重複排除の効果が薄まるので注意が必要です。

以下記事では移行時にプライマリストレージの空きを確保するために、階層化ポリシーをALLにすることを紹介しました。

今回の検証から重複排除をしっかり効かせたい場合は階層化ポリシーをALLにするのは避けるべきであることが分かりました。

もし、「重複排除を効かせた状態で移行をしたい。ただ、ほとんどのデータをキャパシティプールストレージに持っていきたい」という要望があるのであれば、以下の図のようにFSx for ONTAPを2つ用意する必要があると考えます。

キャパシティプールストレージのデータにはポストプロセス重複排除が効かないので注意しよう構成図

まず、1台目のFSx for ONTAPにファイルを移行して、重複排除が効くまで待機します。その後、重複排除が掛かりきった後に最終的な移行先であるFSx for ONTAPにSnapMirrorで移行します。最後に現行ファイルサーバーと最終的な移行先のFSx for ONTAP間で同期をします。

SnapMirrorは重複排除などのStorage Efficiencyを維持します。

  • SnapMirrorは、温度依存Storage Efficiencyを除き、デスティネーションに別の形式の圧縮が適用されないかぎり、ソースボリュームとデスティネーションボリュームの両方でStorage Efficiencyを維持します。

  • 次の表に、ソースボリュームとデスティネーションボリュームのStorage Efficiencyの組み合わせと転送結果を示します

    • 重複排除(D)-インラインまたはバックグラウンド/ポストプロセス
    • アダプティブ圧縮(CA)-インラインまたはポストプロセスです
    • 二次圧縮(cs)-インラインまたはポストプロセスです
    • 温度依存Storage Efficiency(TSSE)- ONTAP 9.8以降(AFF プラットフォーム)
    • ストレージ効率を伴う論理転送(LRSE)-ソース側のストレージ効率化によるすべての削減効果はSnapMirrorによって維持されます
    • Logical Transfer(LRE)-ソース側のすべてのストレージ効率の節約は転送中に失われますが、デスティネーションで再び実現できます

SnapMirrorのStorage Efficiencyについて理解する

SnapMirrorのStorage Efficiencyについて理解する - NetApp

FSx for ONTAPのボリュームはデフォルトでStorage Efficiency Mode: efficientであるため、TSSE(Temperature Sensitive Storage Efficiency)は有効化されている状態です。

特定のボリュームでTSSEを有効にする必要がある場合は、volume efficiency modifyコマンドでstorage-efficiencyモードをefficiencyに設定します

9.8 より前に作成したボリュームで TSSE を有効にする方法 - NetApp

そのため、1台目のFSx for ONTAPで重複排除が効いた状態で、最終的な移行先のFSx for ONTAPのキャパシティプールストレージに移行することができます。

この時、1台目のFSx for ONTAPのボリュームは階層化ポリシーはAutoもしくはNoneにしておくので、プライマリストレージのサイズはある程度確保する必要があります。ただし、最終的な移行が完了したら1台目のFSx for ONTAPは削除するため、移行期間が短ければそこまで課金は気にならないのではと考えます。

TSSEの説明は以下NetApp公式ドキュメントとSB C&Sさんの技術ブログをご覧ください。

完全に順番が前後していますが、「TSSEはFabricPoolのローカル(FSx for ONTAPでいうところのプライマリストレージ)のみサポートしている」とドキュメントに書いてありました。

Temperature-sensitive storage efficiency

Beginning in ONTAP 9.8, temperature-sensitive storage efficiency (TSSE) is available. TSSE uses temperature scans to determine how hot or cold data is and compresses larger or smaller blocks of data accordingly — making storage efficiency more efficient.

Beginning in ONTAP 9.10.1, TSSE is supported on volumes located on FabricPool-enabled local tiers (storage aggregates). TSSE compression-based storage efficiencies are preserved when tiering to cloud tiers.

(以下機械翻訳)

温度感応型ストレージ効率化

ONTAP 9.8から、温度感応型ストレージ効率化(TSSE)が利用できます。TSSEは、温度スキャンを使用して 温度スキャンを使用して、データの温度と温度を判断し、それに応じてより大きなデータブロックまたはより小さなデータブロックを圧縮します。 より効率的なストレージ効率を実現します。

ONTAP 9.10.1以降、TSSEはFabricPoolが有効なローカル階層にあるボリュームでサポートされています。 (ストレージアグリゲート)にあるボリュームでサポートされます。TSSE圧縮ベースのストレージ効率は、クラウド層に階層化する際にも維持されます。 層化しても、圧縮ベースのストレージ効率は維持されます。

FabricPool best practices | TR-4598

この記事が誰かの助けになれば幸いです。

以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!