记录一下最近做的从PVE到ESXi的虚拟机迁移操作
PVE 版本是 Proxmox Virtual Environment 7.1-4
ESXi 版本是 6.5
待迁移的虚拟机是 Debian11
1,先在PVE的虚拟机中进行Backup
Compression选的ZSTD,Mode 选的是Stop
2,备份完成之后,SSH 到 PVE主机进行操作
ssh root@PVE_HOST_IP
PVE内置的备份可以生成 VMA文件 (Proxmox Virtual Machine Archive)
备份在目录/var/lib/vz/images下,PVE的web端并没有提供下载,可以ssh进入PVE进行导出操作
备份后的文件,可以通过vma命令转换成raw.如果你备份时候选择了压缩,请先使用zstd解压
3,解压备份出来的文件
cd /var/lib/vz/dump
zstd -d vzdump-qemu-103-2023_04_01-13_36_26.vma.zst
4,通过vma命令转换成raw后缀的磁盘文件
vma extract vzdump-qemu-103-2023_04_01-13_36_26.vma extract
5,接下来要是用qemu-img把raw转换vmdk
cd extract/
qemu-img convert -f raw -O vmdk disk-drive-scsi0.raw disk-drive-scsi0.vmdk
6,把转换后的vmdk文件上传到ESXi服务器上
7,再进行一次磁盘转换
网页管理端启用ssh,然后ssh到ESXi服务器上
ssh root@ESXi_HOST_IP
找到上传的vmdk文件存放位置(网页端可以看到datastore的位置 /vmfs/volumes/6419c39b-c2aaf182-8bf3-6cae8b232df2)
cd /vmfs/volumes/6419c39b-c2aaf182-8bf3-6cae8b232df2
再进入具体存放vmdk的位置,执行下面的命令进行转换
vmkfstools -i disk-drive-scsi0-1.vmdk disk-debi
an11-scsi0.vmdk -d thin
其中【 -i 】作用是转换,【 -d thin 】作用是将新磁盘文件使用“精简置备模式”。
8,转换完成之后,再在ESXi 服务器上新建虚拟机,最后一步的时候,把默认磁盘删掉,添加上传上去的磁盘文件作为虚拟机的磁盘即可。
参考资料
1,从 Proxmox VE 迁移到 ESXI/VMware Workstation | 雨き声残響 (abyss.moe)
2,【ESXi】失败 – “scsi0:0”的磁盘类型 2 不受支持或无效。请确保磁盘已导入 - adolfmc - 博客园 (cnblogs.com)
过程中遇到的问题
1,从PVE服务器用ftp上传到win 2016 中用 filezilla 搭建的ftp服务器上时,传过去的文件,哈希值与原PVE中的不一致,也无法解压。
之后改成在PVE服务器中搭建vsftpd服务,然后从win 2016中去下载转换后的vmdk才成功。
2,没进行第二次磁盘格式转换,直接新建虚拟机启动的时候,会报下面的错误
【“scsi0:1”的磁盘类型 2 不受支持或无效。请确保磁盘已导入】
所以进行了第二次磁盘格式转换
对于不同版本的ESXi服务器来说,这里转换的格式会有差异,比如ESXi6.7上默认是zeroedthick,通过vsphere web client访问添加磁盘,无法修改:“scsi0:0”的磁盘类型 2 不受支持或无效。请确保磁盘已导入。
zeroedthick :厚置备延迟置零
thin :精简置备
eagerzeroedthick:厚置备置零