我的机器从两个 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 端口。
转向由两个设备组成的可启动镜像池的好方法是什么?请记住,有问题的机器是服务器,无法启动会使多个用户不满意。
递
- 归地
zfs snapshot
根池 - 将此快照
zfs send/recv
到另一个大小相等的记忆棒或卷,配置为单独的根池 - 使这个单独的根池具有复制的数据可引导
- 重新启动系统并从新的根池启动
- 将两个棒作为镜像添加到新池中,从而破坏旧池
- 如果重新编织已完成,请移除初始棒或卷并将其销毁
现在,您有一个包含两个初始棒的正确镜像池。