Linux LVM快照备份和还原教程RHEL/CentOS 7/8

时间:2020-01-09 10:41:46  来源:igfitidea点击:

在本文中,我将为我们提供有关Linux LVM快照备份和还原的概述,并介绍与LVM快照相关的以下主题:

  • LVM快照概述

  • LVM1和LVM2快照之间的比较

  • 创建,扩展,合并和删除LVM快照

  • 如何检查LVM快照的状态

Linux LVM快照备份和还原,用于RHEL/CentOS更新和升级

  • 理想情况下,专家建议避免对主要版本(例如RHEL/CentOS 7到RHEL/CentOS 8)执行RHEL/CentOS升级。

  • 在这种情况下,建议我们备份数据,从头开始安装新的RHEL/CentOS主版本并还原数据

  • 但是Linux" LVM Snapshot备份和还原"是用于在RHEL和CentOS环境中及时处理安全更新和补丁的非常理想的解决方案。

  • 我们可能面临的唯一挑战是对启动分区的LVM快照。

  • 由于引导始终是标准分区,而不是逻辑卷的一部分,因此我们将无法对引导分区进行快照。

  • LVM快照使用" COW"(写时复制)技术进行Linux LVM快照备份和还原。

  • COW通过快照提供安全性和性能。为了修改数据,使用了克隆或者可写快照。

  • 代替将修改后的数据写入当前数据,将修改后的数据放置在新的文件系统位置中。

  • 即使完成数据修改,"旧数据也不会被覆盖"。

LVM1和LVM2快照有什么区别?

LVM1快照

  • LVM1具有只读快照。

  • 只读快照通过创建异常表来工作,该异常表用于跟踪已更改的块。

  • 如果要在原点上更改块,则首先将其复制到快照,在异常表中标记为已复制,然后将新数据写入原始卷。

LVM2快照

  • 在" LVM2"中,默认情况下快照是读/写的。

  • 读/写快照的工作方式类似于只读快照,其添加功能是:如果将数据写入快照,该块将在异常表中标记为已使用,并且永远不会从原始卷中复制。

  • 例如,如果我们有一些实验程序,请安装快照,然后尝试一个实验程序来更改该卷上的文件。
    如果我们不喜欢它的操作,则可以卸载快照,lvm删除快照,然后将原始文件系统安装在其位置。

与备份解决方案相比,LVM Snapshot有何不同?

  • LVM快照使我们可以在某个时间点捕获逻辑卷并保留它,而通过备份可以复制和存档分区或者逻辑卷的内容。

  • LVM快照的大小与源逻辑卷的大小无关,因为LVM快照的大小非常小,而备份的大小与源逻辑卷的大小几乎相等(基于压缩类型)。

  • "如果源逻辑卷继续被填充,那么LVM快照可能会损坏",但是备份将在安全的位置完好无损,并且与源逻辑卷的使用情况无关。

  • 因此,当使用源逻辑卷时,必须创建LVM快照"但不应保留很长时间,因为它最终会占用很多空间"。
    在这种情况下,备份是首选选项,而不是快照。

实验室环境

我已经在Linux服务器上安装的Oracle VirtualBox上使用CentOS 8创建了一个虚拟机。

还是手动安装Linux?

我建议使用Network PXE Boot Server配置"一键安装"。

使用PXE服务器,我们可以安装Oracle虚拟机或者基于KVM的虚拟机或者任何类型的物理服务器,而无需任何人工干预,从而节省了时间和精力。

以下是节点规格:

[root@centos-8 ~]# df -Th
Filesystem            Type      Size  Used Avail Use% Mounted on
devtmpfs              devtmpfs  2.4G  8.0K  2.4G   1% /dev
tmpfs                 tmpfs     2.4G     0  2.4G   0% /dev/shm
tmpfs                 tmpfs     2.4G  8.6M  2.4G   1% /run
tmpfs                 tmpfs     2.4G     0  2.4G   0% /sys/fs/cgroup
/dev/mapper/rhel-root ext4      7.9G  1.9G  5.6G  26% /
/dev/sda1             ext4      488M  130M  323M  29% /boot
tmpfs                 tmpfs     479M     0  479M   0% /run/user/0
/dev/mapper/rhel-data ext4      2.0G  1.1G  804M  57% /data

我有一个单一的音量组vgs

