我有一个带有 Debian Jessie 的服务器,4 个驱动器 sda 到 sdd,所有这些都同样分区。系统处于对所有驱动器的 raid1 md 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,我目前正在尝试通过将驱动器换成更大的驱动器来升级容量,因为我可能有两次失败,我的第一反应是更换一个驱动器并重新启动,恢复使用新安装的驱动器出现故障的 RAID 阵列,重建后一切恢复正常。
但是,一旦我将驱动器交换为使 RAID 阵列无效的东西,机器(遗憾的是目前是无头的)就无法启动。我可以整天互相交换光盘,并且可以愉快地启动。但是,如果我移除磁盘或换入不属于 raid 的任何内容,则无法启动。
我错过了什么吗?我如何告诉 md 可以在缺少磁盘/降级的阵列的情况下自动启动?最后,就 md 而言,即使四张光盘中的一张也可以单独支持整个系统,数据分区是另一只野兽,因为它至少需要两个驱动器,但 md 不应该担心,因为那是纯 btrfs袭击。
我知道对于当前的用例,我可以从 raid 中删除驱动器,对其进行升级,然后将其放回原处,但是如果发生故障,如果系统确实无法启动,我就无法删除驱动器向上。
作为更新和答案 - 同时我发现这里唯一真正缺少的是 fstab 中的 nofail 标志。文件系统已降级,如果没有设置 nofail 选项,它将不会以降级状态挂载文件系统。
据我所知,目前还不可能使用 mdadm 创建一个 raid,您可以在没有单独的引导分区的情况下从中引导。我假设您以与此处所述类似的方式设置它,它使用 raid10,但适用于其他 raid 级别:
如何使用 3 或 4(或更多)磁盘软件 raid10 创建可引导的冗余 Debian 系统?
可能你没有在bios中配置其他磁盘启动?否则引导分区不完全相同,即具有相同 UUID 的精确副本。
要使特定磁盘能够引导,它需要有一个引导扇区,并且需要将 bios 配置为从它引导(以及作为 raid 一部分的其他引导磁盘的列表)。当然,要成功完成引导,磁盘还需要有一个引导分区。由于这些引导分区不是 raid 的一部分,因此每个引导磁盘都有自己的。如果您确保每个引导分区包含完全相同的文件系统(例如,使用 dd 将其复制过来)并且每个磁盘都有一个使用该引导分区上的映像创建的引导扇区,那么系统应该能够从任何磁盘引导. 即使 raid 降级,降级的 raid 也不应该阻止成功引导。否则,这会给进行突袭辩论带来很大的好处。
引用链接:
使用 dd 制作引导分区的精确副本后: