KVM 快照的定義:快照就是將虛機在某一個時間點上的磁盤、內存和設備狀態保存一下,以備將來之用。它包括以下幾類:
(1)磁盤快照:磁盤的內容(可能是虛機的全部磁盤或者部分磁盤)在某個時間點上被保存,然后可以被恢復。
磁盤數據的保存狀態:
在一個運行着的系統上,一個磁盤快照很可能只是崩潰一致的(crash-consistent) 而不是完整一致(clean)的,也是說它所保存的磁盤狀態可能相當於機器突然掉電時硬盤數據的狀態,機器重啟后需要通過 fsck 或者別的工具來恢復到完整一致的狀態(類似於 Windows 機器在斷電后會執行文件檢查)。(注:命令 qemu-img check -f qcow2 --output=qcow2 -r all filename-img.qcow2 可以對 qcow2 和 vid 格式的鏡像做一致性檢查。)
對一個非運行中的虛機來說,如果上次虛機關閉的時候磁盤是完整一致的,那么其被快照的磁盤快照也將是完整一致的。
磁盤快照有兩種:
內部快照 - 使用單個的 qcow2 的文件來保存快照和快照之后的改動。這種快照是 libvirt 的默認行為,現在的支持很完善(創建、回滾和刪除),但是只能針對 qcow2 格式的磁盤鏡像文件,而且其過程較慢等。
外部快照 - 快照是一個只讀文件,快照之后的修改是另一個 qcow2 文件中。外置快照可以針對各種格式的磁盤鏡像文件。外置快照的結果是形成一個 qcow2 文件鏈:original <- snap1 <- snap2 <- snap3。
(2)內存狀態(或者虛機狀態):只是保持內存和虛機使用的其它資源的狀態。如果虛機狀態快照在做和恢復之間磁盤沒有被修改,那么虛機將保持一個持續的狀態;如果被修改了,那么很可能導致數據corruption。
系統還原點(system checkpoint):虛機的所有磁盤的快照和內存狀態快照的集合,可用於恢復完整的系統狀態(類似於系統休眠)。
一、內存(狀態)快照 virsh save ---不建議
對運行中的 CentOS7運行 “virsh save” 命令。命令執行完成后,CentOS7變成 “shut off” 狀態。
創建快照
virsh list virsh save --bypass-cache CentOS7 /opt/backup/vm1_save --running
內存數據被保存到 raw 格式的文件中。要恢復的時候,可以運行 “vish restore /opt/backup/vm1_save” 命令從保存的文件上恢復。
二、磁盤快照 virsh snapshot-create-as
1.創建快照備份
virsh snapshot-create-as --domain CentOS7 --name snap-test1 --description "URL: www.test.com" virsh snapshot-list CentOS7
2.查看當前虛擬機鏡像文件
qemu-img info /opt/kvm/centos7.img
快照配置文件在/var/lib/libvirt/qemu/snapshot/虛擬機名稱/下
3.恢復虛擬機快照
(1) 恢復虛擬機快照必須關閉虛擬機。
virsh list –all virsh shutdown CentOS7
確認虛擬機是關機狀態
(2) 確認需要恢復的快照時間,然后確定恢復到snap-test1
(3) 執行恢復,並確認恢復版本
4.刪除虛擬機快照
virsh snapshot-delete CentOS7 snap-test1
參考文檔:https://www.cnblogs.com/sammyliu/p/4468757.html