启动 RAID1 阵列中存在故障设备的系统

启动 RAID1 阵列中存在故障设备的系统

我有一个 Linux 系统,其中设置了 3 个软件 RAID1 设备,每个设备由两个相同磁盘上的两个相同分区组成。最近,一个磁盘上的一个非根分区开始出现 DMA 错误;因此我将其标记为失败。当我重新启动机器时,它成功启动了内核,但几乎立即开始打印 DMA 错误(可能与失败的分区有关)。将有问题的分区标记为失败不应该允许机器无错误地启动吗?如果不行,我该如何让系统启动?我尝试修改机器启动映像中的 mdadm.conf 文件,以不在组成它的 RAID 设备的设备列表中列出有问题的分区,但这似乎没有任何效果。我还应该注意,如果我从救援 CD 启动并从剩余的良好分区手动组装设备,我可以访问降级的 RAID 设备。

答案1

听起来你正在使用Linux 软件 RAID,并且您已经使用分区而不是整个磁盘设置了 RAID 设备。

在这种情况下,分割不会帮助你:失败驾驶(硬件组件)是导致错误的原因。每当操作系统尝试访问该硬件组件时,您就会遇到问题,而且由于驱动器通常不会在一个地方出现问题,因此问题会蔓延到所有分区,直到驱动器最终放弃并死机。


我的建议是备份你的数据现在,使用救援 CD(显然可以按照您的问题操作),然后更换故障的硬件组件,并根据需要重建 RAID 阵列。

从长远来看,您需要以与硬件 RAID 相同的方式构建软件 RAID(使用整个驱动器,不是分区)- 如果需要,跨物理驱动器创建 RAID,然后对虚拟 (RAID) 设备进行分区。这允许您在即将发生故障时驾驶(硬件组件),或者如果有必要的话,将其移除并允许系统在没有它的情况下启动,这会产生一组已知且明确定义的副作用,而不是因为驱动器不断升级的故障级别导致越来越多的分区 RAID 出现问题而感到惊讶……

如果你在生产中信任软件 RAID,你也应该运行smartd来自 smartmontools 套件并将其配置为在驱动器开始出现问题时提醒您......

相关内容