[Amazon FSx for NetApp ONTAP] バックアップストレージ上で重複排除効果は維持されるのか確認してみた

バックアップストレージ上でも重複排除は維持できる。なお、リストアすると失われる模様
2024.01.22

バックアップからリストアしたボリュームは重複排除を維持できていなかったけどバックアップストレージ上では維持できているのか

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

皆さんはAmazon FSx for NetApp ONTAP(以降FSxN)のバックアップストレージ上で重複排除を維持できているのかしたいなと思ったことはありますか? 私はあります。

以下記事でバックアップからリストアしたボリュームは重複排除を維持できないことを確認しました。

では、バックアップストレージ上では重複排除を維持できているのでしょうか。

また、バックアップストレージ上で追加の重複排除がかかるのかも気になるところです。圧縮については以下記事でバックアップストレージ上で圧縮がかかることを確認しています。

実際に確認してみました。

いきなりまとめ

  • バックアップストレージ上では重複排除を維持できる
  • バックアップストレージ上で追加の重複排除は行われない

やってみた

ファイルの書き込み

ボリュームを2つ用意して、それぞれにファイルを書き込みます。

用意したボリュームはそれぞれ以下の役割を持たせています。

  • vol_dedupe : ファイル書き込み後ポストプロセス重複排除を効かせる
  • vol_no_dedupe : ポストプロセス重複排除を実行しない (Storage Efficiencyは無効化)

ファイル書き込み後vol_dedupeのみStorage Efficiencyを実行して重複排除を効かせます。

そして両ボリュームのバックアップを取得して、Cost Explorerから各バックアップのバックアップストレージサイズを確認します。

デフォルトではどちらのボリュームもStorage Efficiencyを無効にしています。

::*> volume efficiency show -volume vol_* -fields state, policy, storage-efficiency-mode, inline-compression, inline-dedupe, compression, data-compaction, auto-adaptive-compression-savings, auto-adaptive-compression-existing-volume, using-auto-adaptive-compression
vserver volume     state    policy compression inline-compression storage-efficiency-mode inline-dedupe data-compaction auto-adaptive-compression-savings using-auto-adaptive-compression auto-adaptive-compression-existing-volume
------- ---------- -------- ------ ----------- ------------------ ----------------------- ------------- --------------- --------------------------------- ------------------------------- -----------------------------------------
svm     vol_dedupe Disabled auto   false       false              efficient               false         false           true                              false                           false
svm     vol_no_dedupe
                   Disabled auto   false       false              efficient               false         false           true                              false                           false
2 entries were displayed.

::*> volume efficiency show -volume vol_* -fields changelog-usage, changelog-size, logical-data-size, state, progress, last-op-size, last-op-begin, last-op-end
vserver volume     state    progress          last-op-begin            last-op-end              last-op-size changelog-usage changelog-size logical-data-size
------- ---------- -------- ----------------- ------------------------ ------------------------ ------------ --------------- -------------- -----------------
svm     vol_dedupe Disabled Idle for 00:02:20 Fri Jan 19 14:06:46 2024 Fri Jan 19 14:06:46 2024 0B           0%              0B             308KB
svm     vol_no_dedupe
                   Disabled Idle for 00:01:17 Fri Jan 19 14:07:49 2024 Fri Jan 19 14:07:49 2024 0B           0%              0B             308KB
2 entries were displayed.

::*> volume show -volume vol_* -fields available, filesystem-size, total, used, percent-used, performance-tier-inactive-user-data, performance-tier-inactive-user-data-percent, size, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared,logical-used, logical-used-percent,logical-used-by-afs, logical-available, physical-used, physical-used-percent
vserver volume     size available filesystem-size total   used  percent-used dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared physical-used physical-used-percent logical-used logical-used-percent logical-available logical-used-by-afs performance-tier-inactive-user-data performance-tier-inactive-user-data-percent
------- ---------- ---- --------- --------------- ------- ----- ------------ ------------------ -------------------------- ------------------- ------------- --------------------- ------------ -------------------- ----------------- ------------------- ----------------------------------- -------------------------------------------
svm     vol_dedupe 64GB 60.80GB   64GB            60.80GB 308KB 0%           0B                 0%                         0B                  308KB         0%                    308KB        0%                   -                 308KB               0B                                  0%
svm     vol_no_dedupe
                   64GB 60.80GB   64GB            60.80GB 308KB 0%           0B                 0%                         0B                  308KB         0%                    308KB        0%                   -                 308KB               0B                                  0%
