ProxmoxVE迁移虚拟机到其他PVE(基于QCOW2并清理空闲空间)

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

备份前可到虚拟机中清理未使用空间,可让镜像更小(根据实际情况处理)

# 清理前QCOW2体积为7.3G,清理后体积为5G
# 使用dd填充0,然后再删除,建议df -h查看下分区,将数据和系统分区填充一遍
dd if=/dev/zero of=/home/zero.dat
rm -rf /home/zero.dat

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

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

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

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

继续执行如下命令:

qemu-img convert -p -O qcow2 -c /dev/mapper/pve-vm--110--disk--0 VM110.qcow2
#其中pve-vm--110--disk--0是上图硬盘的名,注意格式对应修改,VM110.qcow2是转换到当前目录的文件名。

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

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

你可能感兴趣的:(ProxmoxVE迁移虚拟机到其他PVE(基于QCOW2并清理空闲空间))