ZFS 可以自动镜像单个磁盘池吗?

mar*_*son 6 raid zfs mirror raid1

我正准备向我的家庭网络添加另一台服务器。我目前有一个存储驱动器。我想添加另一个驱动器来镜像第一个驱动器,但在几周到一个月内无法购买第二个驱动器。我想在镜像存储驱动器上使用 ZFS。我是否可以开始将数据复制到单个存储驱动器,然后添加第二个驱动器,然后让 ZFS 将第一个驱动器的数据复制到镜像中的第二个驱动器?

Zor*_*che 7

是的,添加第二个驱动器来镜像现有的虚拟设备非常简单。

假设您像这样创建了池。我使用 zfs-d1 等 GPT 分区标签来使名称变得美观/可靠。

zpool create zfs1 -o ashift=12 -m none /dev/disk/by-partlabel/zfs-d1

  pool: zfs1
 state: ONLINE
config:

    NAME         STATE     READ WRITE CKSUM
    zfs1         ONLINE       0     0     0
      zfs-d1     ONLINE       0     0     0
Run Code Online (Sandbox Code Playgroud)

添加另一个驱动器到 zfs-d1 的镜像很容易。我们将为新标签指定 zfs-d2

zpool attach zfs1 /dev/disk/by-partlabel/zfs-d1 /dev/disk/by-partlabel/zfs-d2
Run Code Online (Sandbox Code Playgroud)

我相信这应该会产生一个看起来像这样的池。您需要等待一段时间才能重新同步,但实际上不需要做太多事情。

  pool: zfs1
 state: ONLINE
config:

    NAME         STATE     READ WRITE CKSUM
    zfs1         ONLINE       0     0     0
      mirror-0   ONLINE       0     0     0
        zfs-d1   ONLINE       0     0     0
        zfs-d2   ONLINE       0     0     0
Run Code Online (Sandbox Code Playgroud)

无论如何,我强烈建议您在虚拟机中快速尝试一下。构建一个虚拟机,添加一些小型虚拟磁盘,然后尝试将它们添加到池中。在虚拟机中进行测试可以让你有一个地方进行尝试,如果你搞砸了,你也不会损失什么。

  • @marcerickson至于上述答案,请务必**附加**新设备,而不是添加它。 (2认同)