我在 4 个 HDD 的 zfspool 上安装了 Debian 系统(例如两个 raid1 的 raid10 - raid0)。显示为 2 个镜像(mirror0 和mirror1)的集合,每个镜像都有 2 个 HDD。
其中一个磁盘出现故障。由于该服务器中没有更多的空闲插槽,我通过命令将其分离:
zpool detach poolname diskname
然后将其物理拔下,然后插入新的。现在 zpool 看起来像这样:
zpool status rpool
pool: rpool
state: ONLINE
scan: scrub repaired 52K in 0 days 08:33:06 with 0 errors on Sun May 9 08:57:09 2021
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ata-TOSHIBA_HDWQ140_104EK2MQFAYG-part3 ONLINE 0 0 0
ata-TOSHIBA_HDWQ140_1042K0ECFAYG-part3 ONLINE 0 0 0
ata-TOSHIBA_HDWQ140_104EK2MLFAYG ONLINE 0 0 0
看来已经不是raid10了 我无法用新磁盘更换有故障的磁盘:
zpool replace rpool 4504484537486819887 /dev/disk/by-id/newdisk_id
cannot replace 4504484537486819887 with /dev/disk/by-id/newdisk_id: no such device in pool
将新磁盘添加到池并恢复池配置的安全方法是什么?
当您的
detach
磁盘出现故障时,顶级 vdev 不再是镜像。所以你不能用replace
旧盘。相反,您需要attach
新的具有类似以下内容的内容:zpool attach rpool ata-TOSHIBA_HDWQ140_104EK2MLFAYG <newdisk>
与往常一样,在运行任何操作之前,请确保拥有当前的备份。