【问题标题】:Applying ZFS snapshot to a non-ZFS FS将 ZFS 快照应用到非 ZFS FS
【发布时间】:2018-10-07 12:41:33
【问题描述】:

所以这是一个理论和具体(临时用例)的问题

  • 两台服务器要相互同步。一个是现场备份,另一个是场外备份。

  • 但是,如果需要,场外应复制和访问数据(不存储服务器 1 的存档图像)

  • server1 和 server2 通过 VPN 连接通过 Internet 连接

  • server1 使用 ZFS Raid 10

  • server2 使用 ext4 Raid5(临时设置,未来将被 ZFS 替换,此用例消失)

您能否在 server1 上拍摄 ZFS 快照,将其发送到 server2 并将其解包/应用到 raid5 阵列,本质上是通过增量快照复制 server1?

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

【问题讨论】:

    标签: linux zfs remote-backup


    【解决方案1】:

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

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

    2. 在源系统上拍摄快照,然后使用与 FS 无关的工具从该快照复制内容。

    第一个具有性能最高的选项的好处,因为 ZFS 知道其池的哪些部分已更改,并且只需要查看/发送这些部分。但是,我不知道有什么工具可以真正做到这一点。 (原型已在 ZFS 开发者黑客马拉松上构建,但这类工具的受众并不多,因此它们从未被制作成生产质量的 AFAIK。)

    第二个性能较差,因为它必须检查数据以查看发生了什么变化,但它具有工具存在的好处 - 尽管您可能需要与它进行一些斗争,但您可以使用 rsync .此外,它的 RPO 可能会更高,因为传输数据需要更长的时间。稍微棘手的部分是:

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

    【讨论】:

      猜你喜欢
      • 2016-06-08
      • 2019-01-24
      • 2020-05-31
      • 1970-01-01
      • 2017-12-08
      • 2018-09-30
      • 1970-01-01
      • 2018-01-28
      • 2022-12-04
      相关资源
      最近更新 更多