zfs 重複排除を有効にすると効果があるかどうかを知りたかったので、コマンドを実行しました
zdb -S tank
が、出力を解釈するには助けが必要であることがわかりました。
Simulated DDT histogram:
bucket allocated referenced
______ ______________________________ ______________________________
refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE
------ ------ ----- ----- ----- ------ ----- ----- -----
1 49.2M 6.15T 6.15T 6.14T 49.2M 6.15T 6.15T 6.14T
2 352K 42.0G 42.0G 42.0G 725K 86.3G 86.3G 86.4G
4 7.99K 913M 913M 916M 37.7K 4.20G 4.20G 4.21G
8 1.43K 161M 161M 161M 14.6K 1.58G 1.58G 1.58G
16 623 67.1M 67.1M 67.4M 12.2K 1.32G 1.32G 1.33G
32 73 7.37M 7.37M 7.43M 2.65K 268M 268M 270M
64 717 4.23M 4.23M 7.46M 48.3K 392M 392M 611M
128 4 257K 257K 266K 689 40.9M 40.9M 42.6M
256 2 128K 128K 133K 802 57.8M 57.8M 59.3M
512 2 1K 1K 10.7K 1.37K 703K 703K 7.32M
4K 1 128K 128K 128K 7.31K 935M 935M 934M
16K 1 512B 512B 5.33K 20.0K 10.0M 10.0M 107M
64K 1 128K 128K 128K 93.0K 11.6G 11.6G 11.6G
512K 1 128K 128K 128K 712K 89.0G 89.0G 88.9G
Total 49.6M 6.19T 6.19T 6.18T 50.9M 6.34T 6.34T 6.33T
dedup = 1.02, compress = 1.00, copies = 1.00, dedup * compress / copies = 1.03
前もって感謝します。
答え1
このヒストグラムで注目すべき点が 2 つあります。1 番目で最も明白なのは、dedup
ヒストグラムの末尾にある式です。単純な数学なので、これについて言うことはあまりありません。あなたの場合、重複排除によって節約できるスペースは 2% だけです。また、圧縮を使用していないため (圧縮は、LZ4 のような効率的なアルゴリズムでは CPU 時間よりも I/O のコストの方がはるかに高いため、スペースを節約し、パフォーマンスを向上させるため、最初に使用する必要があります)、重複排除を有効にした後の限界利益は 2 ~ 3% です。
重複排除は、有効なスペース節約が 2.0 より大きく、ストレージ サブシステムが非常に高価で、重複排除を処理するためだけにメモリと CPU を浪費しても問題ない場合に価値を持ち始めます。ここでは、エンタープライズ NVMe プールを例に説明します。
しかし、これにはどんな代償が伴うのでしょうか?
これが私が言及した 2 番目の点です。最初の影響は RAM にあります。重複排除テーブルを RAM に保存する必要があります。それを保持する RAM がない場合、システムはクラッシュし、プールをマウントできなくなります。ZFS の新しいバージョン (OpenZFS 2.0 など) にはいくつかの進歩がありますが、この点に関して何か変更があったかどうかはわかりません。
これを念頭に置いて、最初の列の最後の行にあるブロックの合計数を取得します。49.6M
各重複排除テーブルには 320 バイトが必要なので、ブロック数と特定の重複排除テーブルに必要なスペースを掛け合わせるだけで、必要な RAM の量がわかります。
49.6M * 320 bytes = 15.872MB ~ 15.5GB
つまり、ほとんど無駄になる16ギガバイト重複排除に対応していないデータの重複排除のためだけに、システム RAM の 16 GB が消費されます。この 16 GB は、プールを高速化する ARC などのシステムの重要な部分から削除されます。
したがって、いいえ。重複排除は次の場合を除いて価値がありません。
- 非常に高価なストレージサブシステムがある
- データの重複を簡単に排除できます