Amazon FSx for NetApp ONTAPのデータ圧縮と重複排除が凄いらしい
こんにちは、のんピ(@non____97)です。
まずは、これを見てくれ。
ワークロードの種類 | 圧縮のみ | 重複排除のみ | 圧縮および重複排除 |
---|---|---|---|
汎用ファイル共有 | 50% | 30% | 65% |
仮想サーバーとデスクトップ | 55% | 70% | 70% |
データベース | 65~70% | 0% | 65~70% |
エンジニアリングデータ | 55% | 30% | 75% |
地質地震データ | 40% | 3% | 40% |
これは、Amazon FSx for NetApp ONTAPP(以降、FSx for ONTAP)のFAQで紹介されているFSx for ONTAのデータ圧縮と重複排除による効果です。
とんでもない効果じゃないですか?
しかも、データ圧縮と重複排除を有効にしてもパフォーマンスに悪影響をほとんど与えないという凄い性能をしています。
Q: データの圧縮と重複排除はファイルシステムのパフォーマンスにどのように影響しますか?
A: ほとんどのワークロードでは、圧縮と重複排除を有効にしても、ファイルシステムのパフォーマンスに悪影響を与えることはありません。
実際、ほとんどのワークロードでは、圧縮によって全体的なパフォーマンスが向上します。RAM キャッシュからの高速な読み取りと書き込みを提供するために、FSx for ONTAP ファイルサーバーでは、ファイルサーバーとストレージディスク間で利用できるよりも高いレベルのネットワーク帯域幅がフロントエンドネットワークインターフェイスカード (NIC) に備わっています。データ圧縮によりほとんどのワークロードでファイルサーバーとストレージディスク間で送信されるデータ量が減少するため、データ圧縮を使用すると、ファイルシステム全体のスループットキャパシティーが増加します。ファイルシステムのフロントエンド NIC が飽和状態になると、データ圧縮に関連するスループットキャパシティーの増加は制限されます。データ圧縮を使用する場合のスループットパフォーマンスの詳細については、FSx for ONTAP のドキュメントを参照してください。
ということで、実際にFSx for ONTAPのデータ圧縮と重複排除機能などのStorage Efficiency機能を試してみました。
データ圧縮の仕組み
まず、ONTAPのデータ圧縮の仕組みついて確認します。
ONTAPのデータ圧縮は全てのデータブロックをまとめて圧縮するのではなく、compression groupsというある程度のデータブロックの塊ごとに圧縮します。これにより圧縮/解凍時のパフォーマンスを向上させています。
圧縮のブロックサイズは適応圧縮(Adaptive compression)が8KBで、二次圧縮(Secondary compression)が32KBです。
圧縮の種類 | 影響 / 向いているワークロード |
---|---|
適応圧縮 | ブロックサイズが小さいため解凍時の影響が少ない ランダムリードの量が多く、高いパフォーマンスが要求されるシステムに適している |
二次圧縮 | ブロックサイズが大きいため圧縮効率が高い データがシーケンシャルに書き込まれ、圧縮で多くのデータ量を削減することが要求される場合適している |
参考:
また、圧縮のタイミングはインライン圧縮(Inline compression)とポストプロセス圧縮(Postprocess compression)の2種類あります。
圧縮のタイミング | 影響 |
---|---|
インライン圧縮 | ディスクに書き込む前にメモリ内でデータを圧縮する ボリュームへの書き込みI/Oの量は大幅に削減されるが、書き込み性能は低下する可能性がある |
ポストプロセス圧縮 | ディスクに書き込まれた後のデータを、重複排除と同じスケジュールで圧縮する |
参考 : Compression
より詳細な仕組みを知りたいという方は、以下NetApp公式動画をご覧ください。
圧縮はプライマリストレージ、キャパシティプールストレージどちらも対象です。
キャパシティプールストレージは保存されたデータサイズによって課金されるので、単純に料金節約になりますね。
FSx fo ONTAPの料金は以下をご覧ください。
重複排除の仕組み
続いて、重複排除の仕組みについても確認します。
ONTAPでは重複ブロックを破棄し、単一の共有ブロックへの参照に置き換えることにより、重複排除をおこなっています。重複しているかの判定には各データブロックのフィンガープリントを使用します。処理の流れは以下の通りです。
- 各データブロックについてハッシュ値を計算してフィンガープリントを生成する
- ボリューム内の各データブロックのフィンガープリントを比較する
- フィンガープリントが一致するデータブロックがあった場合、フィンガープリントが一致したデータブロック同士で1バイトずつ比較する
- 1バイト単位で比較した結果も一致した場合、重複したと判断しデータを削除する
参考 : 重複排除の仕組み
また、データ圧縮と重複排除の両方を有効にすると、最初にデータが圧縮されてから重複が排除されます。
より詳細な仕組みを知りたいという方は、以下NetApp公式動画をご覧ください。
やってみた
ボリュームの作成
それではStorage Efficiency機能の検証をやってみます。
まず、ボリュームを作成します。作成するボリュームはStorage Efficiencyを有効にしておきます。
# ボリュームのパラメーターを指定
$ volume_name=data_compression_deduplication_volume
$ junction_path='/fsx'
$ volume_size=102400
create_volume_input=$(cat <<EOM
{
"VolumeType": "ONTAP",
"Name": "$volume_name",
"OntapConfiguration": {
"JunctionPath": "$junction_path",
"SecurityStyle": "UNIX",
"SizeInMegabytes": $volume_size,
"StorageEfficiencyEnabled": true,
"StorageVirtualMachineId": "$svm_id",
"TieringPolicy": {
"CoolingPeriod": 31,
"Name": "AUTO"
}
},
"Tags": [
{
"Key": "Name",
"Value": "$volume_name"
}
]
}
EOM
)
# ボリュームの作成
$ create_volume_output=$(aws fsx create-volume \
--cli-input-json "$create_volume_input"
)
# ボリュームがSVMに追加されたことを確認
$ aws fsx describe-volumes \
--filters Name=storage-virtual-machine-id,Values="$svm_id"
{
"Volumes": [
{
"CreationTime": "2022-06-15T08:54:28+00:00",
"FileSystemId": "fs-0967312eff2f5f5e1",
"Lifecycle": "CREATED",
"Name": "data_compression_deduplication_svm_root",
"OntapConfiguration": {
"FlexCacheEndpointType": "NONE",
"JunctionPath": "/",
"SecurityStyle": "UNIX",
"SizeInMegabytes": 1024,
"StorageEfficiencyEnabled": false,
"StorageVirtualMachineId": "svm-06ec1f61e7d20f4e5",
"StorageVirtualMachineRoot": true,
"TieringPolicy": {
"Name": "NONE"
},
"UUID": "c3adb96f-ec88-11ec-8cdc-17ae5aaf5494",
"OntapVolumeType": "RW"
},
"ResourceARN": "arn:aws:fsx:ap-northeast-1:<AWSアカウントID>:volume/fs-0967312eff2f5f5e1/fsvol-07aaff9bbf81dd2e5",
"VolumeId": "fsvol-07aaff9bbf81dd2e5",
"VolumeType": "ONTAP"
},
{
"CreationTime": "2022-06-16T01:39:27.992000+00:00",
"FileSystemId": "fs-0967312eff2f5f5e1",
"Lifecycle": "CREATED",
"Name": "data_compression_deduplication_volume",
"OntapConfiguration": {
"FlexCacheEndpointType": "NONE",
"JunctionPath": "/fsx",
"SecurityStyle": "UNIX",
"SizeInMegabytes": 102400,
"StorageEfficiencyEnabled": true,
"StorageVirtualMachineId": "svm-06ec1f61e7d20f4e5",
"StorageVirtualMachineRoot": false,
"TieringPolicy": {
"CoolingPeriod": 31,
"Name": "AUTO"
},
"UUID": "35eada07-ed15-11ec-8b1b-41bd7f3524dc",
"OntapVolumeType": "RW"
},
"ResourceARN": "arn:aws:fsx:ap-northeast-1:<AWSアカウントID>:volume/fs-0967312eff2f5f5e1/fsvol-0bd4aa59b25350ff5",
"VolumeId": "fsvol-0bd4aa59b25350ff5",
"VolumeType": "ONTAP"
}
]
}
作成されたボリュームの情報を確認して、データ圧縮や重複排除が有効になっているか確認します。
::> volume efficiency show -volume data_compression_deduplication_volume -instance
Vserver Name: data-compression-deduplication-svm
Volume Name: data_compression_deduplication_volume
Volume Path: /vol/data_compression_deduplication_volume
State: Enabled
Status: Idle
Progress: Idle for 00:01:25
Type: Regular
Schedule: -
Efficiency Policy Name: auto
Blocks Skipped Sharing: 0
Last Operation State: Success
Last Success Operation Begin: Thu Jun 16 01:39:50 2022
Last Success Operation End: Thu Jun 16 01:39:50 2022
Last Operation Begin: Thu Jun 16 01:39:50 2022
Last Operation End: Thu Jun 16 01:39:50 2022
Last Operation Size: 0B
Last Operation Error: -
Changelog Usage: 0%
Logical Data Size: 300KB
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 -: true
Cross Volume Inline Deduplication: false
Cross Volume Background Deduplication: false
Extended Compressed Data: true
確認すべき項目は以下の4項目です。
State
: ポストプロセス重複排除Compression
: ポストプロセスデータ圧縮Inline Compression
: インラインデータ圧縮Inline Dedupe
: インライン重複排除
ポストプロセスデータ圧縮以外は有効になっていますね。
Storage Efficiency機能の効果確認
ゼロデータのバイナリファイル
それではStorage Efficiency機能の効果を確認します。
検証前のボリュームの使用量は300KBです。
::> volume show -volume data_compression_deduplication_volume -fields total, used, available, percent-used, sis-space-saved, sis-space-saved-percent, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared, compression-space-saved, compression-space-saved-percent
vserver volume available total used percent-used sis-space-saved sis-space-saved-percent dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared compression-space-saved compression-space-saved-percent
---------------------------------- ------------------------------------- --------- ----- ----- ------------ --------------- ----------------------- ------------------ -------------------------- ------------------- ----------------------- -------------------------------
data-compression-deduplication-svm data_compression_deduplication_volume 95.00GB 95GB 300KB 0% 0B 0% 0B 0% 0B 0B 0%
Amazon Linux 2のEC2インスタンスからNFSでボリュームをマウントします。
# マウントポイントの作成
$ sudo mkdir /fsx
# マウント
$ sudo mount -t nfs svm-06ec1f61e7d20f4e5.fs-0967312eff2f5f5e1.fsx.ap-northeast-1.amazonaws.com:/fsx /fsx
# ディスク使用量の確認
$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 462M 0 462M 0% /dev
tmpfs tmpfs 470M 0 470M 0% /dev/shm
tmpfs tmpfs 470M 512K 470M 1% /run
tmpfs tmpfs 470M 0 470M 0% /sys/fs/cgroup
/dev/nvme0n1p1 xfs 8.0G 1.7G 6.4G 21% /
tmpfs tmpfs 94M 0 94M 0% /run/user/0
svm-06ec1f61e7d20f4e5.fs-0967312eff2f5f5e1.fsx.ap-northeast-1.amazonaws.com:/fsx nfs4 95G 256K 95G 1% /fsx
それでは10GBのゼロデータのバイナリファイルを作成します。
# 10GBのゼロデータのバイナリファイルを作成
$ sudo dd if=/dev/zero of=/fsx/zero_block_file bs=1M count=10240
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB) copied, 80.4837 s, 133 MB/s
# ディスク使用量の確認
$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 462M 0 462M 0% /dev
tmpfs tmpfs 470M 0 470M 0% /dev/shm
tmpfs tmpfs 470M 456K 470M 1% /run
tmpfs tmpfs 470M 0 470M 0% /sys/fs/cgroup
/dev/nvme0n1p1 xfs 8.0G 1.7G 6.4G 21% /
svm-06ec1f61e7d20f4e5.fs-0967312eff2f5f5e1.fsx.ap-northeast-1.amazonaws.com:/fsx nfs4 95G 41M 95G 1% /fsx
/dev/mapper/3600a09806c574231752b537848654672p1 ext4 2.0G 6.0M 1.8G 1% /lun/part1
/dev/mapper/3600a09806c574231752b537848654672p2 ext4 2.9G 9.1M 2.8G 1% /lun/part2
# マウントポイントのディスク使用量の確認
$ du -sh /fsx/
11G /fsx/
df
で使用量を確認すると41MBですが、du
で使用量を確認すると11GB使われていることを確認できました。Storage Efficiency機能が働いていそうですね。
NetApp ONTAP CLIでも確認してみます。
::> volume show -volume data_compression_deduplication_volume -fields total, used, available, percent-used, sis-space-saved, sis-space-saved-percent, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared, compression-space-saved, compression-space-saved-percent
vserver volume available total used percent-used sis-space-saved sis-space-saved-percent dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared compression-space-saved compression-space-saved-percent
---------------------------------- ------------------------------------- --------- ----- ------- ------------ --------------- ----------------------- ------------------ -------------------------- ------------------- ----------------------- -------------------------------
data-compression-deduplication-svm data_compression_deduplication_volume 94.96GB 95GB 40.92MB 0% 10GB 100% 10GB 100% 0B 0B 0%
重複排除によって10GB削減していることが分かります。
ランダムデータのバイナリファイル
次に、ランダムデータのバイナリファイルで検証します。
ゼロデータのバイナリファイルを削除して、10GBのランダムデータのバイナリファイルを作成します。
# 10GBのゼロデータのバイナリファイルを削除
$ sudo rm -f /fsx/zero_block_file
# 10GBのランダムデータのバイナリファイルを作成
$ sudo dd if=/dev/urandom of=/fsx/random_block_file bs=1M count=10240
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB) copied, 81.9285 s, 131 MB/s
# ディスク使用量の確認
$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 462M 0 462M 0% /dev
tmpfs tmpfs 470M 0 470M 0% /dev/shm
tmpfs tmpfs 470M 456K 470M 1% /run
tmpfs tmpfs 470M 0 470M 0% /sys/fs/cgroup
/dev/nvme0n1p1 xfs 8.0G 1.7G 6.4G 21% /
svm-06ec1f61e7d20f4e5.fs-0967312eff2f5f5e1.fsx.ap-northeast-1.amazonaws.com:/fsx nfs4 95G 11G 85G 11% /fsx
/dev/mapper/3600a09806c574231752b537848654672p1 ext4 2.0G 6.0M 1.8G 1% /lun/part1
/dev/mapper/3600a09806c574231752b537848654672p2 ext4 2.9G 9.1M 2.8G 1% /lun/part2
# マウントポイントのディスク使用量の各院n
$ du -sh /fsx/
11G /fsx/
今回はdf
で使用量を確認しても11GBでした。ランダムデータであるため、ゼロデータの時に動作していたように重複排除が働かなかったと推測します。
NetApp ONTAP CLIでも確認してみます。
::> volume show -volume data_compression_deduplication_volume -fields total, used, available, percent-used, sis-space-saved, sis-space-saved-percent, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared, compression-space-saved, compression-space-saved-percent
vserver volume available total used percent-used sis-space-saved sis-space-saved-percent dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared compression-space-saved compression-space-saved-percent
---------------------------------- ------------------------------------- --------- ----- ------- ------------ --------------- ----------------------- ------------------ -------------------------- ------------------- ----------------------- -------------------------------
data-compression-deduplication-svm data_compression_deduplication_volume 84.86GB 95GB 10.14GB 10% 0B 0% 0B 0% 0B 0B 0%
データ圧縮、重複排除どちらも0%で書き込んだデータ量がそのまま使用量になっていました。
テキストファイル
テキストファイルでも試してみようと思います。
適当なDevelopersIOの記事をダウンロードしてきて、ダウンロードしたファイルをEC2インスタンス上で100個複製します。
# DevelopersIOの記事をダウンロード
$ url=https://dev.classmethod.jp/articles/amazon-fsx-for-netapp-ontap-file-system-maximum-storage-size-is-virtually-unlimited/
$ file_name=amazon-fsx-for-netapp-ontap-file-system-maximum-storage-size-is-virtually-unlimited.html
$ sudo curl "$url" -o /fsx/"$file_name"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 199k 100 199k 0 0 293k 0 --:--:-- --:--:-- --:--:-- 293k
# ダウンロードしたファイルを100個複製
$ for i in `seq 1 100 `; do
sudo cp -p /fsx/"$file_name" /fsx/"$file_name$i"
done;
NetApp ONTAP CLIで確認してみます。
::> volume show -volume data_compression_deduplication_volume -fields total, used, available, percent-used, sis-space-saved, sis-space-saved-percent, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared, compression-space-saved, compression-space-saved-percent
vserver volume available total used percent-used sis-space-saved sis-space-saved-percent dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared compression-space-saved compression-space-saved-percent
---------------------------------- ------------------------------------- --------- ----- ------- ------------ --------------- ----------------------- ------------------ -------------------------- ------------------- ----------------------- -------------------------------
data-compression-deduplication-svm data_compression_deduplication_volume 94.89GB 95GB 114.9MB 0% 11.70MB 9% 11.70MB 9% 188KB 0B 0%
重複排除により11.70MBのデータを削減したようです。
/etc
/etc
でも試してみます。
/etc
をマウントポイント配下に100個複製します。
# /etc をマウントポイント配下に100個複製
$ for i in `seq 1 100 `; do
sudo cp -rp /etc /fsx/etc"$i"
done;
# ディスク使用量の確認
$ df -hT -t nfs4
Filesystem Type Size Used Avail Use% Mounted on
svm-06ec1f61e7d20f4e5.fs-0967312eff2f5f5e1.fsx.ap-northeast-1.amazonaws.com:/fsx nfs4 95G 914M 95G 1% /fsx
# マウントポイントのディスク使用量の確認
$ sudo du -sh /fsx/
3.1G /fsx/
df
で使用量を確認すると914MBですが、du
で使用量を確認すると3.1GB使われていることを確認できました。Storage Efficiency機能が働いていそうですね。
NetApp ONTAP CLIでも確認してみます。
::> volume show -volume data_compression_deduplication_volume -fields total, used, available, percent-used, sis-space-saved, sis-space-saved-percent, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared, compression-space-saved, compression-space-saved-percent
vserver volume available total used percent-used sis-space-saved sis-space-saved-percent dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared compression-space-saved compression-space-saved-percent
---------------------------------- ------------------------------------- --------- ----- ------- ------------ --------------- ----------------------- ------------------ -------------------------- ------------------- ----------------------- -------------------------------
data-compression-deduplication-svm data_compression_deduplication_volume 94.11GB 95GB 913.3MB 0% 2.25GB 72% 2.25GB 72% 21.61MB 0B 0%
重複排除で2.25GBも削減しています。すごい。
Storage Efficiency機能の無効化
Storage Efficiency機能の無効化も試してみます。
AWSマネージメントコンソールやAWS CLIから操作してみても良いですが、なんとなくNetApp ONTAP CLIで無効化してみます。
# 現在の設定を確認
::> volume efficiency show -volume data_compression_deduplication_volume -instance
Vserver Name: data-compression-deduplication-svm
Volume Name: data_compression_deduplication_volume
Volume Path: /vol/data_compression_deduplication_volume
State: Enabled
Status: Idle
Progress: Idle for 01:19:03
Type: Regular
Schedule: -
Efficiency Policy Name: auto
Blocks Skipped Sharing: 0
Last Operation State: Success
Last Success Operation Begin: Thu Jun 16 03:01:22 2022
Last Success Operation End: Thu Jun 16 03:02:59 2022
Last Operation Begin: Thu Jun 16 03:01:22 2022
Last Operation End: Thu Jun 16 03:02:59 2022
Last Operation Size: 10.27GB
Last Operation Error: -
Changelog Usage: 0%
Logical Data Size: 85.33MB
Logical Data Limit: 640TB
Logical Data Percent: 0%
Queued Job: -
Stale Fingerprint Percentage: 11955
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
# Storage Efficiency機能を無効化
::> volume efficiency off -vserver data-compression-deduplication-svm -volume data_compression_deduplication_volume
Efficiency for volume "data_compression_deduplication_volume" of Vserver "data-compression-deduplication-svm" is disabled.
# 無効化されたことを確認
::> volume efficiency show -volume data_compression_deduplication_volume -instance
Vserver Name: data-compression-deduplication-svm
Volume Name: data_compression_deduplication_volume
Volume Path: /vol/data_compression_deduplication_volume
State: Disabled
Status: Idle
Progress: Idle for 01:19:28
Type: Regular
Schedule: -
Efficiency Policy Name: auto
Blocks Skipped Sharing: 0
Last Operation State: Success
Last Success Operation Begin: Thu Jun 16 03:01:22 2022
Last Success Operation End: Thu Jun 16 03:02:59 2022
Last Operation Begin: Thu Jun 16 03:01:22 2022
Last Operation End: Thu Jun 16 03:02:59 2022
Last Operation Size: 10.27GB
Last Operation Error: -
Changelog Usage: 0%
Logical Data Size: 85.36MB
Logical Data Limit: 640TB
Logical Data Percent: 0%
Queued Job: -
Stale Fingerprint Percentage: 11950
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: true
以下全てが無効化されました。
State
: ポストプロセス重複排除Compression
: ポストプロセスデータ圧縮Inline Compression
: インラインデータ圧縮Inline Dedupe
: インライン重複排除
この状態でゼロデータのバイナリファイルを書き込みしてみます。
# 10GBのゼロデータのバイナリファイルを作成
$ sudo dd if=/dev/zero of=/fsx/zero_block_file bs=1M count=10240
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB) copied, 80.3205 s, 134 MB/s
# ディスク使用量の確認
$ df -hT -t nfs4
Filesystem Type Size Used Avail Use% Mounted on
svm-06ec1f61e7d20f4e5.fs-0967312eff2f5f5e1.fsx.ap-northeast-1.amazonaws.com:/fsx nfs4 95G 11G 85G 11% /fsx
# マウントポイントのディスク使用量の確認
$ du -sh /fsx/
11G /fsx/
df
で使用量を確認しても11GBでした。以前は動作しているた重複排除が動いていないようですね。
NetApp ONTAP CLIでも確認してみます。
::> volume show -volume data_compression_deduplication_volume -fields total, used, available, percent-used, sis-space-saved, sis-space-saved-percent, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared, compression-space-saved, compression-space-saved-percent
vserver volume available total used percent-used sis-space-saved sis-space-saved-percent dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared compression-space-saved compression-space-saved-percent
---------------------------------- ------------------------------------- --------- ----- ------- ------------ --------------- ----------------------- ------------------ -------------------------- ------------------- ----------------------- -------------------------------
data-compression-deduplication-svm data_compression_deduplication_volume 84.87GB 95GB 10.12GB 10% 0B 0% 0B 0% 0B 0B 0%
データ圧縮、重複排除どちらも0%で書き込んだデータ量がそのまま使用量になっていました。
Storage Efficiency機能の有効化
最後にStorage Efficiency機能を有効化します。
# Storage Efficiency機能を有効化
::> volume efficiency on -vserver data-compression-deduplication-svm -volume data_compression_deduplication_volume
Efficiency for volume "data_compression_deduplication_volume" of Vserver "data-compression-deduplication-svm" is enabled.
# 有効化されたことを確認
::> volume efficiency show -volume data_compression_deduplication_volume -instance
Vserver Name: data-compression-deduplication-svm
Volume Name: data_compression_deduplication_volume
Volume Path: /vol/data_compression_deduplication_volume
State: Enabled
Status: Idle
Progress: Idle for 01:25:05
Type: Regular
Schedule: -
Efficiency Policy Name: auto
Blocks Skipped Sharing: 0
Last Operation State: Success
Last Success Operation Begin: Thu Jun 16 03:01:22 2022
Last Success Operation End: Thu Jun 16 03:02:59 2022
Last Operation Begin: Thu Jun 16 03:01:22 2022
Last Operation End: Thu Jun 16 03:02:59 2022
Last Operation Size: 10.27GB
Last Operation Error: -
Changelog Usage: 0%
Logical Data Size: 10.12GB
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: false
Inline Dedupe: false
Data Compaction: false
Cross Volume Inline Deduplication: false
Cross Volume Background Deduplication: false
Extended Compressed Data: true
State
のみ有効になりました。これにより、ポストプロセスで重複排除が動作するはずです。
重複排除が動作しているか確認するため、現在のボリュームの使用量を確認してみます。
::> volume show -volume data_compression_deduplication_volume -fields total, used, available, percent-used, sis-space-saved, sis-space-saved-percent, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared, compression-space-saved, compression-space-saved-percent
vserver volume available total used percent-used sis-space-saved sis-space-saved-percent dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared compression-space-saved compression-space-saved-percent
---------------------------------- ------------------------------------- --------- ----- ------- ------------ --------------- ----------------------- ------------------ -------------------------- ------------------- ----------------------- -------------------------------
data-compression-deduplication-svm data_compression_deduplication_volume 84.87GB 95GB 10.12GB 10% 0B 0% 0B 0% 0B 0B 0%
重複排除が0%のままですね。volume efficiency startで保存済みのデータについてStorage Efficiency操作を再実行します。
# 保存済みのデータについてStorage Efficiency操作を再実行
::> volume efficiency start -vserver data-compression-deduplication-svm -volume data_compression_deduplication_volume -scan-old-data true
Warning: This operation scans all of the data in volume "data_compression_deduplication_volume" of Vserver "data-compression-deduplication-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 "data_compression_deduplication_volume" of Vserver "data-compression-deduplication-svm" has started.
# ボリュームの使用量を確認
# 1回目
::> volume show -volume data_compression_deduplication_volume -fields total, used, available, percent-used, sis-space-saved, sis-space-saved-percent, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared, compression-space-saved, compression-space-saved-percent
vserver volume available total used percent-used sis-space-saved sis-space-saved-percent dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared compression-space-saved compression-space-saved-percent
---------------------------------- ------------------------------------- --------- ----- ------ ------------ --------------- ----------------------- ------------------ -------------------------- ------------------- ----------------------- -------------------------------
data-compression-deduplication-svm data_compression_deduplication_volume 87.83GB 95GB 7.17GB 7% 3.14GB 30% 3.14GB 30% 0B 0B 0%
# 2回目
::> volume show -volume data_compression_deduplication_volume -fields total, used, available, percent-used, sis-space-saved, sis-space-saved-percent, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared, compression-space-saved, compression-space-saved-percent
vserver volume available total used percent-used sis-space-saved sis-space-saved-percent dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared compression-space-saved compression-space-saved-percent
---------------------------------- ------------------------------------- --------- ----- ------ ------------ --------------- ----------------------- ------------------ -------------------------- ------------------- ----------------------- -------------------------------
data-compression-deduplication-svm data_compression_deduplication_volume 92.97GB 95GB 2.03GB 2% 8.37GB 80% 8.37GB 80% 0B 0B 0%
# 3回目
::> volume show -volume data_compression_deduplication_volume -fields total, used, available, percent-used, sis-space-saved, sis-space-saved-percent, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared, compression-space-saved, compression-space-saved-percent
vserver volume available total used percent-used sis-space-saved sis-space-saved-percent dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared compression-space-saved compression-space-saved-percent
---------------------------------- ------------------------------------- --------- ----- ------ ------------ --------------- ----------------------- ------------------ -------------------------- ------------------- ----------------------- -------------------------------
data-compression-deduplication-svm data_compression_deduplication_volume 93.22GB 95GB 1.78GB 1% 8.70GB 83% 8.70GB 83% 0B 0B 0%
# 4回目
::> volume show -volume data_compression_deduplication_volume -fields total, used, available, percent-used, sis-space-saved, sis-space-saved-percent, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared, compression-space-saved, compression-space-saved-percent
vserver volume available total used percent-used sis-space-saved sis-space-saved-percent dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared compression-space-saved compression-space-saved-percent
---------------------------------- ------------------------------------- --------- ----- ------ ------------ --------------- ----------------------- ------------------ -------------------------- ------------------- ----------------------- -------------------------------
data-compression-deduplication-svm data_compression_deduplication_volume 93.98GB 95GB 1.02GB 1% 9.36GB 90% 9.36GB 90% 0B 0B 0%
# 5回目
::> volume show -volume data_compression_deduplication_volume -fields total, used, available, percent-used, sis-space-saved, sis-space-saved-percent, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared, compression-space-saved, compression-space-saved-percent
vserver volume available total used percent-used sis-space-saved sis-space-saved-percent dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared compression-space-saved compression-space-saved-percent
---------------------------------- ------------------------------------- --------- ----- ------- ------------ --------------- ----------------------- ------------------ -------------------------- ------------------- ----------------------- -------------------------------
data-compression-deduplication-svm data_compression_deduplication_volume 94.26GB 95GB 756.8MB 0% 9.69GB 93% 9.69GB 93% 0B 0B 0%
# 6回目
::> volume show -volume data_compression_deduplication_volume -fields total, used, available, percent-used, sis-space-saved, sis-space-saved-percent, dedupe-space-saved, dedupe-space-saved-percent, dedupe-space-shared, compression-space-saved, compression-space-saved-percent
vserver volume available total used percent-used sis-space-saved sis-space-saved-percent dedupe-space-saved dedupe-space-saved-percent dedupe-space-shared compression-space-saved compression-space-saved-percent
---------------------------------- ------------------------------------- --------- ----- ------- ------------ --------------- ----------------------- ------------------ -------------------------- ------------------- ----------------------- -------------------------------
data-compression-deduplication-svm data_compression_deduplication_volume 94.87GB 95GB 129.9MB 0% 10GB 99% 10GB 99% 0B 0B 0%
保存済みのデータについてStorage Efficiency操作を再実行すると、ボリュームの使用量を確認する度に徐々に重複排除によって重複データが削除されていく様子が分かりました。
最後にデータ圧縮やインライン重複排除も有効化しましょう
# データ圧縮とインライン重複排除
::> volume efficiency modify -vserver data-compression-deduplication-svm -volume data_compression_deduplication_volume -compression true -inline-compression true -inline-dedupe true
# 現在の設定を確認
::> volume efficiency show -volume data_compression_deduplication_volume -instance
Vserver Name: data-compression-deduplication-svm
Volume Name: data_compression_deduplication_volume
Volume Path: /vol/data_compression_deduplication_volume
State: Enabled
Status: Idle
Progress: Idle for 02:17:01
Type: Regular
Schedule: -
Efficiency Policy Name: auto
Blocks Skipped Sharing: 0
Last Operation State: Success
Last Success Operation Begin: Thu Jun 16 04:40:11 2022
Last Success Operation End: Thu Jun 16 04:40:24 2022
Last Operation Begin: Thu Jun 16 04:40:11 2022
Last Operation End: Thu Jun 16 04:40:24 2022
Last Operation Size: 0B
Last Operation Error: -
Changelog Usage: 0%
Logical Data Size: 10.13GB
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
::>
インラインデータ圧縮(Inline Compression
)とインライン重複排除(Inline Dedupe
)は有効化されましたが、ポストプロセスデータ圧縮(Compression
)は無効のままでした。FSx for ONTAPではポストプロセスデータ圧縮は有効にすることはできないかも知れないですね。
Storage Efficiency機能凄い
FSx for NetApp ONTAPのデータ圧縮と重複排除の力を感じてみました。
ドキュメントで紹介されている通り、簡単にデータ保存量を削減することができるありがたい機能でした。後でStorage Efficiency操作を行うことも可能なので、Storage Efficiency機能を無効でデプロイした後、やっぱり有効化したいといった時も助かりますね。
なお、今回はデータ圧縮と重複排除をメインに触れましたが、Storage Efficiencyを有効化すると、データコンパクションも実行されます。
データコンパクションはONTAPのファイルシステムであるWAFLのブロック単位4KBよりも小さなデータを束ねることにより物理データサイズを減らす技術です。
詳細は以下NetApp公式動画をご覧ください。
この記事が誰かの助けになれば幸いです。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!