KVM 快照管理

1. 快照分類

2. 創建快照的方式

    2.1 內置快照

        2.1.1 使用 qemu-img 命令:關機狀態下

        2.1.2 使用 virsh 命令(qemu-monitor-command,QEMU 監控器命令):運行狀態下

        2.1.3 使用 virsh  命令(snapshot-create-as):運行狀態下

    2.2 外置快照

        2.1.1 使用 qemu-img 命令(-o backing_file):關機狀態下

        2.1.2 使用 virsh 命令(snapshot-create-as):運行狀態下


注意要使用 KVM 的快照功能,虛擬機的硬盤一定要是 qcow2 格式,否則無法使用快照功能。

1. 快照分類
  • 磁盤快照

        對磁盤數據進行快照。主要用于虛擬機備份等場合。

    • 按快照信息保存方式,可以分為:

      • 內置快照

        • 內置磁盤快照(Internal disk snapshot):

                                快照點的磁盤狀態、數據和快照和 base 磁盤數據放在一個 qcow2 文件中。
                                虛擬機運行狀態和關閉狀態都可以創建。

          • Libvirt 使用 'qemu-img' 命令創建關機狀態的磁盤快照。

          • Libvirt 使用 'savevm' 命令創建運行狀態的磁盤快照。

        • 內置系統還原點(Internal system checkpoint):

                                內存狀態、設備狀態和磁盤狀態,可以為運行中的虛擬機創建。

                                所有信息都存儲在同一個qcow2文件中,只有在運行狀態才能創建內置系統還原點。

          • Libvirt 使用'savevm' 命令來創建這種快照

      • 外置快照

        • 外置磁盤快照(External disk snapshot):

                                磁盤的快照被保存在一個文件中,創建時間點以后的數據被記錄到一個新的 qcow2 文件中。

                                同樣可以在運行和關閉狀態創建。

          • Libvirt 使用 'transaction' 命令來為運行狀態創建這種快照。.

          • Libvirt 使用 'qemu-img' 命令(-o backing_file 指定后端映像)為關閉狀態創建這種快照。

        • 外置系統還原點(External system checkpoint):

                                虛擬機的磁盤狀態將被保存到一個文件中,內存和設備的狀態將被保存到另外一個新的文件中。

    • 按虛擬機狀態可以分為:

      • 關機態快照

                        數據可以保證一致性。

      • 運行態快照

                        數據無法保證一致性,類似與系統 crash 后的磁盤數據,使用時可能需要 fsck 等操作。

    • 按磁盤數量可以分為

      • 單盤

                        單盤快照不涉及原子性

      • 多盤

                        涉及原子性,主要依賴于 qemu 的 transaction 實現。主要分兩個方面:

        • 1、是所有盤快照點相同;

        • 2、所有盤要么都快照成功,要么都快照失敗。

  • 內存快照(VM state)

        對虛擬機的 內存/設備 信息進行保存。該機制同時用于休眠恢復,遷移等場景。

        主要使用 virsh save(qemu migrate to file)實現。

        只能對運行態的虛擬機進行。

  • 檢查點快照

        同時保存虛擬機的磁盤快照和內存快照。用于將虛擬機恢復到某個時間點??梢员WC數據的一致性。

2. 創建快照的方式

KVM 可以使用兩種方法生成虛擬機的快照:

  • 方法一:使用 qemu-img snapshot 命令進行生成快照

  • 方法二:使用 virsh snapshot 相關命令進行生成快照(推薦)

2.1 內置快照
2.1.1 使用 qemu-img 命令:關機狀態下

使用 qemu-img 創建快照、還原快照時,一定要在關機狀態下,否則會搞崩虛擬機。

s1.png

[root@Mallux kvm-machine]# virsh list
 Id    Name                           State
----------------------------------------------------
 1     ubuntu                         running
 4     DBHost                         running
 
[root@Mallux kvm-machine]# qemu-img snapshot -c k1-snap Koan.img            ### 創建快照

[root@Mallux kvm-machine]# qemu-img snapshot -l Koan.img                    ### 列出快照
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         k1-snap                   0 2015-12-13 13:48:09   00:00:00.000

[root@Mallux kvm-machine]# qemu-img snapshot -a k1-snap Koan.img            ### 還原快照
2.1.2 使用 virsh 命令(qemu-monitor-command,QEMU 監控器命令):運行狀態下

使用 virsh qemu-monitor-command 命令時,虛擬機需要處理于運行狀態。

s2.png

[root@Mallux kvm-machine]# virsh start Koan
Domain Koan started
 
[root@Mallux kvm-machine]# virsh qemu-monitor-command Koan --hmp 'savevm k2-snap'   ### 創建快照
[root@Mallux kvm-machine]# qemu-img snapshot -l Koan.img
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         k1-snap                   0 2015-12-13 13:48:09   00:00:00.000
2         k2-snap                220M 2015-12-13 13:59:31   00:00:56.494
 
[root@Mallux kvm-machine]# virsh qemu-monitor-command Koan --hmp 'loadvm k2-snap'   ### 恢復快照
2.1.3 使用 virsh  命令(snapshot-create-as):運行狀態下

