ProxmoxVE迁移虚拟机到其他PVE(基于QCOW2)

直接使用PVE的备份功能,再复制镜像到新的PVE节点上也是OK的,但是通用性较差,成功率较低。使用ZSTD压缩备份,若干次都是还原失败(提示校验失败)。逐放弃,选择迁移虚拟磁盘的方式操作。

1、截图备份原虚拟机的配置

img``

2、将lvm里的raw镜像转换为qcow2镜像

SHELL登陆宿主机,执行下面命令:
【2020.11补充】重要:先执行ls /dev/mapper/查看一下具体的存储名和硬盘名,以免搞混。

img

如图,pve和VM--LVM是你WEB界面可以看到的存储名(local存储显示为你的节点名),后面跟上的vm--100--disk--0是ID为100虚拟机的虚拟磁盘。

继续执行如下命令:

qemu-img convert -O qcow2 -c /dev/mapper/pve-vm--110--disk--0 VM110.qcow2
#其中pve-vm--110--disk--0是上图硬盘的名,注意格式对应修改,VM110.qcow2是转换到当前目录的文件名。
#可以再打开一个SHELL窗口,执行下面命令查看转换进度(结果显示在上面命令的下方)
pkill -USR1 -n -x qemu-img

3、转换完成后复制QCOW2镜像到目标PVE宿主机

复制方法自由发挥,可以通过方法如下:
SCP发送、WinSCP下载上传、挂载U盘、挂载移动硬盘、挂载NFS存储等等

分享:挂载NTFS格式的U盘(移动硬盘)
mkdir /mnt/Upan/
apt install -y ntfs-3g #(CentOS:yum install -y ntfs-3g
mount -t ntfs /dev/sdc1 /mnt/Upan/ #挂载
umount /dev/sdc1 #卸载

4、目标PVE宿主机创建虚拟机

根据步骤一的截图,创建虚拟机,然后在虚拟机详情里的“硬件”分离并删除自动创建的硬盘。

5、导入QCOW2磁盘镜像文件到新创建的虚拟机

SHELL登陆目标PVE宿主机,执行下面命令:

qm importdisk <vmid> <source> <storage>
#例子:qm importdisk 101 VM110.qcow2 local-lvm
#上面101是新建虚拟机的VM ID,VM110.qcow2是复制过来的QCOW2磁盘镜像文件,local-lvm是你的存储ID。

登陆WEB界面,应用未使用的磁盘。
启动虚拟机,完成迁移。