ZFS 发送/接收完整快照

ZFS 发送/接收完整快照

我一直通过将服务器 A 中的 ZFS 池备份到服务器 B(备份服务器)zfs send/recv,并使用每日增量快照。

由于硬件问题,服务器 A 中的 ZFS 池现在已经消失 - 我想尽快恢复它。

目前我的服务器B中的快照列表如下:

zfs49/tank@2021Nov301705   368G      -     3.52T  -
zfs49/tank@2021Dec011705  65.2G      -     3.52T  -
zfs49/tank@2021Dec021705  66.4G      -     3.52T  -
zfs49/tank@2021Dec031705     0B      -     3.52T  -

zfs49/tank@2021Dec031705最新的在哪里。

我想将整个池(包括快照)发送回服务器 A,但我不确定要运行的具体命令。

问题:在服务器 B 上,这样做是否zfs send zfs49/tank@2021Dec031705 | ssh <Server A host ip> zfs recv tank足以接收服务器 A 上的完整 ZFS 池 + 所有快照(这样我就可以继续增量发送/接收备份)?

答案1

是的,只要zfs49/tank在服务器 A 上不存在,那就可以。

我只会使用几个选项,特别-R是在send复制整个池时:

zfs send -R zfs49/tank@2021Dec031705 \
  | ssh ServerA zfs recv -vusF dest_pool/tank

在这里,感谢recv -s,您现在可以使用以下方法恢复中断的传输:

zfs send -v -t "the-token" \
  | ssh ServerA zfs recv -vusF dest_pool/tank

令牌在接收方的位置:

zfs get receive_resume_token dest_pool/tank

相关内容