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

虚拟机热迁移过程中的数据流自适应调整系统及调整方法技术方案

技术编号:15847142 阅读:124 留言:0更新日期:2017-07-18 20:06
本发明专利技术公开了一种虚拟机迁移过程中的数据流自适应系统及相应的调整方法,针对现有技术中“停机‑重启”中因忽略了对后续到达原物理机的数据包的处理所带来的数据包丢失的问题,包括虚拟机停机时重定向数据包的发送端、虚拟机重启后重发数据包的接收端以及数据包在发送端和接收端之间的转移机制。本发明专利技术方法通过这三部分的有序结合,可以使得虚拟机在新的物理机上重启后仍然能够处理到达原来物理机的数据包,从而实现在整个迁移过程中到达虚拟机的数据包几乎无损失的效果,为上层的各种虚拟机方案设计提供了一个基础。

【技术实现步骤摘要】
虚拟机热迁移过程中的数据流自适应调整系统及调整方法
本专利技术涉及云环境的部署领域,具体涉及一种虚拟机迁移过程中的数据流自适应调整系统及相应的调整方法,属于对迁移机制的修改。
技术介绍
近年云计算、云部署在技术上不断取得进展,在此基础上衍生出各类云平台的应用和研究。虚拟化技术是云平台的基础技术,长期发展下已经有不少成熟的虚拟机产品。除了尽可能提高物理机的资源利用率,尽可能开发虚拟机带来的扩展性和部署的灵活性也日渐成为研究重点。大部分虚拟机迁移实施方案在“停机-重启”这个环节中忽略了对后续到达原物理机的数据包的处理,造成在网络环境中不得不通过网络协议的重传机制找回丢失的数据内容。然而在有些场景中,数据包无法重传或者重传的代价很大,导致数据包很容易丢失。
技术实现思路
专利技术目的:为了解决虚拟机在迁移时会产生较多丢包的问题,本专利技术提供了一种虚拟机迁移过程中的数据流自适应调整系统以及相应的数据流自适应调整方法,能够使得虚拟机在迁移过程几乎不丢失数据包。技术方案:为解决上述技术问题,本专利技术中虚拟机迁移过程中的数据流自适应调整系统,包括:重定向数据包的发送端,位于虚拟机迁移前的宿主机,用于在虚拟机停机时重定向后续到达虚拟机的数据包,进而将收到的数据包转发到重发数据包的接收端;重发数据包的接收端,位于虚拟机迁移后的宿主机,一方面用于缓存虚拟机停机阶段从发送端发来的数据包,另一方面用于缓存迁移结束交换机改变数据流向后远程主机发给虚拟机的数据包,并将缓存的数据包按顺序发送给宿主机上新启动的虚拟机。其中,所述发送端重定向后续到达虚拟机的数据包包括对远程主机发送给虚拟机的数据包进行拦截、改写数据包的地址信息、拆分数据包。本专利技术中的虚拟机迁移过程中的数据流自适应调整方法,基于XEN虚拟机平台的热迁移机制,将虚拟机迁移前的宿主机作为重定向数据包的发送端,将虚拟机迁移后的宿主机作为虚拟机重启后重发数据包的接收端,包括以下步骤:(1)在迁移开始阶段,发送端模拟出第一虚拟网卡,并通过广播数据包向网络环境内其他机器通知该网卡的位置及物理地址;接收端模拟出第二虚拟网卡,并通过广播数据包向网络环境内其他机器通知该网卡的位置及物理地址;所述第一虚拟网卡、第二虚拟网卡的物理地址均不同与网络环境内其他机器的物理地址;(2)发送端拦截远程主机发送给虚拟机的数据包,并对数据包进行重定向处理后发送给接收端,发送端重复这样的收包-发包动作直至接收到接收端发送来的通知数据包,向接收端发送回应数据包;(3)接收端接收发送端发送的重定向数据包并进行缓存,重复这样的收包-缓存包动作,在迁移过程结束后,接收端向发送端发送通知数据包,待接收到发送端发来的回应数据包后结束收包-缓存包动作;迁移过程结束后,接收端接收从远程主机直接发送的数据包并进行缓存;(4)接收端收到回应数据包后发送ARP数据包测试虚拟机是否可以响应外界请求,若是,则按顺序向虚拟机发送缓存的数据包;否则,继续发送ARP数据包直到虚拟机可以响应外界请求为止。其中,发送端对接收到的数据包进行解析,根据其源物理地址和目标物理地址判断该数据包是远程主机发送给虚拟机的数据包还是接收端发送来的通知数据包;接收端通过对接收到的数据包进行解析,根据其目标物理地址判断该数据包为远程主机发送给虚拟机的数据包还是发送端发送的数据包,对于发送端发送的数据包,再根据数据包的字段类型判断该数据包是重定向数据包还是回应数据包。其中,步骤(2)中发送端对数据包进行重定向处理,包括以下步骤:若数据包大小不超过以太网数据帧的最大字节数,则对该数据包加上以太网帧头,源物理地址填第一虚拟网卡的物理地址,目标物理地址填接收端虚拟网卡的物理地址,设定第一重定向数据包类型字段,发送给接收端;若数据包大小超过以太网数据帧的最大字节数,将该数据包分成两部分,前半部分的字节数为最大字节数,对两部分分别加上以太网帧头,对前半部分设置第二重定向数据包类型字段,对后半部分设置第三重定向数据包类型字段,发送给接收端。其中,步骤(3)中接收端对接收到的重定向数据包进行缓存,具体为:若数据包的字段类型为第一重定向数据包,则直接将数据包缓存到预设的缓存器里;若数据包的字段类型为第二重定向数据包或第三重定向数据包,则将两个相应的数据包组装成一个数据包缓存到预设的缓存器里。有益效果:本专利技术中虚拟机迁移过程中的数据流自适应系统以及数据流自适应调整方法通过在虚拟机迁移前的宿主机、虚拟机迁移后的宿主机之间建立数据通信系统,在虚拟机迁移的过程中让数据流自适应调整,能够使得虚拟机在迁移过程几乎不丢失数据包,且对数据包带来的延迟在几百毫秒以内,在某些应用场景,例如网络功能虚拟化(NetworkFunctionVirtualization,NFV)中可以带来极大的方便。附图说明图1是本专利技术中虚拟机迁移过程中的数据流自适应系统的结构示意图;图2是本专利技术中虚拟机迁移过程中的数据流自适应调整方法的流程图。具体实施方式下面结合实施例对本专利技术做进一步的详细说明,本实施列对本专利技术不构成限定。如图1所示,虚拟机迁移过程涉及到的物理装置有:虚拟机迁移前的宿主机(物理机)、虚拟机迁移后的宿主机、远程主机和交换机,两台宿主机连在同一个交换机上。远程主机通过交换机向虚拟机发送数据包,交换机将数据包转发给虚拟机所在的宿主机,宿主机再利用虚拟化技术发送数据包给虚拟机。在虚拟机“停机-重启”阶段,虚拟机会从一个宿主机完整地迁移到另一个宿主机上,此时,交换机在迁移过程还没有结束时仍然向迁移前的宿主机发送数据包。本专利技术中虚拟机迁移过程中的数据流自适应系统以及数据自适应方法主要应用于该阶段,本专利技术中虚拟机迁移过程中的数据流自适应系统包括:重定向数据包的发送端,简称发送端,位于迁移前的宿主机,用于在虚拟机停机时重定向后续到达虚拟机的数据包,包括拦截本应该发给虚拟机的数据包、改写数据包的地址信息、拆分数据包等,进而将收到的数据包转发到目标物理机的接收端,即重发数据包的接收端。重发数据包的接收端,简称接收端,位于迁移后的宿主机,一方面用于缓存虚拟机停机阶段从发送端发来的数据包,另一方面用于缓存迁移结束交换机改变数据流向后远程主机发给虚拟机的数据包,通过发送ARP(地址解析协议)等手段确保虚拟机启动以及网络组织结构调整完毕,并将以上缓存的两部分数据包按顺序发送给宿主机上新启动的虚拟机。本专利技术中数据包在发送端和接收端之间采用的转移机制为:发送端和接收端通过添加以太网帧头的方式相互进行通信,用通知-回应的方式标记转发数据流的结束。相应地,本专利技术中虚拟机迁移过程中的数据流自适应调整方法,采用基于XEN虚拟机平台的热迁移机制,通过修改这种热迁移机制在迁移过程中的不同阶段对后续到达的数据包进行处理,来达到转发数据包的目的,从而在虚拟机层面看来数据包不会丢失。热迁移是XEN下实现的一种迁移机制,从代码层面看其实就是几个主要函数的调用。函数调用前和函数调用后分别代表着迁移的开始和结束,在代码实现时,通过往这两个地方插入代码可以通知其他程序迁移的开始和结束。具体地,本专利技术中虚拟机迁移过程中的数据流自适应调整方法包括以下步骤:(1)迁移开始阶段的发送端和接收端初始化发送端模拟出一块虚拟网卡,为该网卡定义一个不同于网络环境内其他机器地址本文档来自技高网...
虚拟机热迁移过程中的数据流自适应调整系统及调整方法

