如何在Linux上备份LVM快照

使用LVM快照备份,我们可以冻结LVM卷的当前状态。 我们将创建LVM备份的快照以保存卷的当前状态,如果在活动期间出现任何需要,我们可以返回该状态。 该过程包括两部分:文件系统元数据和包含文件中数据的实际块。

创建LVM快照时,文件系统元数据备份卷将复制到刚创建的卷快照。 文件块保留在原始卷上,但是,只要快照元数据中没有任何变化,原始大小块中的所有指针都将保持正确。 在原始卷上修改文件后,原始块将被复制到该卷的快照,然后在文件系统中进行修改。

情境:用于演示 备份LVM快照,我们在卷组“ myvg”中创建了一个逻辑卷“ etc_dup”,并将其挂载在挂载点“ / etc_dup”上,在此处使用以下命令复制了文件“ / etc”的映像。

cp /etc/* /etc_dup/
[[email protected] ~]# df -h /etc_dup
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/myvg-etc_dup
504M 18M 461M 4% /etc_dup
[[email protected] ~]# ll /etc_dup
total 1428
-rw-r--r--. 1 root root 49 Mar 4 12:11 adjtime
-rw-r--r--. 1 root root 1512 Mar 4 12:11 aliases
-rw-r--r--. 1 root root 12288 Mar 4 12:11 aliases.db
-rw-r--r--. 1 root root 541 Mar 4 12:11 anacrontab
-rw-r--r--. 1 root root 148 Mar 4 12:11 asound.conf
-rw-r--r--. 1 root root 1 Mar 4 12:11 at.deny
-rw-------. 1 root root 232 Mar 4 12:11 autofs_ldap_auth.conf
-rw-r--r--. 1 root root 658 Mar 4 12:11 auto.master
-rw-r--r--. 1 root root 524 Mar 4 12:11 auto.misc
-rwxr-xr-x. 1 root root 1237 Mar 4 12:11 auto.net
-rwxr-xr-x. 1 root root 687 Mar 4 12:11 auto.smb
------ OUTPUT TRUNCATED-------------------

因此,让我们从LVM快照备份操作开始:

步骤1:使用vgs命令检查系统上整个卷组的概述。 对于我们的演示,50mb空间绰绰有余。

[[email protected] ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 2 1 0 wz--n- 2.99g 1020.00m
vg_rhel1 1 2 0 wz--n- 19.51g 0

步骤2:现在,为该卷拍摄50MB的快照,以保存安装点“ / etc_dup”的快照

[[email protected] ~]# lvcreate -s -L 50M -n etc_snap /dev/myvg/etc_dup
Rounding up size to full physical extent 52.00 MiB
Logical volume "etc_snap" created
[[email protected] ~]#

在上面的命令中:

-s --> creates snapshot logical volume
 
-L --> creates 50 Mb sized LV.
 
/dev/myvg/etc_dup is the logical volume which is mounted on "/etc_dup" for which we are taking LVM snapshot backup.

步骤3:您可以使用以下命令检查逻辑卷,可以看到以下示例显示了我们新创建的卷快照。

[[email protected] ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
etc_dup myvg owi-ao 512.00m
etc_snap myvg swi-a- 52.00m etc_dup 0.02
lvol0 myvg -wi-a- 1.99g
lv_root vg_rhel1 -wi-ao 15.57g
lv_swap vg_rhel1 -wi-ao 3.94g

步骤4:创建目录“ / etc_dup_snap”以安装快照卷并在其上方设置快照卷。 现在,如果转到/ etc_dup_snap的位置,则可以看到与/ etc_dup的挂载点相同的内容。

[[email protected] ~]# mkdir /etc_dup_snap
[[email protected] ~]# mount /dev/myvg/etc_snap /etc_dup_snap
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_rhel1-lv_root
16G 4.9G 9.7G 34% /
tmpfs 1002M 4.1M 998M 1% /dev/shm
/dev/sda1 485M 32M 428M 7% /boot
/dev/mapper/myvg-etc_dup
504M 18M 461M 4% /etc_dup
/dev/mapper/myvg-etc_snap
504M 18M 461M 4% /etc_dup_snap
[[email protected] ~]# cd /etc_dup_snap
[[email protected] etc_dup_snap]# ll
total 1428
-rw-r--r--. 1 root root 49 Mar 4 12:11 adjtime
-rw-r--r--. 1 root root 1512 Mar 4 12:11 aliases
-rw-r--r--. 1 root root 12288 Mar 4 12:11 aliases.db
-rw-r--r--. 1 root root 541 Mar 4 12:11 anacrontab
-rw-r--r--. 1 root root 148 Mar 4 12:11 asound.conf
-rw-r--r--. 1 root root 1 Mar 4 12:11 at.deny
-rw-------. 1 root root 232 Mar 4 12:11 autofs_ldap_auth.conf
-rw-r--r--. 1 root root 658 Mar 4 12:11 auto.master
-rw-r--r--. 1 root root 524 Mar 4 12:11 auto.misc
---- OUTPUT TRUNCATED--------

步骤5:现在转到“ / etc_dup”目录,并使用rm -f *命令删除其中的所有文件,不必担心我们的所有数据在“ / etc_dup_snap”安装点的快照中仍将保持不变。

[[email protected] /]# cd /etc_dup
[[email protected] etc_dup]# rm -f *
rm: cannot remove `lost+found': Is a directory
[[email protected] etc_dup]# ll
total 16
drwx------. 2 root root 16384 Mar 4 12:12 lost+found
[[email protected] etc_dup]#

现在,按照以下步骤将快照组合回原始卷,这将带回所有数据。

步骤6:使用以下命令合并卷快照。

[[email protected] ~]# lvconvert --merge /dev/myvg/etc_snap
Can't merge over open origin volume
Can't merge when snapshot is open
Merging of snapshot etc_snap will start next activation.

您可以放心地忽略上面输出中的错误消息。

步骤7:现在卸载/ etc_dup和/ etc_dup_snap。

[[email protected] ~]# umount /etc_dup_snap
[[email protected] ~]# umount /etc_dup

步骤8:现在停用并激活原始音量。 必须执行此步骤才能将图像合并回其原始体积。

[[email protected] ~]# lvchange -a n /dev/myvg/etc_dup
[[email protected] ~]# lvchange -a y /dev/myvg/etc_dup

步骤9:设置挂载点“ / etc_dup”,并使用ll命令重新检查其内容,如下所示:

[[email protected] ~]# mount /dev/myvg/etc_dup /etc_dup
[[email protected] ~]# cd /etc_dup
[[email protected] etc_dup]# ll
total 1428
-rw-r--r--. 1 root root 49 Mar 4 12:11 adjtime
-rw-r--r--. 1 root root 1512 Mar 4 12:11 aliases
-rw-r--r--. 1 root root 12288 Mar 4 12:11 aliases.db
-rw-r--r--. 1 root root 541 Mar 4 12:11 anacrontab
-rw-r--r--. 1 root root 148 Mar 4 12:11 asound.conf
-rw-r--r--. 1 root root 1 Mar 4 12:11 at.deny
-rw-------. 1 root root 232 Mar 4 12:11 autofs_ldap_auth.conf
-rw-r--r--. 1 root root 658 Mar 4 12:11 auto.master
-rw-r--r--. 1 root root 524 Mar 4 12:11 auto.misc
-rwxr-xr-x. 1 root root 1237 Mar 4 12:11 auto.net
-rwxr-xr-x. 1 root root 687 Mar 4 12:11 auto.smb
---- OUTPUT TRUNCATED--------

您可以在上面的输出中看到所有原始内容都已准备就绪,这意味着我们已经成功执行了LVM快照操作。

注意: 您不需要删除LVM快照备份。 通过将快照转换回原始卷,可以自动删除快照卷。

Sidebar