ZFS快照发送增量

我一直很高兴地以脚本的方式与CentOS和ZFSonLinux一起使用zfsnap ,就像在网站上描述的一样,但遇到了问题。 不幸的是备份在几天前没有运行,现在我陷入了一个奇怪的情况。 我在我的主ZFS服务器的备份ZFS服务器上有一系列增量备份,而在主服务器上有一些较新的快照。 不幸的是,由于在主服务器上丢失了备份并自动销毁了较早的快照,两个系统之间不再需要执行增量发送。 即备份有:

backuppool/x@snap2 backuppool/x@snap3 backuppool/x@snap4 

在主要的zfs服务器上有:

 mainpool/x@snap6 mainpool/x@snap7 mainpool/x@snap8 

有什么方法让他们再次同步,或者我必须销毁备份上的所有内容,并执行完整(没有足够的空间进行两次完整备份)? 我试过在主服务器上指定一个引用远程备份服务器上的snap4名称的发送,但由于主服务器没有snap4,所以无法计算增量。 我也尝试将snap4从备份发送到主服务器,但似乎唯一的办法就是把它做成完整的发送(没有足够的空间),我需要清除现有的快照。 如果您的快照不匹配,删除所有的备份历史logging似乎非常不方便,在这种情况下是否有解决scheme?

由于您的设置中没有共同的基准快照,您将无法再执行增量zfs send 。 您将需要销毁backuppool的数据集:

 zfs destroy -r backuppool/x 

并重新发送最近的快照到backuppool

 zfs send mainpool/x@6 | [transfer magic] | zfs recv backuppool/x 

如果您的快照不匹配,删除所有的备份历史logging似乎非常不方便,在这种情况下是否有解决scheme?

“解决scheme”只是不删除源快照,除非这些快照已被validation传输成功(即显示在远程的zfs list -tall输出)。 我不知道zfsnap是否会支持你,但即使不支持,你也可以使用shell脚本执行这种检查,然后让zfsnap删除任何东西。