分类: LINUX
2012-02-10 13:05:55
有关虚拟机间的动态迁移,我在虚拟机迁移技术漫谈 对它进行大概的介绍,现在结合今天我自身的实践,来具体解释下迁移的步骤;
1,环境准备(1) 共享存储-NFS:
理论上来说,需要迁移的虚拟机可以不适用共享存储,但是如果不用共享存储的话,在迁移的过程中就需要对镜像进行大量的拷贝,这个是非常耗时的,而且在大量
的集群的情况下,基本上镜像都是存放在分布式的共享存储中,一是方便管理,一是为虚拟机的动态迁移做准备,有关NFS的使用和挂载,请参看我的另外一篇文
章
CentOS配置NFS服务器的方法
(2) 支持kvm迁移的qemu-kvm 和 kvm模块:我用的是最新的qemu-kvm-0.13.0.tar.gz ,而kvm模块,由于我的系统的内核版本过低,用的kvm-88中的kvm-intel.ko kvm.ko模块
在下面的介绍中使用 源虚拟机是待迁移的虚拟机,目的虚拟机是迁移后的虚拟机
源主机的启动命令如下:
#解释说明:
1, /home/yangguang/nfs_mnt: 代表NFS挂载的目录
2, -monitor stdio 将控制台定向的标准输入输出(这个是虚拟机迁移必须的,因为后续需要在命令行中进行操作)目的虚拟机的启动命令:
解释说明:
1, 启动命令参数必须和源虚拟机的启动参数是一样的,包括网卡类型等
2, -incoming tcp:0:8888 这个是在端口8888接收迁移命令和数据这时在命令行中输入
info status源虚拟机显示的状态是running
目的虚拟机的显示的状态时paused
在源虚拟机中的控制台中执行以下命令:
(qemu) help migrate migrate [-d] [-b] [-i] uri -- migrate to URI (using -d to not wait for completion) -b for migration without shared storage with full copy of disk -i for migration without shared storage with incremental copy of disk (base image shared between src and destination) (qemu) migrate -d tcp:10.60.1.92:8888 #info migrate 查看当前的迁移的执行状态 (qemu) info migrate执行完成后,可以通过info status命令来看源虚拟机和目的虚拟机的状态
这时源虚拟机的状态:paused
目的虚拟机的状态:running
此时迁移完成,源虚拟机就可以退出了(quit)
同时可以在迁移期间,可以在另外一个主机上使用ping命令对迁移的主机进行联通性进行测试,看看虚拟机的中断时间
长短。
到此为止,有关虚拟机的迁移已经完成,但是要把KVM虚拟机的迁移应该到实际的环境中,还需要关注下虚拟机迁移过程虚拟机内部服务的中间时间,以及 整个虚拟机迁移的时间;同时目前我比较关心的是分布式共享存储的解决方案,NFS肯定是不能解决问题的,不知大家有没有好的解决方案?