kvm快照功能

來源:互聯網
上載者:User

一、簡介:

snapshot(快照)可以把虛擬機器某個時間點的記憶體、磁碟檔案等的狀態儲存為一個鏡像檔案。通過這個鏡像檔案,可以在以後的任何時間來恢複虛擬機器在當時建立snapshot的狀態,這個在使用虛擬機器來做測試的時候很有用。

二、建立快照-KVM:

需注意在虛擬機器運行時建立快照不會報錯,但會出現一些莫名其妙的問題,像恢複快照失敗、快照名為空白等,所以在建立快照前要先關閉虛擬機器。

2.1建立

//raw格式

kvm虛擬機器的raw格式磁碟檔案不支援快照功能,在建立快照前需要先轉換為qcow或qcow2格式。

[root@kvmserver xp_4_test]# qemu-img info disk.raw

image: disk.raw

file format: raw

virtual size: 100M (104857600 bytes)

disk size: 6.1M

[root@kvmserver xp_4_test]# qemu-img snapshot -c s1 disk.raw //raw格式的轉換報錯

qemu-img: Could not create snapshot'snapshot01': -95 (Operationnot supported)

//qcow2格式

[root@kvmserver xp_4_test]# qemu-img info disk.qcow2

image:disk.qcow2

file format: qcow2

virtual size: 100M (104857600 bytes)

disk size: 4M

[root@kvmserver xp_4_test]# qemu-img snapshot -c s1 disk.qcow2

[root@kvmserver xp_4_test]# qemu-img info disk01.qcow2//可以看到剛建立的快照s1

image: disk.qcow2

file format: qcow2

virtual size: 100M (104857600 bytes)

disk size: 80M

cluster_size: 65536

Snapshot list:

ID       TAG                VMSIZE               DATE      VM
CLOCK

1        s1                       02012-05-10 15:20:40  00:00:00.000

[root@kvmserver xp_4_test]# ls -lh 

總用量 7G

-rw-r--r--. 1 qemu qemu 108M  5月 10 15:03disk.qcow2

-rw-r--r--. 1 qemu qemu 6.5G  5月 1015:03xp_4_test.img

建立快照後不會有新的鏡像檔案產生;disk.qcow2鏡像檔案建立時的大小為100M,這裡顯示的大小為108M,這是因為快照位於disk.qcow2鏡像檔案內而沒有單獨產生一個檔案。

 

2.2列出鏡像的所有快照

[root@kvmserver xp_4_test]# qemu-img snapshot  -l  disk.qcow2

Snapshot list:

ID       TAG                VMSIZE               DATE      VM
CLOCK

1        s1                       02012-05-10 15:20:40  00:00:00.000

2        s2                       02012-05-10 15:32:37  00:00:00.004 

2.3快照恢複

恢複快照同樣也需要在關閉虛擬機器的情況下進行,下面的恢複會使虛擬機器恢複到2012-05-1015:20:40的狀態,在此時間點後對磁碟disk.qcow2的操作將全部失效

[root@kvmserver xp_4_test]# qemu-imgsnapshot -a s1 disk.qcow2

2.4 刪除快照

[root@kvmserver xp_4_test]# qemu-img snapshot -d s1 disk.qcow2

三、利用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

http://www.ibm.com/developerworks/tivoli/library/t-snaptsm1/index.html#row

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.