私はいくつかのファイル/ディレクトリのカウコピーを作成しようとしていますが、私が知っているいくつかの方法のうち、すべてが最適ではないようです。
たとえば、btrfsではcp --reflink=auto
、ファイルのカウコピーをすばやく生成することができます。
私が試したもの:
- シンボリックリンク:ダメ。ファイル名が変更され、リンクが壊れています。
- ハードリンク:より良いが、まだ良くない。1つのファイルを変更すると、もう1つのファイルも変更されますが、必ずしも他のファイルを変更する必要はありません。
- データセットのスナップショットを作成してから、スナップショットのクローンを作成します。これは機能しますが、うまくいきません。多くの場合、データセット全体のコピー、または別のデータセットのように動作するコピーを探していません。次に、クローン/スナップショット/オリジナルの間に親子関係があります。これは、理解できないように、不可能ではないにしても困難です。
zfs send/receive
、および有効な重複除去を使用して、データセットを新しいデータセットに複製します:これにより、クローンを使用する親/子関係が回避されますが、不必要に別のデータセットが作成され、ファイルを100%読み取らなければならず、書き込まれるのではなく、再び参照されるブロック。- ファイルをコピーしてdedupに任せる:これは機能しますが、ファイルを100%読み取り、書き込みではなくブロックを再度参照する必要があるため、時間がかかります。
zfsの送受信と物理的なコピーまたはrsyncの速度は、ほとんどのものが圧縮されて保存され、読み取り中に解凍する必要があるため、さらに悪化します。
私のすべての研究で、btrfsの--reflinkのシンプルさに似たものをリモートで見つけることができませんでした。
だから、ZFSで牛のコピーを作成する方法はありますか?または、「物理的に」コピーしてdedupにその仕事をさせることが唯一の本当の選択肢ですか?