跳转到内容

Hyper-V 与 PVE 概念对照 ​

虚拟化平台对照提过一个简表。Hyper-V 没有像 ESXi 那样的官方一键导入向导,迁移基本靠手工转换磁盘加重建配置,这篇把要对照的概念和手工迁移的关键点展开讲。

没有官方 Hyper-V 导入向导,以下手工方法未在真实环境验证

Proxmox 官方的迁移文档主要针对 VMware,明确说"大部分内容应该也适用于其他源虚拟化平台",但没有针对 Hyper-V 给出专门的步骤或限制列表。本文的磁盘转换命令(qemu-img)参数经过查证,但整体迁移流程请先在测试虚拟机上走一遍,不要直接对生产虚拟机操作。

虚拟机代际与固件 ​

Hyper-VPVE说明
第一代虚拟机BIOS(SeaBIOS)传统 BIOS 引导,IDE/传统总线
第二代虚拟机OVMF(UEFI)UEFI 引导,需要同时加一块 EFI 磁盘存放 UEFI 变量
安全启动 (Secure Boot)OVMF 的 Secure Boot 选项概念一致,但证书链不同,迁移后可能需要重新处理
虚拟 TPMvTPM(tpmstate0)PVE 9.1 起 vTPM 状态可以存成 qcow2 从而支持快照;Hyper-V 侧的 vTPM 状态无法直接迁移过来,依赖 vTPM 的磁盘加密(BitLocker)迁移前要准备好恢复密钥

磁盘:VHDX 要先转格式 ​

Hyper-V 用 VHD/VHDX 格式,PVE 的块存储(LVM-Thin、ZFS、Ceph)只认 raw,文件存储(目录、NFS、CIFS)可以用 raw 或 qcow2。没有直接可用的路径,必须先转换格式:

sh
# 在宿主机 shell(或任意装了 qemu-utils 的 Linux 机器)上执行
qemu-img convert -p -f vhdx -O qcow2 source.vhdx output.qcow2

# 更早的 VHD(非 VHDX)用 vpc 作为源格式
qemu-img convert -p -f vpc -O qcow2 source.vhd output.qcow2

转换完成后用 qm disk import <vmid> output.qcow2 <存储> 接入新建的虚拟机,磁盘会以 unused0 的形式挂上,再到 Web UI 里把它接到 SCSI/VirtIO 总线并调整启动顺序。命令细节见 qm 与 pct 速查。

建议在 Linux 上转换,不要在 Windows 上转换

有用户反馈在 Windows 版 qemu-img 上转换大文件时遇到读取错误,改到 Linux 环境转换后正常。这是社区反馈,不是官方结论,但优先选 Linux 环境能少踩一个坑。

Hyper-VPVE说明
VHD/VHDXqcow2(文件存储)/ raw(块存储)需要 qemu-img convert 手工转换,没有自动向导
动态扩展磁盘精简分配(Thin provisioning)qcow2、LVM-Thin、ZFS 默认都是精简分配
差异磁盘 (Differencing Disk)链接克隆的基础镜像概念类似但实现机制不同,不能直接复用差异链
存储迁移 (Storage Migration)磁盘迁移(qm disk move 或 Web UI Move Storage)客户机运行中即可执行

网络 ​

Hyper-VPVE说明
虚拟交换机(外部/内部/专用)Linux Bridge(默认)或 Open vSwitch外部交换机大致对应绑定物理网卡的网桥;内部/专用交换机对应不绑物理网卡的纯内部网桥
集成服务 (Integration Services)QEMU Guest Agent + VirtIO 驱动两边都需要在客户机内单独安装对应组件,不是自动生效
SET(交换机嵌入式团队)Linux Bond都是把多网卡捆成一个逻辑接口,配置方式和参数命名不同
VLAN ID(每个虚拟机网卡设置)网桥打 VLAN 标签或 VLAN-aware 网桥 + 客户机网卡 Tag概念一致,PVE 里选哪种方式看你的网桥怎么建的

管理与集群 ​

Hyper-V / Windows ServerPVE说明
Hyper-V 管理器 / System Center VMMWeb UI(任意节点都能管全集群)没有独立管理节点,也没有 SCVMM 那种跨多套环境的统一视图;多集群/跨站点统一管理由独立产品 Proxmox Datacenter Manager 提供,见更新追踪:PDM
故障转移群集 (Failover Clustering)PVE 集群 + HA(ha-manager)PVE 的集群通信(corosync)和 HA 是两回事:建集群不等于开 HA,客户机要单独加入 HA 管理
检查点 (Checkpoint)快照 (Snapshot)概念一致;PVE 的快照能否使用取决于存储类型,块存储的传统卷不一定支持
副本 (Hyper-V Replica)存储复制 (ZFS Storage Replication) 或备份Hyper-V Replica 是持续复制到另一台主机;PVE 对应的是基于 ZFS 的增量复制,或者干脆用备份+快速恢复替代,注意复制不是备份,删除源的破坏性操作会同步复制过去
Windows Admin Center无直接对应PVE 的管理面板本身就是 Web UI,不需要额外安装管理工具

最大的心态差异:没有对话框告诉你哪里错了

习惯 Windows 生态的报错弹窗和向导式修复后,PVE 遇到问题通常只在日志里留一行英文(journalctl -u <服务名>),需要自己判断下一步。这是迁移过来后最需要适应的部分,不是功能缺失。

迁移前后要做的事 ​

  1. 迁移前:记录客户机的静态 IP、网卡 MAC(如果 DHCP 保留是按 MAC 做的,迁移后 MAC 会变,需要更新保留或手动指定 MAC);卸载集成服务;确认没有依赖 vTPM 的磁盘加密还没准备恢复密钥;关闭源虚拟机。
  2. 转换与导入:按上文命令转换磁盘格式,用 qm disk import 接入新建的虚拟机;Windows 客户机建议先用 SATA/IDE 总线启动,装好 VirtIO 驱动后再切换到 VirtIO SCSI,避免直接蓝屏。
  3. 迁移后:重新配置网络(网卡名字和驱动都变了);装 QEMU Guest Agent;在测试网段验证服务正常后再切回生产环境。

批量迁移一批 Hyper-V、VirtualBox 或物理机的实战流程见从 Hyper-V、VirtualBox 和物理机迁移。

常见问题 ​

转换后的 Windows 虚拟机开机蓝屏。 几乎总是磁盘总线或驱动问题:先切回 IDE/SATA 总线能不能起来,能起来再按VirtIO 驱动与 QEMU Guest Agent的顺序装驱动、换总线。

网络配置迁移过来但连不上。 网卡在新系统里被识别成新设备,Windows 里检查设备管理器和网络连接列表是否出现了"重复"的网卡定义;Linux 里检查 udev 的网卡命名规则是否和新的 MAC 对应上。

vTPM 相关的加密卷(BitLocker)解不开。 见上文警示,vTPM 状态迁移不过来,只能用恢复密钥解锁,迁移前一定要导出保存好。

参考资料 ​

Proxmox VE 非官方中文使用指南,与 Proxmox Server Solutions GmbH 无隶属关系。