如何在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