本教程将一步步教你如何把 Proxmox VE(PVE)上的虚拟机完整迁移到 VMware ESXi 平台,大体流程就是将PVE下的QCOW2\RAW镜像格式转换成ESXI支持的VMDK格式,ESXI创建新虚拟机导入原镜像来达到迁移的效果。

迁移前准备

实验场景配备2台机器,一台为待迁移机器安装了PVE8,另一台为目标机器安装了ESXI8。当然如果你的场景只有一台机器也是可行的,把待迁移的虚拟机转换好vmdk格式后将其备份到本地,再安装ESXI8上传本地的vmdk进行导入即可。

  • 源服务器:Proxmox VE(PVE)上有一个要迁移的虚拟机(比如 VM ID 是 101)
  • 目标服务器:VMware ESXi(确保你知道它的 IP 地址、用户名和密码)
  • 网络:确保 PVE 和 ESXi 之间可以互相访问(比如在同一个局域网)

正式迁移步骤

1)迁移前,请先关闭虚拟机,否则数据可能损坏。可以看到101虚拟机有2个qcow2格式虚拟磁盘,并存放于ssdsata1目录形式的存储池中。

2)将101虚拟机的2个qcow2格式虚拟磁盘转为ESXI支持的vmdk格式,导出到临时目录/tmp下。

# qcow2转vmdk,导出到临时目录/tmp下
qemu-img convert -O vmdk /mnt/pve/ssdsata1/images/101/vm-101-disk-1.qcow2 /tmp/disk_64G_0.vmdk
# qcow2转vmdk,导出到临时目录/tmp下
qemu-img convert -O vmdk /mnt/pve/ssdsata1/images/101/vm-101-disk-2.qcow2 /tmp/disk_150G_1.vmdk

需要注意,如果你的存储池用的是块存储如local-lvm,则得使用 ls /dev/mapper 来查看下硬盘名称,知道硬盘名称后执行以下命令:

# 将vm-101-disk-1磁盘转换为vmdk格式的虚拟磁盘,保存到临时目录/tmp下
qemu-img convert -O vmdk /dev/mapper/vm-101-disk-1 /tmp/disk_64G_0.vmdk
# 将vm-101-disk-2磁盘转换为vmdk格式的虚拟磁盘,保存到临时目录/tmp下
qemu-img convert -O vmdk /dev/mapper/vm-101-disk-2 /tmp/disk_150G_1.vmdk

转换时间有些许长,耐心等待会。转换成功后就会在/tmp/目录下看到disk_64G_0.vmdkdisk_150G_1.vmdk文件。


qemu-img命令用法:

qemu-img convert -O <目标格式> <原文件路径> <目标文件路径> 

更多格式转换

# vmdk转qcow2
qemu-img convert -O qcow2 demo.vmdk demo.qcow2
# vdi转qcow2
qemu-img convert -O qcow2 demo.vdi demo.qcow2
# vhd转qcow2
qemu-img convert -O qcow2 demo.vhd demo.qcow2
# img转qcow2
qemu-img convert -O qcow2 demo.img demo.qcow2
# raw转qcow2
qemu-img convert -O qcow2 demo.raw demo.qcow2


3)接下来就是将镜像传到ESXI上去了。这里建议用python建立一个临时http下载器,通过网络传送到ESXI。
PVE Shell中建立一个临时http直链下载服务器

python3 -m http.server -d /tmp/


4)此时新开一个浏览器窗口,访问你的PVE:8000端口,即可访问到http直链下载服务器了,映像没下载完成前都不要去点PVE控制台,离开窗口http直链下载服务器将会断开。(如果是单机器场景,你就下载到本地备份,装好ESXI再手动上传即可)

5)2台设备的场景,就可以像我一样,在ESXI开启ssh,登录到esxi,通过复制下载链接,直接download到esxi

6)转换回来的vmdk格式的虚拟镜像还不能直接导入给ESXI虚拟机,需要将vmdk转成ESXi可以识别到的vmdk格式。登录到ESXI的ssh终端执行一下命令进行二次转换:

# cd到存放虚拟镜像的目录
cd /vmfs/volumes/database1/
# 进行二次转换
vmkfstools -i disk_64G_0.vmdk -d thin disk0.vmdk

转换成功后,会发现生成了2个文件:disk0.vmdk和disk0-flat.vmdk

7)最后就是去创建新的虚拟机,并把硬盘指向disk0.vmdk文件就可以了。

总结

到这,PVE虚拟机就已经成功迁移到ESXi。 如你要从ESXI迁移到PVE8可以看这篇文章。

广告位招租3
最后修改:2025 年 06 月 11 日
如果觉得我的文章对你有用,请随意赞赏