基于dag的自适应完成xia网络中虚拟机在线迁移的方法

文档序号:7811066阅读:171来源:国知局
基于dag的自适应完成xia网络中虚拟机在线迁移的方法
【专利摘要】本发明涉及一种基于DAG的自适应完成XIA网络中虚拟机在线迁移的方法,其特征在于,该方法通过对DAG形式地址格式进行修改,进而完成虚拟机跨AD迁移时通信的恢复,根据DAG修改的发生时间,所述方法具体分为在迁移开始时修改虚拟机的DAG和在迁移结束之后修改虚拟机的DAG两种模式。与现有技术相比,本发明具有能够实现未来网络XIA中任意拓扑情况下的虚拟机在线迁移等优点。
【专利说明】基于DAG的自适应完成XIA网络中虚拟机在线迁移的方法

【技术领域】
[0001]本发明涉及一种云计算技术和网络通信技术,尤其是涉及一种基于DAG的自适应完成XIA网络中虚拟机在线迁移的方法。

【背景技术】
[0002]因为云平台的差异性,为了维持统一的管理,虚拟化技术是必要的。而且虚拟化也有利于维持用户和应用的多样性,因此虚拟机在很长的一段时间内必将存在。那么虚拟机迁移在未来网络中也必须得到很好的支持。
[0003]在TCP/IP网络中,对于局域网中虚拟机在线迁移的研究已经被很好的实现,典型的如KVM;对于广域网中虚拟机在线迁移的研究虽然已经提出了不少解决方案,但是大多不是很理想。然而,对于未来网络中虚拟机在线迁移的研究目前还是很不成熟,虽然有些未来网络的设计中提到了对于移动性的支持,但是针对于虚拟机在线迁移的研究还是很缺乏。
[0004]美国的卡内基梅隆大学等高校正在研究的XIA (eXpressive InternetArchitecture)是针对TCP/IP网络中新功能部署以及地址耗尽等问题提出的下一代网络体系结构。采用新的地址形式有效地解决了在已有网络中添加新的网络功能的问题。就目前来讲,XIA网络可以很好的支持网络的灵活性,网络的可扩展性以及网络的多样性,目前已经成为美国NSF的FIA-NP(未来网络架构——下一阶段)的三个项目之一。
[0005]XIA网络也必须解决虚拟机在线迁移的问题。XIA网络不使用IP地址,而是采用有向无循环图(DAG)的方式来标识目的地。目的地可以是一台主机,也可以是一个服务,甚至可以是一个数据块等。灵活的地址格式使得XIA下的网络寻址变得十分灵活。在DAG中可以使用一条fallback来表示一条备选路径。这样在第一条首选路径失效之后还可以使用备选路径进行通信,利用这个特点可以设计出一种方案保证虚拟机迁移在切换地址时可以保证通信的不中断。


【发明内容】

