我正在设置一个 Linux 服务器,该服务器有两个驱动器,位于 mdadm 创建的 raid 1 中。我发现的所有在线帮助都说要创建分区,然后使用 sda1 和 sdb1 之类的东西为 raid 创建 md0 raid 卷。所以我的问题是,如果驱动器 sda 出现故障,驱动器 sdb 将如何启动?
我想要两个 100% 相同的驱动器,这样如果一个驱动器出现故障,我可以安装一个新的驱动器,进行修复并运行,而不会丢失任何数据。
答案1
如果您希望能够从 Linux raid1 设备启动,您需要执行以下操作:
磁盘上没有分区,添加(例如)/dev/sda 和 /dev/sdb 到您的 raid1 设备。
创建 raid 时使用 --metadata=1.0(将 raid 超级块存储在磁盘末尾。)
在 raid 设备上使用 fdisk 创建常规的“MBR”样式分区,并将其用作根文件系统(或 /boot,如果您想要加密根)。
在 sda 和 sdb 上安装 grub,两次都告诉 grub 该磁盘是 hd0。
这意味着无论 BIOS 中哪个磁盘为 0x80,都将被正确读取和启动。
答案2
这个问题问得非常好。我也遇到过这种情况。一点也不好玩。
实际上,SuperGrub CD(http://www.supergrubdisk.org/) 很可能能够在这种情况发生时帮助您恢复。
我有尝试过诸如确保在两个磁盘上安装 GRUB、确保驱动器尽可能相同...但 SuperGrub 是有效的方法。
如果您认真考虑了这一点,则应测试是否可以用任一磁盘启动系统,并在镜像备份后重新同步。重新同步也比它应该/看起来的要难,因此请确保记录该部分。
答案3
如果驱动器 sda 出现故障,驱动器 sdb 将如何启动?
没必要。
如果您安装了镜像,那么您既不使用 sda 也不使用 sdb。相反,您使用 /dev/mdX。即使阵列中的一个驱动器发生故障,该 mdx 设备仍将保持可用。
唯一令人兴奋的部分是,如果您想要启动并且您的固件想要找到引导扇区或 EFI 文件。它应该放弃磁盘并继续搜索。如果这不起作用,请拉出损坏的磁盘,特别是如果它是 SATA 磁盘而不是 SAS 磁盘(SATA 并不总是能正常故障)。