天天看點

LVM學習之KVM利用LVM快照備份與恢複虛拟機

最近一段時間一直在學習有關lvm邏輯卷方面的知識,前幾篇文章介紹了有關lvm的邏輯卷的基本相關知識,包括邏輯卷及卷組的擴容與縮小。今天我們再來介紹lvm快照的功能。

注意:本次實驗是與虛拟化kvm進行內建測試,通過kvm虛拟機是否正常啟動來檢查lvm的備份與恢複。

有關lvm的快照功能,我們可以通過lvcreate –help指令,檢視幫助文檔。如下:

LVM學習之KVM利用LVM快照備份與恢複虛拟機

先來檢視系統中邏輯卷,使用lvs指令。如下:

LVM學習之KVM利用LVM快照備份與恢複虛拟機

通過上圖,我們可以看到目前系統中隻有一個邏輯卷/dev/vg1/vhostdisk,現在我們來建立一個邏輯卷/dev/vg1/lvmsp,如下

lvcreate -l 30g -n lvmsp vg1

LVM學習之KVM利用LVM快照備份與恢複虛拟機

格式化建立的邏輯卷,如下:

mkfs.ext4 /dev/vg1/lvmsp

LVM學習之KVM利用LVM快照備份與恢複虛拟機

邏輯卷格式化完畢後,我們在系統中建立一個目錄用來挂載剛剛建立的邏輯卷,如下:

mkdir /test

LVM學習之KVM利用LVM快照備份與恢複虛拟機

現在我們來挂載邏輯卷,如下:

mount /dev/vg1/lvmsp /test

LVM學習之KVM利用LVM快照備份與恢複虛拟機

以上操作完畢後,我們現在把kvm虛拟機的硬碟存放到/test目錄下。如下:

cp -v /vhostdisk/testlvmos.img /test/

LVM學習之KVM利用LVM快照備份與恢複虛拟機

以上操作完畢後,我們先來測試下現在虛拟機是否可以正常啟動。

編輯虛拟機的xml檔案,修改硬碟的存放路徑。如下:

virsh edit testlvmos

LVM學習之KVM利用LVM快照備份與恢複虛拟機

啟動虛拟機testlvmos,如下:

virsh start testlvmos

LVM學習之KVM利用LVM快照備份與恢複虛拟機
LVM學習之KVM利用LVM快照備份與恢複虛拟機

通過上圖,我們可以看到虛拟機testlvmos已經正常啟動。現在我們關閉虛拟機,在這個時刻給邏輯卷/dev/vg1/lvmsp1,做一個快照。

使用如下指令:

lvcreate -l 100m -s -n lvmsp1 /dev/vg1/lvmsp

或者

lvcreate -s /dev/vg1/lvmsp -n lvmsp1 -l 100m

LVM學習之KVM利用LVM快照備份與恢複虛拟機

其中–s表示要建立快照,-n表示快照的名稱,-l 表示快照的大小。

<b>同時我們也可以很容易的看到,快照的建立也是很快的幾秒鐘的事情。這一點很重要,我們的備份工作也是根據這個來的,花費很少的時間卻能到達備份的功能。</b>

現在我們把邏輯卷/dev/vg1/lvmsp的快照進行挂載。如下:

mkdir /test1/

mount /dev/vg1/lvmsp1 /test1/

LVM學習之KVM利用LVM快照備份與恢複虛拟機
LVM學習之KVM利用LVM快照備份與恢複虛拟機

其實,現在我們也可以使用生成的快照來進行正常的操作。隻不過這篇文章我們不在此介紹,我們主要來介紹生成快照後的備份與恢複工作。

現在我們來檢視做快照之前,邏輯卷/dev/vg1/lvmsp1所挂載的目錄/test/詳細資訊。如下:

ll -h /test/

LVM學習之KVM利用LVM快照備份與恢複虛拟機

再來檢視快照所挂載的目錄/test1/詳細資訊,如下:

LVM學習之KVM利用LVM快照備份與恢複虛拟機

快照前後對比,截圖:

LVM學習之KVM利用LVM快照備份與恢複虛拟機

<b>通過上圖的對比,我們可以發現邏輯卷/dev/vg1/lvmsp的内容,與快照/dev/vg1/lvmsp1的内容是一模一樣的。如果我們現在把快照中的内容進行備份的話,這樣我們就可以很容易的恢複目前虛拟機的狀态。這個也就是我們本篇文章的重點,通過快照來備份虛拟機。</b>

現在我們來做實驗,需要以下幾個步驟:

1、 備份快照中的檔案testlvmos.img

2、 解除安裝已經挂載的快照/dev/vg1/lvmsp1

3、 删除邏輯卷/dev/vg1/lvmsp所挂載的/test/目錄中的所有内容

4、 把通過快照備份的testlvmos.img檔案複制到邏輯卷/dev/vg1/lvmsp挂載的目錄/test中

我們可以使用cp指令,把快照中的内容備份一份到其他目錄。在此我們備份到/baklvm/目錄下,如下:

cp -v /test1/testlvmos.img /baklvm/

LVM學習之KVM利用LVM快照備份與恢複虛拟機

快照備份完畢後,我們來解除安裝已經挂載的快照,并删除該快照。如下:

umount /test1/

lvremove /dev/vg1/lvmsp1

LVM學習之KVM利用LVM快照備份與恢複虛拟機

現在我們删除邏輯卷/dev/vg1/lvmsp所挂載目錄/test/的内容,如下:

rm -r /test/*

LVM學習之KVM利用LVM快照備份與恢複虛拟機

删除完畢後,再次啟動虛拟機testlvmos,如下:

LVM學習之KVM利用LVM快照備份與恢複虛拟機

通過上圖我們可以看到,目前虛拟機testlvmos是無法啟動的,提示缺少testlvmos.img檔案。

其實通過檢視,我們也知道确實是缺少該檔案。因為我們剛剛在前面已經删除該檔案,如下:

LVM學習之KVM利用LVM快照備份與恢複虛拟機

現在我們再把通過快照備份的testlvmos.img檔案複制到邏輯卷/dev/vg1/lvmsp所挂載的目錄/test/中,如下:

cp -v /baklvm/testlvmos.img /test/

LVM學習之KVM利用LVM快照備份與恢複虛拟機

我們再次啟動虛拟機testlvmos,如下:

LVM學習之KVM利用LVM快照備份與恢複虛拟機

通過上圖,我們可以而很清晰的看到,通過快照備份的虛拟機檔案和源檔案是一模一樣的。這樣也就恢複了lvm。

總結:利用lvm快照來做備份,主要是兩點:

1、 lvm快照資料和原資料一模一樣

2、 lvm快照速度快

注意:

1、 lvm快照卷無需做格式化等步驟,可以直接對快照卷進行挂載,解除安裝等操作,而且操作完成之後,就應該立即删除快照,以減輕系統的i/o負擔。 快照不會自動更新,長久保留是沒有意義的。

2、 lvm快照在恢複資料時,一定要先删除快照。否則lvm使用的還是原來的資料。

繼續閱讀