CentOS:将 dm-raid 模块安装到 initramfs 中以启用 lvm raid 启动?

CentOS:将 dm-raid 模块安装到 initramfs 中以启用 lvm raid 启动?

我有 CentOS 7,我想在我的根逻辑卷上建立 lvm 镜像。

在我使用“lvconvert -m3 cl_excalibur/root”创建两个镜像后,我有些恐慌,但它无法启动。当它是 raid1 时,逻辑卷在启动时不会激活。我从 liveUSB 启动,并使用“lvconvert -m0”将其转换回非镜像,一切似乎都很好。但我又回到了原点。我想我必须使用 dracut -f --add<-drivers?> <name of the lvm raid kernel module>,但我不知道我需要的确切参数。

在启动失败期间,我在 dracut lvm 工具中尝试了lvchange -ay cl_excalibur/root,但 lvm 抱怨模块“dm-raid”不在内核中。所以我认为我需要安装它。

我找到了文件 /usr/lib/modules/3.10.0-1062.1.1.el7.x86_64/kernel/drivers/md/dm-raid.ko.xz。但是,我不知道要使用哪个添加标志,也不知道如何从上面的文件名转到 dracut 所需的参数。

这个主机对于我们的基础设施来说很重要,所以我还没有尝试任何东西。我现在已经构建了一个虚拟 CentOS 7 服务器,这样我就可以使用 dracut 和 grub2 进行破解,但我将不胜感激任何帮助 :)

答案1

解决方案似乎是编辑 /etc/dracut.conf,在 add_dracutmodules 和 add_drivers 的分配中插入一些字符串,并为 mdadmconf 和 lvmcomf 启用“yes”值:

# dracut modules to add to the default
add_dracutmodules+="dm lvm dmraid mdraid"

# additional kernel modules to the default
add_drivers+="dm_mod dm_mirror dm_log dm_region_hash "

# install local /etc/mdadm.conf
mdadmconf="yes"

# install local /etc/lvm/lvm.conf
lvmconf="yes"

唯一奇怪的是我需要在最后一个内核驱动程序之后和结束引号之前包含一个空格否则,dracut 会将两个驱动程序名称连接成一个。

lvconvert -m2在根逻辑卷上使用后,我通过检查等待镜像完成lvs -a -o name,copy_percent,devices centos_agamemnon。然后我继续

dracut -f 
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

然后重新启动。一切似乎都很好,而且我不再那么容易受到下一次不可避免的硬盘故障的影响。

相关内容