2 entries were displayed.

NFSクライアントにボリュームをマウントします。

$ sudo mkdir -p /mnt/fsxn/vol_dedupe
$ sudo mkdir -p /mnt/fsxn/vol_no_dedupe

$ sudo mount -t nfs svm-00c8ca007b057c211.fs-03a05859b5824160c.fsx.us-east-1.amazonaws.com:/vol_dedupe /mnt/fsxn/vol_dedupe
$ sudo mount -t nfs svm-00c8ca007b057c211.fs-03a05859b5824160c.fsx.us-east-1.amazonaws.com:/vol_no_dedupe /mnt/fsxn/vol_no_dedupe

$ df -hT -t nfs4
Filesystem                                                                            Type  Size  Used Avail Use% Mounted on
svm-00c8ca007b057c211.fs-03a05859b5824160c.fsx.us-east-1.amazonaws.com:/vol1          nfs4   61G   49G   13G  80% /mnt/fsxn/vol1
svm-00c8ca007b057c211.fs-03a05859b5824160c.fsx.us-east-1.amazonaws.com:/vol_dedupe    nfs4   61G  320K   61G   1% /mnt/fsxn/vol_dedupe
svm-00c8ca007b057c211.fs-03a05859b5824160c.fsx.us-east-1.amazonaws.com:/vol_no_dedupe nfs4   61G  320K   61G   1% /mnt/fsxn/vol_no_dedupe

/vol1は別の検証で使っているものなので無視してください。

ファイルを書き込みます。書き込むファイルは/dev/urandomから生成した4GiBのランダムなバイナリデータです。ファイル作成後、これを7つコピーして計32GiBになるようにします。

/vol_dedupe への書き込み

$ sudo dd if=/dev/urandom of=/mnt/fsxn/vol_dedupe/random_pattern_binary_block_4GiB bs=1M count=4096
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 28.192 s, 152 MB/s

$ for i in {1..7}; do
  sudo cp /mnt/fsxn/vol_dedupe/random_pattern_binary_block_4GiB "/mnt/fsxn/vol_dedupe/random_pattern_binary_block_4GiB_copy_${i}"
done

$ ls -l /mnt/fsxn/vol_dedupe
total 33686624
-rw-r--r--. 1 root root 4294967296 Jan 19 14:13 random_pattern_binary_block_4GiB
-rw-r--r--. 1 root root 4294967296 Jan 19 14:14 random_pattern_binary_block_4GiB_copy_1
-rw-r--r--. 1 root root 4294967296 Jan 19 14:15 random_pattern_binary_block_4GiB_copy_2
-rw-r--r--. 1 root root 4294967296 Jan 19 14:15 random_pattern_binary_block_4GiB_copy_3
-rw-r--r--. 1 root root 4294967296 Jan 19 14:16 random_pattern_binary_block_4GiB_copy_4
-rw-r--r--. 1 root root 4294967296 Jan 19 14:16 random_pattern_binary_block_4GiB_copy_5
-rw-r--r--. 1 root root 4294967296 Jan 19 14:16 random_pattern_binary_block_4GiB_copy_6
-rw-r--r--. 1 root root 4294967296 Jan 19 14:17 random_pattern_binary_block_4GiB_copy_7

/vol_no_dedupe への書き込み

$ sudo dd if=/dev/urandom of=/mnt/fsxn/vol_no_dedupe/random_pattern_binary_block_4GiB bs=1M count=4096
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 28.0723 s, 153 MB/s