快照目錄:/var/lib/libvirt/qemu/snapshot/

s3.png

[root@Mallux kvm-machine]# virsh snapshot-list Koan                   ### 查看快照
 Name                 Creation Time             State
------------------------------------------------------------
 
[root@Mallux kvm-machine]# virsh snapshot-create-as Koan k3-snap      ### 創建快照
[root@Mallux kvm-machine]# virsh snapshot-list Koan
 Name                 Creation Time             State
------------------------------------------------------------
 k3-snap              2015-12-13 14:30:29 +0800 running
 
[root@Mallux kvm-machine]# qemu-img snapshot -l Koan.img
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         k1-snap                   0 2015-12-13 13:48:09   00:00:00.000
2         k2-snap                220M 2015-12-13 13:59:31   00:00:56.494
3         k3-snap                220M 2015-12-13 14:10:54   00:02:47.322
 
[root@Mallux kvm-machine]# virsh snapshot-revert Koan k3-snap         ### 還原快照
 
[root@Mallux kvm-machine]# virsh doblklist
Target     Source
------------------------------------------------
vda        /home/kvm-machine/Koan.img                                 ### 內置快照,使用同一映像
2.2 外置快照
2.1.1 使用 qemu-img 命令(-o backing_file):關機狀態下
### 指定 backing_file 后端硬像時,將采用 Copy on write(寫時復制機制),改變的部分以單獨的文件來存儲。

[root@Mallux ~]# qemu-img create -f qcow2 /home/kvm-machine/node1.img \
-o backing_file=/home/kvm-machine/CentOS.img,size=30G

[root@Mallux ~]# virt-install -n "node1" --vcpus 1 -r 512 \
--connect qemu:///system \
--disk path=/home/kvm-machine/node1.img,bus=virtio \
--network network=default,model=virtio \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole \
--import

2.1.2 使用 virsh 命令(snapshot-create-as):運行狀態下

[root@Mallux kvm-machine]# virsh snapshot-create-as Koan k4-snap "k4-snap description" \
--disk-only --diskspec vda,snapshot=external,file=/home/kvm-machine/k4-snap-of-Koan.img \
--atomic
error: Operation not supported: live disk snapshot not supported with this QEMU binary

[root@Mallux kvm-machine]# qemu-kvm -version
QEMU PC emulator version 0.12.1 (qemu-kvm-0.12.1.2-2.448.el6_6.4), Copyright (c) 2003-2008 Fabrice Bellard

### 測試不通過,網上說問題可能出現在內核版本和 libvirt 的版本有依賴或兼容性問題,以及 qemu 的版本的關系。

END

原創文章,作者:影·隨行,如若轉載,請注明出處:http://www.www58058.com/11256

(0)
影·隨行影·隨行
上一篇 2016-02-14 09:54
下一篇 2016-02-14 09:56

相關推薦

  • heartbeartv2實現lamp高可用-week17

    3、基于heartbeat v2 crm實現HA LAMP組合;要求,部署wordpress,用于編輯的文章中的任何數據在節點切換后都能正常訪問; 拓撲: 環境: CentOS6.6NFS: 172.16.0.34 輸出mysql數據目錄ntp: 172.16.0.31 時間服務器node1: 172.16.0.32 heartbeart+httpd+php…

    Linux干貨 2017-05-23
  • linux 入門基礎

    Linux概念部分: 1.CPU是Central Processing Unit的縮寫,即中央處理器。由控制器和運算器組成,是計算機系統種最要組成部分。2.內存是介于CPU和外部存儲之間,是CPU對外部存儲中成粗與數據進行高速運算時存放程序指令、數據和中間結果的臨時場所,它飛物理實質就是一組具備數據輸入輸出和數據存儲功能的高速集成電路。3.內存是CPU能直接…

    Linux干貨 2017-09-03
  • 4th work

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限。 [root@localhost etc]# cp -r /etc/skel/ /home/tuser1 [root@localhost etc]# chmod go-rwx /home/tuser1/ 2、編輯/etc/gr…

    Linux干貨 2017-10-09
  • 第二周作業新

    一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 pwd :顯示當前所在路徑   cd :切換目錄   cd – :在上次目錄與當前目錄之間切換。   cd ~ :切換回自己的家目錄   cd . :當前目錄      cd .. :切換到…

    2017-02-18
  • ?Linux 硬連接與軟連接的區別

        Linux 硬連接與軟連接的區別                        &…

    Linux干貨 2016-10-25
  • Nginx 負載均衡多個nmmp主機

    設計拓撲圖 一、Memcache簡介 cache(緩存系統) 高性能分布式緩存服務器,緩存所有的“可流式化”數據:livejournal旗下Danga Interacive公司 程序=指令+數據 指令:程序 數據:IO操作 文件系統: 特征:協議簡單  基于libevent的事件處理  內置內存存儲方式  memcached 不…

    2016-06-14

評論列表(1條)

  • stanley
    stanley 2016-02-14 09:56

    漂亮,已置頂

欧美性久久久久