前言
从Proxmox VE 8.2开始,以及最近发布的最新版本Proxmox VE 8.3 虚拟机管理程序有一个内置向导,用于直接从 VMware ESXi 主机导入虚拟机。本文介绍了将虚拟机从 VMware ESXi (vCenter) 迁移到 Proxmox 主机的几种场景。
导入ESXi虚拟机到Proxmox
主要限制
- 支持从 ESXi 版本 6.5 到 8 导入虚拟机。
- 无法从 vSAN 数据存储导入虚拟机磁盘。
- 如果源虚拟机有快照,导入速度会慢很多。
- 此外,通过 vCenter 复制虚拟机时,导入性能会降低。首选从 ESXi 主机直接导入。
将 ESXi 主机(或 vCenter)添加到 Proxmox 作为存储:数据中心 -> 存储 -> 添加 -> ESXi
指定连接名称、ESXi 主机的 FQDN 名称(IP 地址)以及访问它的帐户(通常为root)。选中
“跳过证书验证”选项以忽略 VMware 主机证书
开始导入之前,建议在源 VM 上执行几个初始步骤。
对于Windows操作系统的 VMware VM
- 从操作系统中删除 VMWare Tools 组件。可以手动或使用PowerShell 在 Windows 上卸载VMWare Tools:
msiexec.exe /x (Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -eq 'VMware Tools'}).LocalPackage
- 如果使用静态 IP 地址,请记下当前的网络接口设置。迁移时,可以创建一个新的虚拟网络接口,并且可以隐藏旧的虚拟网络接口。迁移完成后,在网卡上手动设置旧的 IP 地址。
- 建议关闭源虚拟机(也可以实时迁移正在运行的虚拟机,但需要更长的时间)。
- 删除虚拟机快照(如果适用)。如果存在虚拟机快照,迁移需要更长的时间。
然后在 ESXi 主机上选择要迁移到 Proxmox 的虚拟机,然后单击“导入”。
下一步是指定 Proxmox 上将用作迁移目标的新虚拟机的设置。默认情况下,Proxmoix 导入向导会从源计算机复制 vCPU、RAM 和 VM 名称设置。选择要保存新 VM 的 Proxmox 存储和虚拟磁盘格式。尽管 Proxmox 支持该VMDK格式,但建议使用本机虚拟磁盘格式(qcow2或raw)。
添加对VirtIO SCSI控制器的支持,并在“高级”选项卡中选择VirtIO 半虚拟化而不是vmxnet3作为虚拟网络适配器。
检查 ”最终配置“ 无误后单击 “导入” 按钮开始复制虚拟机文件。
传输过程进度快慢取决于虚拟机的大小以及网络的速率。
VM 传输完成后,您还需要执行一些额外的步骤。
默认情况下,虚拟机使用SATA控制器连接虚拟磁盘。如果在此阶段将虚拟磁盘连接到 VirtIO SCSI 控制器,Windows 将无法启动。
首先,向虚拟机添加一个小型 1GB 硬盘,通过 VirtIO SCSI 控制器连接。
然后转到“选项选项”卡并启用“QEMU Guest Agent”。
启动Proxmox虚拟机。等待Windows启动(SCSI 控制器驱动程序将自动安装)。然后关闭虚拟机。
分离并删除临时1GB硬盘。
然后在虚拟机设置中选择主虚拟硬盘并单击 “分离”。
磁盘状态将更改为“未使用的”。通过 SCSI VirtIO 单控制器重新连接此硬盘驱动器。
然后转到选项选项卡并编辑虚拟机启动顺序。选择您的 SCSI 驱动器作为主引导设备。
然后启动VM,确保Window可以启动,并检查网络适配器设置。
手动将ESXi虚拟机移动到Proxmox
在Proxmox的早期版本中,可以手动从 ESXi 主机移动虚拟机。
- 通过从 OVF 文件格式导入 VM。在这种情况下,第一步是将虚拟机导出到 VMware ESXi 主机上的 OVF 模板。
- 将 OVF 文件复制到 Proxmox 并使用以下命令将其导入到虚拟机中
qm importovf {vmid} {VM name}.ovf {target storage}
- 在Proxmox中手动创建 VM,并将源虚拟磁盘文件 (VMDK) 复制到 Proxmox 中可用的存储。然后将 VMDK 文件附加到目标 VM。
将VMDK传输到Proxmox
在ESXi 主机上找到虚拟机文件。可以从vSphere Web界面复制虚拟机的完整路径(格式为/vmfs/volumes/{volume_id})
使用以下命令将文件从ESXi主机复制*-flat.VMDK到 Proxmox存储
scp -v root@esxi01:/vmfs/volumes/{volume_id}/win-vm1/win-vm1-flat.vmdk /NNKIN/
scp -v root@esxi01:/vmfs/volumes/{volume_id}/win-vm1/win-vm1.vmdk /NNKIN/
然后使用以下命令将复制的虚拟硬盘导入到Proxmox上的VM
qm disk import {target VMID} {vmdk file} {target storage}
For example:
qm disk import 113 win-vm1.vmdk NNKIN
按照上述附加步骤通过 SCSI 控制器将新虚拟磁盘附加到 VM。
关闭源虚拟机并打开 Proxmox 主机上的新虚拟机。