データ複製解除
データの重複コピーを削除するかどうかを制御します。複製解除は、プール全体に対してブロックベースで同期式に実行されます。プロジェクト単位またはシェア単位で有効化できます。有効にするには、プロジェクトまたはシェアの一般プロパティーの画面で「データ複製解除」チェックボックスにチェックマークを付けます。ステータスダッシュボードの使用状況の領域に、複製解除の比率が表示されます。
複製解除が有効になっているときに書き込まれたデータは、複製解除テーブルに入力され、データのチェックサムによってインデックスが付けられます。複製解除では、暗号として強力な SHA-256 チェックサムの使用が強制されます。後続の書き込みでは複製データが識別され、既存のコピーだけがディスク上に保持されます。複製解除は、同じサイズのブロック間で、同じレコードサイズで書き込まれたデータに対してのみ実行できます。最適な結果を得るには、そのデータを使用しているアプリケーションと同じレコードサイズを設定してください。ストリーミングワークロードの場合は、大きいレコードサイズを使用してください。
データに複製が含まれていない場合に「データ複製解除」を有効にすると、オーバーヘッド (CPU 負荷のかかるチェックサム、ディスク上の複製解除テーブルのエントリ) が増加し、利点は何もありません。データに複製が含まれている場合は、「データ複製解除」を有効にすると、あるブロックのコピーは何度発生しても保存されるのは 1 つだけであるため、領域を節約できます。チェックサムの計算によって負荷が増加すること、および複製解除テーブルのメタデータに対するアクセスと管理が必要になることから、複製解除は必然的にパフォーマンスに影響を与えます。
複製解除は、シェアの計算されたサイズには影響しませんが、プールに使用される領域の量には影響を与えます。たとえば、2 つのシェアに同じ 1G バイトのファイルが含まれている場合、それぞれ 1G バイトのサイズで表示されますが、プールの合計は 1G バイトだけで、複製解除の比率は 2x と報告されます。
パフォーマンスに関する警告: 複製解除では、その性質から、ブロックに対して書き込みまたは解放が行われたときに複製解除テーブルの変更が必要になります。複製解除テーブルが DRAM に収まらない場合は、書き込みや解放により、それまでは発生していなかったランダムな読み取りアクティビティーが大量に発生する可能性があります。結果として、複製解除を有効にするとパフォーマンスに重大な影響を与えることがあります。さらに、特にシェアやスナップショットを削除する場合などに、複製解除を有効にしたことによるパフォーマンス低下がプール全体に現れることがあります。一般に、シェアに高い比率で複製データが含まれていることと、複製データとそれを参照するためのテーブルが DRAM に十分に収まることがわかっている場合以外は、複製解除を有効にすることは推奨されません。複製解除がパフォーマンスに悪影響を与えているどうかを調べるには、Chapter 8, ZFSSA の設定を有効にしてから、Oracle ZFS Storage Appliance Analytics ガイド
のAnalyticsを使用して「DMU オブジェクトタイプ別の ZFS DMU 操作内訳」を測定し、維持された DDT 操作 (データ複製解除テーブル操作) が ZFS 操作よりも高い比率で発生しているかどうかを確認します。発生している場合は、ファイル入出力よりも複製解除テーブルのためにより多くの入出力が使用されています。