RHEL6/CentOS6 将快照卷(snapshot)挂载到根挂载点

声明:将快照卷挂在根挂载点上纯属折腾,生产环境中可行性如何期待高人指点。

起因:LVM的snapshot具有与还原卡相似的效果,因此有一天,我就突发奇想:能否对根挂载点进行一次快照,然后将snapshot挂载到根挂载点,这样一旦出现较大问题只需要删除snapshot重建即可复原。。。。

基于这个想法,我就开始折腾了。

我的步骤很简单:先正常安装一个CentOS 6.3到虚拟机。分区的时候手动分区,卷组名VolGroup,交换分区逻辑卷lv_swap,根挂载点逻辑卷lv_root,/home挂载在lv_home。

然后创建快照

lvcreate -s -n lv_root_snap -L 8G /dev/VolGroup/lv_root

修改/etc/fstab

将/dev/mapper/VolGroup/lv_root 改为/dev/mapper/VolGroup/lv_root_snap

修改grub配置/boot/grub/grub.conf

grub配置这个地方,由于CentOS6.3使用dracut,而我根本不懂dracut,导致连续尝试了多个晚上才把grub配置搞定

在grub配置中添加以下内容

title CentOS-snap (2.6.32-279.el6.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=/dev/VolGroup/lv_root_snap rd_NO_LUKS rd_NO_MD rd_LVM_LV=VolGroup/lv_swap crashkernel=auto LANG=zh_CN.UTF-8 rd_LVM_LV=VolGroup/lv_root rd_LVM_SNAPSHOT=VolGroup/lv_root_snap  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
    initrd /initramfs-2.6.32-279.el6.x86_64.img

注意红色标记的地方!root要指定为lv_root_snap,在dracut参数里rd_LVM_LV=VolGroup/lv_root要保持原来的分区。然后在这个参数后面增加一个 rd_LVM_SNAPSHOT指向快照卷。如果直接改rd_LVM_LV会导致系统不能挂载跟挂载点而无法启动。

修改完成后reboot系统。使用CentOS-snap启动项启动。

启动后查看分区挂载情况

mount -a

查看启动参数

cat /proc/cmdline

验证完成。

原文地址:https://www.cnblogs.com/sztsian/p/2677048.html