将ZFS快照应用于非ZFS FS

时间:2018-04-26 18:00:21

标签: linux zfs remote-backup

所以这是一个理论问题和特定问题(临时用例)

  • 两台服务器彼此同步。一个现场,另一个是场外备份。

  • 但是,如果需要,Off-Site应该具有重复和可访问的数据(不存储server1的存档图像)

  • server1和server2通过VPN连接通过互联网连接

  • server1使用ZFS Raid 10

  • server2使用ext4 Raid5(临时设置,将来会被ZFS取代,这个用例会消失)

您是否可以在server1上获取ZFS快照,将其发送到server2并将其解压缩/应用于raid5阵列,实质上是通过增量快照复制server1?

我知道有一些其他工具可以复制文件系统,但我想知道我们是否可以在非zfs fs中使用快照。 (文件让我相信这是不可能的,但我对此知之甚少)

1 个答案:

答案 0 :(得分:1)

是的,有两种理论选择。两者都使用异步复制,因此将具有非零RPO(尽管从您的描述中看起来在某种程度上可以接受):

  1. 使用zfs send在源系统上创建流,然后使用一些工具来理解该流的内容并转换为接收系统上的POSIX文件系统原语。

    < / LI>
  2. 在源系统上拍摄快照,然后使用FS不可知工具从该快照复制内容。

  3. 第一个具有最高性能的选项,因为ZFS知道其池的哪些部分已被更改,只需要查看/发送这些部分。但是,我不知道任何可以实际执行此操作的工具。 (原型已经在ZFS开发人员黑客马拉松上构建,但是这种类型的工具没有大量受众,所以他们从来没有制作过高质量的AFAIK。)

    第二个性能较差,因为它必须检查数据以查看更改的内容,但它具有工具存在的好处 - 尽管您可能需要与它进行一些对抗,但您可以使用rsync为了这。此外,它的RPO可能更高,因为传输数据需要更长的时间。稍微棘手的部分将是:

    • 将其元数据写入源端池的可写部分,因为您要复制的快照将是只读的。 (查看要复制的文件系统根目录中的.zfs/目录,以查找快照的可读副本。)
    • 如果源系统在rsync运行期间死亡,则使故障转移目标不具有中间状态。希望您的目标文件管理器能够在开始rsync运行之前进行快照,以便在运行失败时可以回滚到“最后状态”。否则,希望您的数据/应用程序可以容忍一些不一致。 (或者可能有rsync选项执行此操作,我以前没有使用过。)