Qemu虚拟机在线迁移到VMware

- libvirt版本:libvirt-10.0.0
- qemu版本:qemu-8.2.0
在生产环境中,大多数的场景是 vmware 虚拟机迁移到 qemu 环境,一般是通过关机然后导出、导入磁盘镜像来实现。
如果要将 qemu 环境虚拟机迁移到 vmware 怎么办呢?要求业务中断时间尽可能短。
下面介绍一种思路,来实现类似热迁移的效果(实际并不是热迁移,内存没办法做到热迁移,只是将业务中断时间缩短到很小间隔)。
1. 实现原理
具体思路是通过对 qcow2 做外部快照,然后 convert 外部快照到 vmdk ,重复 n 次外部快照+convert,同时转换后的 vmdk 也保持着完整快照链,最后阶段进行停机,将最后的磁盘 convert 到 vmdk,启动 vmware 虚拟机。

2. 创建测试虚拟机 testvm
首先创建一个虚拟机 testvm, 此虚拟机有 2 块磁盘:vda 系统盘,vdb 数据盘。下面我们以 vdb 数据盘为目标来做 vmware vmdk磁盘的迁移(vda系统盘类似)。

3. 操作步骤
(1)启动虚拟机

(2)进入虚拟机,格式化 vdb磁盘,然后挂载,写入文件 1.txt

(3)在host上,为 vdb 磁盘创建外部快照 snap1

(4)上一步 data.qcow2 是只读 backing file 磁盘,现在我们可以安全的对这个磁盘进行转换 ( convert ) 操作了

(5)在进入虚拟机 创建 文件 2.txt

(6)在host上,为 vdb 磁盘创建外部快照 snap2

(7) 对 snap1.qcow2 进行转换 ( convert ) 操作
这里需要指定 backing file 为第4步convert 后的 data.vmdk

(8)至此, 我们 可以重复执行 5、 6、 7 步骤 一直创建 vmdk 的快照链

(9)最后验证我们生成的 vmdk快照链是否可用
通过 qemu-nbd 挂载到本地,然后再 mount 到指定路径下,可以看到我们之前创建的文件及写入文件的内容,经验证 vmdk 磁盘完整可用。

