让 rsync 尊重 btrfs 写时复制文件

让 rsync 尊重 btrfs 写时复制文件

是否可以让 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 修补第二个文件,仅包含与第一个文件的差异。

相关内容