$ for i in {1..7}; do
  sudo cp /mnt/fsxn/vol_no_dedupe/random_pattern_binary_block_4GiB "/mnt/fsxn/vol_no_dedupe/random_pattern_binary_block_4GiB_copy_${i}"
done

$ df -hT -t nfs4
Filesystem                                                                            Type  Size  Used Avail Use% Mounted on
svm-00c8ca007b057c211.fs-03a05859b5824160c.fsx.us-east-1.amazonaws.com:/vol1          nfs4   61G   49G   13G  80% /mnt/fsxn/vol1
svm-00c8ca007b057c211.fs-03a05859b5824160c.fsx.us-east-1.amazonaws.com:/vol_dedupe    nfs4   61G   33G   29G  53% /mnt/fsxn/vol_dedupe
svm-00c8ca007b057c211.fs-03a05859b5824160c.fsx.us-east-1.amazonaws.com:/vol_no_dedupe nfs4   61G   33G   29G  53% /mnt/fsxn/vol_no_dedupe

ファイル書き込み後のStorage Efficiency、ボリュームの情報は以下のとおりです。

::*> volume efficiency show -volume vol_* -fields changelog-usage, changelog-size, logical-data-size, state, progress, last-op-size, last-op-begin, last-op-end
vserver volume     state    progress          last-op-begin            last-op-end              last-op-size changelog-usage changelog-size logical-data-size
------- ---------- -------- ----------------- ------------------------ ------------------------ ------------ --------------- -------------- -----------------
svm     vol_dedupe Disabled Idle for 00:16:32 Fri Jan 19 14:06:46 2024 Fri Jan 19 14:06:46 2024 0B           0%              0B             32.14GB
svm     vol_no_dedupe
                   Disabled Idle for 00:15:29 Fri Jan 19 14:07:49 2024 Fri Jan 19 14:07:49 2024 0B           0%              0B             32.14GB
2 entries were displayed.

::*> volume show -volume vol_* -fields available, filesystem-size, total, used, percent-used, performance-tier-inactive-user-data, performance-tier-inactive-user-data-percent, size, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared,logical-used, logical-used-percent,logical-used-by-afs, logical-available, physical-used, physical-used-percent
vserver volume     size available filesystem-size total   used    percent-used dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared physical-used physical-used-percent logical-used logical-used-percent logical-available logical-used-by-afs performance-tier-inactive-user-data performance-tier-inactive-user-data-percent
------- ---------- ---- --------- --------------- ------- ------- ------------ ------------------ -------------------------- ------------------- ------------- --------------------- ------------ -------------------- ----------------- ------------------- ----------------------------------- -------------------------------------------
svm     vol_dedupe 64GB 28.66GB   64GB            60.80GB 32.14GB 52%          0B                 0%                         0B                  32.14GB       50%                   32.14GB      53%                  -                 32.14GB             0B                                  0%
svm     vol_no_dedupe
                   64GB 28.66GB   64GB            60.80GB 32.14GB 52%          0B                 0%                         0B                  32.14GB       50%                   32.14GB      53%                  -                 32.14GB             0B                                  0%
2 entries were displayed.

Storage Efficiencyは無効にしているので重複排除は聞いていませんね。

Storage Efficiencyの実行

Storage Efficiencyを実行して重複排除を効かせます。

/vol_dedupeのみStorage Efficiencyを有効にします。

::*> volume efficiency on -volume vol_dedupe
Efficiency for volume "vol_dedupe" of Vserver "svm" is enabled.

::*> volume efficiency show -volume vol_* -fields changelog-usage, changelog-size, logical-data-size, state, progress, last-op-size, last-op-begin, last-op-end
vserver volume     state   progress          last-op-begin            last-op-end              last-op-size changelog-usage changelog-size logical-data-size
------- ---------- ------- ----------------- ------------------------ ------------------------ ------------ --------------- -------------- -----------------
svm     vol_dedupe Enabled Idle for 00:17:07 Fri Jan 19 14:06:46 2024 Fri Jan 19 14:06:46 2024 0B           0%              0B             32.14GB
svm     vol_no_dedupe
                   Disabled
                           Idle for 00:16:04 Fri Jan 19 14:07:49 2024 Fri Jan 19 14:07:49 2024 0B           0%              0B             32.14GB
