kvm虚拟机热迁移

时间:2021-11-12 20:13:09

一、热迁移描述:

相比KVM虚拟机冷迁移中需要拷贝虚拟机虚拟磁盘文件,kvm虚拟机热迁移无需拷贝虚拟磁盘文件,但是需要迁移到的宿主机之间需要有相同的目录结构虚拟机磁盘文件,也就是共享存储,本文这部分内容通过nfs来实现,当然也可以采用Glusterfs集群文件系统来实现.

热迁移流程:

在kvm01上挂起虚拟机vm01,发送vm的虚拟机配置文件和运行时内存中的数据到kvm02, 接受完毕,kvm02恢复vm01,热迁移完成。

架构图如下:

kvm虚拟机热迁移

环境要求:

主机名 ip 内存 网络 软件需求 虚拟化
kvm01 10.0.0.11 2G 创建br0桥接网卡 kvm和nfs 开启虚拟化
kvm02 10.0.0.12 2G 创建br0桥接网卡 kvm和nfs 开启虚拟化
nfs01 10.0.0.31 1G nfs

注意:需要互相做好host解析

二、操作步骤:

2.1:在kvm01和kvm02上安装kvm和nfs,配置桥接网卡

yum install libvirt* virt-* qemu-kvm* nfs-utils openssh-askpass -y

systemctl start libvirtd.service

virsh iface-bridge eth0 br0

2.2:在nfs01上安装配置nfs

yum install nfs-utils -y

mkdir /data

vim /etc/exports

/data 10.0.0.0/24(rw,async,no_root_squash,no_all_squash)

systemctl restart rpcbind

systemctl restart nfs

  

2.3:kvm01和kvm02挂载共享目录/opt

mount -t nfs 10.0.0.31:/data /opt

2.4:安装一台基于桥接模式的虚拟机

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory ,maxmemory= --vcpus  --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

热迁移的命令:

virsh migrate --live --verbose oldboy qemu+ssh://10.0.0.12/system --unsafe

将宿主机10.0.0.11上的kvm虚拟机oldboy迁移到10.0.0.12

2.5:在kvm01上安装图形界面、vnc服务端和virt-manager

yum groups install "GNOME Desktop" -y

yum install tigervnc-server.x86_64 -y

yum install virt-manager -y

2.6:启动vnc服务端

vncserver :1 启动5901端口的vnc服务端

vncserver -kill :1 关闭5901端口的vnc服务端

kvm虚拟机热迁移

2.7:使用vnc连接宿主机,使用virt-manager进行迁移

kvm虚拟机热迁移

这时候会提醒输入密码,就是之前第6步的时候设置的vnc连接密码

kvm虚拟机热迁移

kvm虚拟机热迁移

kvm虚拟机热迁移

kvm虚拟机热迁移

kvm虚拟机热迁移

kvm虚拟机热迁移

kvm虚拟机热迁移

kvm虚拟机热迁移

kvm虚拟机热迁移

kvm虚拟机热迁移

kvm虚拟机热迁移

迁移成功!

kvm虚拟机热迁移

在迁移的过程中,使用ping虚拟机的ip,发现只丢了一个包

kvm虚拟机热迁移

至此热迁移完成!