MD RAID无法启动与缺less驱动器

我得到了Debian Jessie的服务器,4个驱动器sda到sdd,所有这些都是分区的。 这个系统正在对所有驱动器进行RAID查杀。 所有驱动器都有grub,我可以互相交换光盘,每个驱动器都是可启动的,系统启动很快乐。 所有驱动器都包含完全相同的格式:

sdx1 - Boot Partition, GRUB installed sdx2 - Raid 1 /boot sdx3 - Raid 1 / sdx4 - Raid 10 swap sdx5 - non-md btrfs Raid 6 /data 

数据分区是raid6 btrfs,我目前正试图通过换出一个更大的驱动器来升级我的容量,因为我可以有两个失败我的第一个本能是只更换一个驱动器,并启动备份,恢复失败的RAIDarrays与新安装的驱动器和重build后,一切都恢复正常。

但是,机器(目前可悲的是无头的)一旦将驱动器交换到使RAIDarrays无效的东西,就不会启动。 我可以整天交换光盘,并愉快地启动。 但是如果我删除光盘或交换任何不属于RAID的组成部分,它将无法启动。

我错过了什么吗? 我怎么能告诉MD,它可以自动启动丢失的光盘/降级arrays? 最后就md而言,即使四个光盘中的一个光盘本身可以支持整个系统,数据分区也是另外一个野兽,因为它至less需要两个驱动器,但是md不应该被关心,因为这是一个纯粹的btrfs袭击。

我知道目前的用例,我可以从RAID中删除驱动器,升级它,然后把它放回去,但是如果出现故障,我不能删除驱动器,如果系统无法启动向上。

据我所知,现在还不可能用mdadm创build一个raid,你可以在没有单独的启动分区的情况下启动它。 我假设你用类似的方式设置它,它使用raid10,但适用于其他团队级别:

如何创build一个3或4(或更多)磁盘软件raid10的启动冗余Debian系统?

你可能没有configuration其他磁盘从BIOS启动? 否则引导分区不完全相同,这是完全相同的UUID副本。

要启动一个特定的磁盘引导,它需要有一个引导扇区,并且需要将biosconfiguration为从其引导(以及作为raid一部分的其他引导磁盘列表)。 当然,要成功完成引导,磁盘也需要有一个引导分区。 由于这些引导分区不是raid的一部分,因此每个引导磁盘都有自己的引导分区。 如果确保每个启动分区包含完全相同的文件系统(例如,使用dd来复制),并且每个磁盘都具有使用该启动分区上的映像创build的启动扇区,则系统应该能够从任何磁盘启动。 即使这个团队被降级了,一个退化的团队也不应该阻止成功的开机。 否则,这使得有一个突袭模拟的好处。

从链接引用:

作为raid一部分的每个磁盘都应该有一个大约1 GB的可引导分区,这不是raid的一部分。 正常创build这些分区,他们必须是完全相同的大小。 将它们标记为可引导,其中一个磁盘上的挂载点应为/ boot,您可以将其他挂载点卸载。

一旦你用dd来制作启动分区的精确副本:

现在确保您的BIOSconfiguration为尝试从所有3个磁盘启动,顺序无关紧要。 只要bios会尝试从任何磁盘启动,那么万一有一个磁盘出现故障,系统将自动从另一个磁盘启动,因为UUID是完全相同的。

作为一个更新和答案 – 在此期间,我发现唯一真正缺失的是fstab中的nofail标志。 文件系统已经降级,并且不会在不设置nofail选项的情况下将文件系统挂载到降级状态。