相比KVM虚拟机静态迁移中需要拷贝虚拟机虚拟磁盘文件,kvm虚拟机动态迁移无需拷贝虚拟磁盘文件,但是需要迁移到的虚拟主机之间需要有相同的目录结构虚拟机磁盘文件,本文这部分内容通过nfs来实现,当然也可以采用GFS2集群文件系统来实现,本文的动态迁移是基于共享存储动态迁移。
KVM动态迁移目前有两种,一种是基于共享存储的动态迁移,一种是基于基于数据块的动态迁移,需要qemu-kvm-0.12.2以上版本支持,OEL6.3版本是qemu-kvm-0.12.1.2
1.虚拟化平台架构
2.虚拟化环境介绍
(1)KVM虚拟化服务器node1
操作系统版本:OEL6.3x64
KVM虚拟化:自带版本
桥接IP地址1:192.168.159.150
测试虚拟机:oeltest01
虚拟机IP地址:192.168.159.132
虚拟磁盘文件1:/data/test01.qcow2
虚拟磁盘文件2:/data/test01_add01.qcow2
nfs挂载目录:/data
(2)KVM虚拟化服务器node2
操作系统版本:OEL6.3x64
KVM虚拟化:自带版本
桥接IP地址1:192.168.159.160
nfs挂载目录:/data
(3)nfs服务器(nfs配置略)
操作系统版本:OEL5.8x64
桥接IP地址1:192.168.169.180
nfs服务目录:/mnt/vg/nfs/abc
3.kvm虚拟主机配置准备
(1)节点1挂载nfs目录
(2)节点2挂载nfs目录
确保两节点都有相同的虚拟机磁盘文件存储目录。
4.kvm虚拟机迁移
(1)节点1虚拟机状态,oeltest01虚拟机开机状态
(2)节点2虚拟机状态,无虚拟机运行
(3)在主机1上执行迁移命令
[root@node1~]#virsh migrate --live --verbose oeltest01 qemu+ssh://192.168.159.160/system tcp://192.168.159.160
root@192.168.159.160'spassword:
Migration:[%]
过程有一个暂停与关闭的过程。
(4)客户机一直ping查看迁移,可以看到中间有两个包的中断,基本上没有太大影响。
(5)虚拟主机2上,可以看到虚拟机oeltest01已经启动了。
虽然oeltest01虚拟机已经在节点2上启动了,但是虚拟主机上还没有oeltest01虚拟机的配置文件。所以需要创建配置文件并定义虚拟机。
(6)虚拟主机2上,通过迁移过来的虚拟机内存状态创建虚拟机配置文件,并通过xml配置文件定义虚拟机。
在虚拟主机2上进入虚拟机没有问题。
到此,kvm虚拟机动态迁移成功。