为什么接收相同的快照两次会出现错误而不是空操作?

为什么接收相同的快照两次会出现错误而不是空操作?

我希望您是否将同一个快照复制到与发送相同的目的地两次收到 zfs 就会知道它已经完成了。

我还感到失望的是,我可以将单个快照发送到数据集,但不能发送递归快照,而无需发送每个快照。

Zfs 似乎存在身份危机。

答案1

我假设 ZFS 不会跟踪快照的发送位置或接收位置。因此,接收看起来已经存在的快照必定是一个错误,因为同名快照不一定与现在正在接收的快照有任何关系(它可能是从其他地方接收的,或者可能已在本地修改) )。

您可以使用-R( --replicate) 和发送快照-I snapshot,如下所示

zfs send -R -I @earlier tank@latest

这将发送快照与快照tank之间数据集的所有快照,包括后代文件系统。@earlier@latest

zfs-send(8)

-R--replicate
生成一个复制流包,它将复制指定的文件系统以及所有后代文件系统,直到指定的快照。收到后,所有属性、快照、后代文件系统和克隆都会被保留。

如果-i-I标志与 标志结合使用-R,则会生成增量复制流。属性的当前值以及当前快照和文件系统名称在接收流时设置。 [...]

-I snapshot
生成一个流包,用于发送从第一个快照到第二个快照的所有中间快照。例如,-I @a fs@d类似于-i @a fs@b; -i @b fs@c; -i @c fs@d.增量源可以通过选项来指定-i

相关内容