在 Oracle® Solaris 11.2 中管理 ZFS 文件系统

退出打印视图

更新时间: 2014 年 12 月
 
 

接收 ZFS 快照

接收文件系统快照时,请注意以下几点:

  • 将接收快照和文件系统。

  • 将取消挂载文件系统和所有后代文件系统。

  • 文件系统在接收期间不可访问。

  • 要接收的原始文件系统在传输期间必须不存在。

  • 如果文件系统名称已经存在,可以使用 zfs rename 命令重命名文件系统。

例如:

# zfs send tank/gozer@0830 > /bkups/gozer.083006
# zfs receive tank/gozer2@today < /bkups/gozer.083006
# zfs rename tank/gozer tank/gozer.old
# zfs rename tank/gozer2 tank/gozer

如果对目标文件系统进行更改并且要再次以增量方式发送快照,则必须先回滚接收文件系统。

请参考以下示例。首先更改文件系统,如下所示:

sys2# rm newtank/dana/file.1

然后以增量方式发送 tank/dana@snap3。但是,要接收新的增量快照,首先必须回滚接收文件系统。或者,使用 –F 选项可以取消回滚步骤。例如:

sys1# zfs send -i tank/dana@snap2 tank/dana@snap3 | ssh sys2 zfs recv -F newtank/dana

接收增量快照时,目标文件系统必须已存在。

如果对文件系统进行更改,但不回滚接收文件系统以接收新的增量快照,或者不使用 –F 选项,则会显示类似于以下内容的消息:

sys1# zfs send -i tank/dana@snap4 tank/dana@snap5 | ssh sys2 zfs recv newtank/dana
cannot receive: destination has been modified since most recent snapshot

–F 选项成功之前,会执行以下检查:

  • 如果最新快照与增量源不匹配,则回滚和接收都无法完成,并且会返回一条错误消息。

  • 如果意外地提供了与 zfs receive 命令所指定的增量源不匹配的其他文件系统名称,则回滚和接收都无法完成,并且会返回以下错误消息。

    cannot send 'pool/fs@name': not an earlier snapshot from the same fs