ファイルをXFSに移動するときの重複排除

ファイルをXFSに移動するときの重複排除

reflink使用できないファイルシステム(ext4)には、同じブロックを持つ多くのファイルを含むフォルダがあります。

このディレクトリの重複排除中にXFSファイルシステムに移動/コピーしたいと思います。 (つまり、コピーされたファイルのブロックがすでに別のファイルに存在する場合は、実際にコピーしたくないので、2番目のブロック参照ポイントは新しいファイルのブロックを指します。)

もちろん、1つのオプションは、最初にすべてのファイルをXFSファイルシステムにコピーし、そこで実行して後でduperemove重複エントリを削除することです。小さな問題:ターゲットファイルシステムへのランダムアクセスがそれほど高速ではないため、時間がかかることがあります。

したがって、ファイルをコピーするプロセスは、すでにカーネルに、このブロックがすでに存在する他のブロックのコピーであることを知らせる役割を担うと予想されます。

そのようなことは可能ですか?

ベストアンサー1

より多くのスペースを確保するためにコメントを回答に移動します。

コピーする方法があるかどうかはわかりません。私は多くのドライブを同期し、参照リンクファイルのコピーをたくさん作成するので、そうなることを願っています。 Btrfsは重複排除を実行すると仮定する「転送」メカニズムをサポートします。それでも私はほとんどの場合XFSを使います。

私が見た重複排除ユーティリティは遅いです。遅いだけでなく、とても遅い。少なくとも機械式ドライブではほとんど使用できません。その理由は、ジョブが完全に同期しているため、ディスクが完全に破損しているためです。

私はキャッシュを使用するユーティリティを作成したかったです(カーネルパッチが必要な場合があります)。それほど安全ではありませんが、より高速なので、実際に使用できます。私は誰かがこれを行うのを待っていますが、そのようなユーティリティが存在する場合はこれについて聞きたいと思います。

まだ試していない別のオプションは、ドライブを仮想マシンに接続し、そこで重複排除を実行することです。その後、バックエンドで強制的に「安全でない」キャッシュを有効にできます。もちろんこれは安全ではありませんが、より速いことを願っています。

おすすめ記事