是否可以让 rsync 尊重来自 btrfs 等文件系统的写时复制文件?
我一直在尝试一些测试,将 1GB 文件和该文件的写时复制克隆(因此它们之间共享 1GB)从一个 btrfs fs 同步到另一个 btrfs fs,但 rsync 将发送 2GB 数据,当我btrfs filesystem du
对收到的数据进行同步时文件有 0 字节共享。所以 rsync 只是在接收端创建一个新副本而不是 CoW 副本。
答案1
目前不支持此功能rsync
。
但是,您可以通过以下几种方式解决此问题:
- 让 rsync 传输这两个文件,然后使用 btrfs 重复数据删除工具在远程端对它们进行重复数据删除。
- 将文件放置在它们自己的 btrfs 子卷上,并
btrfs send
使用btrfs receive
. rsync
一个文件,创建它的克隆,然后使用--checksum --inplace --no-whole-file
强制 rsync 修补第二个文件,仅包含与第一个文件的差异。