当前位置: 首页 > 专利查询>同济大学专利>正文

在未来网络serval下的广域网中虚拟机在线迁移方法技术

技术编号:9902219 阅读:143 留言:1更新日期:2014-04-10 13:43
本发明专利技术涉及一种在未来网络serval下的广域网中虚拟机在线迁移方法,包括:先在源宿主主机中将虚拟机的迁移数据写入到迁移数据发送进程的标准输入流中;目的主机接收到迁移数据之后,将其写入到迁移数据接收进程的标准输出流中,加载和启动虚拟机;迁移数据接收完毕后,启动一个新的进程不断地给虚拟机发送更新网络状态的消息;在虚拟机更新了网络状态之后,遍历虚拟机中所有的流,更新虚拟机中已经建立的流的网络层地址信息。与现有技术相比,本发明专利技术能够实现在广域网下进行虚拟机的在线无缝迁移,并能够使虚拟机自适应新的网络环境,使虚拟机上的应用在虚拟机迁移的过程中保持不断,对未来网络serval的云计算和负载均衡具有重要意义。

【技术实现步骤摘要】
在未来网络serval下的广域网中虚拟机在线迁移方法
本专利技术涉及云计算技术和网络通信
,尤其是涉及一种在未来网络serval下的广域网中虚拟机在线迁移方法。
技术介绍
随着计算机的普及和网络的迅速发展,现有的TCP/IP网络体系结构出现了越来越多的缺点。比如,IP地址作为标志连接的一部分在通信过程中不能变化。为了改变目前的困境,目前有三条思路。一是,完全摒弃TCP/IP网络,构建一个全新的网络体系结构,如美国卡内基梅隆大学正在研发的XIA。二是,修复TCP/IP网络体系结构中出现的问题,如移动IP。三是,介乎前两者之间的,改动TCP/IP网络体系结构,如普林斯顿大学正在研发的serval。随着网络技术的快速发展,云计算技术顺应时代要求登上了历史舞台。但是云计算技术必须解决两个问题,一是,保证用户服务等级协议。二是高效合理地进行资源的分配。其中虚拟机在线迁移是云计算技术中进行高效合理地分配资源的很有前景的课题。虚拟机的在线迁移目前可以分为局域网中的在线迁移和广域网中的在线迁移。在TCP/IP的网络体系结构中,局域网的虚拟机在线迁移已经被很好地实现。但是,广域网中的虚拟机在线迁移仍然是一个难题。因为当虚拟机迁移到新的网络环境中时,虚拟机无法通过已现有的IP地址进行通信。此时,必须修改虚拟机的IP地址,但是修改了IP地址之后,虚拟机中所有的TCP连接都会中断。然而,对于在新的网络体系中进行虚拟机在线迁移的研究目前还是空白。普林斯顿大学研发的serval通过在TCP/IP的传输层和网络层之间添加一个新的服务访问层SAL(ServiceAccessLayer)构建一个以服务为中心的网络。因为serval中标识连接的不是IP地址和端口号而是流的源ID和目的ID,所以根据这个特点可以保证虚拟机在到达了新的网络中只要流的源ID和目的ID不变,那么连接就不会断。因此,我们可以借此完成虚拟机在广域网中的在线迁移。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种在未来网络serval下的广域网中虚拟机在线迁移方法。本专利技术的目的可以通过以下技术方案来实现:一种在未来网络serval下的广域网中虚拟机在线迁移方法,其特征在于,包括以下步骤:S1:先在源宿主主机中通过QEMU-KVM的exec迁移方式将虚拟机的迁移数据写入到迁移数据发送进程的标准输入流中,再将标准输入流中的迁移数据通过serval的套接字发送到目的主机的迁移数据接收进程中;S2:目的主机接收到迁移数据之后,将其写入到迁移数据接收进程的标准输出流中,QEMU-KVM从该标准输出流中读取迁移数据加载和启动虚拟机;S3:迁移数据接收完毕后,目的主机关闭与源宿主主机之间用于收发迁移数据的连接,并启动一个新的进程不断地给虚拟机发送更新网络状态的消息,虚拟机接收到该消息之后,发送一个确认包给目的主机同时更新自己的网络状态;S4:在虚拟机更新了网络状态之后,遍历虚拟机中所有的流,更新虚拟机中已经建立的流的网络层地址信息。实施步骤S3具体过程如下:(31)迁移数据接收完毕之后,目的主机关闭与源宿主主机之间用于收发迁移数据的连接,并通知本地的一个发送更新虚拟机网络状态数据包的进程send_changeAddr_msg,该进程收到消息之后返回一个确认信息给迁移数据接收进程,迁移数据接收进程收到这个确认信息之后退出;(32)进程send_changeAddr_msg用链路层套接字构造一个更新虚拟机网路状态的数据包,该数据包包含虚拟机新的IP地址、掩码以及网关地址的信息,之后,启动定时器每100毫秒给虚拟机发送一次构造的更改网络状态的数据包;(33)虚拟机迁移到目的主机并且恢复运行之后,接收来自于目的主机的更改网络状态的数据包,同样的,虚拟机用链路层套接字构造一个确认数据包返回给目的主机,同时更新自己的网络地址以及网关地址。所述的更改网络状态的数据包的格式为:以太网目的地址+以太网源地址+类型+硬件类型+协议类型+硬件地址长度+协议长度+操作类型+源硬件地址+源IP地址+目的硬件地址+目的IP地址+网络掩码+网关IP地址+可扩展字段。所述的数据包格式中,以太网目的地址为6字节,以太网源地址为6字节,类型为2字节,硬件类型为4字节,协议类型为4字节,硬件地址长度为2字节,协议长度为2字节,操作类型为4字节,源硬件地址为6字节,源IP地址为4字节,目的硬件地址为6字节,目的IP地址为4字节,网络掩码为4字节,网关IP地址为4字节,可扩展字段为4字节;其中,类型字段是0x0810,目的主机发送给虚拟机的数据包的协议类型字段是0x0001,虚拟机发送给目的主机的确认数据包的协议类型字段是0x0002。实施步骤S4具体过程如下:(41)遍历虚拟机的流表,查找虚拟机中所有流的源ID;(42)根据流的源ID,使用serval中迁移流的功能,将流迁移到拥有了新网络地址的网卡上。在虚拟机在线迁移过程中,使用serval的应用程序每100毫秒访问一次虚拟机中的服务,并要求虚拟机返回一个应答包,虚拟机迁移结束之后,验证虚拟机是否能够继续提供服务,并统计虚拟机在迁移过程中未收到应答包的个数,得到serval下虚拟机在线迁移的停机时间。与现有技术相比,本专利技术能够实现在广域网下进行虚拟机的在线无缝迁移,并且能够使虚拟机自适应新的网络环境,使虚拟机上的应用在虚拟机迁移的过程中保持不断,对未来网络serval的云计算和负载均衡具有重要意义。附图说明图1为实施例中测试本专利技术方法的测试床示意图。具体实施方式下面结合附图和具体实施例对本专利技术进行详细说明。如图1所示为测试本专利技术方法的测试床示意图,图中,HOST_A为源宿主主机,HOST_B为目的主机,Servicerouter1为HOST_A的serval下的缺省路由,Servicerouter2为HOST_B的serval下的缺省路由,TCP/IProuter为目前网络中普通的路由器。具体实施过程如下:步骤(1):在源宿主主机HOST_A和目的主机HOST_B上部署serval网络环境,其中,源宿主主机HOST_A的默认路由设置成Servicerouter1,具体命令为:/serval/src/servd/servd-rip10.60.1.1;目的主机HOST_B的默认路由设置成Servicerouter2,具体命令为:/serval/src/servd/servd-rip10.60.5.1;步骤(2):将Servicerouter1和Servicerouter2分别配置成serval下的路由器,命令为:/serval/src/servd/servd-r,并将Servicerouter1添加为源宿主主机HOST_A的默认路由,将Servicerouter2添加为目的主机HOST_B的默认路,添加方法同步骤(1);步骤(3):在源宿主主机HOST_A上启动虚拟机HOST_VM,启动参数为:-m640-smp1-drivefile=/var/lib/libvirt/images/ubuntu.img,if=virtio,format=raw-netnic,vlan=0,macaddr=52:54:00:6d:82:f9-nettap,v本文档来自技高网
...
在未来网络serval下的广域网中虚拟机在线迁移方法

