迁移Proxmox VE(KVM)虚拟机到VMWare ESXi

迁移前的准备工作

  • 记录下VMID和VM信息的对应关系——Proxmox VE关机以后这些数据很难找到
  • 关闭所有虚拟机
  • 把所有LVM类型的存储上的硬盘迁移到local类型存储上,以便提取文件

如果你像我一样面前摆着一块离线的Proxmox VE硬盘,想知道VMID和虚拟机名的对应关系,那么可以前往/var/lib/pve-cluster/config.db,用SQLite 3打开。

转换磁盘格式(第一遍)

你可以用Proxmox VE面板的Move Disk功能直接把硬盘转换成 VMDK 格式。或者如果你喜欢手动操作的话,在/var/lib/vz/images/{VMID}文件夹下找到对应的磁盘镜像文件,然后用qemu-img做转换:

(虽然这里写了adapter_type=lsilogic,但是和之后具体使用什么虚拟adapter没有直接关系。)

如果遇到以下bug,那么请更新qemu-utils

传输镜像到ESXi

用网页管理面板或者打开SSH服务以后用SCP传输都行,SCP速度比网页上传快得多。目标位置:/vmfs/volumes/{your_disk_name}/

注意qemu-img转换出来的vmdk是thick provision的,请确保目标存储设备上有足够空间。

转换磁盘格式(第二遍)

从普通vmdk转换成flat的vmdk以能被ESXi使用。

注意这样转换出来的是两个文件:一个converted.vmdk是元数据,一个converted-flat.vmdk是硬盘数据,二者必须保持一致的命名,如果要移动必须一起移动。不要自己给硬盘文件取名的时候在后面加-flat,这会导致问题。

后续设置

Windows

Windows自带VMWare SATA和SCSI控制器的驱动。

如果开了Secure Boot以后开机自动进recovery,使用以下命令解决:

(PowerShell下面需要加引号。)

如果迁移前后网卡MAC地址相同的话,不需要重新配置IP地址。但是vmxnet3网卡驱动需要单独安装。

Linux

如果initramfs里面没有打包SATA/SCSI控制器驱动,第一次启动可能需要使用IDE硬盘然后手动重新生成initramfs。

配置了静态IP的虚拟机可能需要重新配置,因为网卡名变了。


参考:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据