一种在xia孤岛之间进行虚拟机在线迁移的方法

文档序号:7794787阅读:229来源:国知局
一种在xia孤岛之间进行虚拟机在线迁移的方法
【专利摘要】本发明涉及一种在XIA孤岛之间进行虚拟机在线迁移的方法,将虚拟机的迁移数据从源宿主主机发送到目的宿主主机,当虚拟机在目的宿主主机启动之后,进行重同步操作,从而完成虚拟机在XIA下跨IP网络的在线迁移;同时,采用有连接的方式测量虚拟机在线迁移的downtime。与现有技术相比,本发明具有实现了XIA在TCP/IP网络基础上进行虚拟机迁移的功能,有利于推进XIA在TCP/IP网络中的部署进程。
【专利说明】一种在XIA孤岛之间进行虚拟机在线迁移的方法
【技术领域】
[0001]本发明涉及云计算技术和网络通信【技术领域】,尤其是涉及一种在XIA孤岛之间进行虚拟机在线迁移的方法。
【背景技术】
[0002]随着网络技术的发展,TCP/IP网络的缺点逐渐的暴露出来,比如地址耗尽问题,新功能的部署等问题。因此,考虑使用下一代网络来代替TCP/IP网络。美国卡内基梅隆大学正在研发的XIA是针对TCP/IP网络中新功能部署以及地址耗尽等问题提出的下一代网络体系结构。采用新的地址形式有效地解决了在已有网络中添加新的网络功能的问题。就目前来讲,XIA网络可以很好的支持网络的灵活性,网络的可扩展性以及网络的多样性。
[0003]再者,虚拟机在线迁移可以很有效地解决云计算技术中资源有效分配的问题。目前对于虚拟机在线迁移的研究。在TCP/IP网络中,对于局域网中虚拟机在线迁移的研究已经被很好的实现,典型的如KVM;对于广域网中虚拟机在线迁移的研究虽然已经提出了不少解决方案,但是大多不是很理想。然而,对于未来网络中虚拟机在线迁移的研究目前还是很不成熟,虽然有些未来网络的设计中提到了对于移动性的支持,但是针对于虚拟机在线迁移的研究还是很缺乏。
[0004]XIA网络也必须解决虚拟机在线迁移的问题。虽然在纯XIA网络中的虚拟机在线迁移已经不再是一个问题了,然而,对于孤岛形式的XIA网络的虚拟机迁移仍然还是一个难题。即XIA网络如何穿越TCP/IP网络进行虚拟机在线迁移。因为XIA网络已经实现了数据包穿越TCP/IP网络从一个XIA网络传输到另一个XIA网络的功能,即在两个XIA孤岛网络之间进行传输数据包,连接这两个XIA孤岛网络的是TCP/IP网络。因此,XIA网络下跨IP网络的虚拟机在线迁移也有了可行的基础。

【发明内容】

