ZFS プールをどのくらいの頻度でデフラグする必要がありますか?

ZFS プールをどのくらいの頻度でデフラグする必要がありますか?

私は月に一度 ZFS スクラブを実行しますが、72TB の場合は約 24 時間かかります。スクラブの頻度については、次の情報を参照してください。

  • 非常に混雑するプール、週に1回
  • あまり混雑していないプール、月に1回

またはスクラブを実行し、時間を測定して、それに応じて調整します。

しかし、オンラインでのデフラグはどうでしょうか?

質問

オンラインでのデフラグは、スクラブのように良い方法だと考えられていますか? また、そうであれば、どのくらいの頻度でデフラグを実行すべきですか?

答え1

これは、それほど頻繁に行う必要はありません。主な理由は、ZFS にはオンライン デフラグの概念がないためです。これは、プール データを別のプールにコピーするか、新しいストレージに書き直すことによってのみ可能です。代わりに、zpool の使用率を 70% 未満に保つように努めてください。

答え2

これは古い質問だとはわかっていますが、私と同じように今日これに遭遇した場合、もう少し追加できると感じました。

ZFS にはデフラグの組み込みオプションがありません。ブロックの割り当て方法、ZFS の Copy On Write の方法、およびブロックをロックするスナップショットにより、実際にはデータをデフラグすることはできません。私が知っている唯一の解決策は、同等のサイズのプールを作成し、ZFS でデータを送受信し、古いプールを破棄して、再度プールを作成することです。

また、スクラブが逆になっていることも言及する価値があります。頻繁に使用するデータは、チェックサムが常に検証されますが、静止データは、ブロック/ポインターのチェックサムを検証せずにそのまま放置され、腐敗します。

一般的に、ほとんどの人は、使用頻度の高いデータセットの場合は少なくとも 1 か月はかかります (Web サーバーのようにデータの 90% 以上が使用されることがわかっている場合は、さらに短くなります)。

あまり使用されないデータについては、月に 2 回または週に 1 回のスクラブが推奨されます (ディスクの数、データの量、ドライブの古さなどによって異なります)。結果は人によって異なります。

関連情報