zoukankan      html  css  js  c++  java
  • 在线迁移存储

    http://www.udpwork.com/item/12674.html

    Block Copy指的是虚拟机存储迁移。迁移时,采用Snapshot+Block stream完成存储迁移。首先通过对虚拟机进行在线外部快照,然后通过BlockStream技术合并快照,完成存储热迁移。BlockStream可以将backing file合并至active


    示例:

    qemu 运行虚拟机

    qemu-system-x86_64 -m 1024 1.img

    ctrl+alt+2切换到qemu命令行下

    使用info block 查看块设备信息

    块设备为 ide-hd0 使用的镜像是1.img

    创建一个外置快照

    再使用info block 查看块设备,此时ide0-hd0 使用的文件已经是刚才创建的快照文件了,下面还有一行注意,backing file 1.img说明 这个快照文件是依赖原来的镜像文件的

    接下来使用 block_stream 命令把backing file 合并到快照中

    此时马上使用info block查看可以看到快照还是依赖原来的镜像文件,稍等一会再使用info block查看,此时快照已经不再依赖原来的镜像文件了

    此时存储迁移已经完成


    迁移后的镜像格式只能为qcow2,源文件格式可以为qcow2和raw


    已测试从本地文件系统迁到本地文件系统,本地文件系统和nfs之间相互迁


    xml格式

    http://www.libvirt.org/formatsnapshot.html


    测试代码

    python

    import libvirt

    conn=libvirt.open("qemu:///system")

    p = conn.lookupByName()

    flags=libvirt.VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY

    p.blockJobAbort("/var/lib/oe-instances-disk/7733b525-62d4-44b9-bf06-a2fe361d8f63",0)


    xml="

    <domainsnapshot>

      <name>snap1</name>

      <description>snap1-desc</description>

      <disks>

        <disk name='hdb' snapshot='external'>

          <source file='/root/1359.img'/>

        </disk>

      </disks>

    </domainsnapshot> "


    p.snapshotCreateXML(xml, flags)

    p.blockPull("hdb", 0, 0)

    p.blockJobInfo("hdb", 0)


    //获取进度信息,输出

     p.blockJobInfo("hdb", 0)

    {'end': 21474836480L, 'bandwidth': 0L, 'type': 1, 'cur': 7534346240L}

    >>> p.blockJobInfo("hdb", 0)

    {'end': 21474836480L, 'bandwidth': 0L, 'type': 1, 'cur': 7556366336L}

    >>> p.blockJobInfo("hdb", 0)

    {'end': 21474836480L, 'bandwidth': 0L, 'type': 1, 'cur': 7577337856L}

    >>> p.blockJobInfo("hdb", 0)

    {'end': 21474836480L, 'bandwidth': 0L, 'type': 1, 'cur': 12414615552L}

    >>> p.blockJobInfo("hdb", 0)

    {}








  • 相关阅读:
    golang 二进制转十进制实现方式
    mysql select column default value if is null
    MySQL 忘记root密码解决方法,基于Ubuntu 14.10
    ecshop 修改记录20150710
    mac os x 10.9.3 升级到10.10.4 记录
    View requires API level 14 (current min is 8): <GridLayout>
    android开发过程中遇到的坑
    如何为网站设置站点图标
    seq 显示00 01的格式
    lvs realserver 配置VIP
  • 原文地址:https://www.cnblogs.com/sj9524437/p/4849218.html
Copyright © 2011-2022 走看看