如何避免在启动时重建软 RAID

如何避免在启动时重建软 RAID

我的家庭服务器出现了一个严重问题:我的 RAID5 阵列上有一个 LVM。由于内存不足,我决定扩大 RAID 阵列(后来扩大 PV+VG+LV)。到目前为止一切顺利。

我关闭了系统并物理安装了附加硬盘。检测到后,我关闭了服务器机箱并离开了(我不住在服务器所在的地方;距离大约 200 公里)。现在我通过 SSH(从远处)登录到服务器并执行以下操作:我在新设备上创建了分区标签和匹配的分区,并将该分区作为热备用添加到阵列mdadm /dev/md1 --add /dev/sde1md1。第二步,我想扩大阵列mdadm --grow /dev/md1 -n 4(从 3 个设备到 4 个设备)。阵列开始重建。

过了一会儿,我遇到了问题:阵列坏了。事实上,我看到输出中的dmesg一些行提到同步过程已停止,并且设备(/dev/md1)没有响应并被阻止了 120 秒以上。从那时起,对阵列的每次访问(通过安装的 LV)都将被阻止。在网上搜索后,我发现这可能是由于重建时的值太小stripe_cache_size(实际值为 256)造成的。

现在的主要问题是 PV 包含一个 LV,即我的根文件系统!因此,一旦 RAID 阻塞,我就什么也做不了。我甚至无法打开任何编辑器或使用,cat /proc/mdstat因为这些命令需要访问程序所在的根文件系统。现在我寻找修复系统的可能性。我只看到两个解决方案:

  • 我再次亲自前往那里并从启动 CD 重新启动,确保缓存较大并让重建过程运行直至完成。然后我重新启动应能正常启动的原始系统。缺点是我必须待在机器旁边直到重建完全完成。
  • 我直接重启系统,避免启动重新同步过程 (1)。然后我更改缓存大小,让系统实际进行重建。这可能不是我为了简单的重启而开车 400 公里的路程,因为我可以告诉那里的人该怎么做。

现在的问题(1)是:我能以某种方式避免/阻止阵列自动重建吗?

我想过禁用新添加的设备(sde1),但是那(我认为)无法避免在缺少一个磁盘的情况下从 3 个磁盘重塑为 4 个磁盘。

也许你有更好的选择。在这种情况下,请告诉我。

多谢!

答案1

对于遇到类似问题的人:

我最终启动了救援系统并“离线”重建了阵列(在救援系统中)。

相关内容