我继承了一台运行 Debian 的机器,该机器具有 RAID 5 阵列。我安装了操作系统推荐的一堆更新(大约 1700 个),然后重新启动后,RAID 阵列未安装。设备 /dev/md0 现在不存在,我不知道为什么。
/etc/mdadm/mdadm.conf 包含:
DEVICE partitions
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=138b0c65:20644731:39e394c4:192c7227
我尝试执行 mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1 。这将创建一个设备 md0,但它被列为“已降级”,并且列表中的最后一个驱动器由于某种原因被视为“备用”。我强烈怀疑,虽然我不能确定,但 RAID-5 阵列中涉及的是 sdb、sdc 和 sdd
我尝试了所有 6 种可能的设备排序,但最后一种总是备用的。我还尝试了 --spare-devices=0 --force,成功将所有三个驱动器以“干净”状态放入阵列,但我无法实际安装设备 md0。当我在 /dev/md0 上运行“file -s”时,我得到了 GLS_BINARY_LSB_FIRST,这似乎毫无帮助。
我没有理由相信任何设备有故障;所有这些似乎都源于最近的升级。我该如何恢复旧的 RAID 5 阵列?我的 --create 机制是否以某种方式弄乱了它?请注意,我从未成功安装过 md0。
请指教。我知道这是个老生常谈的故事,但如果我不能让这个东西复活,我就会遇到大麻烦,所以任何能提供帮助的人都会得到我永远的感激,无论这值得多少。
答案1
我想您可能在不久的将来会测试您的恢复程序。
在现有数组上运行--create
是……好吧,“误导”大概就是我能给出的最贴切的说法了。这只是为了创建一个新数组——你肯定不想这样做。
您想要的是--assemble
,或者更好的是,找出系统决定在启动时停止自动组装阵列的原因。然而,您一直在到处创建阵列这一事实可能已经扼杀了阵列再次工作的任何机会。
顺便说一句,手册页中给出了新创建的 RAID5 阵列以降级模式启动的原因mdadm
(这应该是首先要阅读的内容):
创建 RAID5 阵列时,mdadm 将自动创建具有额外备用驱动器的降级阵列。这是因为将备用驱动器构建到降级阵列中通常比在未降级但不干净的阵列上重新同步奇偶校验更快。可以使用 --force 选项覆盖此功能。
至于诊断为什么您的 RAID 阵列在升级后无法组装,看一眼dmesg
可能就正确了;不幸的是,这些数据可能要么 (a) 消失了,要么 (b) 至少现在完全无关紧要了。
忍者mdadm
可能能够让一切恢复正常,如果他们能够访问有问题的机器,并且有足够的时间和耐心,但在你的情况下,我建议只是承担停机时间并从备份中恢复。
答案2
你所创造的阴谋很可能把它搞乱了。
--create
初始化一个新的大批。
你自找的--assemble
。
--create 是否给出了您忽略的任何警告?
请将输出粘贴到mdadm -E
每个分区上。它可能会恢复。