zoukankan      html  css  js  c++  java
  • External (and Live) snapshots with libvirt

    list all the block devices associated with the guest

    $ virsh domblklist testvm --details
    Type       Device     Target     Source
    ------------------------------------------------
    file       disk       vda        /export/vmimgs/testvm.qcow2

    let’s create a snapshot(disk-only) of the guest

    $ virsh snapshot-create-as testvm snap1-testvm "snap1 description" 
      --diskspec vda,file=/export/vmimgs/snap1-testvm.qcow2 
      --disk-only --atomic

    – ‘–atomic’ just ensures either the snapshot is run completely or fails w/o making any changes

    $ qemu-img info /export/vmimgs/snap1-testvm.qcow2 
    image: /export/vmimgs/snap1-testvm.qcow2
    file format: qcow2
    virtual size: 20G (21474836480 bytes)
    disk size: 2.5M
    cluster_size: 65536
    backing file: /export/vmimgs/testvm.qcow2
    $ 

    created 2 more snapshots

    $ virsh snapshot-list testvm --tree
    
    snap1-testvm
      |
      +- snap2-testvm
          |
          +- snap3-testvm
            

    image file chain[ base<-snap1<-snap2<-snap3 ]:

    #--------------------------------------------#
    $ qemu-img info /export/vmimgs/snap3-testvm.qcow2
    image: /export/vmimgs/snap3-testvm.qcow2
    file format: qcow2
    virtual size: 20G (21474836480 bytes)
    disk size: 129M
    cluster_size: 65536
    backing file: /export/vmimgs/snap2-testvm.qcow2
    #--------------------------------------------#
    $ qemu-img info /export/vmimgs/snap2-testvm.qcow2
    image: /export/vmimgs/snap2-testvm.qcow2
    file format: qcow2
    virtual size: 20G (21474836480 bytes)
    disk size: 3.6M
    cluster_size: 65536
    backing file: /export/vmimgs/snap1-testvm.qcow2
    #--------------------------------------------#
    $ qemu-img info /export/vmimgs/snap1-testvm.qcow2
    image: /export/vmimgs/snap1-testvm.qcow2
    file format: qcow2
    virtual size: 20G (21474836480 bytes)
    disk size: 2.5M
    cluster_size: 65536
    backing file: /export/vmimgs/testvm.qcow2
    $
    #--------------------------------------------#

    Now, if we do not need snap2 any more, and want to pull all the data from snap1 into snap3, making snap1 as snap3’s backing file, we can do a virsh blockpulloperation as below:

    $ virsh blockpull --domain testvm 
      --path /export/vmimgs/snap3-testvm.qcow2 
      --base /export/vmimgs/snap1-testvm.qcow2 
      --wait --verbose
    Block Pull: [100 %]
    Pull complete

    可以看到snap3的backup为snap1

    $ qemu-img info /export/vmimgs/snap3-testvm.qcow2
    image: /export/vmimgs/snap3-testvm.qcow2
    file format: qcow2
    virtual size: 20G (21474836480 bytes)
    disk size: 145M
    cluster_size: 65536
    backing file: /export/vmimgs/snap1-testvm.qcow2

    snapshot-list 仍显示snap2

    $ virsh snapshot-list testvm --tree
    snap1-testvm
      |
      +- snap2-testvm
          |
          +- snap3-testvm

    所以仍可以恢复为

    base <- snap123

    External disk-snapshots(live) using RAW as original image: 

    源disk image 不变为raw,而snapshot为qcow2

    internal snapshots会导致源disk image变成qcow2

  • 相关阅读:
    小程序上传多张图片
    小程序倒计时遇到的问题
    taro小程序展示富文本
    taro小程序地址选择组件
    构建基于Suricata+Splunk的IDS入侵检测系统
    SQL注入学习资料总结
    常见WAF绕过思路
    业务安全漏洞挖掘归纳总结
    细说验证码安全 —— 测试思路大梳理
    验证码安全那些事
  • 原文地址:https://www.cnblogs.com/allcloud/p/5074407.html
Copyright © 2011-2022 走看看