[0006]本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于DAG的自适应,能够实现未来网络XIA中任意拓扑情况下的虚拟机在线迁移的方法。
[0007]本发明的目的可以通过以下技术方案来实现:
[0008]一种基于DAG的自适应完成XIA网络中虚拟机在线迁移的方法,该方法通过对DAG形式地址格式进行修改,进而完成虚拟机跨AD迁移时通信的恢复,根据DAG修改的发生时间,所述方法具体分为在迁移开始时修改虚拟机的DAG和在迁移结束之后修改虚拟机的DAG两种模式。
[0009]所述在迁移开始时修改虚拟机的DAG的模式具体包括以下步骤:
[0010]101)在源宿主主机中,解析目的宿主主机的DAG,得到目的宿主主机的AD,并将其发送给虚拟机,虚拟机收到AD之后,根据自己的DAG,构建一个带fallback路径的DAG,所述DAG将S2中从目的地址解析出来的AD作为一个备选路径,保证虚拟机在迁移之后可以使用新的AD进行通信,同时,虚拟机将该带fallback路径的DAG通知所有与自己通信的客户主机;
[0011]102)在源宿主主机中,通过QEMU-KVM的exec迁移方式将虚拟机迁移的数据发送到目的宿主主机上,而目的宿主主机上的QEMU-KVM读取迁移数据,加载并恢复虚拟机的运行;
[0012]103)虚拟机迁移到目的宿主主机后,将带fallback路径的DAG更新成新的DAG,同时通知所有的客户主机使用新的DAG作为虚拟机的目的地址;
[0013]所述步骤101)中的带fallback路径的DAG包含从目的宿主主机的DAG中解析出来的AD,所述步骤103)中的新的DAG仅包含从目的宿主主机的DAG中解析出来的AD信息。
[0014]所述步骤101)具体包括步骤:
[0015]1011)源宿主主机向名字服务器请求目的宿主主机的DAG,并解析出目的dst_AD,将dst_AD封装成一个消息数据包发送给虚拟机的一个守护进程,所述dst_AD为解析目的宿主主机的DAG得到的AD ;
[0016]1012)虚拟机的一个守护进程changDAG接收到源宿主主机发送过来的dst_AD之后调用连接功能,其中连接的目的地址是一个广播地址;
[0017]1013)当XIA协议栈的传输层接收到需要进行连接的消息时,检查目的地址是否为广播地址,如果是广播地址,则调用地址更新模块,所述地址更新模块嵌于XIA协议栈的传输层中;
[0018]1014)地址更新模块根据自己的DAG和收到的目的宿主主机的dst_AD,构建一个带有fallback路径的DAG,所述地址更新模块会遍历虚拟机中维护的所有连接,更新每一个连接的虚拟机的DAG,同时,所述地址更新模块获取每一个连接的客户端DAG,并向得到的客户主机发送用于更新虚拟机DAG的数据包;
[0019]1015)客户主机收到来自于虚拟机的重同步请求数据包之后,查找在本机维护的与虚拟机之间建立的连接,更新该连接状态信息中的虚拟机的DAG。
[0020]所述步骤103)具体包括步骤:
[0021]1031)虚拟机迁移到目的宿主主机后,目的宿主主机向虚拟机发送修改DAG的消息;
[0022]1032)虚拟机接收到该消息后,调用地址更新模块;
[0023]1033)所述地址更新模块根据收到更新地址消息后将fallback路径中的dst_AD作为首选路径构建一个新的DAG,并通知所有的客户主机使用新的DAG作为虚拟机的目的地址。
[0024]所述在迁移结束之后修改虚拟机的DAG的模式具体包括以下步骤:
[0025]201)在源宿主主机中,通过QEMU-KVM的exec迁移方式将虚拟机迁移的数据发送到目的宿主主机上,而目的宿主主机上的QEMU-KVM读取迁移数据,加载并恢复虚拟机的运行;
[0026]202)虚拟机迁移到目的宿主主机后,目的宿主主机向虚拟机发送修改DAG的消息,虚拟机接收到该消息后,地址更新模块,所述地址更新模块根据收到更新地址消息后将DAG修改得到新的DAG,并通知所有的客户主机使用新的DAG作为虚拟机的目的地址。
[0027]所述步骤103)或步骤202)之后,执行性能测试进程,具体为在迁移完成之前在某个客户主机和虚拟机之间建立一个连接,通过该连接定期地向虚拟机发送请求回复的数据包之后给予确认,客户主机记录下发送请求包的时间和收到应答包的时间,进而得到虚拟机在线迁移所造成的停机时间。
[0028]与现有技术相比,本发明具有以下优点具有以下优点:
[0029]I)能够实现在未来网络XIA下任意拓扑情况下的迁移,包括单个AD,跨AD,跨IP网络等等,而且灵活性和注入量明显小于其他的方案。
[0030]2)通过对比两种方案的优劣,有利于找到一种合适的方案在不同场合下的应用,这不仅有利于虚拟化技术在XIA下的部署,而且有利于XIA网络中DAG的研究。

