修复配置错误的镜像 ZFS 池



我的机器从两个 USB 设备的镜像 zfs 池启动。游泳池曾经看起来像这样:

sudo zpool status
pool: freenas-boot
state: ONLINE
scan: resilvered 891M in 15h19m with 0 errors on Wed Mar 29 03:29:55 2017
config:
NAME        STATE     READ WRITE CKSUM
freenas-boot  ONLINE     0     0     0
mirror-0  ONLINE       0     0     0
da0p2   ONLINE       0     0     3
da1p2   ONLINE       0     0     0
errors: No known data errors

我试图用校验和错误替换介质,但通过一系列错误使用的命令,我最终"添加"了新驱动器而不是"附加"它。池现在是两个设备的串联,不再镜像:

NAME        STATE     READ WRITE CKSUM
freenas-boot  ONLINE     0     0     0
da0p2     ONLINE       0     0     0
da1p2     ONLINE       0     0     0

我了解到我无法再从池中删除该设备,而且显而易见

zpool attach -f pool device new_device

命令不起作用。

我计划在(足够大的)第三个和第四个驱动器上镜像所有数据,然后删除连接的第一个和第二个驱动器。但是,镜像似乎仅适用于设备。我需要四个设备进行镜像配置,这是不利的,因为机器外壳内只有两个 USB 端口。

转向由两个设备组成的可启动镜像池的好方法是什么?请记住,有问题的机器是服务器,无法启动会使多个用户不满意。

  1. 归地zfs snapshot根池
  2. 将此快照zfs send/recv到另一个大小相等的记忆棒或卷,配置为单独的根池
  3. 使这个单独的根池具有复制的数据可引导
  4. 重新启动系统并从新的根池启动
  5. 将两个棒作为镜像添加到新池中,从而破坏旧池
  6. 如果重新编织已完成,请移除初始棒或卷并将其销毁

现在,您有一个包含两个初始棒的正确镜像池。

最新更新