[root@centos-8 ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  rhel   2   3   0 wz--n- 24.49g <13.56g

以下是可用的逻辑卷。

[root@centos-8 ~]# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data rhel -wi-ao----   2.00g
  root rhel -wi-ao----   8.00g
  swap rhel -wi-ao---- 956.00m

已安装内核列表

[root@centos-8 ~]# rpm -qa | grep kernel
kernel-tools-4.18.0-80.el8.x86_64
ukernel-tools-libs-4.18.0-80.el8.x86_64
kernel-4.18.0-80.el8.x86_64
namkernel-core-4.18.0-80.el8.x86_64
kernel-modules-4.18.0-80.el8.x86_64
[root@centos-8 ~]# uname -r
4.18.0-80.el8.x86_64

:创建LVM快照Linux

由于我们计划更新RHEL/CentOS 7/8 Linux节点并应用安全补丁,因此我们将为所有可用的逻辑卷和启动分区创建LVM快照。
在此节点上,我有两个逻辑卷来执行Linux lvm快照备份和还原:

/dev/mapper/rhel-root <-- root logical volume
/dev/mapper/rhel-data <-- data logical volume

除此之外,我还有/boot分区,它是一个标准分区:

/dev/sda1 <-- boot partition

提示:

快照本身不会像关联的原始LV那样分配磁盘空间,因为快照仅在原始文件更改后才需要空间。

我将为数据分区创建LVM快照Linux(data_snap):

[root@centos-8 ~]# lvcreate --size 1G --snapshot --name data_snap /dev/mapper/rhel-data
  Logical volume "data_snap" created.

同样,我将为根文件系统创建LVM快照Linux(root_snap):

[root@centos-8 ~]# lvcreate --size 2G --snapshot --name root_snap /dev/mapper/rhel-root
  Logical volume "root_snap" created.

因此,创建LVM快照Linux成功执行了Linux LVM快照备份和还原。

:检查LVM快照元数据和分配大小

使用Linux创建的LVM快照,我们已经利用了大约3GB的可用空间以及Linux快照来进行备份和还原,我们可以在VFree下使用vgs命令进行检查

[root@centos-8 ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  rhel   2   5   2 wz--n- 24.49g <10.56g

但是,如果我们仅看到这些快照分区大小中的" 0.01"和" 0.02%"在实际使用中

[root@centos-8 ~]# lvs
  LV        VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data      rhel owi-aos---   2.00g
  data_snap rhel swi-a-s---   1.00g      data   0.01
  root      rhel owi-aos---   8.00g
  root_snap rhel swi-a-s---   2.00g      root   0.02
  swap      rhel -wi-ao---- 956.00m

通过lvdisplay,我们还可以看到快照仅分配了0.01到0.02%。

[root@centos-8 ~]# lvdisplay /dev/rhel/root_snap  | grep "Allocated to snapshot"
  Allocated to snapshot  0.02%
[root@centos-8 ~]# lvdisplay /dev/rhel/data_snap  | grep "Allocated to snapshot"
  Allocated to snapshot  0.01%

我们可以使用dmsetup检查快照元数据扇区。

# dmsetup status
rhel-root_snap-cow: 0 4194304 linear
rhel-root_snap: 0 28442624 snapshot 534664/4194304 2096
rhel-swap: 0 1957888 linear
rhel-root: 0 28442624 snapshot-origin
rhel-data: 0 4194304 linear
rhel-data: 0 4194304 snapshot-origin
rhel-data_snap-cow: 0 2097152 linear
rhel-data_snap: 0 4194304 snapshot 24/2097152 16
rhel-root-real: 0 28442624 linear

要检查单个快照卷的快照元数据,请执行以下操作:

[root@centos-8 ~]# dmsetup status rhel-data_snap
0 4194304 snapshot 24/2097152 16

这里的最后三个字段是

<sectors_allocated>/<total_sectors> <metadata_sectors>

"因此,目前有16个元数据扇区。
"

我们将在本文的下一章中了解有关这些元数据扇区的更多信息。

:备份启动分区(可选)

  • 如果仅计划执行Linux LVM快照备份和还原以进行数据分区,则可以忽略此步骤。

  • 仅当我们计划修改/boot分区内容(例如安装新内核)时才需要执行此步骤。

  • 由于引导是标准分区而不是逻辑卷,因此Linux不能为引导分区创建LVM快照。

  • 因此,我们可以使用任何传统方法来备份/boot分区。
    在此示例中,我们将使用tar备份启动分区:

[root@centos-8 ~]# cd /boot/

我将使用tar进行备份(我们也可以使用其他任何首选的备份工具)

[root@centos-8 boot]# tar -czvf /tmp/boot_backup.tgz *

验证启动分区的备份文件:

[root@centos-8 boot]# ls -l /tmp/boot_backup.tgz
-rw-r--r-- 1 root root 126149595 Mar 29 12:17 /tmp/boot_backup.tgz

作为预防措施,建议我们将此备份文件复制到其他服务器。

:挂载LVM快照

使用LVM2,"快照是可读写的",因此我们可以装载LVM快照并在快照卷上执行读/写操作。

重要的提示:

我们在快照分区上执行的任何更改将在源逻辑卷上不可见,反之亦然。
如果我们需要执行Linux LVM快照备份和还原,则应避免修改LVM快照数据。

以下是我们的两个快照逻辑卷

/dev/rhel/data_snap
/dev/rhel/root_snap

在临时挂载点(/mnt)上为根分区挂载LVM快照:

[root@centos-8 ~]# mount /dev/rhel/root_snap /mnt/

挂载LVM快照之后,接下来验证通过(/mnt)挂载的根快照的内容:

[root@centos-8 ~]# ls -l /mnt
total 88
lrwxrwxrwx.   1 root root     7 Jan 11  2019 bin -> usr/bin
drwxr-xr-x.   2 root root  4096 Nov 13 11:23 boot
drwxr-xr-x    2 root root  4096 Mar 29 09:45 data
drwxr-xr-x.   2 root root  4096 Mar  7 18:33 dev
drwxr-xr-x. 105 root root 12288 Mar 29 11:19 etc
drwxr-xr-x.   5 root root  4096 Mar 28 12:14 home
lrwxrwxrwx.   1 root root     7 Jan 11  2019 lib -> usr/lib
lrwxrwxrwx.   1 root root     9 Jan 11  2019 lib64 -> usr/lib64

类似地,现在卸载/mnt,然后在/mnt上装载数据逻辑卷的LVM快照。

[root@centos-8 ~]# umount /mnt

使用以下命令,我们为数据分区安装LVM快照卷:

[root@centos-8 ~]# mount /dev/rhel/data_snap /mnt

验证数据LVM快照的内容:

[root@centos-8 ~]# ls -l /mnt/
total 1048600
-rw-r--r-- 1 root root 536870912 Mar 29 10:03 dummy_file_1
-rw-r--r-- 1 root root 536870912 Mar 29 10:04 dummy_file_2
-rw-r--r-- 1 root root         0 Mar 29 10:51 file
drwx------ 2 root root     16384 Mar 29 09:45 lost+found

在RHEL 7.7和更高版本中,我们可以使用BOOM实用程序通过LVM快照启动RHEL/CentOS节点。

因此,除了挂载LVM快照然后在这些逻辑卷上工作之外,我们可以使用BOOM使用LVM快照进行引导,然后执行读/写操作。

:将源逻辑卷与快照一起使用

在Linux为Linux LVM快照备份和还原创建LVM快照后,应"确保快照大小分配保持在95-98%以下"。
就像快照分配大小达到100%一样,快照分区也会损坏。

执行系统更新,升级或者修补

接下来,我将执行一些安全更新,并在此CentOS 8服务器上应用漏洞修补程序。

现在应用补丁后,我在服务器上安装了更新的内核

[root@centos-8 ~]# uname -r
4.18.0-147.5.1.el8_1.x86_64

已安装内核的列表:

[root@centos-8 ~]# rpm -qa | grep kernel
kernel-tools-4.18.0-80.el8.x86_64
kernel-modules-4.18.0-147.5.1.el8_1.x86_64
kernel-tools-libs-4.18.0-80.el8.x86_64
kernel-4.18.0-80.el8.x86_64
kernel-core-4.18.0-147.5.1.el8_1.x86_64
kernel-4.18.0-147.5.1.el8_1.x86_64
kernel-core-4.18.0-80.el8.x86_64
kernel-modules-4.18.0-80.el8.x86_64

防止Linux LVM快照损坏的建议

  • 如果我们已经注意到我的源数据逻辑卷为2GB,而我的数据快照卷大小为1GB。

  • 因此,即使源数据逻辑卷已包含1GB数据,快照大小也比源LVM大小小得多。

  • 当我们继续在源逻辑卷上写入数据而不合并快照时,"这种情况会导致快照逻辑卷损坏的可能性"。

  • 因此,"强烈建议将快照大小与源逻辑卷保持相同,以最大程度地减少快照卷损坏的风险"。

例如:在Linux LVM快照备份和还原中,当我们拍摄LVM快照时,"初始元数据扇区值非常小"。
如我们所见,当前的元数据扇区为16,使用的扇区为2097152可用扇区中的24

[root@centos-8 ~]# dmsetup status rhel-data_snap
0 4194304 snapshot 24/2097152 16

如果我们在获取快照后在源数据逻辑卷中添加内容,即在/data上挂载的/dev/mapper/rhel-data,则这些"元数据扇区值将继续增加"。
例如:其中我已经将512MB文件添加到/data中。

[root@centos-8 ~]# dd if=/dev/zero of=/data/dummy_file3 bs=512M count=1 oflag=dsync
1+0 records in
1+0 records out
536870912 bytes (537 MB, 512 MiB) copied, 26.2951 s, 20.4 MB/s

如我们所见,快照分配的大小已"增加到50.20%"

[root@centos-8 ~]# lvs rhel/data_snap
  LV        VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data_snap rhel swi-a-s--- 1.00g      data   50.20

因此," data_snap"的元数据扇区已经"增加到4112"。

[root@centos-8 ~]# dmsetup status rhel-data_snap
0 4194304 snapshot 1052904/2097152 4112

如果我们继续向源逻辑卷添加更多内容,并且快照卷大小小于源逻辑卷(如我的情况),则快照逻辑卷很有可能变为INVALID或者INACTIVE(损坏)

为了演示起见:拍摄快照后,我有意在我的源卷中放置了更多内容(/dev/mapper/rhel-data),现在快照分区显示为INVALID,带有dmsetupINACTIVE与lvdisplay一起使用(损坏)

[root@centos-8 ~]# lvs
  LV        VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data      rhel owi-aos---   2.00g
  data_snap rhel swi-I-s--- 500.00m      data   100.00
  root      rhel -wi-ao----  13.56g
  swap      rhel -wi-ao---- 956.00m
[root@centos-8 ~]# dmsetup status rhel-data_snap
0 4194304 snapshot Invalid
  
[root@centos-8 ~]# lvdisplay /dev/rhel/data_snap  | grep "LV snapshot status"
  LV snapshot status     INACTIVE destination for data

现在,"我们将无法挂载LVM快照卷来恢复数据"

[root@centos-8 ~]# mount /dev/rhel/data_snap /mnt
mount: /mnt: can't read superblock on /dev/mapper/rhel-data_snap.

因此,最好是lvm删除快照:

[root@centos-8 ~]# lvremove /dev/rhel/data_snap
Do you really want to remove active logical volume rhel/data_snap? [y/n]: y
  Logical volume "data_snap" successfully removed

如何自动扩展Linux LVM快照大小?

为了使用Linux LVM快照备份和还原来避免快照损坏,还可以在lvm.conf中配置snapshot_autoextend_thresholdsnapshot_autoextend_percent
使用这些设置,一旦Linux LVM快照大小即将达到100%阈值," Linux LVM快照大小将自动基于这些值扩展"。

我们可以在/etc/lvm/lvm.conf中配置这些值

# Configuration option activation/snapshot_autoextend_threshold.
        # Auto-extend a snapshot when its usage exceeds this percent.
        # Setting this to 100 disables automatic extension.
        # The minimum value is 50 (a smaller value is treated as 50.)
        # Also see snapshot_autoextend_percent.
        # Automatic extension requires dmeventd to be monitoring the LV.
        #
        # Example
        # Using 70% autoextend threshold and 20% autoextend size, when a 1G
        # snapshot exceeds 700M, it is extended to 1.2G, and when it exceeds
        # 840M, it is extended to 1.44G:
        # snapshot_autoextend_threshold = 70
        #
        snapshot_autoextend_threshold = 70  <-- I am using 70 as the threshold value
        # Configuration option activation/snapshot_autoextend_percent.
        # Auto-extending a snapshot adds this percent extra space.
        # The amount of additional space added to a snapshot is this
        # percent of its current size.
        #
        # Example
        # Using 70% autoextend threshold and 20% autoextend size, when a 1G
        # snapshot exceeds 700M, it is extended to 1.2G, and when it exceeds
        # 840M, it is extended to 1.44G:
        # snapshot_autoextend_percent = 20
        #
        snapshot_autoextend_percent = 20  <-- I am using 20 as the percent value

提示:

我认为我不需要解释这些值的含义,因为lvm.conf中的注释已经给出了详细的描述。

进行这些更改后,如果我向数据量(/dev/mapper/rhel-data)添加更多内容,我们将看到LinuxLVM快照大小已自动增加到1.5GB

[root@centos-8 ~]# lvs
  LV        VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data      rhel owi-aos---   2.00g
  data_snap rhel swi-a-s---   1.50g      data   66.95
  root      rhel -wi-ao----  13.56g
  swap      rhel -wi-ao---- 956.00m

如果我继续向/dev/mapper/rhel-data中添加更多内容,则Linux LVM快照大小将进一步增加。

[root@centos-8 ~]# lvs
  LV        VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data      rhel owi-a-s---   2.00g
  data_snap rhel swi-a-s---   2.01g      data   69.12
  root      rhel owi-aos---  13.56g
  root_snap rhel swi-a-s---   2.00g      root   12.71
  swap      rhel -wi-ao---- 956.00m

只要卷组中有可用空间,Linux LVM快照的大小就会继续增加。

:执行LVM还原快照以进行数据分区

由于我们已经使用新的安全更新在根逻辑卷上写入了一些数据,因此快照的大小随着源逻辑卷的增加而增加

[root@centos-8 ~]# lvs
  LV        VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data      rhel owi-a-s---   2.00g
  data_snap rhel swi-a-s---   1.00g      data   0.01
  root      rhel owi-aos---   8.00g
  root_snap rhel swi-a-s---   2.00g      root   20.49
  swap      rhel -wi-ao---- 956.00m

要"执行LVM还原快照",必须卸载相应的逻辑卷。
现在,我们可以轻松卸载数据分区,但是在我们的例子中,我们不能卸载临时分区(例如根分区)运行时。

首先,我们将LVM为我的data逻辑卷恢复快照。
为此,我将在执行lvm restore快照之前卸载我的数据分区。

[root@centos-8 ~]# umount /data

提示:

如果我们得到umount:/data:目标繁忙,则意味着某些进程仍在使用数据分区。
我们可以使用lsof &lt;partition>来获取使用该分区的进程列表,并确保不使用各个分区来卸载该分区。

[root@centos-8 ~]# lvconvert --merge /dev/rhel/data_snap
  Merging of volume rhel/data_snap started.
  rhel/data: Merged: 31.04%
  rhel/data: Merged: 100.00%

提示:

我们可以将-b或者--background与lvmconvert一起使用以在后台执行lvm恢复快照。
在这种情况下,我们可以使用dmsetup status来监视LVM快照合并进度。

lvs命令的Attr部分中的大写字母" O"是什么?

如果我们在合并快照后立即检查" lvs"状态,则会在" lvs"命令的Attr部分下看到大写字母O。
大写字母O表示"快照仍与原点合并"

[root@centos-8 ~]# lvs
  LV        VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data      rhel Owi-a-s---   2.00g
  root      rhel owi-aos---   8.00g
  root_snap rhel swi-a-s---   2.00g      root   20.82
  swap      rhel -wi-ao---- 956.00m

合并活动完成后,我们可以检查" Attr"部分的第一个字段是否再次为数据分区空白

[root@centos-8 ~]# lvs
  LV        VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data      rhel -wi-a-----   2.00g
  root      rhel owi-aos---   8.00g
  root_snap rhel swi-a-s---   2.00g      root   20.82
  swap      rhel -wi-ao---- 956.00m

:为根文件系统执行LVM恢复快照

由于"我们无法卸载根文件系统运行时",因此我们将启动LVM restore snapshot命令。
当根目录处于卸载状态时,"实际还原将在重新引导阶段进行"。

[root@centos-8 ~]# lvconvert --merge /dev/rhel/root_snap
  Delaying merge since origin is open.
  Merging of snapshot rhel/root_snap will occur on next activation of rhel/root.

如我们所见,我们收到一条警告,因为Origin是开放的,因此延迟了合并,因此现在lvm restore快照将在下次重新引导后发生。

"但是在进行重新引导之前,我们还必须还原引导分区内容:"

:还原启动分区(可选)

如果我们打算仅返回Linux LVM快照并还原数据分区,则可以忽略此步骤并继续重新启动。
现在我们已经使用tar实用程序和/tmp/backup_boot.tgz进行了'/boot'备份。
在恢复引导分区之前,首先必须删除/boot的现有内容。

[root@centos-8 ~]# rm -rf /boot/*

确保/boot中没有文件或者目录

[root@centos-8 ~]# cd /boot/
[root@centos-8 boot]# ls -l
total 0

接下来,在/boot下提取boot_backup.tgz的内容以恢复启动分区:

[root@centos-8 boot]# tar -xzvf /tmp/boot_backup.tgz

验证/boot分区的内容

[root@centos-8 boot]# ls -l
total 248276
-rw-r--r-- 1 root root 126101631 Mar 29 13:58 config-4.18.0-80.el8.x86_64
drwxr-xr-x 3 root root      4096 Nov 13 11:25 efi
drwxr-xr-x 2 root root      4096 Nov 13 11:25 extlinux
drwx------ 4 root root      4096 Nov 13 11:37 grub2
-rw------- 1 root root  65326006 Nov 13 11:29 initramfs-0-rescue-9836eca1fe1c4fa9b693aa2fb3d3137c.img
-rw------- 1 root root  26049862 Nov 13 11:31 initramfs-4.18.0-80.el8.x86_64.img
-rw------- 1 root root  17224369 Jan 26 16:18 initramfs-4.18.0-80.el8.x86_64kdump.img
drwxr-xr-x 3 root root      4096 Nov 13 11:27 loader
drwx------ 2 root root      4096 Nov 13 11:23 lost+found
-rw------- 1 root root   3751920 Jun  4  2019 System.map-4.18.0-80.el8.x86_64
-rwxr-xr-x 1 root root   7872760 Nov 13 11:28 vmlinuz-0-rescue-9836eca1fe1c4fa9b693aa2fb3d3137c
-rwxr-xr-x 1 root root   7872760 Jun  4  2019 vmlinuz-4.18.0-80.el8.x86_64

接下来,我们需要在主磁盘上重新安装GRUB2. 我们可以使用以下命令检查主磁盘:

[root@centos-8 ~]# lvs -a -o+devices
  LV        VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices
  data      rhel owi-aos---   2.00g                                                     /dev/sdb(0)
  root      rhel -wi-ao----  13.56g                                                     /dev/sda2(239)
  swap      rhel -wi-ao---- 956.00m                                                     /dev/sda2(0)

如我们所见,/boot/sda是引导分区的安装位置,因此我们将GRUB2安装在/dev/sda上。
对于具有旧版BIOS和GRUB2的系统,请使用grub2-install将GRUB2安装在主硬盘上。

[root@centos-8 boot]# grub2-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.

重要的提示:

对于具有UEFI引导配置的设置,请使用以下添加命令来还原UEFI引导条目。

对于具有UEFI引导设置的RHEL 6系统:

# efibootmgr -c -w -L "Backup Red Hat Enterprise Linux" -d /dev/vda -p 1 -l "\EFI\redhat\grub.efi"

对于具有UEFI引导设置的RHEL 7系统:

# efibootmgr -c -w -L "Red Hat Enterprise Linux" -d /dev/vda -p 1 -l "\EFI\redhat\grubx64.efi"

要验证当前的UEFI引导项,请执行以下操作:

# efibootmgr -v

Linux LVM快照还原已完成。
现在,重新引导Linux节点以完成根文件系统合并。

[root@centos-8 boot]# reboot

重新启动后,请验证Linux节点的内容,以确保Linux LVM快照备份和还原成功

[root@centos-8 ~]# uname -r
4.18.0-80.el8.x86_64
[root@centos-8 ~]# rpm -qa | grep kernel
kernel-tools-4.18.0-80.el8.x86_64
kernel-tools-libs-4.18.0-80.el8.x86_64
kernel-4.18.0-80.el8.x86_64
kernel-core-4.18.0-80.el8.x86_64
kernel-modules-4.18.0-80.el8.x86_64

因此,现在我们的Linux节点提出了旧内核,该内核在拍摄快照时处于活动状态。

步骤9:LVM删除快照

如果希望保留软件更新更改,则可以选择删除LVM快照。
要执行LVM删除快照

[root@centos-8 ~]# lvremove /dev/rhel/data_snap
Do you really want to remove active logical volume rhel/data_snap? [y/n]: y
  Logical volume "data_snap" successfully removed