我的服务器的一个驱动器出现故障,因此我从所有三个相关阵列中移除了故障驱动器,更换了驱动器,然后将新驱动器添加到阵列中。其中两个阵列完美运行。第三个将驱动器作为备用驱动器添加回来,mdadm
详细信息中有一个奇怪的“已删除”条目。
我都试过了
mdadm /dev/md2 --remove failed
和
mdadm /dev/md2 --remove detached
正如这里和这里所建议的那样,两者都没有抱怨,但也没有任何效果。
有谁知道我如何摆脱该条目并正确添加驱动器?(理想情况下不重新同步第三次,我已经不得不做两次,这需要几个小时。但如果这就是它所需要的,那就是它所需要的。)新驱动器是/dev/sda
,相关分区是/dev/sda3
.
这是数组的详细信息:
# mdadm --detail /dev/md2 /dev/md2: 版本:0.90 创建时间 : Wed Oct 26 12:27:49 2011 突袭等级:raid1 阵列大小:729952192(696.14 GiB 747.47 GB) 使用的开发大小:729952192(696.14 GiB 747.47 GB) 突袭设备:2 设备总数:2 首选未成年人:2 持久性:超级块是持久的 更新时间:2013年11月12日星期二17:48:53 状态:干净,退化 有源设备:1 工作装置:2 失败的设备:0 备用设备:1 UUID:2fdbf68c:d572d905:776c2c25:004bd7b2(本地到主机等等) 事件:0.34665 编号 主要次要 RaidDevice 状态 0 0 0 0 已移除 1 8 19 1 主动同步 /dev/sdb3 2 8 3 - 备用 /dev/sda3
如果它是相关的,它是一个 64 位服务器。它通常运行 Ubuntu,但现在我在数据中心的“救援”操作系统中,即 Debian 7 (wheezy)。上次我在 Ubuntu 中时,“已删除”条目就在那里(目前它不会从磁盘启动),所以我认为这不是 Ubuntu/Debian 冲突(当然,它们非常接近有关的)。
更新:
在本地机器上对测试设备进行了广泛的测试后,我很明显地从mdadm
这个阵列中得到了异常行为。例如,/dev/sda3
再次从数组中删除后,我这样做了:
mdadm /dev/md2 --grow --force --raid-devices=1
这摆脱了“已移除”的设备,只剩下/dev/sdb3
. 然后我 nuked /dev/sda3
(给它写了一个文件系统,所以它不再有 raid fs),然后:
mdadm /dev/md2 --grow --raid-devices=2
...这给了我一个在插槽 0 中并在插槽 1 中“删除”的数组,/dev/sdb3
正如您所期望的那样。然后
mdadm /dev/md2 --add /dev/sda3
...添加它 -再次作为备用。(又是 3.5 小时的下水道。)
所以有了阵列中重建的备用,鉴于mdadm
手册页说
RAID 设备更改
...
当设备数量增加时,任何存在的热备件都将立即激活。
...我将阵列增加到三个设备,以尝试激活“备用”:
mdadm /dev/md2 --grow --raid-devices=3
我得到了什么?两个“移除”设备和备用设备。然而,当我使用测试数组执行此操作时,我没有得到这种行为。
所以我/dev/sda3
再次 nuked,用它来创建一个全新的数组,并将数据从旧数组复制到新数组:
rsync -r -t -v --exclude 'lost+found' --progress /mnt/oldarray/* /mnt/newarray
当然,这需要几个小时。希望完成后,我可以完全停止旧数组 nuke/dev/sdb3
并将其添加到新数组中。希望它不会被添加为备用!