【技术保护点】
一种虚拟机迁移过程中的数据流自适应调整系统,其特征在于,包括:重定向数据包的发送端,位于虚拟机迁移前的宿主机,用于在虚拟机停机时重定向后续到达虚拟机的数据包,进而将收到的数据包转发到重发数据包的接收端;重发数据包的接收端,位于虚拟机迁移后的宿主机,一方面用于缓存虚拟机停机阶段从发送端发来的数据包,另一方面用于缓存迁移结束交换机改变数据流向后远程主机发给虚拟机的数据包,并将缓存的数据包按顺序发送给宿主机上新启动的虚拟机。

【技术特征摘要】
1.一种虚拟机迁移过程中的数据流自适应调整系统,其特征在于,包括:重定向数据包的发送端,位于虚拟机迁移前的宿主机,用于在虚拟机停机时重定向后续到达虚拟机的数据包,进而将收到的数据包转发到重发数据包的接收端;重发数据包的接收端,位于虚拟机迁移后的宿主机,一方面用于缓存虚拟机停机阶段从发送端发来的数据包,另一方面用于缓存迁移结束交换机改变数据流向后远程主机发给虚拟机的数据包,并将缓存的数据包按顺序发送给宿主机上新启动的虚拟机。2.根据权利要求1所述的数据流自适应调整系统,其特征在于,所述发送端重定向后续到达虚拟机的数据包包括对远程主机发送给虚拟机的数据包进行拦截、改写数据包的地址信息、拆分数据包。3.一种权利要求1所述的虚拟机迁移过程中的数据流自适应调整系统所采用的数据流自适应调整方法,基于XEN虚拟机平台的热迁移机制,其特征在于,包括以下步骤:(1)在迁移开始阶段,发送端模拟出第一虚拟网卡,并通过广播数据包向网络环境内其他机器通知该网卡的位置及物理地址;接收端模拟出第二虚拟网卡,并通过广播数据包向网络环境内其他机器通知该网卡的位置及物理地址;所述第一虚拟网卡、第二虚拟网卡的物理地址均不同与网络环境内其他机器的物理地址;(2)发送端拦截远程主机发送给虚拟机的数据包,并对数据包进行重定向处理后得到重定向数据包发送给接收端,发送端重复这样的收包-发包动作直至接收到接收端发送来的通知数据包,向接收端发送回应数据包;(3)接收端接收发送端发送的重定向数据包并进行缓存,接收从远程主机直接发送的数据包并进行缓存;接收端重复这样的收包-缓存包动作,在迁移过程结束后,接收端向发送端发送通知数据包,待接收到发送端发来的回应数...

【专利技术属性】
技术研发人员:钱柱中
申请(专利权)人:南京大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1