[0005]本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种在XIA孤岛(通过IP网络将连接两个XIA网络)之间进行虚拟机在线迁移的方法,实现了 XIA在TCP/IP网络基础上进行虚拟机迁移的功能,有利于推进XIA在TCP/IP网络中的部署进程。
[0006]本发明的目的可以通过以下技术方案来实现:
[0007]一种在XIA孤岛之间进行虚拟机在线迁移的方法,其特征在于,将虚拟机的迁移数据从源宿主主机发送到目的宿主主机,当虚拟机在目的宿主主机启动之后,进行重同步操作,从而完成虚拟机在XIA下跨IP网络的在线迁移;同时,采用有连接的方式测量虚拟机在线迁移的downtime。
[0008]具体步骤如下:
[0009]S1:迁移虚拟机:在源宿主主机中,通过QEMU-KVM(虚拟机管理系统)的exec迁移方式发送虚拟机迁移数据在目的宿主主机中,QEMU-KVM读取迁移数据并加载和启动虚拟机;[0010]S2:重同步连接:虚拟机迁移完成之后,源宿主主机停止虚拟机,目的宿主主机启动虚拟机,虚拟机在启动之后,遍历虚拟机中所有已建立的连接,并对连接双方的维护的连接状态信息进行更新;
[0011]S3:性能测试:采用一个已建立的连接,通过该连接的客户端不断地向虚拟机中的服务端发送请求,虚拟机给予确认的方式测量虚拟机迁移的downtime。
[0012]所述的步骤S2具体为:
[0013](I)虚拟机迁移到目的宿主主机并且启动之后,调用连接功能,其中连接的目的地址的HID (主机的标识符)是一个广播地址;
[0014](2)当XIA的传输层接收到需要进行连接的消息时,判断目的地址的HID是否为广播地址,如果是广播地址,则转入重同步连接模块;
[0015](3)重同步连接模块遍历虚拟机中维护的所有连接,更新每一个连接的源DAG,同时获取每一个连接的目的DAG,并且向得到的目的DAG发送一个用于重同步连接的重同步请求数据包;
[0016](4)目的宿主主机在收到了来自于虚拟机的重同步请求数据包之后,查找在本机维护的与虚拟机之间建立的连接,更新该连接状态信息中的虚拟机的DAG并且重传的缓冲区中发往虚拟机的所有的数据包,同时,返回用于重同步连接的重同步确认数据包;
[0017]所述的目的DAG格式为AD-HID,其中AD为虚拟机所在的AD,HID为XIA网络中的广播地址。
[0018]所述的重同步请求数据包采用XIA中用于建立流的请求连接的数据包的格式进行封装,其中,将源DAG填充为虚拟机迁移到目的宿主主机上中新的DAG,目的DAG填充为连接的另一端的DAG,序号字段填充为-1,确认号填充为-1。
[0019]所述的重同步确认数据包采用XIA中用于建立流的确认连接的数据包的格式进行封装,其中,将源DAG填充为本地维护的连接信息中的源DAG,目的DAG填充为收到的重同步请求数据包中的源DAG,序号字段填充为-1,确认号填充为本-1。
[0020]所述的性能测试采用在迁移完成之前某个客户端主机与虚拟机建立一个连接,该连接的功能为,定期地向虚拟机发送请求回复的数据包,虚拟机在接受到请求回复的数据包之后给予确认,迁移完成之后,通过客户端主机在虚拟机宕机时间内未收到的确认数据包的个数以及发包的间隔来估算出虚拟机的downt ime
[0021]与现有技术相比,本发明能够实现在未来网络XIA下跨IP网络的虚拟机无缝迁移,不仅有利于推动XIA部署在TCP/IP网络中进程,同时使得XIA在现有的TCP/IP网络中能够实现多地合作的研究,有利于XIA本身的发展。
【专利附图】

