web-dev-qa-db-ja.com

ZFS:圧縮アルゴリズムの変更後に既存のファイルを再圧縮します

2011年にlzjb compressionを使用して作成されたプールがあります。数年後、アップグレードによって圧縮をlz4に設定できるようになりました。配列のコンテンツの(スペースによる)少なくとも20%が2013年より前に作成されたと推定します。つまり、lzjbを使用してまだ圧縮されています。

これを修正して(一部の)スペースを取り戻すためのいくつかのオプションを考えることができます。

  1. 新しいプールにバックアップして復元します。一時的なコピーを保持するための十分な冗長ストレージがないため、実際には実用的ではありません。復元では、プールを数時間オフラインにする必要もあります。

  2. 2013より古いタイムスタンプを持つファイルを再コピーするスクリプトを記述します。特に、スペースやその他の特殊文字が詰まり、元の名前を書き換えてしまう場合は、潜在的に危険です。

現在の圧縮アルゴリズムを使用してZFSにレガシーブロックを再圧縮させる方法はありますか?一種のスクラブのようですが、圧縮を癒します。

関連する質問:各タイプの圧縮アルゴリズムの使用状況を確認する方法はありますか? zdbは、個々のアルゴリズムに分解するのではなく、全体的な圧縮統計を表示するだけです。

14
rowan194

データ(完全または部分的)を再コピーするか、zfsがデータを新しいプールまたはZFSファイルシステムに送信/受信する必要があります。

他のオプションはありません。

14
ewwhite