因為要做有關kvm虛拟機的實驗,是以需要虛拟機生成快照。查詢相關資料,說kvm可以使用兩種方法生成虛拟機的快照。
方法一、使用qemu-img snapshot指令進行生成快照
方法二、使用virsh snapshot-create-as指令進行生成快照
其實經過我的測試,發現使用qemu-img snapshot指令生成快照後,即使恢複快照也是沒有用的。虛拟機還是目前的狀态,而不是快照之前的狀态。不知道為什麼,而且還不穩定,經常報錯。
<b>注意要使用</b><b>kvm</b><b>的快照功能,虛拟機的硬碟一定要是</b><b>qcow2</b><b>格式,否則無法使用快照功能。</b><b></b>
在這篇文章中,我們重點介紹有關virsh snapshot-create-as指令生成快照。
不過在介紹之前,我們還是把第一種方法使用qemu-img snapshot指令生成快照的相關指令介紹下。
其實我們是可以直接通過指令的幫助查詢到有關qemu-img snapshot使用方法的。
本次實驗我們已虛拟機centos為例,已centos虛拟機安裝ftp指令前後做快照。

我們先來建立一個快照,使用如下指令:
qemu-img snapshot -c centos_install_ftp /vhostdisk/centos.img
建立快照
qemu-img snapshot -l /vhostdisk/centos.img
查詢快照
qemu-img snapshot -d centos_install_ftp /vhostdisk/centos.img
删除快照
注意,其中centos_install_ftp為快照名稱,/vhostdisk/centos.img為原虛拟機。
剛剛在使用qemu-img snapshot進行相關測試發現,居然把我的虛拟機給搞壞了。唉,真是坑爹啊,怪不得網絡上的資料顯示使用這個有問題呢。強烈建議,還是使用第二種方法吧。
以上是qemu-img snapshot建立kvm快照的方法,現在我們來介紹使用virsh snapshot-create-as來生成虛拟機快照的方法。
centos虛拟機未安裝ftp指令,建立快照如下:
snapshot-create-as centos centos_install_ftp
為虛拟機centos建立快照,快照名稱為centos_install_ftp
snapshot-list centos檢視虛拟機centos所有的快照
snapshot-info centos centos_uninstall_ftp
檢視虛拟機centos快照centos_uninstall_ftp詳細資訊
centos虛拟機安裝ftp指令,建立快照如下:
以上我們把centos這台虛拟機在安裝ftp指令前後的快照已經做好,現在虛拟機centos處于已經安裝ftp指令狀态,如果我們此時要把虛拟機centos恢複到安裝ftp指令之前的話,我們隻需要使用virsh snapshot-revert指令即可。但是在使用virsh snapshot-revert指令恢複虛拟機centos狀态之前,我們必須要把虛拟機關閉。
關閉虛拟機,我們可以使用virsh destroy指令進行強制性關機,我們也可以使用virsh shutdown指令進行關機。
注意要使用virsh shutdown指令進行關閉虛拟機的話,一定要安裝acpid服務。同時經過多次測試證明如果虛拟機有快照的話,就無法使用virsh shutdown/reboot,指令進行關機或者重新開機。
yum -y install acpid 安裝acpid服務
/etc/init.d/acpid status 檢視acpid服務是否運作
destroy centos強制關閉虛拟機centos
centos虛拟機關閉後,我們開始恢複虛拟機的狀态到未安裝ftp指令之前,即恢複虛拟機centos的快照。使用如下指令:
snapshot-revert centos centos_uninstall_ftp
注意:快照恢複完畢後,強烈建議把現在的虛拟機關閉重新啟動下。
以上是有關kvm虛拟機的建立與恢複,如果要删除一個快照,可以使用如下指令:
snapshot-delete centos centos_uninstall_ftp
至此kvm虛拟機的快照介紹完畢。