在熟悉 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
以上就是一个基本流程。
我们在迁移中遇到几个问题:
- Ubuntu Guest 的网卡 ens8 被设置成了 ens18,这个需要修改 /etc/netplan 文件里面的网卡名,或者安装 cloud-init , 但是要删除原先 01 开头的 yml 文件
- 源 qcow2 文件其实不需要在 KVM 环境下关闭 VM 的, 这个几乎等于可以做半在线迁移,能极大的降低 down time.
文档更新时间: 2020-08-13 01:29 作者:月影鹏鹏