私はbtrfsの経験はありませんが、
ファイルの重複を排除できると宣伝されています。
私のアプリケーションでは、ディレクトリツリー全体を複製する必要があります。
私が学んだことから、btrfsは一部のポストスキャンでのみ重複排除され、
すぐには重複排除されません。 cp
を使用するだけでも
重複排除をトリガーしないようです(少なくとも、df
は、コピーされたファイルの
サイズでのディスク使用量の増加を示しています。
データを完全に移動することを避けて、btrfs
に伝えることはできますか? 直接
別の場所でファイルを複製します。基本的にはその
メタデータのクローンを作成しますか?
本質的には、ハードリンクに似ていますが、独立したメタデータを使用します
(権限、mod。時間、…)。
承認された回答:
2つのオプションがあります:
-
cp --reflink=always
-
cp --reflink=auto
ほとんどの場合、2番目の方が最初の方よりも望ましいです。 auto
を使用する これは、ファイルシステムがreflinking(たとえば、ext4またはNFS共有へのコピー)をサポートしていない場合に、真のコピーの実行にフォールバックすることを意味します。最初のオプションでは、完全に失敗してコピーが停止することは間違いありません。
これをスクリプトの一部として使用していて、理想的でない状況に直面しても堅牢である必要がある場合は、auto
より良いサービスを提供します。