简介:针对VMware P2V热迁移场景的PDF文档,面向需要在不中断业务情况下将物理服务器转换为虚拟机的运维与虚拟化管理员,适合在实施前全面了解迁移链路与关键检查项。资源为单个PDF文档,大小约578KB,内容紧凑、便于离线查阅。文档详细阐述成功迁移的注意事项,包括vConverter服务器、ESX Server与源物理服务器之间的通信链路,Windows Installer、Workstation、Server、TCP/IP NetBIOS Helper及Volume Shadow Copy等关键服务状态,防火墙策略、C盘暂存空间预留、TCP/UDP端口放行等前置条件;随后讲解在vCenter中通过Converter插件创建调度任务,指定源物理机IP、用户名与密码作为凭据,设置目标虚拟机名称、主机、资源池、数据存储及网卡参数,并选择自动安装VMware Tools,同时涵盖操作系统序列号、连接数、时区及网络加入域等配置,直至设定执行时间并查看迁移进度;迁移完成后还可在vCenter中启动虚拟机以验证运行状态。目前已有1758人学习,适合需要为物理机到虚拟机平滑迁移提供实际操作参考的运维人员,有助于规避常见错误、保障业务连续性。
1. 把老旧物理机无损搬进虚拟化:P2V 热迁移能解决什么
机房角落里那台跑了五年的物理服务器,硬件过保、驱动停产,业务方却甩给你一句话:“这台机器不能停机。” 这时候最常用的解决方案就是 P2V 热迁移。P2V 是 Physical to Virtual 的缩写,把物理机转换成虚拟机;热迁移指的是源机全程不关机,在线把系统盘和数据盘复制到 VMware 虚拟机里。相比关机对拷的冷迁移,热迁移能做到业务几乎无感知,代价是数据一致性、增量同步的复杂度明显上升。这篇文章适合接手老旧物理机整合、机房腾退、硬件升级换代的运维和基础架构工程师,目标是让你能把整个迁移流程变成一套可复制的操作手册。
2. 热迁移原理与路线选择:冷迁移、vMotion 和 P2V 的边界
2.1 冷迁移与热迁移的取舍:什么时候不该用热迁移
物理机到虚拟机的迁移,常见做法只有两条路线。冷迁移先把业务停掉,关机状态下用磁盘对拷工具把整盘数据复制出来,再转成 VMware 的 VMDK 镜像;热迁移则靠一个临时 Agent 在源机后台运行,在线完成卷级复制和增量同步,最后做一次短暂的数据收敛。
新手很容易把热迁移当成默认选项,觉得“不停机就是好”。但冷迁移的优势同样很硬:机器关机后磁盘不会再变化,拷完镜像数据必然一致,不需要处理增量同步、VSS 快照这类不确定因素。对于内部测试机、非核心业务机或者数据量不大的机器,停机半小时就能完成的迁移,完全没必要上热迁移,给自己找麻烦。
我一般按三个条件做决定:业务是否允许短暂停写、磁盘总用量大小、迁移期间的数据变化速率。业务允许停写且数据量在 500GB 以内,直接冷迁移更省事;业务严格不允许停机,但日常写入量不高,热迁移是合理的选择;如果源机持续高写入,热迁移的增量同步可能永远追不上变化,这时候应该考虑数据库复制或备份恢复路线,而不是硬上 P2V。
实际沟通中还有一个容易混淆的概念:VMware 的 vMotion 在中文语境里也常被叫“热迁移”,但那是虚拟机在主机之间无缝迁移,要求源和目标都是虚拟机;而 P2V 热迁移的源是一台物理机。两者不在一个层面。跟业务方沟通时要把这两个词分开,否则对方以为你在做在线切换,理解会完全偏掉。
2.2 热迁移的复制机制:Agent 块级复制与 VSS 静默
VMware 的 P2V 热迁移,底子是卷级块复制加增量同步。源机上装一个 Converter Agent,Agent 按块读取各个卷的数据,全量写入目标虚拟机对应的 VMDK;全量做完后进入增量阶段,持续把变化的块同步过去,直到接近收敛。这个模型决定了迁移时间主要由磁盘总容量加上增量变化量决定,而不是单纯取决于网络带宽。
Windows 源机的关键依赖是 VSS,也就是 Volume Shadow Copy Service。Agent 在某个时间点触发一次卷影副本快照,然后从快照里读取一致的数据块。如果没有 VSS,直接裸读磁盘块,正在写入的文件会停在中间状态,迁移完成后的系统日志和数据文件很容易报损坏。所以预检时第一件事是确认 Volume Shadow Copy 服务和 Microsoft Software Shadow Copy Provider 都处于启动状态,而不是只停留在“手动”配置。
Linux 源机不依赖 VSS,Converter 通过文件系统层的一致性机制保证数据完整,但 Linux 迁移的难点在分区表、LVM 布局和引导器兼容性上,这几个问题在后面的避坑章节里有对应记录。热迁移的收敛时间还跟发起时段强相关:第一轮全量拷贝期间赶上业务高峰,增量同步会被持续的新写入拖着走,任务时间不可控。经验是避开业务高峰,选夜间低峰窗口发起转换任务。
2.3 工具选型:Converter Standalone 还是 vCenter 内置 P2V
实现 P2V 热迁移的官方工具,一类是独立的 VMware vCenter Converter Standalone,免费、GUI 操作,适合单台或小批量迁移;另一类是 vCenter 里的“迁移到虚拟机”向导,适合已经统一接入了 vCenter 的环境。两者走的是同一套底层复制引擎,区别主要在管理和集成方式上。
我的习惯是:三五台以内、目标端是单台 ESXi 或 Workstation 的环境,直接用 Converter Standalone,简单直接;已经上了 vCenter 的生产环境,用 vCenter 内置迁移方式,虚拟机直接注册进 vCenter,省掉后续手工加主机、加存储、加资源池的步骤。如果你的目标端是一台装好了 vmware workstation 的测试机,Converter 同样支持输出到 Workstation 虚拟机,只是少了后续热迁移和资源调度这类能力。
工具选型的隐藏前提是网络。Converter 服务端要访问源机的 445 管理共享和 135 远程管理端口,用来发现系统信息并推送 Agent;迁移数据通道还要放行目标 ESXi 的 902 端口。很多企业防火墙只放 443 不放 902,任务就会反复重试最终失败。另外,Converter 版本要跟目标端 ESXi 版本匹配,新版本 ESXi 用老版本工具可能无法识别目标主机,动手之前先去兼容性列表确认,能省掉大量返工。
3. 迁移前预检 6 项检查:让 P2V 少翻车的准备工作
3.1 源机兼容性、许可证与授权核对
先确认源机操作系统在 Converter 支持范围内。Windows Server 2003 到 2019、主流的 CentOS/RHEL/Ubuntu 基本都覆盖,但新发布的 Windows Server 版本用老版本 Converter 可能识别不了,动手前查支持矩阵是必要的,不是浪费时间。
许可证问题容易被忽略,这里单独拿出来说。Windows Server 迁到虚拟机的授权换算规则和物理机不同:物理机按物理 CPU 核数授权,虚拟化环境按虚拟 CPU 数授权,而且不同版本对虚拟化覆盖范围和故障转移权益的认定有差异。迁移本身不会验证许可证,但事后审计时发现虚拟核数超出授权范围会很被动。我在预检阶段会把物理机 CPU 型号、核数、内存、Windows 版本记进迁移表,对照授权规则算一遍再开始。
Linux 源机还要额外确认引导方式。BIOS 引导和 UEFI 引导在转换时对应的目标固件不同,选错会导致开机黑屏或找不到引导设备。判断方法很简单:检查是否存在 /sys/firmware/efi 目录,存在就是 UEFI 引导,目标虚拟机固件要选 UEFI;不存在就是传统的 BIOS 引导。
3.2 源机磁盘、VSS、凭据三项准备
磁盘准备的核心是清理和瘦身。C 盘上的临时文件、Windows Update 缓存、日志堆积,这些东西不会因为迁移而消失,全都会带进虚拟机白占数据存储空间。而且磁盘越大,全量拷贝时间越长,增量同步的负担也越大。迁移前一周就该把临时文件清一遍,有必要的话做一次磁盘碎片整理。
Windows 源机还有三个细节要卡死。第一,VSS 服务不能是禁用状态;第二,系统盘剩余空间至少留出 10%,VSS 快照需要临时空间;第三,动态磁盘里的跨区卷在 Converter 上的支持很差,常常只迁移第一段,剩下的数据会丢。确认这三件事没有异常再进入配置向导。
凭据准备上,用域管理员或本地管理员都可以,但 UAC 开启时会拦截远程 Agent 安装。常见做法是先确认“本地账户的 Admin Approval Mode”策略没有启用,或者直接用域管理员账户操作。我之前遇到过一次:本机管理员凭据怎么都推不上 Agent,换成域管理员一次通过,就是这个策略在作怪。
3.3 目标端空间预估、网络隔离与资源预留
目标端最容易在空间上翻车。源机 500GB 的磁盘,不代表最终 VMDK 只有 500GB:迁移过程中还有临时空间、快照空间、转换暂存文件,加上未来虚拟机的交换文件和日志,预留 1.2 倍只够兜底。数据存储空间不足时,任务会卡在最后阶段反复重试,进度条看着像坏了,实际是磁盘满了。
网络方面,迁移流量和生产流量隔离是基本要求。几百 GB 的数据流如果跟业务混在同一张物理网卡上,业务延迟会明显上升。ESXi 上单独建一个 VMkernel 端口供迁移流量使用,源机和目标端尽量处于同一二层网段,避免三层转发带来的丢包和延迟抖动。
虚拟机命名、放置位置、所属资源池也提前定好。别小看这些规划:迁移完成后还要做驱动装载、VMware Tools 配置、网络收敛这些收尾操作,如果虚拟机名字随便起、资源池乱放,后面管理全是坑。目标端虚拟机的网络参数也来自源机,预检阶段把 ipconfig /all 和路由表打印结果存一份,后面配置目标机网络和验证阶段都用得上。
4. 执行 P2V 热迁移:Converter 全流程与 4 个必调参数
4.1 源机扫描与 Agent 部署
打开 vCenter Converter Standalone 主界面,点击“转换机器”进入向导。第一步填写源机 IP 和操作系统类型,输入管理员凭据,Converter 会先做一次远程探测,读取源机的主机名、系统版本、磁盘布局和已安装驱动信息。探测结果就是后续配置向导的数据底座,如果这一步失败,问题大概率出在端口连通或凭据不匹配上。
动手前先用 PowerShell 做一次端口连通性测试,把网络问题提前暴露出来:
# 测试源机管理共享(445)和远程管理(135)端口是否可达 Test-NetConnection 192.168.10.20 -Port 445 Test-NetConnection 192.168.10.20 -Port 135 # 测试目标 ESXi 的迁移数据端口 902 是否放通 Test-NetConnection 192.168.10.30 -Port 902三条命令返回值里 TcpTestSucceeded 如果为 False,先解决防火墙和路由问题,再继续后续操作。Windows 源机探测通过后,Converter 不直接开始拷贝,而是先向源机远程部署一个临时 Agent 服务,Agent 负责在后台执行卷读取、快照触发和数据推送。部署 Agent 依赖管理共享,如果源机没开“文件和打印机共享”之类的防火墙规则,部署会反复超时。
Linux 源机的部署路径不同:Converter 通过 SSH 连接源机,在 /tmp 下释放 Agent 组件,由 Agent 完成后续复制。预检时确认 sshd 服务运行中、root 可以远程登录、临时目录有足够空间,这三项是 Linux P2V 的硬前提,缺一项任务都会中断在初始化阶段。
4.2 卷映射与虚拟机参数配置:4 个必调参数
进入配置阶段后,重点看两块:卷映射和虚拟机硬件参数。
卷映射界面会列出源机所有卷,并预填对应目标虚拟机磁盘。系统卷必选,业务数据卷看实际情况,临时盘和页面文件卷可以不迁,避免浪费目标端空间。页面文件这块可以单独说一句:如果源机页面文件在独立卷上,目标虚拟机可以只保留系统卷,虚拟内存放到虚拟机的动态内存或单独虚拟磁盘上,不用照搬原磁盘布局。卷映射界面里还有个置备类型选项,热迁移场景建议先选精简置备,转换速度快、空间占用小;如果虚拟机后续承载数据库或高 IO 业务,再改为厚置备消除存储性能抖动。
虚拟机参数里有四个参数决定能不能顺利启动。
第一个是 SCSI 控制器类型。Windows 源机保守选择 LSI Logic SAS,这个控制器的驱动在 Windows 2003 到 2019 里基本都有内置;PVSCSI 性能更好但老系统没有驱动,选了蓝屏风险高。Linux 源机如果内核版本较新,PVSCSI 没问题,保守起见也用 LSI Logic SAS。
第二个是每插槽核心数。业务软件很多按插槽数授权,源机是 2 插槽 8 核,迁移后如果变成 1 插槽 16 核,授权软件可能直接失效。Converter 默认按源机拓扑映射,但最好在配置界面手动确认这个字段,别偷懒跳过。
第三个是网卡类型。E1000 兼容性最好,适合首次启动;VMXNET3 性能更好但需要驱动支持。推荐的做法是先 E1000 跑起来,确认网络通了,再装 VMware Tools 之后把网卡升级为 VMXNET3。
第四个是目标固件类型。BIOS 引导的源机对应虚拟机固件选 BIOS,UEFI 引导的选 UEFI,两者选错会导致开机黑屏或 no bootable device。预检阶段用 efi 目录是否存在判断引导方式,这一步能避免掉最常见的启动失败。
目标端的虚拟机版本类型也要确认:选和当前 ESXi 主机兼容的类型,选太旧会丢失部分硬件特性,选太新又可能不被主机支持,界面里按主机建议值选最稳。
提示:首次启动蓝屏时不要急着删除虚拟机,先改 SCSI 控制器类型到 LSI Logic SAS 再试一次,多数情况下这一步就能解决。
4.3 执行转换、日志定位与中断恢复
配置确认后点击完成,任务在后台启动,界面上显示进度百分比。Converter 的进度条不是线性的:前 60% 是全量拷贝,60% 到 95% 是增量同步,最后 5% 是收敛和收尾。实际工作中最常遇到卡在 95% 的场面,原因通常是增量同步追不上业务写入或目标端 IO 瓶颈,不代表任务挂了,这章后面的避坑部分会具体讲。
遇到异常时,先看日志再决定是否重试。Converter 的日志文件在安装目录的 logs 文件夹下,文件名包含任务 ID,用文本编辑器搜索 FATAL 或 ERROR 就能快速定位失败阶段。任务中断后不要急着删虚拟机,大部分场景可以直接重新发起转换,Converter 会识别已完成的部分继续增量同步,而不是从零开始。
第一次迁移的机器,建议不要直接在正式业务窗口内跑全流程。先在预检阶段做一次模拟转换,目标指向临时虚拟机,把参数、空间、时间都验证一遍,再切正式窗口执行。这不算额外工作量,却能在正式操作前暴露绝大多数环境问题。
5. 热迁移避坑指南:5 条踩坑记录与排障方法
5.1 转换后蓝屏 0x7B:SCSI 控制器不匹配
现象:虚拟机首次启动,Windows 直接蓝屏,代码 0x0000007B INACCESSIBLE_BOOT_DEVICE。
原因:源机使用的是 IDE 或旧式 SCSI 控制器,而 Converter 在目标端设置了 PVSCSI。Windows 在引导阶段没有对应驱动,找不到系统盘,直接放弃启动。
解决:把虚拟机的 SCSI 控制器改成 LSI Logic SAS,重新开机。如果修改后仍然蓝屏,说明驱动注册表里没有 LSI SAS 的启动项,需要进入 Windows 恢复环境做驱动注入。
# 将原 VMDK 作为数据盘挂到一台正常 Windows 虚拟机上,盘符假设为 E: # 离线注入 LSI Logic SAS 驱动到系统镜像 dism /Image:"E:\" /Add-Driver /Driver:"D:\drivers\lsi_sas.inf" # 提交后卸载数据盘,把 VMDK 挂回原虚拟机再启动 dism /Unmount-Image /MountDir:"E:\" /Commit这段命令的逻辑是:/Image 指向挂载出来的原系统盘根目录,/Add-Driver 把驱动包注入到系统驱动库里,让 Windows 在引导阶段就能识别 LSI SAS 控制器。如果原虚拟机里没有 dism 环境,用 Windows 安装盘引导进修复模式也能完成同样操作。
5.2 VSS Writer 失败导致转换中止
现象:转换任务在“创建卷影副本”阶段失败,报错提示和 VSS 相关,进度条停在某个百分比不动。
原因:源机上某些应用的 VSS Writer 注册异常,处于 failed 状态,例如 Exchange、SQL Server 的 VSS Writer 故障,导致系统级快照无法完成。
解决:在源机上执行下面的命令,找出异常 Writer:
# 查看所有 VSS Writer 状态,关注 State 列是否为 Failed vssadmin list writers看到异常的 Writer 后,常见做法是重启对应服务或重新注册 VSS Writer DLL,让 Writer 恢复稳定,再重新发起转换。如果源机只是文件服务器、没有数据库业务,可以在 Converter 的高级选项里关闭 VSS 支持,直接做非静默复制,但代价是文件一致性不保证,只建议用在非关键业务上。
5.3 热迁移中途数据库写入不一致
现象:迁移完成后目标机上的数据库启动失败,报数据文件损坏或事务日志不连续。
原因:热迁移的增量同步是块级复制,数据库文件在同步窗口内处于写入中间态,没有借助应用层的备份机制做一致性收敛,拷过去的文件就像没保存完的 Word 文档。
解决:对数据库服务器做热迁移,标准做法是先做一次应用层备份,然后用备份文件做最后一跳。也就是说,不要让 Converter 直接同步在线数据库文件,而是和业务方协商一个计划窗口,在窗口内做一次完整备份,迁移完成后在虚拟机上做恢复。这样既兼顾源机不关机的要求,又保住数据库一致性。如果业务不允许备份恢复,需要确保数据库在迁移期间设置了写阻塞或持久性模式,这需要业务方配合,运维侧很难单方面保证。
5.4 任务停在 99%:最后 1% 的隐藏障碍
现象:任务进度在 99% 长时间不动,日志里出现大量网络重传。
原因:99% 意味着全量拷贝和增量同步都接近完成,正在做最后的收敛和一致性校验。如果源机业务写入频繁,增量同步时间会持续拉长;另一种可能是目标端性能瓶颈,比如数据存储 IOPS 被打满,或者目标 ESXi 主机内存不足导致虚拟机频繁交换。
解决:先等 15 分钟,观察任务详情里字节计数是否还在增长。字节数持续变化说明同步还在跑,只是慢;完全停滞就检查源机卷的写入负载、目标端数据存储 IOPS、网络链路丢包率。90% 以上的情况是网络丢包导致增量同步重传,把迁移流量切到独立网段或降低同步频率就能恢复。
5.5 迁移后两边同时在线导致 IP 冲突
现象:目标虚拟机启动后,业务系统开始间歇性断连,报地址冲突。
原因:原物理机没有关机,或者迁移完成后原机网络服务仍在线,两台机器抢同一个 IP。
解决:在切换窗口内先关闭原物理机的网卡或直接关机,再启动目标虚拟机。如果必须保持原机在线,可以把目标虚拟机的 IP 先改成测试地址做验证,确认无误后再做最终切换。这类问题的隐蔽之处在于,很多人第一反应是查虚拟机网卡和防火墙,实际根源就是一台物理机和一台虚拟机在同一广播域里用同一 IP。
6. 迁移后的验证清单:开机只是第一步,回滚和留痕才算完
6.1 首次启动与收敛:8 项快速检查
虚拟机开机不等于迁移成功,驱动、网络、服务、数据都要过一遍。下面这张表可以直接打印出来当验收单用。
| 检查项 | 操作方法 | 通过标准 |
|---|---|---|
| 系统启动 | 观察虚拟机控制台启动过程 | 无蓝屏、无黑屏,进入登录界面 |
| 驱动状态 | 打开设备管理器,查看未知设备 | 没有黄色感叹号,没有未识别设备 |
| VMware Tools | 检查 Tools 服务状态 | 已安装且运行正常 |
| 网络连通 | ping 网关、DNS 服务器、业务对端 | 业务 IP 可访问,域名解析正常 |
| 磁盘挂载 | 打开磁盘管理,对照源机盘符 | 数据卷全部在线,盘符无冲突 |
| 服务状态 | services.msc 对比源机服务列表 | 关键服务全部处于启动状态 |
| 时间同步 | 对比 NTP 服务器时间差 | 误差小于 1 分钟 |
| 数据校验 | 抽查关键文件的哈希值 | 与源机比对结果一致 |
驱动收敛这块单说一句:装了 VMware Tools 之后,显示驱动、鼠标驱动、时间同步组件才会生效,网卡也建议在 Tools 装完后从 E1000 升级到 VMXNET3。升级网卡会触发一次网络中断,选在业务低峰做。
6.2 回滚路径与迁移留痕
网络、时间、驱动都验证通过之后,再让业务部门做应用层验证。回滚路径是保留原物理机至少一周,期间不关机,保持系统可回退状态。如果虚拟机上跑得不顺,能随时切回物理机,这是你的后悔药。
这些年做过的 P2V 里,翻车最狠的一次就是没做驱动注入直接拔了物理机。从那以后,我养成了一个习惯:每台机器迁移完成后,把源机型号、操作系统版本、SCSI 控制器类型、网卡类型、迁移时间、目标虚拟机配置、遇到的问题和处理方式整理成一张表,存进共享文档。下次迁同类机器直接抄卷映射方案和控制器选择,不再重复踩坑。
希望这篇笔记对你的 P2V 落地有帮助,少走一点我当年绕过的弯路。
本文还有配套的精品资源,点击获取