IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    KVM虚拟机在物理机间的迁移方法

    admin发表于 2011-01-05 06:00:31
    love 0

    有关虚拟机间的动态迁移,我在虚拟机迁移技术漫谈 对它进行大概的介绍,现在结合今天我自身的实践,来具体解释下迁移的步骤;

    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模块

    2,启动kvm虚拟机

    在下面的介绍中使用 源虚拟机是待迁移的虚拟机,目的虚拟机是迁移后的虚拟机
    源主机的启动命令如下:

       ./qemu-system-x86_64 -m 512 -hda /home/yangguang/nfs_mnt/images/debian_lenny_i386_small.qcow2 -net tap -net nic,model=rtl8139 -vnc :1 -monitor stdio
        #解释说明:
         1,  /home/yangguang/nfs_mnt: 代表NFS挂载的目录
         2,  -monitor stdio  将控制台定向的标准输入输出(这个是虚拟机迁移必须的,因为后续需要在命令行中进行操作)

    目的虚拟机的启动命令:

        ./qemu-system-x86_64 -m 512 -hda /home/yangguang/nfs_mnt/images/debian_lenny_i386_small.qcow2 -net tap -net nic,model=rtl8139 -vnc :1 -monitor stdio -incoming tcp:0:8888
         #解释说明
         1,  启动命令参数必须和源虚拟机的启动参数是一样的,包括网卡类型等
         2,  -incoming tcp:0:8888 这个是在端口8888接收迁移命令和数据

    这时在命令行中输入

         info status

    源虚拟机显示的状态是running
    目的虚拟机的显示的状态时paused

    3,进行虚拟机迁移

    在源虚拟机中的控制台中执行以下命令:

        (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命令对迁移的主机进行联通性进行测试,看看虚拟机的中断时间
    长短。

    4,总结

    到此为止,有关虚拟机的迁移已经完成,但是要把KVM虚拟机的迁移应该到实际的环境中,还需要关注下虚拟机迁移过程虚拟机内部服务的中间时间,以及整个虚拟机迁移的时间;同时目前我比较关心的是分布式共享存储的解决方案,NFS肯定是不能解决问题的,不知大家有没有好的解决方案?

    您可能对下面文章也感兴趣:

    • KVM分布式共享存储解决方案-sheepdog
    • 虚拟机迁移技术漫谈【两篇不错的文章】
    • sheepdog源码分析之关键模块介绍(一)
    • sheepdog源码分析之关键数据结构介绍
    • sheepdog源码学习笔记一


沪ICP备19023445号-2号
友情链接