【专利附图】

【附图说明】
[0031]图1为一种在未来网络XIA下跨AD的虚拟机在线迁移的测试床;
[0032]图2为迁移开始时修改DAG的模式下虚拟机初始DAG ;
[0033]图3为迁移开始时修改DAG的模式下虚拟机迁移过程中的DAG ;
[0034]图4为迁移开始时修改DAG的模式下虚拟机在目的宿主主机恢复运行后的DAG ;
[0035]图5为在迁移结束之后修改虚拟机的DAG的模式下虚拟机的初始DAG ;
[0036]图6为在迁移结束之后修改虚拟机的DAG的模式下虚拟机在目的宿主主机恢复运打后的DAG ;
[0037]其中:A、名字服务器,H0ST_A、源宿主主机,H0ST_B>目的宿主主机,H0ST_VM、待迁移的虚拟机,XIA router K ADl中的XIA路由器,XIA2、AD2中的XIA路由器。

【具体实施方式】
[0038]下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0039]在XIA的协议栈的源码中添加地址更新功能模块。
[0040]实验分成两个部分,一个是采用在迁移开始时修改DAG的方案,在跨AD下进行虚拟机在线迁移,另一个是采用在迁移结束之后修改DAG的方案,在跨AD下进行虚拟机在线迁移。
[0041]第一部分具体实施过程如下所示:
[0042]步骤一:启动源宿主主机H0ST_A和目的宿主主机H0ST_B。其中,H0ST_A作为普通的主机开启,具体命令为:/xia-core/bin/xianet-t_i hosta start。H0ST_B开启名字服务器 A 的功能,命令为:/xia-core/bin/xianet-t-n_i hostb start。XIA routerl 和 ΧΙΑrouter2 开启命令分别为 /xia-core/bin/xianet-r-1 routerl start 和 /xia-core/bin/xianet-r-n-1 router2 start。
[0043]步骤二:在源宿主主机HOST—A上启动虚拟机HOST—VM,启动参数为:-m640-smp1-drive file = /var/lib/libvirt/images/ubuntu.1mg, if = virt1, format =raw-netnic, vlan = 0,macaddr = 52:54:00: 6d: 82: f 9-net tap, vlan = 0,if name = tapO,script = no,其中,/var/1ib/1ibvirt/images/ubuntu.1mg 的大小是 4G ;
[0044]步骤三:在虚拟机H0ST_VM上部署XIA网络环境,具体命令为:/xia_core/bin/xianet-t-1 hostvm start。迁移之前虚拟机的DAG如图2所示。
[0045]步骤四:启动虚拟机中的响应回显请求的服务xsPing,同时在H0ST_A中开启发送请求的客户主机xcPing,每隔10ms向虚拟机发送数据包。同时,在虚拟机中启动用于接收地址更新消息的守护进程changDAG ;
[0046]步骤五:在目的主机H0ST_B上启动虚拟机H0ST_VM在线迁移的接收进程,启动方式为在步骤二中源宿主主机动虚拟机的启动参数后增加QEMU-KVM的exec方式接收迁移数据的进程:-1ncoming/xia-core/applicat1ns/example/xia_server_chunk_10_5,其中xia_server_chunk_10_5为迁移数据接收进程。
[0047]步骤六:在源宿主主机H0ST_A的QEMU的控制窗口中输入迁移的启动命令,命令为:migrate_b exec:/xia_core/applicat1ns/example/xia_client_chunk_10_5,其中参数b指块迁移,xia_Client_Chunk_10_5为迁移数据发送进程名。迁移数据发送进程首先向虚拟机发送一个修改DAG消息的数据包,然后开始发送迁移数据。此时,虚拟机的守护进程changDAG收到了修改DAG消息的数据包之后修改虚拟机自身的DAG,DAG如图3所示。
[0048]步骤七:迁移结束之后,H0ST_B不断地向虚拟机发送修改DAG的数据包。虚拟机的守护进程changDAG收到了修改DAG消息的数据包之后修改虚拟机自身的DAG,DAG如图4所示。
[0049]步骤八:查看源宿主主机H0ST_A的xcPing是否仍然可以继续运行,并且查看在停机过程中接收到的响应包和发送的请求包的时间差。
[0050]第二部分具体实施过程如下所示:
[0051]步骤I):启动源宿主主机H0ST_A和目的宿主主机H0ST_B。其中,H0ST_A作为普通的主机开启,具体命令为:/xia-core/bin/xianet-t_i hosta Start15HOSI^B开启名字服务器 A 的功能,命令为:/xia-core/bin/xianet-t-n_i hostb start。XIA routerl 和 ΧΙΑrouter2 开启命令分别为 /xia-core/bin/xianet-r-1 routerl start 和/xia-core/bin/xianet—n—i router2 start。
[0052]步骤2):在源宿主主机H0ST_A上启动虚拟机H0ST_VM,启动参数为:-m640-smp1-drive file = /var/1ib/1ibvirt/images/ubuntu.1mg, if = virt1, format =raw-netnic, vlan = 0,macaddr = 52:54:00: 6d: 82: t9-net tap, vlan = 0, if name = tapO,script = no,其中,/var/lib/libvirt/images/ubuntu.1mg 为虚拟机的镜像文件,大小是4G ;
[0053]步骤3):在虚拟机H0ST_VM上部署XIA网络环境,,具体命令为:/xia_core/bin/xianet-t-1 hostvm start。迁移之前虚拟机DAG如图5所不。
[0054]步骤4):启动虚拟机中的响应回显请求的服务xsPing。同时在H0ST_A中开启回显请求的客户主机xcPing,不断地向虚拟机发送数据包。
[0055]步骤5):在目的主机H0ST_B上启动虚拟机H0ST_VM在线迁移的接收进程,启动方式为在步骤2)源宿主主机H0ST_A启动虚拟机的启动参数后增加QEMU-KVM的exec方式接收迁移数据的进程:_incoming/xia-core/appl icat1ns/example/xia_server_chunk_10_5,其中xia_server_chunk_10_5为迁移数据接收进程。
[0056]步骤6):在源宿主主机H0ST_A的QEMU的监视器中输入迁移命令,命令为:migrate-b exec:/xia_core/applicat1ns/example/xia_client_chunk_10_5,其中 xia_client_chunk_10_5为迁移数据发送进程。迁移完成之后虚拟机的DAG如图6所示。
[0057]步骤7):查看源宿主主机H0ST_A的xcPing是否仍然可以继续运行,并且查看在停机过程中接收到的响应包和发送的请求包的时间差。
[0058]表1
[0059]

