我的方案是两台服务器采用热备用设置,使用 ZFS 托管虚拟机,并使用 ZFS 增量快照将虚拟机的更改从一台服务器复制到另一台服务器,使用类似零定期。目前不确定这个基准是什么,可能比较慢,比如每隔几分钟。
我想知道两个快照之间的增量差异实际上是什么:ZFS 是写时复制的,覆盖文件中完全相同的数据总是会导致新数据被复制到可用存储中并链接到更改的文件中。据我所知,如果这种情况在两个快照之间多次发生,那么这两个快照之间的差异实际上只是对相同数据的最近更改。因此,在一个包含 50 GB 数据的文件中,如果写入 3 次完全相同的 20 GB 数据,那么这 3 次更改前后快照之间的差异量恰好是最近写入的 20 GB 数据。前 2 次 20 GB 的写入完全丢失了,当然没关系,因为否则我需要创建额外的快照。
因此,尽管实际上随着时间的推移有 60 GB 的更改被写入磁盘,但两个快照之间的差异只有 20 GB,并且只有这些快照是通过网络使用send
和快照传输的。receive
这是正确的还是我错了?
答案1
我从一些邮件列表中得到了 Stefan Ring 的答复,因此,在作者尝试将其发布在这里并获得他的荣誉之前,我将发布它以供参考:
它的行为与您预期的一样。增量发送的大小与已发送快照的“已写入”属性的总和大致相同。您可以使用 zfs send -n 轻松检查大小估计。根据我的经验,这个估计正是最终的大小。
http://list.zfsonlinux.org/pipermail/zfs-discuss/2017-August/029033.html