虚拟机没有共享存储条件下的在线迁移方法和装置的制造方法_2

文档序号:9921910阅读:来源:国知局
据,虚拟机里运行的负载的大小直接影响迀移的时间长短。
[0050]迀移通道和传输协议:
[0051 ]赛尔云调用底层的libvirt来完成动态迀移。虚拟机的迀移,其实就是数据的转移。libvirt提供了隧道化的数据传输(libvirt tunnelled transport)方式来完成数据转移。如图8所示。
[0052]数据的转移就涉及数据的传输,数据的传输需要通过网络,本发明介绍使用TCP网路协议来实现动态迀移。Libvirt默认情况下不支持TCP协议,需要对libvirt的配置做修改,使libvirt能够支持TCP协议,后面的章节会详细的介绍如何配置。在迀移的过程中,运行在目的物理主机(Dest Host)中的Iibvirtd进程要根据address和port创建一个URI,URI是目的物理主机用来接收数据和发回数据到源物理主机的Iibvirtd进程的,如图9。
[0053]在目的物理主机和源物理主机,只要下面的命令能够执行,就说明能够传输数据了。
[0054]在computeOl 上执行:
[0055][rooticomputeOl]#virsh-c qemu+tcp://novaicompute02/system
[0056]在compute02 上执行:
[0057][rooticomputeOl]#virsh-c qemu+tcp://novaicompute02/system
[0058]如下例所示在computeOl上执行virsh命令,如果有图10所示的输出,就说明传输通道正常。
[0059]迀移的步骤:
[0060]迀移的基本概念弄清楚了,下面我们继续介绍本发明提出的数据动态迀移的方法步骤。赛尔云做动态迀移一个正常的流程主要包括四部分:迀移前的条件检查、迀移前的预处理、迀移、迀移后的处理。
[0061]第一、迀移前的条件检查:
[0062]动态迀移要成功执行,一些条件必须满足,所以在执行迀移前必须做一些条件检查。
[0063]权限检查,执行迀移的用户是否有足够的权限执行动态迀移;
[0064I参数检查,传递给API的参数是否足够和正确,如是否指定了 block-migrate参数;
[0065]检查目标物理主机是否存在;
[0066]检查被迀移的虚拟机是否是运行running状态;
[0067]检查源和目的物理主机上的nova-compute服务是否正常运行;
[0068]检查目的物理主机和源物理主机是否是同一台机器;
[0069]检查目的物理主机是否有足够的内存(memory);
[0070]检查目的和源物理主机器hypervisor和hypervisor的版本是否相同。
[0071]第二、迀移前的预处理:
[0072]在真正执行迀移前,必须做一下热身,做一些准备工作。
[0073]在目的物理主机上获得和准备虚拟机挂载的块设备(volume);
[0074]在目的物理主机上设置虚拟机的网络(networks);
[0075]目的物理主机上设置虚拟机的防火墙(fireware)。
[0076]第三、进行动态迀移:
[0077]条件满足并且做完了预处理工作后,就可以执行动态迀移了。主要步骤如下:
[0078]调用I ibvirt python接口migrateToURI,来把源主机迀移到目的主机;
[0079]dom.migrateToURI(C0NF.1 ive_migrat1n_uri% dest,1gical_sum,None,CONF.live_migrat1n_bandwidth)
[0080]live_migrat1n_ur1:这个URI就是上面介绍的libvirtd进程定义的;
[0081 ]live_migrat1n_bandwidth:这个参数定义了迀移过程中所使用的最大的带宽;
[°082 ]以一定的时间间隔(0.5)循环调用wai t_f or_l i ve_migrat i on方法,来检测虚拟机迀移的状态,一直到虚拟机成功迀移为止。
[0083]第四、迀移后的处理:
[0084]当虚拟机迀移完成后,要做一些善后工作;
[0085]在源物理主机上detach volume ;
[0086]在源物理主机上释放securitygroup ingress rule ;
[0087]在目的物理主机上更新数据库里虚拟机的状态;
[0088]在源物理主机上删除虚拟机;
[0089]上面四步正常完成后,虚拟机就成功的从源物理主机成功地迀移到了目的物理主机了。系统管理员就可以执行第二章所列的哪些管理任务了;
[0090]动态迀移的配置:
[0091]本节列出了支持动态迀移的配置,必须确保所有物理主机上配置正确,动态迀移才能成功完成。
[0092]Libvirt
[0093]I ibvirt默认情况下支持远程连接的TLS协议,不支持TCP协议,因此将配置listen—t Is = 01 is ten—tcp = I使I ibvirt能够支持 TCP 协议 D
[0094]修改/ etc/sysconf ig/1 ibvirtd 文件;
[0095]LIBVIRTD—ARGS=〃一listen〃
[0096]在/etc/1ibvirt/1 ibvirtd.conf 文件中做如下配置:
[0097]listen—t Is = O
[0098]Iisten—tcp = I[0099 ] auth—t cp =〃 none77
[0100]重启libvirtd 服务;
[0101]物理主机上DNS
[0?02] 配置每个物理主机上的/etc/host,加入每个物理主机的hostname和ΙΡ,如下例:
[0103]192.168.0.1 compute-1 compute_l.1bm.com
[0104]192.168.0.2 compute-2 compute-2.1bm.com
[0105]防火墙
[0106]配置/etc/sysconfig/iptables,打开 TCP 端口 16509;
[0107]-A INPUT-p tcp-m multiport—ports 16509-m comment—comment"Iibvirt〃-jACCEPT;
[0108]赛尔云计算
[0109]在/etc/nova/nova,conf 文件里配置 live—migrat 1n 标记 D
[0110]live—migrat1n—flag = VIR—MIGRATE—UNDEFINE—SOURCE,VIR—MIG RATE_PEER2PEER,VIR—MIGRATE—LIVE
[0111]动态迀移的实例:
[0112]本节通过下面的例子来演示如何做动态迀移。这个例子的目标就是把虚拟机从七〇!'011^111001。。2048迁移到七01'011^111002。。2048。如图11所不。
[0113]在如1'011^111001(^2048上建一个虚拟机1111001,如图12所不。
[0114]检查虚拟机ImOOl建在了 tor01kvm001ccz048上,如图13所示。
[0115]执行动态迀移:
[0116]#nova live-migrat1n—block-migrate ImOOl tor01kvm002ccz048[ΟΙ17] 我们可以看到虚拟机的Task State变成了migrating状态,如图14所不D[0?18]检查迀移的结果:
[0119]通过nova show命令,可以看到ImOOl已经成功迁移到了tor01kvm002ccz048,如图15所示。
[0120]以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种没有共享存储条件下虚拟机的在线迀移方法,包括: 接收虚拟机动态迀移的请求,所述请求包括源物理主机和目的物理主机; 进行虚拟机动态迀移前的条件检查; 进行虚拟机动态迀移前的预处理; 进行虚拟机动态迀移; 进行虚拟机动态迀移的后处理。2.如权利要求1所述的方法,其中,所述虚拟机包括后端镜像文件和增量镜像文件,所述后端镜像文件为建立虚拟机时生成的原始镜像文件,所述增量镜像文件为建立虚拟机之后发生改变而产生的与原始镜像文件不同的镜像文件。3.如权利要求2所述的方法,其中,所述虚拟机的动态迀移包括后端镜像文件、增量镜像文件和内存中当前运行的虚拟机数据。4.如权利要求1所述的方法,其中,所述虚拟机的动态迀移采用隧道化数据传输,传输协议采用TCP协议。5.如权利要求1所述的方法,其中,所述虚拟机动态迀移前的条件检查包括: 权限检查;参数检查;检查目标物理主机是否存在;检查被迀移的虚拟机是否是运行状态;检查源物理主机和目的物理主机上的nova-compute服务是否正常运行;检查目的物理主机和源物理主机是否是同一台机器;检查目的物理主机是否有足够的内存;检查目的物理主机和源物理主机器的虚拟机监视器的版本是否相同。6.如权利要求1所述的方法,其中,所述虚拟机动态迀移前的预处理包括: 在目的物理主机上获得和准备虚拟机挂载的块设备; 在目的物理主机上设置虚拟机的网络; 目的物理主机上设置虚拟机的防火墙。7.如权利要求1所述的方法,其中,所述虚拟机动态迀移的后处理包括: 在源物理主机上释放内存; 在源物理主机上释放security group ingress rule; 在目的物理主机上更新数据库里虚拟机的状态; 在源物理主机上删除虚拟机。8.一种没有共享存储条件下虚拟机的在线迀移装置,包括: 请求模块,用于接收虚拟机动态迀移的请求,所述请求包括源物理主机和目的物理主机; 虚拟机动态迀移模块,用于进行虚拟机动态迀移前的条件检查,进行虚拟机动态迀移前的预处理,进行虚拟机动态迀移,进行虚拟机动态迀移的后处理。
【专利摘要】本发明提出了一种虚拟机没有共享存储条件下的在线迁移方法和装置。所述方法包括:接收虚拟机动态迁移的请求,所述请求包括源物理主机和目的物理主机;进行虚拟机动态迁移前的条件检查;进行虚拟机动态迁移前的预处理;进行虚拟机动态迁移;进行虚拟机动态迁移的后处理。迁移(Migration)就是把一个虚拟机从一台物理主机搬到另一台物理主机,动态(Live)就是在迁移过程中虚拟机正常工作不影响用户的使用。从用户的角度来看,好像这个过程没有发生。虚拟机虽然迁来迁去,但丝毫不会影响用户的使用。
【IPC分类】G06F9/48
【公开号】CN105700944
【申请号】CN201511032362
【发明人】黄友俊, 李星, 吴建平, 李川, 邓斌
【申请人】赛尔网络有限公司
【公开日】2016年6月22日
【申请日】2015年12月31日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1