【附图说明】
[0022]图1为本发明重同步连接过程的示意图;
[0023]图2为实施例中测试本发明方法的测试床示意图。
【具体实施方式】
[0024]下面结合附图和具体实施例对本发明进行详细说明。
[0025]实施例[0026]在XIA的协议栈的源码中添加图1所示的重同步连接的功能。
[0027]图2所示为本发明的实验测试床,图中,H0ST_A为源宿主主机,H0ST_B为目的宿主主机,H0ST_VM为待迁移的虚拟机。XIA routerl为ADl中的XIA路由器,XIA2为AD2中的XIA路由器,TCP/IP router为目前网络中普通的路由器。
[0028]具体实施过程如下所示:
[0029]步骤(I):在源宿主主机H0ST_A和目的宿主主机H0ST_B。其中,H0ST_A作为普通的主机开启,具体命令为:/xia-core/bin/xianet-t_i hosta start。H0ST_B 开启名字服务器的功能,命令为:/xia-core/bin/xianet-t-n_i hostb start。XIA routerl 和XIA router2 开启命令分别为/xia-core/bin/xianet-4r_I ethl-1 routerl start 和 /xia-core/bin/xianet-4r-n_I ethl-1 router2 start。
[0030]步骤(2):在源宿主主机H0ST_A上启动虚拟机H0ST_VM,启动参数为:_m 640-smp1-drive file = /var/lib/libvirt/images/ubuntu.1mg, if = virtio, format =raw-netnic, vlan = 0,macaddr = 52:54:00: 6d: 82: f 9-net tap, vlan = 0, if name = tapO,script = no,其中,/var/lib/libvirt/images/ubuntu.1mg 的大小是 4G。
[0031]步骤(3):在虚拟机H0ST_VM上部署XIA网络环境,具体命令为:/xia_core/bin/xianet—t—i hostvm start。
[0032]步骤⑷:启动虚拟机中的响应回显请求的服务xsPing。同时在H0ST_A*开启回显请求的客户端xcPing,不断地向虚拟机发送数据包。
[0033]步骤(5):在目的主机H0ST_B上启动虚拟机H0ST_VM在线迁移的接收进程,启动方式为在步骤(2)源宿主主机H0ST_A启动虚拟机的启动参数后增加QEMU-KVM的exec方式接收迁移数据的进程:_incoming/xia-core/applications/example/xia_server_chunk_10_5,其中xia_server_chunk_10_5为迁移数据接收进程。
[0034]步骤(6):在源宿主主机QEMU的监视器中输入迁移命令,命令为:migrate-b exec:/xia_core/applications/example/xia_client_chunk_10_5,其中 xia_cIient_chunk_10_5为迁移数据发送进程。
[0035]步骤(7):迁移结束之后,查看源宿主主机H0ST_A的xcPing是否仍然可以继续运行,以及该进程的丢包个数,得到停机时间。
【权利要求】
1.一种在XIA孤岛之间进行虚拟机在线迁移的方法,其特征在于,将虚拟机的迁移数据从源宿主主机发送到目的宿主主机,当虚拟机在目的宿主主机启动之后,进行重同步操作,从而完成虚拟机在XIA下跨IP网络的在线迁移;同时,采用有连接的方式测量虚拟机在线迁移的downtime。
2.根据权利要求1所述的一种在XIA孤岛之间进行虚拟机在线迁移的方法,其特征在于,具体步骤如下: 51:迁移虚拟机:在源宿主主机中,通过QEMU-KVM的exec迁移方式发送虚拟机迁移数据在目的宿主主机中,QEMU-KVM读取迁移数据并加载和启动虚拟机; 52:重同步连接:虚拟机迁移完成之后,源宿主主机停止虚拟机,目的宿主主机启动虚拟机,虚拟机在启动之后,遍历虚拟机中所有已建立的连接,并对连接双方的维护的连接状态信息进行更新; 53:性能测试:采用一个已建立的连接,通过该连接的客户端不断地向虚拟机中的服务端发送请求,虚拟机给予确认的方式测量虚拟机迁移的downtime。
3.根据权利要求2所述的一种在XIA孤岛之间进行虚拟机在线迁移的方法,其特征在于,所述的步骤S2具体为: (1)虚拟机迁移到目的宿主主机并且启动之后,调用连接功能,其中连接的目的地址的HID是一个广播地址; (2)当XIA 的传输层接收到需要进行连接的消息时,判断目的地址的HID是否为广播地址,如果是广播地址,则转入重同步连接模块; (3)重同步连接模块遍历虚拟机中维护的所有连接,更新每一个连接的源DAG,同时获取每一个连接的目的DAG,并且以该DAG为目的地址发送一个用于重同步连接的重同步请求数据包; (4)连接的另一端主机在收到了来自于虚拟机的重同步请求数据包之后,查找在本机维护的与虚拟机之间建立的连接,更新该连接状态信息中的虚拟机的DAG并且重传的缓冲区中发往虚拟机的所有的数据包,同时,返回用于重同步连接的重同步确认数据包。
4.根据权利要求3所述的一种在XIA孤岛之间进行虚拟机在线迁移的方法,其特征在于,所述的目的DAG格式为AD-HID,其中AD为虚拟机所在的AD,HID为XIA网络中的广播地址。
5.根据权利要求3所述的一种在XIA孤岛之间进行虚拟机在线迁移的方法,其特征在于,所述的重同步请求数据包采用XIA中用于建立流的请求连接的数据包的格式进行封装,其中,将源DAG填充为虚拟机迁移到目的宿主主机上中新的DAG,目的DAG填充为连接的另一端的DAG,序号字段填充为-1,确认号填充为-1。
6.根据权利要求3所述的一种在XIA孤岛之间进行虚拟机在线迁移的方法,其特征在于,所述的重同步确认数据包采用XIA中用于建立流的确认连接的数据包的格式进行封装,其中,将源DAG填充为本地维护的连接信息中的源DAG,目的DAG填充为收到的重同步请求数据包中的源DAG,序号字段填充为-1,确认号-1。
7.根据权利要求2所述的一种在XIA孤岛之间进行虚拟机在线迁移的方法,其特征在于,所述的性能测试采用在迁移完成之前某个客户端主机与虚拟机建立一个连接,该连接的功能为,定期地向虚拟机发送请求回复的数据包,虚拟机在接受到请求回复的数据包之后给予确认,迁移完成之后,通过客户端主机在虚拟机宕机时间内未收到的确认数据包的个数以及发包的间隔来估算出 虚拟机的downt ime。
【文档编号】H04L29/06GK103780683SQ201410007809
【公开日】2014年5月7日 申请日期:2014年1月8日 优先权日:2014年1月8日
【发明者】张大陆, 周德江, 金翔, 王建鹏 申请人:同济大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1