2 entries were displayed.

/vol_dedupeでStorage Efficiencyを実行します。

::*> volume efficiency start -volume vol_dedupe -scan-old-data

Warning: This operation scans all of the data in volume "vol_dedupe" of Vserver "svm". It might take a significant time, and degrade performance during that time.
Do you want to continue? {y|n}: y
The efficiency operation for volume "vol_dedupe" of Vserver "svm" has started.

::*> volume efficiency show -volume vol_* -fields changelog-usage, changelog-size, logical-data-size, state, progress, last-op-size, last-op-begin, last-op-end
vserver volume     state   progress           last-op-begin            last-op-end              last-op-size changelog-usage changelog-size logical-data-size
------- ---------- ------- ------------------ ------------------------ ------------------------ ------------ --------------- -------------- -----------------
svm     vol_dedupe Enabled 2555904 KB Scanned Fri Jan 19 14:06:46 2024 Fri Jan 19 14:06:46 2024 0B           0%              0B             32.14GB
svm     vol_no_dedupe
                   Disabled
                           Idle for 00:17:09  Fri Jan 19 14:07:49 2024 Fri Jan 19 14:07:49 2024 0B           0%              0B             32.14GB
2 entries were displayed.

::*> volume efficiency show -volume vol_* -fields changelog-usage, changelog-size, logical-data-size, state, progress, last-op-size, last-op-begin, last-op-end
vserver volume     state   progress               last-op-begin            last-op-end              last-op-size changelog-usage changelog-size logical-data-size
------- ---------- ------- ---------------------- ------------------------ ------------------------ ------------ --------------- -------------- -----------------
svm     vol_dedupe Enabled 21177268 KB (72%) Done Fri Jan 19 14:06:46 2024 Fri Jan 19 14:06:46 2024 0B           0%              0B             32.14GB
svm     vol_no_dedupe
                   Disabled
                           Idle for 00:22:40      Fri Jan 19 14:07:49 2024 Fri Jan 19 14:07:49 2024 0B           0%              0B             32.14GB
2 entries were displayed.

::*> volume efficiency show -volume vol_* -fields changelog-usage, changelog-size, logical-data-size, state, progress, last-op-size, last-op-begin, last-op-end
vserver volume     state   progress               last-op-begin            last-op-end              last-op-size changelog-usage changelog-size logical-data-size
------- ---------- ------- ---------------------- ------------------------ ------------------------ ------------ --------------- -------------- -----------------
svm     vol_dedupe Enabled 25248308 KB (85%) Done Fri Jan 19 14:06:46 2024 Fri Jan 19 14:06:46 2024 0B           0%              0B             32.14GB
svm     vol_no_dedupe
                   Disabled
                           Idle for 00:23:19      Fri Jan 19 14:07:49 2024 Fri Jan 19 14:07:49 2024 0B           0%              0B             32.14GB
2 entries were displayed.

::*> volume efficiency show -volume vol_* -fields changelog-usage, changelog-size, logical-data-size, state, progress, last-op-size, last-op-begin, last-op-end
vserver volume     state   progress          last-op-begin            last-op-end              last-op-size changelog-usage changelog-size logical-data-size
------- ---------- ------- ----------------- ------------------------ ------------------------ ------------ --------------- -------------- -----------------
svm     vol_dedupe Enabled Idle for 00:00:17 Fri Jan 19 14:24:51 2024 Fri Jan 19 14:31:48 2024 32GB         0%              0B             32.16GB
svm     vol_no_dedupe
                   Disabled
                           Idle for 00:24:16 Fri Jan 19 14:07:49 2024 Fri Jan 19 14:07:49 2024 0B           0%              0B             32.14GB
2 entries were displayed.

