因為要做有關KVM虛擬機的實驗,所以需要虛擬機生成快照。查詢相關資料,說KVM可以使用兩種方法生成虛擬機的快照。
方法一、使用qemu-img snapshot命令進行生成快照
方法二、使用virsh snapshot-create-as命令進行生成快照
其實經過我的測試,發現使用qemu-img snapshot命令生成快照后,即使恢復快照也是沒有用的。虛擬機還是當前的狀態,而不是快照之前的狀態。不知道為什么,而且還不穩定,經常報錯。
注意要使用KVM的快照功能,虛擬機的硬盤一定要是qcow2格式,否則無法使用快照功能。
有關硬盤的格式,可以在創建虛擬機硬盤時指定,也可以使用相關命令進行轉換。這個可以參考我之前的文章《爛泥:KVM中安裝Windows Server 2008 R2系統》。
在這篇文章中,我們重點介紹有關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命令,創建快照如下:
snapshot-create-as centos centos_install_ftp
為虛擬機centos創建快照,快照名稱為centos_install_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虛擬機的快照介紹完畢。