【技术保护点】
一种在未来网络serval下的广域网中虚拟机在线迁移方法,其特征在于,包括以下步骤:S1:先在源宿主主机中通过QEMU‑KVM的exec迁移方式将虚拟机的迁移数据写入到迁移数据发送进程的标准输入流中,再将标准输入流中的迁移数据通过serval的套接字发送到目的主机的迁移数据接收进程中;S2:目的主机接收到迁移数据之后,将其写入到迁移数据接收进程的标准输出流中,QEMU‑KVM从该标准输出流中读取迁移数据加载和启动虚拟机;S3:迁移数据接收完毕后,目的主机关闭与源宿主主机之间用于收发迁移数据的连接,并启动一个新的进程不断地给虚拟机发送更新网络状态的消息,虚拟机接收到该消息之后,发送一个确认包给目的主机同时更新自己的网络状态;S4:在虚拟机更新了网络状态之后,遍历虚拟机中所有的流,更新虚拟机中已经建立的流的网络层地址信息。

【技术特征摘要】
1.一种在未来网络serval下的广域网中虚拟机在线迁移方法,其特征在于,包括以下步骤:S1:先在源宿主主机中通过QEMU-KVM的exec迁移方式将虚拟机的迁移数据写入到迁移数据发送进程的标准输入流中,再将标准输入流中的迁移数据通过serval的套接字发送到目的主机的迁移数据接收进程中;S2:目的主机接收到迁移数据之后,将其写入到迁移数据接收进程的标准输出流中,QEMU-KVM从该标准输出流中读取迁移数据加载和启动虚拟机;S3:迁移数据接收完毕后,目的主机关闭与源宿主主机之间用于收发迁移数据的连接,并启动一个新的进程不断地给虚拟机发送更新网络状态的消息,虚拟机接收到该消息之后,发送一个确认包给目的主机同时更新自己的网络状态;S4:在虚拟机更新了网络状态之后,遍历虚拟机中所有的流,更新虚拟机中已经建立的流的网络地址信息;实施步骤S3具体过程如下:(31)迁移数据接收完毕之后,目的主机关闭与源宿主主机之间用于收发迁移数据的连接,并通知本地的一个发送更新虚拟机网络状态数据包的进程send_changeAddr_msg,该进程收到消息之后返回一个确认信息给迁移数据接收进程,迁移数据接收进程收到这个确认信息之后退出;(32)进程send_changeAddr_msg用链路层套接字构造一个更新虚拟机网络状态的数据包,该数据包包含虚拟机新的IP地址、掩码以及网关地址的信息,之后,启动定时器每100毫秒给虚拟机发送一次构造的更改网络状态的数据包;(33)虚拟机迁移到目的主机并且恢复运行之后,接收来自于目的主机的更改网络状态的数据包,同样的,虚拟机用链路层套接字构造一个确认数据包返回给目的主机,同时更新自己的网络地址以及网关地址。2.根据权利要求1...

【专利技术属性】
技术研发人员:张大陆周德江金翔王建鹏
申请(专利权)人:同济大学
类型:发明
国别省市:上海;31

网友询问留言 已有1条评论
  • 来自[美国加利福尼亚州圣克拉拉县山景市谷歌公司] 2015年02月28日 07:31
    广域网(WAN,WideAreaNetwork)也称远程网(longhaulnetwork)。通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
    0
1