博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在线迁移存储
阅读量:5134 次
发布时间:2019-06-13

本文共 1570 字,大约阅读时间需要 5 分钟。

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 查看块设备信息

357726-20150930145129574-1060235987.png

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

创建一个外置快照

357726-20150930145129918-412461923.png

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

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

357726-20150930145130215-389776772.png

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

357726-20150930145130527-141146426.png

此时存储迁移已经完成

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

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

xml格式

测试代码

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)

{}

转载于:https://www.cnblogs.com/sj9524437/p/4849218.html

你可能感兴趣的文章
【题解】[P4178 Tree]
查看>>
QML学习笔记之一
查看>>
WPF中实现多选ComboBox控件
查看>>
ionic2+ 基础
查看>>
MyBaits动态sql语句
查看>>
用户空间与内核空间,进程上下文与中断上下文[总结]
查看>>
JAVA开发环境搭建
查看>>
Visual Studio基于CMake配置opencv1.0.0、opencv2.2
查看>>
SDN第四次作业
查看>>
django迁移数据库错误
查看>>
Data truncation: Out of range value for column 'Quality' at row 1
查看>>
字符串处理
查看>>
HtmlUnitDriver 网页内容动态抓取
查看>>
ad logon hour
查看>>
罗马数字与阿拉伯数字转换
查看>>
Eclipse 反编译之 JadClipse
查看>>
距离公式汇总以及Python实现
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>