KVM Snapshot使用qemu-img, libvirt命令

實例一  使用qemu-img命令使用快照 
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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章