::*> volume show -volume vol_* -fields available, filesystem-size, total, used, percent-used, performance-tier-inactive-user-data, performance-tier-inactive-user-data-percent, size, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared,logical-used, logical-used-percent,logical-used-by-afs, logical-available, physical-used, physical-used-percent
vserver volume     size available filesystem-size total   used   percent-used dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared physical-used physical-used-percent logical-used logical-used-percent logical-available logical-used-by-afs performance-tier-inactive-user-data performance-tier-inactive-user-data-percent
------- ---------- ---- --------- --------------- ------- ------ ------------ ------------------ -------------------------- ------------------- ------------- --------------------- ------------ -------------------- ----------------- ------------------- ----------------------------------- -------------------------------------------
svm     vol_dedupe 64GB 56.64GB   64GB            60.80GB 4.16GB 6%           28GB               87%                        4GB                 4.16GB        7%                    32.16GB      53%                  -                 32.16GB             0B                                  0%
svm     vol_no_dedupe
                   64GB 28.66GB   64GB            60.80GB 32.14GB
                                                                 52%          0B                 0%                         0B                  32.14GB       50%                   32.14GB      53%                  -                 32.14GB             0B                                  0%
2 entries were displayed.

7分ほどで完了しました。1つ4GiBのファイルのコピーを7つ用意したので、28GiB重複排除されていますね。

バックアップ

バックアップを取得します。

取得したバックアップをは以下のとおりです。

取得したバックアップ

どちらのバックアップも2024/1/19 23:40ごろに取得完了しました。

バックアップ取得後、各ボリュームにSnapshotが作成されていることを確認しました。

c::*> snapshot show -volume vol_*
                                                                 ---Blocks---
Vserver  Volume   Snapshot                                  Size Total% Used%
-------- -------- ------------------------------------- -------- ------ -----
svm      vol_dedupe
                  backup-08c50c18e72e9ffda                 144KB     0%    0%
         vol_no_dedupe
                  backup-01f70915a6b0e65d8                 180KB     0%    0%
2 entries were displayed.

バックアップストレージサイズの確認

Cost Explorerから取得したバックアップのバックアップストレージサイズを確認します。

現在の時刻は2024/1/22 10:01です。

202401221001_バックアップストレージサイズ

青いグラフが重複排除が効いていないバックアップで、ピンクのグラフが重複排除が効いているバックアップです。

2024/1/20の重複排除が効いていないバックアップのサイズは1.05GBです。バックアップストレージサイズに対する請求は月の平均サイズになります。そのため、このバックアップのバックアップストレージのサイズは1.05GB * 31日 = 32.55GBとなります。

書き込んだファイルサイズは32GiBです。そのため、バックアップストレージ上で追加の重複排除はかかっていなさそうです。

また、重複排除が効いているバックアップのサイズは0.13GBです。これは重複排除が効いていないバックアップのサイズの約1/8です。1つ4GiBのファイルのコピーを7つ用意したので論理サイズは32GiBですが、重複排除後の物理データサイズは1/8の4GiBとなります。そのため、バックアップストレージ上で重複排除を維持できていることが分かります。

バックアップストレージ上でも重複排除は維持できる。なお、リストアすると失われる模様

Amazon FSx for NetApp ONTAPのバックアップにおいて、バックアップストレージ上で重複排除効果は維持されるのか確認してみました。

結論としてはバックアップストレージ上でも重複排除効果は維持されました。

他記事の検証結果もまとめると、FSxNのバックアップストレージのサイズ周りの仕様は以下であると考えます。

  1. バックアップストレージ上で重複排除は維持される
  2. バックアップストレージ上で追加の重複排除は行われない
  3. バックアップストレージ上で圧縮がかかる
  4. バックアップからリストアすると重複排除や圧縮によるデータ削減効果は失われる

4つ目の「バックアップからリストアすると重複排除や圧縮によるデータ削減効果は失われる」については早急になんとかして欲しいですね。バックアップからリストアすることを考えるとSnapMirrorの方が個人的には使いやすいと思います。

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

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