kvm虛擬機器快照
kvm預設的檔案格式是raw,也就是使用檔案來模擬實際的硬碟(當然也可以使用一塊真實的硬碟或一個分割槽),不過raw格式只支援記憶體
快照(就是啟動的時候加-snapshot,所有更改都寫到記憶體),重啟之後就沒了。raw格式不支援磁碟快照,因此要使用qcow或qcow2檔案格式。

1、要建立qcow2格式的虛擬機器映象檔案
[root@target kvm_node]# qemu-img create -f qcow2 /virhost/kvm_node/node4.img 20G
引數-f指定格式,如果不指定預設的是raw。

[root@target kvm_node]# qemu-img info node4.img   #檢視映象檔案格式
image: node4.img
file format: qcow2
virtual size: 20G (21495808000 bytes)
disk size: 6.3G
cluster_size: 65536

2、把raw格式轉換成qcow2格式:
[root@target kvm_node]# qemu-img convert -f raw -O qcow2 /virhost/kvm_node/node5.img /virhost/kvm_node/node5_qcow2.img

3、為虛擬機器node4建立一個快照
[root@node4 ~]# ls /root/          #/root/下無檔案
[root@target kvm_node]# virsh snapshot-create-as node4 node4.snap1
[root@target kvm_node]# qemu-img info node4.img
image: node4.img
file format: qcow2
virtual size: 20G (21495808000 bytes)
disk size: 6.3G
cluster_size: 65536
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         node4.snap1            401M 2012-04-10 12:04:42   22:02:04.672

4、修改node4系統檔案並通過snapshot檔案恢復
[root@node4 ~]# scp node5:/root/* .   #從node5上覆制檔案
root@node5`s password: 
anaconda-ks.cfg                                                                          100% 1224     1.2KB/s   00:00    
scp: /root/Desktop: not a regular file
install.log                                                                              100%   34KB  33.7KB/s   00:00    
install.log.syslog                                                                       100% 4232     4.1KB/s   00:00    
nginx-0.7.65.tar.gz                                                                      100%  590KB 590.3KB/s   00:00    
pcre-8.02.tar.gz                                                                         100% 1218KB   1.2MB/s   00:00    
php-5.2.13-fpm-0.5.13.diff.gz                                                            100%  197KB 196.6KB/s   00:00    
php-5.2.13.tar.gz                                                                          0%    0     0.0KB/s   –:– ETAlphp-5.2.13.tar.gz                                                                        100%   11MB  11.2MB/s   00:01    
scp: /root/webbench-1.5: not a regular file
webbench-1.5.tar.gz                                                                      100% 7675     7.5KB/s   00:00    
[root@node4 ~]# ls
anaconda-ks.cfg  install.log.syslog   pcre-8.02.tar.gz               php-5.2.13.tar.gz
install.log      nginx-0.7.65.tar.gz  php-5.2.13-fpm-0.5.13.diff.gz  webbench-1.5.tar.gz

[root@target kvm_node]# virsh snapshot-create-as node4 node4.snap2     #為虛擬機器node4當前狀態建立快照
[root@target kvm_node]# virsh snapshot-list node4                      #檢視node4的快照
 名稱               Creation Time             狀態
————————————————————
 node4.snap1          2012-04-11 00:47:06 +0800 paused
 node4.snap2          2012-04-11 01:19:06 +0800 running

[root@target kvm_node]# virsh snapshot-revert node4 node4.snap1    #從快照檔案node4.snap1恢復node4
[root@node4 ~]# ls /root/          #/root/下無檔案,恢復成功

[root@target kvm_node]# virsh snapshot-revert node4 node4.snap2  #從快照檔案node4.snap2恢復node4
[root@node4 ~]# ls                                               #恢復成功
anaconda-ks.cfg  install.log.syslog   pcre-8.02.tar.gz               php-5.2.13.tar.gz
install.log      nginx-0.7.65.tar.gz  php-5.2.13-fpm-0.5.13.diff.gz  webbench-1.5.tar.gz

5、刪除快照
[root@target kvm_node]# virsh snapshot-delete node4 node4.snap1 


6、利用qemu-img建立映象檔案的snapshot
建立快照
qemu-img snapshot -c node4.snap1 /virhost/kvm_node/node4.img
#測試該命令建立快照大小總是為0,不知哪位大神能解決

檢視快照
qemu-img snapshot -l /virhost/kvm_node/node4.img

把虛擬機器恢復到某個快照的狀態:
qemu-img snapshot -a snapshot-name /path/to/os.img

刪除某個快照:
qemu-img snapshot -d snapshot-name /path/to/os.img