在设置RAID和LVM方面我相当“绿色”,但是我无法弄清楚为什么这个设置不能按预期工作。 我有一个服务器与两个物理硬盘,我想在软件RAID中设置的东西,使任何驱动器可能会失败,机器保持function。
+------+------------+ | swap | / (root) | | 5 GB | 113.5 ext4 | +-----------+-------------------+ | /boot | LVM | | 1 GB ext4 | 118.5 GB | +----------------------+-----------+-------------------+ | EFI system partition | RAID 1 | RAID 1 | | 500 MB | 1 GB | 118.5 GB | +----------------------+-----------+-------------------+ | HDD (120 GB) | +------------------------------------------------------+
即。 两个驱动器都configuration相同,并且RAID跨两个驱动器。
但是,当我删除驱动器#1时,系统启动到某种状态,但告诉我找不到我的根LVM卷组,并且无法完全启动。 当我删除驱动器#2时,系统根本无法启动。
如果需要更多的细节,我可以提供,但是这个configuration有一些基本的devise缺陷吗?
因此,当其中一个驱动器丢失时,根本无法启动,这可能意味着bootloader在两个驱动器上都没有configuration。
既然这个Ubuntu,我想我们可以放心地假设你正在使用grub? 如果是这样,运行命令dpkg-reconfigure grub-pc 。 保留大部分选项,我们想要改变的是GRUB install devices 。 现在可能只有/dev/sda被选中了。 确保/dev/sda和/dev/sdb都被选中 。
下一个问题。 从您的输出中看来,您的EFI分区不是针对任何types的RAID1设置的。 所以您可能需要手动将数据同步到第二个EFI分区。 我不确定您是否可以为此设置基于软件的RAID1。
我也没有足够的信息来弄清楚为什么在一个磁盘被移除的情况下LVM不能被识别。 当一个磁盘被移除时,两个RAID1卷在/proc/mdstat显示为活动状态?
虽然看起来RAID 1(镜像)设置应该在一个驱动器丢失的情况下工作,但是这个scheme中的所有内容都依赖于正在使用的RAID 控制方法。
从控制器的angular度来看,有两种types的RAID – 硬件控制和软件控制。 硬件控制的RAID由计算机中的RAID控制器芯片组驱动,使得驱动器的pipe理水平低于操作系统本身(通常来自LSI提供的BIOS级驱动程序)。 软件控制的RAID由操作系统pipe理,通常是一个内核模式I / O驱动程序,它被设置为串联两个或多个驱动器。
在OP的情况下,有一个需要回答的问题:在系统引导顺序/引导驱动器select中,RAID控制器是唯一select的硬盘驱动器设备,还是被选作引导设备的驱动器之一? 如果前者,则RAID设置应该工作,因为所有的驱动器访问通过RAID控制器到达驱动器之前。 后者设置完全绕过RAID控制器,并且在驱动器本身上寻址板载控制器…这将破坏RAID。
我build议OP在使用基于硬件的RAID控制器scheme时执行以下操作:
启动进入BIOS,并确保引导顺序和硬盘驱动器select不直接解决任何RAID驱动器,只有RAID控制器“虚拟驱动器”。
进入RAID控制器设置(在启动时加载驱动程序的时候可能是CTRL-C),并确保驱动器都select为RAID驱动器并正确同步。
重新格式化RAID 1“驱动器”(技术上是镜像卷),并将其用作操作系统引导介质。
重新安装操作系统发行版,使其不会看到两个“驱动器”,而是一个“卷”作为其启动设备。
不build议使用IMO,软件或基于OS的RAID解决scheme。