zfs收到了什么?

当我阅读man zfs for zfs receive我看到

  -F Force a rollback of the file system to the most recent snap- shot before performing the receive operation. If receiving an incremental replication stream (for example, one generated by "zfs send -R -Fi -iI"), destroy snapshots and file systems that do not exist on the sending side. 

但我不太明白-F实际上会做什么。

如果我的zfs receive tank/pool然后收到的快照回滚到目标端文件系统,这是我想要的。

我想在哪种情况下使用-F

如果在收到目标数据集之后,-F开关就会派上用场。 一旦你做了任何改变(包括做一个无辜的目录列表,因为这会改变一次),它不再是在初始传输后的状态。 尝试从另一方的zfs send -i tank/dataset@old tank/dataset@new创build的增量数据stream运行一个普通的zfs receive将导致错误。 在这种情况下,您在接收端有两个选项:

  • 您可以使用zfs rollback手动恢复到上一个​​快照
  • 或者将-F开关提供给zfs receive让它自动处理

当然,这可能是一个破坏性的操作,所以你必须在使用之前了解它在做什么。 但是,如果您所做的只是将快照复制到没有其他数据写入的非活动“备份”目标,则可能会错过,所以应该是安全的。

其他人是ZFS的专家,如果你还没有看到,我会简单的发表。

在发生回滚和接收启动之间修改文件系统时,可能需要使用此选项。

来自: Solaris – 新zfds收到-F选项