迁移前的准备工作
- 记录下VMID和VM信息的对应关系——Proxmox VE关机以后这些数据很难找到
- 关闭所有虚拟机
- 把所有LVM类型的存储上的硬盘迁移到local类型存储上,以便提取文件
如果你像我一样面前摆着一块离线的Proxmox VE硬盘,想知道VMID和虚拟机名的对应关系,那么可以前往/var/lib/pve-cluster/config.db
,用SQLite 3打开。
转换磁盘格式(第一遍)
在/var/lib/vz/images/{VMID}
文件夹下找到对应的磁盘镜像文件,然后用qemu-img
做转换:
qemu-img convert -f qcow2 -O vmdk -o adapter_type=lsilogic,subformat=streamOptimized,compat6 100/vm-100-disk-0.qcow2 vm-100-disk-0.vmdk
(虽然这里写了adapter_type=lsilogic
,但是和之后具体使用什么虚拟adapter没有直接关系。)
如果遇到以下bug,那么请更新qemu-utils
:
error while converting vmdk: compat6 cannot be enabled with hwversion set
传输镜像到ESXi
用网页管理面板或者打开SSH服务以后用SCP传输都行。目标位置:/vmfs/volumes/{your_disk_name}/
转换磁盘格式(第二遍)
从普通vmdk转换成flat的vmdk以能被ESXi使用。
vmkfstools -d thin -i origin.vmdk converted.vmdk
注意这样转换出来的是两个文件:一个converted.vmdk
是元数据,一个converted-flat.vmdk
是硬盘数据,二者必须保持一致的命名,如果要移动必须一起移动。不要自己给硬盘文件取名的时候在后面加-flat
,这会导致问题。
后续设置
配置了静态IP的虚拟机可能需要重新配置,因为网卡名变了。
参考: