我有一个 Linux mdadm RAID 10 阵列,由 6 个(SATA)磁盘组成,配置了 n2 个副本。
拔出一个磁盘时,另一个镜像对中的另一个磁盘发生故障。留给我的是:
$ cat /proc/mdstat
md2 : active raid10 sdb1[1] sdd1[5] sdc1[3] sdf1[2]
2929412352 blocks 64K chunks 2 near-copies [6/4] [_UUU_U]
我想更换第五个磁盘并使用以下命令重建分区表:sfdisk -d /dev/sdf | sfdisk /dev/sde
但是,当我使用 添加新磁盘时mdadm -a /dev/md1 /dev/sde1
,mdadm 开始重建 RaidDevice 0
$ mdadm -D /dev/md2
...
Number Major Minor RaidDevice State
6 8 66 0 spare rebuilding /dev/sde1
1 8 2 1 active sync /dev/sdb1
2 8 17 2 active sync /dev/sdc1
3 8 33 3 active sync /dev/sdd1
4 0 0 4 removed
5 8 49 5 active sync /dev/sdf1
这不是一个大问题,我只需要将磁盘 5 物理移动到磁盘 1 插槽,以便在查看盒子时保持一些理智。
我的问题是,有没有办法指示 mdadm 使用新磁盘替换特定的 RaidDevice?我浏览了手册页,但找不到合适的选项。
答案1
即使在硬件 RAID 控制器上,我也没有看到这样的选项。您只能为某些 RAID 添加热备盘,而不能为指定磁盘添加热备盘。也许,有些控制器可以这样做,但不是全部......
据我所知,mdadm 也没有这样的选项。但你可以尝试这样的技巧:转储超级块(元数据)目标故障磁盘(sde?)并将其上传到备用磁盘。也许 --re-add 选项可以满足你的要求,但我不确定。
来自 man: --re-add 重新添加先前从阵列中删除的设备。如果设备上的元数据报告它是阵列的成员,并且它使用的插槽仍然空置,则该设备将重新添加到阵列中的相同位置。