kvm環境下qcow2的鏡像支持快照
1 確認鏡像的格式
[root@nc1 boss]# qemu-img info test.qcow2
image: test.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 1.6G
cluster_size: 65536
2 爲鏡像test.qcow2創建快照,創建快照並沒有產生新的鏡像,虛擬機鏡像大小增加,快照應屬於鏡像。
[root@nc1 boss]#qemu-img snapshot -c snapshot01 test.qcow2
[root@nc1 boss]#qemu-img snapshot -c snapshot02 test.qcow2
快照名 鏡像名
3 列出某個鏡像的所有快照
[root@nc1 boss]#qemu-img snapshot -l test.qcow2
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 snapshot01 0 2011-09-07 15:39:25 00:00:00.000
2 snapshot02 0 2011-09-07 15:39:29 00:00:00.000
4 使用快照
[root@nc1 boss]#qemu-img snapshot -a snapshot01 test.qcow2
5 刪除快照
[root@nc1 boss]#qemu-img snapshot -d snapshot01 test.qcow2
附:
'snapshot' is the name of the snapshot to create, apply or delete
'-a' applies a snapshot (revert disk to saved state)
'-c' creates a snapshot
'-d' deletes a snapshot
'-l' lists all snapshots in the given image
實例二 利用libvirt使用快照
1 同樣先確認鏡像的格式爲qcow2
[root@nc1 boss]#qemu-img info test.qcow2
image: test.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 1.1G
cluster_size: 65536
2 創建並啓動以test.qcow2作爲鏡像的虛擬機,假設虛擬機名稱爲testsnp,如果虛擬機沒有啓動,也可創建快照,但是意義不大,快照size爲0
開始使用配置文件來創建指定虛擬機的快照
<domainsnapshot>
<name>snapshot02</name> //快照名
<description>Snapshot of OS install and updates</description>//描述
<disks>
<disk name='/home/guodd/boss/test.qcow2'> //虛擬機鏡像的絕對路徑
</disk>
<disk name='vdb' snapshot='no'/>
</disks>
</domainsnapshot>
保存爲snp.xml,開始創建
[root@nc1 boss]#virsh snapshot-create testsnp snp.xml //即以snp.xml作爲快照的配置文件爲虛擬機testsnp創建快照
Domain snapshot snapshot02 created from 'snp.xml'
3 查看虛擬機testsnp已有的快照
[root@nc1 boss]# virsh snapshot-list testsnp
Name Creation Time State
---------------------------------------------------
1315385065 2011-09-07 16:44:25 +0800 running //1315385065創建時間比snapshot02早
snapshot02 2011-09-07 17:32:38 +0800 running
同樣地,也可以通過qemu-img命令來查看快照
[root@nc1 boss]# qemu-img info test.qcow2
image: test.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 1.2G
cluster_size: 65536
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 1315385065 149M 2011-09-07 16:44:25 00:00:48.575
2 snapshot02 149M 2011-09-07 17:32:38 00:48:01.341
4 可以通過snapshot-dumpxml命令查詢該虛擬機某個快照的詳細配置
[root@nc1 boss]# virsh snapshot-dumpxml testsnp 1315385065
<domainsnapshot>
<name>1315385065</name>
<description>Snapshot of OS install and updates</description>
<state>running</state> //虛擬機狀態 虛擬機關機狀態時創建的快照狀態爲shutoff(虛擬機運行時創建的快照,即使虛擬機狀態爲shutoff,快照狀態依然爲running)
<creationTime>1315385065</creationTime> //虛擬機的創建時間 Readonly 由此可以看出沒有給快照指定名稱的話,默認以時間值來命名快照
<domain>
<uuid>afbe5fb7-5533-d154-09b6-33c869a05adf</uuid> //此快照所屬的虛擬機(uuid)
</domain>
</domainsnapshot>
查看第二個snapshot
[root@nc1 boss]# virsh snapshot-dumpxml testsnp snapshot02
<domainsnapshot>
<name>snapshot02</name>
<description>Snapshot of OS install and updates</description>
<state>running</state>
<parent>
<name>1315385065</name> //當前快照把前一個快照作爲parent
</parent>
<creationTime>1315387958</creationTime>
<domain>
<uuid>afbe5fb7-5533-d154-09b6-33c869a05adf</uuid>
</domain>
</domainsnapshot>
5 查看最新的快照信息
[root@nc1 boss]# virsh snapshot-current testsnp
<domainsnapshot>
<name>1315385065</name>
<description>Snapshot of OS install and updates</description>
<state>running</state>
<creationTime>1315385065</creationTime>
<domain>
<uuid>afbe5fb7-5533-d154-09b6-33c869a05adf</uuid>
</domain>
</domainsnapshot>
6 使用快照,指定使用哪一個快照恢復虛擬機
[root@nc1 boss]# virsh snapshot-revert testsnp snapshot02
7 刪除指定快照
[root@nc1 boss]# virsh snapshot-delete testsnp snapshot02
Domain snapshot snapshot02 deleted
附:
Snapshot (help keyword 'snapshot')
snapshot-create Create a snapshot from XML
snapshot-create-as Create a snapshot from a set of args
snapshot-current Get the current snapshot
snapshot-delete Delete a domain snapshot
snapshot-dumpxml Dump XML for a domain snapshot
snapshot-list List snapshots for a domain
snapshot-revert Revert a domain to a snapshot