【权利要求】
1.一种基于DAG的自适应完成XIA网络中虚拟机在线迁移的方法,其特征在于,该方法通过对DAG形式地址格式进行修改,进而完成虚拟机跨AD迁移时通信的恢复,根据DAG修改的发生时间,所述方法具体分为在迁移开始时修改虚拟机的DAG和在迁移结束之后修改虚拟机的DAG两种模式。
2.根据权利要求1所述的一种基于DAG的自适应完成XIA网络中虚拟机在线迁移的方法,其特征在于,所述在迁移开始时修改虚拟机的DAG的模式具体包括以下步骤: 101)在源宿主主机中,解析目的宿主主机的DAG,得到目的宿主主机的AD,并将其发送给虚拟机,虚拟机收到目的宿主主机的AD之后,根据自己的DAG,构建一个带fallback路径的DAG,同时,虚拟机将该带fallback路径的DAG通知所有与自己通信的客户主机; 102)在源宿主主机中,通过QEMU-KVM的exec迁移方式将虚拟机迁移的数据发送到目的宿主主机上,而目的宿主主机上的QEMU-KVM读取迁移数据,加载并恢复虚拟机的运行; 103)虚拟机迁移到目的宿主主机后,将带fallback路径的DAG更新成新的DAG,同时通知所有的客户主机使用新的DAG作为虚拟机的目的地址。
3.根据权利要求2所述的一种基于DAG的自适应完成XIA网络中虚拟机在线迁移的方法,其特征在于,所述步骤101)中的带fallback路径的DAG包含从目的宿主主机的DAG中解析出来的AD,所述步骤103)中的新的DAG仅包含从目的宿主主机的DAG中解析出来的AD信息。
4.根据权利要求2所述的一种基于DAG的自适应完成XIA网络中虚拟机在线迁移的方法,其特征在于,所述步骤101)具体包括步骤: 1011)源宿主主机向名字服务器请求目的宿主主机的DAG,并解析出目的dst_AD,将dst_AD封装成一个消息数据包发送给虚拟机的一个守护进程,所述dst_AD为解析目的宿主主机的DAG得到的AD ; 1012)虚拟机的一个守护进程changDAG接收到源宿主主机发送过来的dst_AD之后调用连接功能,其中连接的目的地址是一个广播地址; 1013)当XIA协议栈的传输层接收到需要进行连接的消息时,检查目的地址是否为广播地址,如果是广播地址,则调用地址更新模块; 1014)地址更新模块根据自己的DAG和收到的目的宿主主机的dst_AD,构建一个带有fallback路径的DAG,同时,所述地址更新模块获取每一个连接的客户端DAG,并向得到的客户主机发送用于更新虚拟机DAG的数据包; 1015)客户主机收到来自于虚拟机的重同步请求数据包之后,查找在本机维护的与虚拟机之间建立的连接,更新该连接状态信息中的虚拟机的DAG。
5.根据权利要求2所述的一种基于DAG的自适应完成XIA网络中虚拟机在线迁移的方法,其特征在于,所述步骤103)具体包括步骤: 1031)虚拟机迁移到目的宿主主机后,目的宿主主机向虚拟机发送修改DAG的消息; 1032)虚拟机接收到该消息后,调用地址更新模块; 1033)所述地址更新模块根据收到更新地址消息后将fallback路径中的dst_AD作为首选路径构建一个新的DAG,并通知所有的客户主机使用新的DAG作为虚拟机的目的地址。
6.根据权利要求1所述的一种基于DAG的自适应完成XIA网络中虚拟机在线迁移的方法,其特征在于,所述在迁移结束之后修改虚拟机的DAG的模式具体包括以下步骤: 201)在源宿主主机中,通过QEMU-KVM的exec迁移方式将虚拟机迁移的数据发送到目的宿主主机上,而目的宿主主机上的QEMU-KVM读取迁移数据,加载并恢复虚拟机的运行; 202)虚拟机迁移到目的宿主主机后,目的宿主主机向虚拟机发送修改DAG的消息,虚拟机接收到该消息后,调用地址更新模块,所述地址更新模块根据收到更新地址消息后将DAG修改得到新的DAG,并通知所有的客户主机使用新的DAG作为虚拟机的地址。
7.根据权利要求2或6所述的一种基于DAG的自适应完成XIA网络中虚拟机在线迁移的方法,其特征在于,所述步骤103)或步骤202)之后,执行性能测试进程,具体为在迁移完成之前在某个客户主机和虚拟机之间建立一个连接,通过该连接定期地向虚拟机发送请求回复的数据包之后给予确认,客户主机记录下发送请求包的时间和收到应答包的时间,进而得到虚拟机在线迁移所造成的停机时间。
【文档编号】H04L12/46GK104184803SQ201410390080
【公开日】2014年12月3日 申请日期:2014年8月8日 优先权日:2014年8月8日
【发明者】张大陆, 周德江, 金翔, 王建鹏 申请人:同济大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1