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

  • 相关阅读:
    【基于初学者】SSH+Maven实现Excel导出功能
    【基于初学者】IDEA中Git的使用
    【基于初学者】通过eclipse工具如何创建Spring Boot工程
    【基于初学者】基于ssm框架实现不同用户显示不同的菜单模块
    【基于初学者】Struts框架
    【基于初学者】Maven相关配置和创建
    树莓派2+无线网卡=钓鱼热点
    mockjs 项目实战踩坑
    上传文件 上传图片 源码跟思路
    css 浮动及清除浮动 详细讲解
  • 原文地址:https://www.cnblogs.com/allcloud/p/5074407.html
Copyright © 2011-2022 走看看