在熟悉 Proxmox VE 之前,我们用 KVM 建了很多虚拟机,了解了这款穷人的 VMware 产品,能做高可用集群,类似 VSphere 的 Live Migration 的时候,我们立刻就喜欢上它,当然最主要的就是免费!

就算要迁移之前的 KVM 虚拟机也十分的方便,其实核心的只有三句话,创建新虚拟机,迁移磁盘,把磁盘挂接到虚拟机上。

十分简单的一个脚本:

#!/bin/bash
id=$1
name=$2
disk=$3
#
pool="vmpool"
#
[ -z "${disk}" -o ! -r "${disk}" ] && echo "Syntax: $0 id name disk" && exit 1
qm create ${id} -memory 1024 -net0 virtio,bridge=vmbr0 -name ${name} -serial0 socket \
-bootdisk scsi0 -scsihw virtio-scsi-pci  -ostype l26
[ $? != 0 ] && echo "Create VM failed!" && exit 2
qm importdisk ${id} ${disk} ${pool} -format qcow2
[ $? != 0 ] && echo "Migrate disk failed!" && exit 3
qm set ${id} -scsi0 ${pool}:${id}/vm-${id}-disk-0.qcow2
[ $? != 0 ] && echo "Attach disk failed!" && exit 4

以上就是一个基本流程。

我们在迁移中遇到几个问题:

  1. Ubuntu Guest 的网卡 ens8 被设置成了 ens18,这个需要修改 /etc/netplan 文件里面的网卡名,或者安装 cloud-init , 但是要删除原先 01 开头的 yml 文件
  2. 源 qcow2 文件其实不需要在 KVM 环境下关闭 VM 的, 这个几乎等于可以做半在线迁移,能极大的降低 down time.

https://tech.yj777.cn/%E6%8A%8A-kvm-qcow2%E6%A0%BC%E5%BC%8F%E8%99%9A%E6%8B%9F%E6%9C%BA%E8%BF%81%E7%A7%BB%E5%88%B0-proxmox-ve-6-%E4%B8%8B%E7%9A%84-v2v-%E8%84%9A%E6%9C%AC/

文档更新时间: 2020-08-13 01:29   作者:月影鹏鹏