参考文档:
qemu-img 文档翻译: https://blog.jcix.top/2018-09-28/qemu_img_doc/
迁移原理整理—VMware纳管原理 :https://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=117363
相关文章:
Qemu虚拟机在线迁移到VMware
libvirt版本:libvirt-10.0.0qemu版本:qemu-8.2.0 在生产环境中,大多数的场景是 vmware 虚拟机迁移到 qemu 环境,一般是通过关机然后导出、导入磁盘镜像来实现。 如果要将 qemu 环境虚拟机迁移到 vmware 怎么办呢?要求…...
计算机游戏因为d3dcompiler_47.dll丢失无法启动怎么办?解决只要d3dcompiler_47.dll丢失无法启动游戏软件的方法
d3dcompiler_47.dll 是一个动态链接库文件,属于 Microsoft DirectX 的一部分,主要负责编译和运行 3D 图形程序。它是支持 Direct3D 功能的核心组件,Direct3D 是一种用于编程 3D 图形的 API,广泛应用于游戏和图形密集型应用程序中。…...
LDO的原理及测试方法
一、基本结构 这是LM317芯片的核心,这个电路单元称为Bandgap Reference带隙基准源。属于模拟集成电路中的经典电路结构。 LDO拓扑结构图 常见的基本结构 利用VBE的负温度系数,而VT是正温度系数,正负温度系数抵消就的得到稳定的基准参考电压了(三极管的方程VBE=VT*In(lC/IS…...
图论算法学习
图论 dfs是可一个方向去搜,不到黄河不回头,直到遇到绝境了,搜不下去了,再换方向(换方向的过程就涉及到了回溯)。bfs是先把本节点所连接的所有节点遍历一遍,走到下一个节点的时候,再…...
面试题——RabbitMQ
★1.如何保证消息的幂等性?(如何避免消息重复投递) 生产端: 在消息发送前,先查询数据库此消息是否被处理过。处理过则忽略、否则继续处理,并在处理完成后修改状态为已处理。 消费端: 每个消息都生成全局唯一ID或业务I…...
前端开发之浏览器垃圾回收机制
前端开发之浏览器垃圾回收机制 V8引擎,作为Chrome浏览器和Node.js等环境下的JavaScript运行引擎,其垃圾回收机制是确保高效内存管理的关键。 V8垃圾回收机制的深度解析与优化 V8 JavaScript引擎采用了高效的垃圾回收机制,其中核心的实现特…...
less-loader的less转成CSS的底层原理
在现代Web开发中,CSS预处理器如LESS极大地提高了编写样式的效率和灵活性。而less-loader作为webpack的一个加载器,用于将LESS文件转换为CSS文件。本文将深入探讨less-loader如何工作,从解析LESS文件到生成最终的CSS文件的底层原理。 工作流程…...
解锁Flutter中的ProcessResult:让外部命令执行变得轻松
介绍 在我们的编程世界中,有时候我们需要与外部系统或者命令行交互。这就像在一场迷宫中寻找出口一样,我们需要向迷宫的门口询问正确的道路。而在 Flutter 中,这个问路的过程就是通过 ProcessResult 来实现的。 为什么要使用 ProcessResult…...
第二十五篇——信息加密:韦小宝说谎的秘诀
目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 加密这件事,对于这个时代的我们来说非常重要,那么…...
Redis 主从复制+哨兵+集群
1、总结写在前面 Redis 集群 数据分片 高可用性 Redis 哨兵 主从复制 故障转移 2、主从复制 2.1、准备配置 查看docker 容器 ip docker inspect 容器id | grep IPAddressdocker inspect -f{{.Name}} {{.NetworkSettings.IPAddress}} $(docker ps -aq)修改配置文件 初始…...
cpolar:通过脚本自动更新主机名称和端口号进行内网穿透【免费版】
cpolar 的免费版经常会重新分配 HostName 和 Port,总是手动修改太过麻烦,分享一下自动更新配置文件并进行内网穿透的方法。 文章目录 配置 ssh config编写脚本获取 csrf_token打开登陆界面SafariChrome 设置别名 假设你已经配置好了服务器端的 cpolar。 …...
【Python日志模块全面指南】:记录每一行代码的呼吸,掌握应用程序的脉搏
文章目录 🚀一、了解日志🌈二、日志作用🌈三、了解日志模块⭐四、日志级别💥五、记录日志-基础❤️六、记录日志-处理器handler🎬七、记录日志-格式化记录☔八、记录日志-配置logger👊九、流程梳理 &#x…...
SpringBoot 多种优雅的线程池配置与使用(异步执行函数,反射机制,动态识别参数,有返回值)
想要明白生活你需要先经历它,而不是总在分析它。 —萨莉鲁尼 文章目录 前言一、@Async注解1. 概念2. 使用2.1 使用@EnableAsync启动函数异步支持2.2 不会异步执行的坑2.2.1 为什么内部调用不会异步执行?2.2.2 如何确保@Async方法异步执行?3. 配置线程池3.1 通过代码配置3.1.…...
ansible copy模块--持续创作中
copy模块用于将文件从ansible控制节点(管理主机)或者远程主机复制到远程主机上。其操作类似于scp(secure copy protocol)。 关键参数标红。 参数: src:(source:源) 要复制到远程…...
自学SAP是学习ECC版本还是S4版本?
很多人想学SAP,问我应该学ECC版本还是S4版本,我的建议如果你是自学的话,我个人建议使用ECC版本就行,因为这两个版本前台业务和后台配置的操作差异并不大,主要差异在于数据库的差异,前台业务操作和后台系统配…...
银河麒麟4.0.2安装带有opengl的Qt5.12.9
银河麒麟4.0.2下载地址:银河麒麟-银河麒麟(云桌面系统)-银河麒麟最新版下载v4.0.2-92下载站 VirtualBox:https://www.virtualbox.org/wiki/Downloads qt下载:Index of /archive/qt/5.12/5.12.9 1安装VirtualBox:网上教材比较多 1)安装完后安…...
django学习入门系列之第二点《浏览器能识别的标签3》
文章目录 列表表格往期回顾 列表 无序列表 <!-- <ul </ul> 无序列表 --> <ul><li> 内容1 </li><li> 内容2 </li><li> 内容3 </li><li> 内容4 </li> </ul>有序列表 <!-- <ol> &…...
git常见实用命令,简单上手操作
常用命令: 添加远程账号名称:git config --global user.name ‘’ 添加用户eamil:git config --global user.email ‘’ 初始化厂库:git init 新建文件夹:mkdir 文件夹名 新建文件:touch 文件名 查看…...
2-11 基于matlab的BP-Adaboost的强分类器分类预测
基于matlab的BP-Adaboost的强分类器分类预测,Adaboost是一种迭代分类算法,其在同一训练集采用不同方法训练不同分类器(弱分类器),并根据弱分类器的误差分配不同权重,然后将这些弱分类器组合成一个更强的最终…...
Neo4j图形数据库查询,Cypher语言详解
Cypher语言详解 Cypher是一种专为Neo4j图形数据库设计的声明式查询语言。它类似于SQL,但其设计目标是便于表达图数据库中常见的图形结构和操作。本文将详细介绍Cypher语言的基本语法、常见操作、高级功能以及使用Cypher进行图形数据分析的技巧。 1. Cypher的基本概…...
绝美辛夷花海!九皇山春日限定,羌族古寨里的粉色浪漫
九皇山位于四川省绵阳市北川羌族自治县桂溪镇,是国家4A级旅游景区,地处四川盆地西北边缘与川西高原的过渡地带,属典型喀斯特地貌,核心风貌兼具丰富的自然生态景观与深厚的羌族人文底蕴,景区占地面积25平方公里…...
Python 函数式编程利器:Partial 与 ParamSpec 技术解析
partial 是 Python functools 模块中的偏函数,核心作用是「冻结」一个函数的部分参数(位置参数或关键字参数),生成一个新的函数,新函数调用时只需传入剩余未被冻结的参数即可,无需重复传入固定参数…...
ChatGLM3-6B-128K部署指南:Ollama环境配置避坑大全
ChatGLM3-6B-128K部署指南:Ollama环境配置避坑大全 本文面向需要处理长文本任务的开发者和研究者,手把手教你如何快速部署ChatGLM3-6B-128K模型,避开环境配置中的常见坑点。 1. 环境准备与快速部署 在开始部署之前,我们先简单了解…...
从‘社交网络’到‘路径规划’:邻接表DFS在5个真实场景中的实战应用
从‘社交网络’到‘路径规划’:邻接表DFS在5个真实场景中的实战应用 邻接表和深度优先搜索(DFS)这对黄金组合,远不止是算法教材里的抽象概念。当它们走出理论课本,进入真实世界的复杂系统时,展现出的问题解…...
5分钟搞定Meson交叉编译:手把手教你配置ARM64目标平台(附DPDK实例)
Meson交叉编译实战指南:从零构建ARM64平台的DPDK应用 第一次接触交叉编译时,我盯着满屏的工具链路径和架构参数发愣——这简直像在解译外星密码。直到发现Meson的交叉编译配置文件,才发现原来构建跨平台应用可以如此优雅。本文将带你用Meson这…...
LingBot-Depth实操手册:Gradio API返回JSON结构解析与字段含义
LingBot-Depth实操手册:Gradio API返回JSON结构解析与字段含义 1. 引言:为什么需要了解API返回结构 当你使用LingBot-Depth处理深度图像时,最让人困惑的可能就是API返回的那一串JSON数据。这些数据到底代表什么?每个字段有什么含…...
HunyuanVideo-Foley私有部署全攻略:RTX4090D专用优化,轻松搭建AI视频生成环境
HunyuanVideo-Foley私有部署全攻略:RTX4090D专用优化,轻松搭建AI视频生成环境 在AI视频生成领域,最令人沮丧的莫过于看着别人的演示视频效果惊艳,而自己却卡在环境配置和模型部署的泥潭中。从CUDA版本冲突到显存不足崩溃…...
影墨·今颜效果实测:100张生成图中98.3%通过小红书内容审核标准
影墨今颜效果实测:100张生成图中98.3%通过小红书内容审核标准 1. 真实效果惊艳展示 「影墨今颜」作为基于FLUX.1-dev引擎的高端AI影像系统,在实际测试中展现出了令人印象深刻的效果表现。我们进行了严格的批量测试,生成100张不同风格的人像…...
多模态数据挖掘前沿:生物医学与情感分析领域论文深度解析
多模态数据挖掘前沿:生物医学与情感分析领域论文深度解析 在人工智能与大数据技术飞速发展的当下,多模态数据因能更全面、立体地刻画研究对象,已成为科研领域的核心研究方向。本文将深度解析两篇聚焦多模态数据挖掘的重磅论文——《多模态生物…...
嵌入式系统调试常见问题与解决方案
嵌入式系统调试中的典型问题分析与解决策略1. 常见调试问题案例分析1.1 程序文件版本错误在嵌入式开发过程中,一个常见的低级错误是使用了错误的程序文件版本。某工程师在调试时发现单片机完全不执行程序,即使是最基本的GPIO控制也无法实现。经过以下排查…...
