周日我不得不打开文件服务器的外壳来更换一个故障风扇。我没有发现其中一条 SATA 电缆没有正确连接。重启后我做的第一件事就是检查 RAID 状态,它立即显示缺少一个驱动器。到目前为止,该设备尚未使用(但它已安装,所以我不能 100% 确定系统没有做任何事情)。我停止了 md0 并重新插入电缆:
mdadm --stop /dev/md0
poweroff
再次重新启动后,我检查了已移除的驱动器:
mdadm --examine /dev/sdd1
...
Checksum : 3276bc1d - correct
Events : 315782
Layout : left-symmetric
Chunk Size : 32K
Number Major Minor RaidDevice State
this 0 8 49 0 active sync /dev/sdd1
0 0 8 49 0 active sync /dev/sdd1
1 1 8 65 1 active sync /dev/sde1
2 2 8 33 2 active sync /dev/sdc1
3 3 8 17 3 active sync /dev/sdb1
我有点惊讶它显示为活动状态(即使之前 mdadm 表示该设备已从阵列中删除)并且其校验和正常。我使用以下命令重新创建了 RAID:
mdadm --assemble /dev/md0 --scan
该命令mdadm --detail /dev/md0
显示所有驱动器都在运行,系统处于“干净”状态。我安装了设备 md0,然后出现了问题。我想处理发生所有情况之前我一直在使用的最后一个文件,但它不在那里。在另一个地方,我实际上错过了我正在工作的目录中的所有文件。据我所知,大多数几天前的文件都完好无损,但一些较新的文件丢失了。
现在最大的问题是:您的建议是什么?有没有办法获取这些数据?我考虑过移除之前由 mdadm 标记的驱动器,并使用另一个空 HDD 重建阵列。
我发现重新组装后,“损坏”的驱动器位于 RAID 中的另一个位置(之前它列在第 3 位,然后列在第 4 位)。这会影响重建过程吗?如果是,如何正确重新组装阵列?我确信 SATA 电缆仍以相同的顺序连接到控制器。
附言:请不要给出“从备份恢复”之类的建议。我在周日晚上进行备份,而这件事发生在下午晚些时候,所以备份对我来说并不是真正的选择。
pss 我在 Unix&Linux 上问过这个问题,但过去两天都没有得到答案。我变得非常焦虑。如果你们有人正在阅读其他论坛,我很抱歉重复了这个问题。
答案1
也许它能对某些人有所帮助。
我之前没有写过,但所有四个分区的事件数量相同
mdadm --examine /dev/sd[a-z]1 | egrep 'Event|/dev/sd`'
mdadm: No md superblock detected on /dev/sda1.
Events : 315786
Events : 315786
Events : 315784
Events : 315786
尽管如此,在阅读了一些资料之后,我还是决定移除“故障”的驱动器并重新组装我的 md0 设备。
mdadm --manage --set-faulty /dev/md0 /dev/sdd1
mdadm /dev/md1 --stop
mdadm --assemble /dev/md0 /dev/sd[bce]1 --force
mdadm --manage /dev/md0 --add /dev/sdd1
请不要问我为什么它有效。对我来说重要的是我恢复了所有文件(文件分配表显示恰当的目录内容。所有缺失的文件都在那里。