拓冰建站拓冰建站
首页 / 资讯中心 / 正文

VMware迁移至KVM平台:OVF、virt-v2v与磁盘转换实战指南

前天晚上十一点我接到一个紧急电话机房里的VMware集群授权快要到期了公司两百多台虚拟机必须在两个月内迁到新的国产虚拟化平台ZSvirt上。电话那头问得很直接有没有哪种方式能不动业务直接把VMware里的虚拟机整体搬过去这个问题我最近一年被反复问到。只要你手里还跑着VMware虚拟机同时又打算把业务迁到基于KVM的国产平台这篇实战记录应该能帮你省掉不少弯路。我会按实际操作的顺序把三种迁移方式讲清楚OVF/OVA导出导入、virt-v2v转换、磁盘镜像直转。每一条路径我都会说明适用场景、具体操作步骤和踩过的坑照着走基本就能跑通。1. 迁移前的静态盘点先搞清楚要迁的是什么很多人一上来就想着用什么工具导、怎么转格式结果迁到一半才发现源虚拟机里挂着PCI直通设备、磁盘分区表特殊、或者某个业务软件的License绑定了MAC地址。迁移不是把文件从A盘拷到B盘而是把计算、存储、网络配置和操作系统内部的驱动栈整体搬到新平台。动手之前静态盘点比工具选型更重要。1.1 信息采集清单别等迁移时才发现漏了设备我给团队定的规矩是不盘点完不开工。每台虚拟机至少要采集下面几类信息做完后统一填进一张迁移评估表里。虚拟机名称、所在主机或集群、当前资源池归属。操作系统版本和内核/补丁级别Windows还要看是Server Core还是桌面体验版。CPU核数、内存大小、是否开了CPU热添加或内存热添加。磁盘数量、容量、置备方式厚置备还是精简置备、磁盘控制器类型LSI Logic SAS、LSI Logic Parallel、PVSCSI。网卡数量、网络类型、IP地址、是否启用了vLAN标签。特殊设备PCI直通GPU、加密卡、USB直通、CD-ROM挂载的ISO镜像。软件层面的License绑定信息很多商业软件会绑定网卡MAC或CPU型号换个环境License就失效。在vCenter里一台台看当然可以但虚拟机数量一多效率太低。我一般直接用PowerCLI脚本批量导出虚机配置一条命令就能拿到全量清单比自己翻Web页面快得多。拿到清单后再针对关键项做人工确认比如哪台机器接了加密狗、哪台机器的数据库实例还是裸设备方式挂载这类信息光看表格看不出来。1.2 快速判断这台虚拟机适合迁移还是重建盘点完成后先别急着迁对这些虚拟机做一个可迁移性分级。这里没有绝对的标准我自己的经验是这样一张判断表判断维度适合直接迁移建议重建或重新部署操作系统版本Windows Server 2008 R2及以上、CentOS/RHEL 6.x以上已经EOL的Windows 2003、老Unix、精简定制内核系统特殊硬件依赖纯软件应用、无附加硬件GPU直通、PCIe加密卡、物理加密狗应用架构单体应用、有完整安装包无状态前端节点、可弹性伸缩的缓存节点业务重要性核心数据库、ERP、OA临时测试环境、一次性任务节点系统状态已知账号密码、可正常启动忘记密码、系统损坏、依赖特定厂商驱动如果一台无状态前端节点只需要几分钟就能重新拉起一套我宁可重建而不是迁移。重建意味着新的系统、干净的配置后面出问题的概率反而小。反过来核心数据库或者老旧的业务系统装一次要半天而且可能装不回来的那必须走迁移。1.3 停机预算与备份给迁移留出安全垫无论选哪种迁移方式本质上都需要一次停机窗口。所谓在线迁移也只做到了先复制磁盘数据最后切换时仍需短暂停机。根据我自己的经验有一个比较好用的预算法则迁移单台虚拟机的时间约为磁盘复制时间的1.5到2倍加上验证时间再预留1小时处理意外。举个例子一台500GB磁盘的虚机千兆网络下磁盘复制大约需要40到60分钟那么整台机器的迁移窗口至少要排3小时复制1小时硬件配置和驱动调整30分钟系统验证1小时剩余30分钟处理突发问题。不要把你的变更窗口卡得太紧我见过太多人因为窗口不够最后一路忙到凌晨出了小问题都没时间排查。还有一个无论如何都不能省的动作迁移前对源虚拟机做一次完整备份。如果是vCenter环境直接打一个快照快照能保留源机状态迁移失败后可以立即回滚。如果虚拟机里跑的是数据库还要额外确认数据库自身的备份策略是否正常。我遇到过迁移失败想回滚、结果发现快照被后台任务合并掉的场景那真是欲哭无泪所以备份验证一定不要省。2. 方法一OVF/OVA导出导入——门槛最低的迁移方式如果你要迁的虚拟机数量不多或者团队里运维人手有限、不想碰命令行OVF/OVA导出导入是最容易上手的方法。它本质上就是把虚拟机打包成一个标准格式的模板再在目标平台解压出来。整个过程中虚拟机的磁盘数据、硬件配置信息都会原样保留。2.1 从 vSphere 导出 OVF/OVA 的完整操作在vCenter的Web Client里找到要迁移的虚拟机执行操作 - 模板 - 导出为OVF。平台会把这台虚拟机的配置说明文件和磁盘文件一起打包。需要注意大磁盘会被自动拆分成多个vmdk分卷文件这是正常现象不是导出失败。如果虚拟机数量多手动一个个点导出太慢可以用ovftool工具批量操作。下面这行命令是从vCenter导出指定虚拟机到本地目录ovftool --overwrite --sourceTypeVI \ vi://administrator:passwordvcenter.example.com/Datacenter/vm/webserver01 \ /data/export/webserver01.ovf导出完成后目录里通常会有这几类文件.ovfXML格式的虚拟机描述文件包含CPU、内存、磁盘、网卡等硬件信息。.vmdk虚拟磁盘数据文件大磁盘会产生多个分卷命名类似webserver01-1.vmdk、webserver01-2.vmdk。.mf清单文件用于校验文件完整性导入时平台会校验损坏会直接报错。导出OVF/OVA时有一个细节容易栽跟头虚拟机的CD-ROM如果挂了ISO镜像部分导出工具会报错或跳过导致目标平台启动时找不到引导设备。我建议导出前先把不需要的CD-ROM设备删掉或者断开ISO挂载只保留系统盘和数据盘这样导入后虚拟机各硬件之间的关系更干净。2.2 ZSvirt 中导入 OVF/OVA 的正确姿势ZSvirt这类基于KVM的国产虚拟化平台Web控制台里通常会提供导入虚拟机或从模板创建虚拟机的功能。进入导入界面后选择上传OVF和对应的vmdk文件平台解析完OVF描述文件会自动帮你创建好对应的虚拟硬件包括CPU、内存、磁盘和网卡。在导入过程中我会特别关注几个选项存储位置必须选对目标存储池最好根据磁盘性能需求选择SSD池或HDD池别一股脑全部丢到默认存储里。磁盘格式ZSvirt底层一般支持qcow2和raw两种格式。从OVF导入时平台默认转成qcow2qcow2的特点是占用空间小、支持快照但性能略低于raw。如果是高IO的核心数据库我建议后续再转换成raw或者直接在存储配置里选用raw。网络归属导入生成的虚拟网卡默认连接到一个bridge或虚拟网络导入后要手动调整为目标网段对应的网络否则虚拟机起不来或IP不对。有个小技巧导入前先确认OVF里描述的网卡数量和顺序与源虚拟机一致。Windows虚拟机里网卡顺序一旦变化可能导致网络和共享中心里的网络位置从域网络变成公用网络Windows防火墙策略随之变化业务端口就放通了又像没放通。2.3 导入后必做三件事virtio 驱动、MAC 地址、UUIDOVF导入只是把壳搬过来了虚拟机能不能稳定运行取决于下面三件事有没有处理好。第一件安装或启用virtio驱动。VMware环境里网卡和磁盘默认走的是VMware自家半虚拟化设备迁到KVM平台上后虚拟设备变成了virtio网卡和virtio磁盘。Windows虚拟机如果没有安装virtio驱动进入系统后会看到网卡和存储控制器旁边全是黄色感叹号磁盘甚至可能直接无法识别。解决办法是在迁移前于VMware虚拟机内先挂载virtio-win驱动ISO把驱动文件拷到系统里导入后手动更新驱动即可。这件事最好在导出OVF前做省去导入后进不了系统的尴尬。第二件保持网卡MAC地址一致。OVF描述文件里记录着源虚拟机的MAC地址导入时平台如果允许编辑NIC的MAC最好填成和源机完全一样。为什么很多软件的License绑定MACDHCP保留地址也依赖MAC数据库的主从复制也可能把MAC写入授权列表。改了MAC这些服务会全部失效。我经历过一次核心ERP系统迁完后怎么都连不上数据库排查半天发现是数据库的白名单里绑了旧MAC地址。第三件检查UUID和机器标识。Linux系统的/etc/machine-id和Windows的机器SID如果多台虚拟机相同会导致一些分布式应用产生混乱。ZSvirt导入OVF时通常会自动生成新的UUID但我在实践中发现部分导入流程会保留源OVF里的UUID这种情况要手动重新声明UUID避免和源机同时运行时被上层应用判定为同一台机器。2.4 OVF/OVA 方式的适用边界OVF/OVA听起来很方便但它不是一个万能方案。它的主要问题是efficiency不高导出、上传、导入需要人工等待整个过程文件要在网络里传两遍源平台导出一遍再上传到目标平台一遍。迁移500GB以上的大虚机时时间成本会非常可观。我的建议是OVF/OVA适合三类场景虚拟机数量少比如10台以内手工操作完全能接受。虚拟机上有特殊的硬件配置比如多网卡、多磁盘、某些预留设备需要把配置描述尽量完整地搬到新平台。网络带宽有限导出后可以拷贝到移动硬盘再带到目标机房导入。如果数量大、每台机器磁盘也不小直接跳到下一种方式会更省力。3. 方法二virt-v2v 转换——批量迁移的高效路径早期我做VMware向KVM平台迁移时最头疼的就是驱动和虚拟硬件差异后来接触到virt-v2v这个工具彻底改变了我的工作方式。它能够在转换磁盘格式的同时自动完成virtio驱动的注入、网卡配置的重写、引导程序的调整甚至可以直接从vCenter读取虚拟机进行转换。3.1 virt-v2v 到底帮你做了哪些事virt-v2v是libguestfs工具集里的一个组件字面意思是virtual-to-virtual虚拟机格式转换器。它和普通磁盘转换工具最大的区别是它会理解操作系统内部结构而不只是复制块数据。具体来说它会做以下几件事将源磁盘格式转换为目标平台支持的格式vmdk转qcow2、raw等。解析磁盘内的操作系统向系统内注入virtio驱动并在引导配置中启用virtio设备。重写网络配置。例如CentOS/RHEL系统里的ifcfg-eth0会根据目标平台的网卡地址和接口名重新生成避免启动后网卡起不来。调整分区和文件系统结构适应目标平台的磁盘布局。对Windows系统会自动处理注册表中的磁盘控制器驱动和硬件签名信息让Windows在KVM平台上能正常引导。在ZSvirt这类KVM系平台里virt-v2v转换出来的虚拟机启动后通常不需要再进控制台折腾驱动系统直接就能拉到网络。这一点是OVF/OVA手动导入没办法比的。3.2 从本地 vmdk/vmx 转换的典型命令virt-v2v支持多种输入方式直接从vCenter读取虚拟机、从本地vmdkvmx文件、从OVA包、甚至从物理机。我这边最常用的场景是把一台VMware虚拟机导出到本地后再执行转换。假设我们在迁移服务器上已经有一份完整的导出目录里面是webserver01.vmx和webserver01.vmdk那么转换命令如下virt-v2v -i vmx webserver01.vmx \ -o local -os /data/zsvirt-images \ -of qcow2 \ --bridge br0参数含义-i vmx告诉virt-v2v输入格式是VMware的vmx描述文件。-o local -os /data/zsvirt-images输出到本地目录后面的路径换成ZSvirt主机可访问的存储路径。-of qcow2输出磁盘格式为qcow2如果目标环境需要raw也可以改为raw。--bridge br0将转换后的虚拟网卡绑定到目标平台的Linux网桥br0上。如果源虚拟机多个磁盘virt-v2v会自动识别vmx中所有的disk设备逐一转换。转换过程中会在终端打印详细的分析日志包括识别出的操作系统类型、网卡配置、磁盘分区布局等信息。有一点要注意转换前源虚拟机必须是关机状态或者至少保证磁盘数据是静态一致的。我在实战中不会对运行中的虚拟机直接转换因为磁盘在持续写入转出来的镜像文件系统可能是脏的启动后会执行文件系统检查极端情况下数据会不一致。3.3 借助迁移服务器并发处理大批量虚机做大批量迁移时我不会直接在ZSvirt的计算节点上跑virt-v2v而是单独准备一台通用的Linux迁移服务器配置不需要太高但存储I/O要好内存至少要16GB以上。转换是CPU密集加I/O密集的操作单台迁移服务器同时跑3到4个virt-v2v任务是比较合理的再多反而会因为争抢磁盘I/O拖慢整体速度。简单统计一下一台8核16GB的迁移服务器跑4个并行的virt-v2v任务每个任务转换一块50GB的Windows磁盘大约需要20到30分钟。一晚上可以处理三四十台中小型虚机这个效率是OVF手动导入远远达不到的。并发跑的时候最好给每个任务做一个日志文件方便失败后定位virt-v2v -i vmx webserver01.vmx \ -o local -os /data/zsvirt-images \ --bridge br0 /var/log/v2v/webserver01.log 21 virt-v2v -i vmx webserver02.vmx \ -o local -os /data/zsvirt-images \ --bridge br0 /var/log/v2v/webserver02.log 21 任务结束后我会用grep快速扫描日志里的error和warning字段先处理有问题的任务再批量执行后续步骤。3.4 virt-v2v 常见报错与我的处理方式virt-v2v看起来自动化程度很高但遇到特殊情况仍然会报错。我把自己遇到频率最高的几种情况列出来报错场景原因处理方法提示找不到操作系统或无法识别分区系统分区被加密、LVM结构特殊、或使用了非标准引导方式先单独用libguestfs的virt-filesystems命令检查磁盘内分区确认可访问性转换Windows虚机时网络配置注入失败virt-v2v对部分Windows版本的网络识别有限转换完成后手工进入系统用virtio-net驱动手动配置IP网桥参数错误导致目标xml生成失败目标平台网桥名称与--bridge参数不一致先在ZSvirt主机上用ip addr确认实际网桥名再执行转换磁盘空间不足转换过程中需要存储临时文件日志和分析文件也占空间迁移服务器预留源磁盘大小1.5倍以上的空间另外virt-v2v转换Windows虚拟机时有一个隐形问题——Windows许可激活。因为底层硬件和BIOS/UUID都变了Windows可能要求重新激活。这个问题不常见但偶发遇到时联系微软或使用企业KMS激活服务器重新激活即可不影响数据和业务逻辑。4. 方法三磁盘镜像直转——绕开平台限制的兜底方案有些场景下OVF/OVA导出和virt-v2v都用不上源虚拟机不是标准的VMware虚拟机而是裸磁盘文件或者虚拟机里装了很特殊的加密驱动virt-v2v在分析阶段就报错又或者你手里根本没有vmx配置只有一个孤零零的vmdk文件。这时候就得用最直接的方式qemu-img convert。它不关心系统内部结构只负责把磁盘格式从一种变成另一种。4.1 qemu-img convert 的核心用法与参数选择qemu-img是QEMU/KVM自带的磁盘管理工具几乎所有KVM系平台都内置它。把vmdk转成qcow2是使用频率最高的一种场景命令非常简单qemu-img convert -p -c -f vmdk -O qcow2 webserver01.vmdk webserver01.qcow2简单解释一下参数-p显示转换进度大数据量迁移时非常有用能估算剩余时间。-c转换成qcow2时启用压缩适合存档和低速网络传输但会明显增加转换时间。-f vmdk输入格式不指定时qemu-img会尝试自动检测不过我还是建议明确写出来避免误判。-O qcow2输出格式这个参数名里是大写字母O。源文件在左边目标文件在右边别写反了写反了会直接覆盖源文件这个错误我见过不止一次了。转换完成后还需要创建一个对应的虚拟机XML或使用平台界面手动创建一台新虚拟机磁盘选择这个qcow2文件硬件配置尽量对齐源机。如果源机有多个磁盘逐个转换后再挂载到同一台虚机上启动系统后通常能正常进入。多磁盘转换有个小坑vmdk分卷文件类似web-disk1-1.vmdk这种名字可能是链接描述文件真正数据在另一个-flat.vmdk里。直接拿带序号的vmdk去convert会失败或者得到一个很小的镜像需要先确认哪一个才是真实数据文件。用file命令查看vmdk文件类型就能判断。4.2 跨网络大卷的处理思路raw 直转 NFS 或 iSCSI如果是几百GB甚至TB级别的大磁盘先在本地转成qcow2再上传到ZSvirt效率太低了。这种场景我一般直接用qemu-img的raw格式转换挂载到目标存储做远程写入。做法是分两步。第一步先把vmdk转成raw格式qemu-img convert -p -f vmdk -O raw webserver01.vmdk /mnt/zsvirt-storage/webserver01.raw这里/mnt/zsvirt-storage是ZSvirt主机通过NFS或iSCSI挂载过来的共享存储目录相当于转换的同时就把数据传输到了目标平台省去了一次文件上传。如果目标存储直接支持qcow2也可以直接在qemu-img里指定-O qcow2目标路径为共享存储上的挂载点一步到位。我见过一些团队用dd命令配合netcat远程传输整个raw磁盘这种方式在万兆内网里速度确实不错但需要两端同时操作而且对整个磁盘做全量复制哪怕是文件系统里已经删除的数据也会原样复制过去耗时明显高于文件级转换。除非源磁盘格式过于特殊导致qemu-img无法识别否则我不推荐用dd。4.3 为什么在线转换最容易翻车群里经常有人问能不能让虚拟机不停机直接把运行中的vmdk转成qcow2从命令行角度确实可以对着在线虚拟机的vmdk文件执行qemu-img convert不会报错也看不到明显异常。但这样做非常危险。原因在于源虚拟机还在持续写入磁盘。转换工具读取磁盘时虚拟机可能在修改文件系统的元数据、数据库可能在落盘日志、可能正在扩展某个文件。当你读到一半数据被改了最后生成的镜像相当于行驶过程中抢拍的一张照片既不是转换开始时的状态也不是转换结束时的状态而是一个文件系统内部的撕裂状态。这样一个镜像挂载到KVM平台上轻则启动时文件系统检查报错重则目录结构损坏、数据库文件无法恢复。所以我的结论很明确qemu-img convert执行前源虚拟机必须关机或者至少先做一次基于存储的快照确保快照之后的磁盘状态是一致的。在ZSvirt迁移场景里我更倾向于关机转换这个停机成本是必须接受的。5. 迁移后的验证清单别急着删源机虚拟机在ZSvirt平台上成功开机不代表迁移就算完成了。我见过太多人看到桌面起来了就宣布大功告成结果业务系统一连数据库发现连不上或者存储上的调度任务第二天凌晨全挂了。建立一套标准化的验证清单并且逐项打钩才是迁移项目真正收尾的标志。5.1 系统层验证先确认机器真的活了第一步验证永远是最基础的系统状态Windows虚拟机能正常进桌面、设备管理器里没有未知设备特别是网络控制器和其他PCI设备、网卡指示灯正常。在cmd里执行ipconfig /all确认IP地址、网关、DNS配置与源机一致。Linux虚拟机通过控制台登录执行ip addr查看网络确认网卡是否已经获取到IP。再检查挂载状态df -h确认数据盘都正常挂载没有丢失的分区。systemctl列出所有failed状态的unit逐项确认不影响业务。时钟检查两种系统都需要确认时间是否正常。迁移后源VMware Tools已被移除时钟源变成了kvm-clock。用date对比当前时间偏差超过几分钟就要检查NTP配置。然后才是业务层验证Web页面能打开、数据库连接正常、日志服务能写文件、定时任务按计划触发。如果原环境里配置了监控系统确认新虚拟机已经注册到监控相应的告警阈值和告警联系人没有丢。5.2 存储与性能确认确认磁盘类型和性能基线ZSvirt平台上要主动确认每台虚拟机的磁盘格式和存储位置。我遇到过一个案例迁移时没有指定存储策略两块数据盘落到了不同性能的存储池里数据库性能掉了一半业务方差点炸锅。在系统层验证之后建议做一次简单的性能基线测试Windows虚拟机用CrystalDiskMark跑一轮记录顺序读写和随机读写数据与迁移前做对比。Linux虚拟机用fio跑一轮基础测试fio --nametest --filename/root/fiotest \ --ioenginelibaio --rwrandread --bs4k \ --size1G --numjobs4 --runtime60 --group_reporting这里重点是确认两个指标IOPS有没有数量级下降延迟有没有明显升高。如果性能确实差很多优先检查是不是磁盘分配了精简置备导致每次写入都触发分配操作或者存储池本身的磁盘规格选低了。5.3 回滚预案源机保留多久、如何回退迁移后源VMware虚拟机先不要删除我一般要求源机至少保留两周以上核心业务系统保留一个月。这个保留期的意义在于迁移后的虚拟机可能在长时间运行后暴露出偶发性问题比如某个定时任务在特定日期触发异常保留源机随时可以回退代价是最小的。回退的操作在VMware端很简单因为源机一直是关机状态直接开机即可。但我建议在保留期内不要对源机做任何修改比如不要继续在源机里安装补丁不要把源机也加入备份策略产生新的快照。想回退的时候源机状态越接近当初关机那一刻回退越干净。如果业务要求恢复到迁移点之后的数据那就涉及双向数据同步的复杂场景这已经超出虚拟机迁移的范畴需要依靠应用层的数据同步机制来实现。大多数情况下确认迁移后的虚拟机稳定运行一到两周回滚预案就可以正式关闭。6. 迁移过程中最容易被忽略的四个坑最后讲几个我实际操作中反复踩过的坑。这些问题不算疑难杂症但每个都能让迁移进度卡住半天而且单独看报错信息往往让人摸不着头脑。6.1 Windows 引导模型的差异SCSI 控制器驱动VMware环境里Windows虚拟机默认使用的SCSI控制器型号通常是LSI Logic SAS或者PVSCSI。而ZSvirt/KVM平台的默认磁盘控制器是virtio-scsi或者IDE/SATA。Windows系统启动时需要加载对应的存储驱动才能识别引导盘。如果迁移后出现蓝屏特别是报INACCESSIBLE_BOOT_DEVICE这类错误大概率就是新平台的存储控制器驱动没加载。解决办法是迁移前在VMware虚拟机里从virtio-win驱动包里把viostor驱动手动安装到系统里安装时不要求有硬件设备用添加过时硬件的方式手动安装即可。这样Windows系统里就有两套存储驱动了迁移到新平台后直接用virtio-scsi引导就不会蓝屏。6.2 Linux 网卡命名漂移eth0 一夜之间变 ens192Linux系统在VMware平台下网卡名通常是eth0、eth1而迁到KVM平台后由于固件信息变化和systemd的命名规则网卡可能变成ens192、enp1s0之类的名字。问题在于原来的ifcfg-eth0配置文件还在但新网卡名不叫eth0了systemd-networkd或NetworkManager根本不会去读取这个配置文件。结果就是网卡有了但没有任何IP配置机器上不了网。解决办法有两种第一种是迁完后重写网卡名配置。在/etc/default/grub里追加net.ifnames0 biosdevname0然后重新生成grub配置并重启让内核仍然使用eth0这种传统命名。第二种更省事把ifcfg-eth0拷贝一份并重命名为ifcfg-ens192然后修改文件里的DEVICE字段为ens192。这个办法不需要重启重启网络服务就能生效。我自己在批量迁移时一般用第二种速度快对业务影响也小。6.3 机器 ID 冲突克隆后遗症如果是通过克隆复制出来的虚拟机或者从同一个模板导出了多台迁移到ZSvirt后可能出现两台机器拥有完全相同的/etc/machine-id或Windows SID。在Linux环境里这会直接导致systemd的日志服务journald出现异常某些依赖机器ID做标识的分布式集群甚至会拒绝节点加入。处理方法是迁移完启动后重新生成一个新的机器IDrm -f /etc/machine-id systemd-machine-id-setupWindows虚机则建议在迁移完成后用微软官方的sysprep工具重新封装一次。不过sysprep操作会重置系统的一些配置如果不想折腾至少确认不用做域成员身份校验一般影响可控。6.4 时钟源切换带来的偶发问题VMware环境里虚拟机依赖VMware Tools做时间同步迁移到ZSvirt后VMware Tools被卸载或失效时间同步只能靠NTP或kvm-clock。如果源虚拟机此前长时间没有配置NTP时间完全靠ESXi主机同步那么迁过去之后时钟可能会逐渐漂移造成数据库事务时间异常、定时任务错乱。建议在迁移前就把源虚拟机的NTP配置好指向公司内部的NTP服务器。迁移后在ZSvirt控制台确认时间同步模式再检查一遍/etc/ntp.conf或chrony配置确保新平台的时间基准正常工作。这一步做在前面能避免后面很多诡异的抽风问题。最后分享一点个人经验。前前后后做了几十次VMware到KVM平台的迁移之后我现在的习惯是小规模、零散机器用OVF/OVA导出导入弄一台测试机完整走一遍流程确认驱动和网络没有问题核心业务机和大批量虚机用virt-v2v批量转换重点盯驱动注入和启动日志标准的vmdk文件用qemu-img convert直转处理。三种方式不是互斥的它们是同一套工具集里的不同扳手哪个顺手就用哪个。唯一不能省的是迁移前的盘点和迁移后的验证。回滚方案一定要在动手前就想好等出了问题再临时找方案那一刻整个机房都在等着你那种压力会让人做出错误判断。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门