一种虚拟机移动性的实现方法及系统的制作方法

文档序号:7762933阅读:202来源:国知局
专利名称:一种虚拟机移动性的实现方法及系统的制作方法
技术领域
本发明涉及二层网络,尤其涉及一种虚拟机移动性的实现方法及系统。
背景技术
目前的 IP 局域网络中,IPV4 采用 ARP(Address Resolution Protocol,地址解析协议),IPV6采用NDP(Neighbor Discovery Protocol,邻居发现协议)来获知二层网络的地址。两者在地址发现的机制上基本相同,都采用二层广播的方式来获知目的IP地址所对应的数据链路层地址。对于以太网,数据链路层地址对应于MAC (Media Access Control, 媒体接入控制)地址。每个主机都维护有独立缓存,并预设老化定时时间,发送IP报文时, 对于本机缓存中没有记录的目的IP地址,必须在局域网中广播一个ARP/NDP报文查询目的 IP地址所对应的数据链路层地址。当局域网内主机数目非常多时,比如大型数据中心,甚至是采用L2VPN(二层虚拟专用网)技术连接起来的跨地域的L2VPN,其主机数目可以达到数千台乃至数万台,虚拟化技术的应用使得这一情况更加恶化,利用虚拟化技术,一台物理机可以支持数十个虚拟主机,未来可以支持多达数百个虚拟主机,每个虚拟主机有自己独立的IP地址和MAC地址。虽然可以采用VLAN(虚拟局域网)划分的方式来进行广播风暴的隔离(VLAN包含基于端口的 VLAN和基于MAC的VLAN),但是由于虚拟化技术带来的虚拟机迁移技术要求主机本身、IP地址和MAC地址完全可浮动,导致基于端口的VLAN和基于MAC的VLAN均无法使用。在虚拟化技术中,很重要的一个功能是利用虚拟机迁移实现负载均衡和节能减排,应用场景如下1)在业务忙时,数据中心1负载过高,已经接近过载门限,但数据中心2 仍然处于轻载状态,虚拟机管理中心指示数据中心1中的若干台虚拟机迁移到数据中心2 中的物理服务器上,从而降低了数据中心1的负载。2、在业务闲时,将某些物理服务器上的所有虚拟机迁移到另一些轻载的物理服务器上,这些物理服务器可能在同一个数据中心内部,也有可能在另一个数据中心站点;迁移之后,将迁出虚拟机的物理服务器予以关闭电源,从而达到节能减排的功能。在现有技术体制下,虚拟机迁移由于需要保持操作系统的业务连接的现有状态, 迁移之后的IP和MAC地址保持不变,但是由于与迁移虚拟机通信的其它主机/虚拟机存在 MAC缓存,当虚拟机跨站点迁移后,报文转发关系实际上已经改变,这些MAC缓存将导致通信中断;二层交换机也需要重新进行MAC地址学习,如果在同一个站点内迁移到不同的交换机的端口下,MAC地址重新学习的过程也将导致通信中断。

发明内容
本发明要解决的技术问题是提供一种虚拟机移动性的实现方法及系统,解决虚拟机迁移造成的通信中断问题,实现对虚拟机移动性的支持。为解决上述技术问题,本发明的一种实现虚拟机移动性的方法,包括第一虚拟机在与第二虚拟机建立通信的过程中,通过虚拟交换机向地址解析服务器(ARQ订阅第二虚拟机的媒体接入控制(MAC)地址变化通知;第二虚拟机进行迁移后,迁移到的物理服务器中的虚拟交换机向ARS注册该第二虚拟机的IP地址与自身MAC地址的对应关系;ARS更新第二虚拟机的IP地址对应的MAC地址,并根据第一虚拟机的订阅,将第二虚拟机更新后的MAC地址通知给第一虚拟机。进一步地,在第一虚拟机与第二虚拟机建立通信的过程中,第一虚拟机在向ARS 查询第二虚拟机的IP地址对应的MAC地址的同时,通过虚拟交换机向ARS订阅第二虚拟机的MAC地址变化通知。进一步地,第一虚拟机在向ARS查询第二虚拟机的IP地址对应的MAC地址的同时,通过虚拟交换机向ARS订阅第二虚拟机的MAC地址变化通知的步骤中,采用一条请求消息向ARS查询第二虚拟机的IP地址对应的MAC地址和订阅第二虚拟机的MAC地址变化通知。进一步地,采用一条请求消息向ARS查询第二虚拟机的IP地址对应的MAC地址和订阅第二虚拟机的MAC地址变化通知包括第一虚拟机发送广播查询请求,该第一虚拟机所在的物理服务器中的虚拟交换机截获该广播查询请求,将广播查询请求转换为单播的查询&订阅请求,采用该单播的查询& 订阅请求从ARS查询第二虚拟机的IP地址对应的MAC地址并订阅第二虚拟机的MAC地址变化通知。进一步地,ARS根据第一虚拟机的订阅,将第二虚拟机更新后的MAC地址通知给第一虚拟机包括ARS更新第二虚拟机的IP地址对应的MAC地址后,将更新后的MAC地址通知给第一虚拟机所属的接入服务路由器(ASR);ASR在更新后的MAC地址为其下虚拟交换机的地址时,将该更新后的MAC地址通知给第一虚拟机所在物理服务器上的虚拟交换机。进一步地,该方法还包括第一虚拟机在订阅第二虚拟机的MAC地址变化通知后,向第二虚拟机发送报文;第一虚拟机所在物理服务器上的虚拟交换机收到报文后,将该报文的目的MAC地址修改为所接收到的第二虚拟机的更新后的MAC地址,通过二层交换机将该报文发送给第二虚拟机所在物理服务器上的虚拟交换机。进一步地,ARS根据第一虚拟机的订阅,将第二虚拟机更新后的MAC地址通知给第一虚拟机包括ARS更新第二虚拟机的IP地址对应的MAC地址后,将该第二虚拟机的更新后的 MAC地址和该第二虚拟机所属ASR的地址,通知给第一虚拟机所属的ASR ;第一虚拟机所属的ASR在更新后的MAC地址非其下虚拟交换机的地址时,保存更新后的MAC地址和第二虚拟机所属ASR的地址,将自身的地址作为更新后的MAC地址通知给第一虚拟机所在物理服务器上的虚拟交换机。进一步地,该方法还包括第一虚拟机在订阅第二虚拟机的MAC地址变化通知后,向第二虚拟机发送报文;第一虚拟机所在物理服务器上的虚拟交换机收到报文后,将该报文的目的MAC地址修改为所接收到的第一虚拟机所属的ASR的地址;第一虚拟机所属的ASR接收到报文后,将该报文的目的MAC地址修改为更新后的 MAC地址,并封装在隧道中,隧道报头的地址为第二虚拟机所属ASR的地址,发送给该第二虚拟机所属ASR。进一步地,该方法还包括第二虚拟机所属ASR收到报文后,解除隧道,将报文的源MAC地址修改为自身的 MAC地址,根据目的MAC地址将报文发送给第二虚拟机所在物理服务器上的虚拟交换机,该虚拟交换机根据报文中的目的IP地址查询第二虚拟机的MAC地址,将该报文的目的MAC地址修改为第二虚拟机的MAC地址,发送给第二虚拟机。进一步地,一种虚拟机移动性的实现系统,包括运营商网络和数据中心,数据中心中的物理服务器上安装有虚拟机,在运营商网络中设置有地址解析服务器(ARS),在物理服务器上还设置有虚拟交换机,其中虚拟交换机,用于在虚拟机与通信对端建立通信的过程中,向ARS订阅通信对端的媒体接入控制(MAC)地址变化通知;同时用于在虚拟机迁移入该虚拟交换机所在的物理服务器时,向ARS注册迁移入的虚拟机的IP地址与自身MAC地址的对应关系;ARS,用于更新迁移的虚拟机的IP地址对应的MAC地址,并根据虚拟机的订阅,将迁移的虚拟机更新后的MAC地址通知给订阅的虚拟机。进一步地,虚拟交换机在向ARS订阅通信对端的MAC地址变化通知时,接收虚拟机发送的广播查询请求,将广播查询请求转换为单播的查询&订阅请求,采用该单播的查询& 订阅请求从ARS查询第二虚拟机的IP地址对应的MAC地址并订阅第二虚拟机的MAC地址变化通知。进一步地,ARS在根据虚拟机的订阅,将迁移的虚拟机更新后的MAC地址通知给订阅的虚拟交换机时,将更新后的MAC地址通知给订阅的虚拟交换机机所属的接入服务路由器(ASR);ASR,用于在更新后的MAC地址为其下虚拟交换机的地址时,将该更新后的MAC地址通知给订阅的虚拟机所在物理服务器上的虚拟交换机。进一步地,虚拟机,还用于向通信对端发送报文;虚拟交换机在收到报文后,将该报文的目的MAC地址修改为所接收到的虚拟机的通信对端更新后的MAC地址,通过二层交换机将该报文发送给虚拟机的通信对端所在物理服务器上的虚拟交换机。进一步地,ARS在根据虚拟交换机的订阅,将迁移的虚拟机更新后的MAC地址通知给订阅的虚拟交换机时,将更新后的MAC地址通知给订阅的虚拟机所属的接入服务路由器 (ASR);ASR,用于在更新后的MAC地址非其下虚拟交换机的地址时,保存虚拟机的通信对端更新后的MAC地址和通信对端所属ASR的地址,将自身的地址作为更新后的MAC地址通知给虚拟机所在物理服务器上的虚拟交换机。进一步地,虚拟机,还用向第二虚拟机发送报文;虚拟交换机在收到报文后,将该报文的目的MAC地址修改为所接收到的ASR的地址;
7
ASR接收到报文后,将该报文的目的MAC地址修改为更新后的MAC地址,并封装在隧道中,隧道报头的地址为虚拟机的通信对端所属ASR的地址,发送给该虚拟机的通信对端所属ASR。利用本发明,可以在一个扩展的L2网络中支持虚拟机的移动性而无需中断上层应用的连接,使得虚拟机迁移的实用性大大增加。


图1是本实施方式的系统架构图;图2是本实施方式的在同一个数据中心内进行虚拟机迁移的流程图;图3是本实施方式的两个跨数据中心的虚拟机进行迁移的流程图。
具体实施例方式对于主机在获取目的IP地址对应的MAC地址的过程中,产生广播风暴的问题,可以通过ARP/NDP的改进来解决,将ARP/NDP广播方式的请求改为单播方式的解决方案,可以大大减少局域网内的ARP/NDP广播报文,从而提升L2网络的规模上限。参考图1,上述解决方案的系统中包含多个数据中心以及负责互连的运营商网络, 数据中心和运营商网络通过ASR(Access Service Router,接入服务路由器)连接,ASR将跨数据中心的二层报文封装在IP报文中传输,从而构成了一个扁平化的L2网络。每个数据中心中包含若干物理服务器和二层交换机,每个物理服务器上安装有虚拟机管理器,负责物理服务器上若干虚拟机的管理;ARS (Address Resolution Server,地址解析服务器), 负责接收二层地址的注册和查询。上述方案中,数据中心的每个物理服务器的虚拟机管理器中驻留一个虚拟交换机,虚拟交换机具有一个实际的MAC地址(可称为实MAC地址),所有虚拟机对外通信的虚拟MAC地址都被虚拟交换机替换为实MAC地址。这样方案的好处有两点1)对数据中心内部的交换而言,大大减少了可见的MAC 地址数量,从而减少了 MAC转发表的体积,减少了 MAC学习的频次。2)实MAC地址是与物理服务器绑定的,而物理服务器和交换机的连接关系是稳定的,实MAC地址在交换网络中的转发关系是预先建立好并且保持不变,因此利用实MAC地址进行通讯时,即使虚拟机迁移, 也不需要交换网络重新进行MAC地址的学习,这为虚拟机迁移提供了一个良好的基础;但是虚拟机迁移面临的问题更为复杂,此特性只是简化了实现,并不能完全支持虚拟机移动性。为了支持虚拟机的移动性,必须要在虚拟机迁移之后实时通知虚拟机的通信对端按照新的实MAC地址来转发报文。假定任何一个虚拟机(第一虚拟机)要和局域网内的其它虚拟机(第二虚拟机) 进行通信,本实施方式虚拟机迁移的流程,包括步骤一,第一虚拟机发出一查询第二虚拟机的IP地址对应的MAC地址的ARP/NDP 广播地址查询请求报文,虚拟交换机截获该报文,将其转化为一 ARP/NDP单播查询&订阅请求消息,发送给ASR,指示不仅要查询IP地址对应的MAC地址,而且还请求订阅MAC地址的变化通知;本步骤中虚拟机发出的ARP/NDP查询请求仍然是遵从现有协议的一个普通广播查询协议,虚拟交换机收到后触发的单播请求包含了查询和订阅两种语义。步骤二,ASR接收到上述请求后,将其转换为ASR和ARS之间的映射查询请求MAP_ Request,指示ARS返回IP地址对应的MAC地址并订阅MAC地址的变化通知;步骤三,ARS记录下虚拟交换机对IP地址的订阅关系,并查询数据库获得该IP地址目前注册的MAC地址,通过响应消息返回给ASR ;步骤四,ASR将响应转换为ARP单播响应发给第一虚拟机所属的虚拟交换机,该虚拟交换机将其转化为ARP/NDP广播查询请求的响应,该响应格式符合现有ARP/NDP协议;步骤五,在虚拟机管理器的控制下,第二虚拟机进行迁移,迁移完成后,第二虚拟机迁移到的物理服务器的虚拟机管理器通知对应的虚拟交换机(迁移到的虚拟交换机), 虚拟交换机发起一个新的地址注册请求,告知ARS第二虚拟机的IP地址对应的MAC地址已经改为本虚拟交换机对应的实MAC地址;步骤六,ARS收到新的地址注册请求后,检查数据库中存在的对该IP地址的MAC 地址变化的订阅记录,发现第一虚拟机所在虚拟交换机对该IP地址的订阅关系,发送一个 MAC地址变化通知消息给第一虚拟机所在的虚拟交换机,后者记录下第二虚拟机的IP地址与新MAC地址的对应关系;步骤七,第一虚拟机在第二虚拟机发生迁移后仍然向第二虚拟机发送IP报文,由于其无法感知第二虚拟机已经发生迁移,故报文的目的MAC地址仍然是迁移前第二虚拟机的MAC地址,虚拟交换机截获报文,将其目的MAC地址替换为通过地址变化通知消息获得的新的MAC地址,该报文被正确发送给迁移后的第二虚拟机所在的虚拟交换机,并进一步转交给第二虚拟机。步骤五中,第二虚拟机进行迁移时,在第二虚拟机迁移到的物理服务器与原物理服务器不在同一个数据中心时,其通信需要经过两个互联的ASR路由节点,针对此场景,在步骤六中,MAC地址变化通知消息经过第一虚拟机所在的ASR时,该ASR将第二虚拟机的 MAC地址改为该ASR的MAC地址,同时记录下第二虚拟机的实MAC地址以及其所属ASR的 IP地址;以使得在步骤七中第一虚拟机发出的报文经过该ASR,该ASR可以查找记录恢复第二虚拟机的新的实MAC地址,并封装在一个IP隧道报文中,隧道的目的地址是第二虚拟机迁移后所在的ASR的地址,当第二虚拟机迁移后所在的ASR收到报文后,解除隧道封装,将报文经由虚拟交换机发送给迁移后的第二虚拟机。在步骤一中,如果第一虚拟机所在虚拟交换机已经缓存了第二虚拟机新的MAC地址,且已建立订阅关系,其将直接响应第一虚拟机的广播MAC请求,以减少发送到ASR/ARS 的地址查询报文数量。下面将对上述虚拟机迁移的流程进行详细描述。图2示出了本实施方式的一种在同一个数据中心内进行虚拟机迁移的实施例,图中的虚拟机均属一个数据中心,归属一个ASR进行连接,VMll和vSwitchl同属一个物理服务器,vSwitchl具有实MAC地址MACl ;VM31和vSwitch3同属一个物理服务器,在VMM3的管理下,vSwitch3具有实MAC地址MAC3 ;vSwitch2和VMM31’同属一个物理服务器,VMM31, 在VMM2的管理下,的vSwitch2具有实MAC地址MAC2 ;实施例包括以下流程步骤201,虚拟机VMll打算和VM31建立通信,通过其它途径获得了 VM31的IP地址IP31,比如DNS (DomainName System,域名系统),判断IP31和自己属于同一个子网,但本地没有IP31的MAC地址,其发起一个ARP/NDP广播查询请求消息,请求IP31的MAC地址;本步骤中虚拟机发出的ARP/NDP查询请求仍然是遵从现有协议的一个普通广播查询协议,虚拟交换机收到后触发的单播请求包含了查询和订阅两种语义。步骤202,vSwitchl截获该广播查询请求消息,生成一个单播的ARP地址查询&订阅请求,该请求发给了归属的ASRl节点,指示查询IP31的MAC地址并订阅MAC地址变化通知;步骤203,ASRl收到所述请求后,发出一个Map_RegiSter请求给ARS,指示查询 IP31的MAC地址,并订阅IP31的MAC地址变化通知;步骤204,ARS查询本地数据库获得IP31的MAC地址,并记录下vSwitchl对IP31 的地址变化订阅关系;步骤205,ARS通过Map_Iteply消息通知ASRl,其请求的IP31对应的MAC地址;步骤206,ASRl收到Map_Iteply消息后,发送一个ARP单播地址响应消息给 vSwitchl,通知其IP31对应的MAC地址;步骤207,vSwitchl根据收到的响应,构造一个符合现有ARP/NDP协议的响应消息给VMl 1,告知其IP31对应的MAC地址;步骤208,VMl 1根据获得MAC地址和VM31建立通信;步骤209,VM31在VMM3的控制下和VMM2进行交互,将数据、程序迁移到VM31,,并保持IP、MAC地址仍然为IP31、MAC31 ;步骤210,VMM2通知vSwitch2进行切换;步骤211,vSwitch2发出一个单播的ARP注册请求,注册IP31和vSwitch2的实 MAC地址MAC2新的对应关系;步骤212,上述请求到达ASR1,ASRl将其转换成Map_Register请求,将IP31和 MAC2新的对应关系注册到ARS ;步骤213,ARS记录下新的IP31、MAC2对应关系,并查找本地数据库,得知vSwitchl 对IP31订阅MAC地址变化通知,发送一个Map_Notify消息给ASRl ;步骤214,ASRl根据收到的Map_Notify消息,生成一个ARP_Notify,将IP31对应的MAC地址已经改变为MAC2通知到vSwitchl ;步骤215,vSwitchl记录下IP31和MAC2的对应关系;步骤216,VMll在VM31迁移后发出IP报文,由于其无法感知VM31的迁移,并且其本地的MAC缓存仍然存在,故其发出的报文的目的MAC地址仍然为MAC3 ;步骤217,vSwitchl截获报文后,根据步骤315记录的IP31与MAC2的对应关系, 对目的MAC地址进行重写,改为MAC2 ;vSwitchl还按现有技术将源MAC改为本身的实MAC地址MAC2。步骤218,vSwitchl将修改后的报文发出,由于未增加新的MAC记录,该报文可以顺利通过二层交换网络到达vSwitch2。步骤219,vSwitch2收到报文后,将目的MAC地址替换为MAC31,送给虚拟机VM31, 中的操作系统,通信流程完成。图3示出了一种两个虚拟机跨数据中心进行迁移的实施例,图中物理服务器1、3同属数据中心1,物理服务器2属于数据中心2,两者分别归属ASRl和ASR2 ;VMl 1和 vSwitchl同属一个物理服务器,vSwitchl具有实MAC地址MACl ;VM31和vSwitch3同属一个机器,在VMM3的管理下,vSwitch3具有实MAC地址MAC3 ;vSwitch2和VMM31,同属一个物理服务器,在VMM2的管理下,vSwitch2具有实MAC地址MAC2 ;实施例包括以下流程步骤301 308,和实施例一中步骤201 208相同,为虚拟机VMll查询VM31的 MAC地址、建立通信的过程;步骤309 313,和实施例一中步骤209 213相同,为VM31到VM31,的迁移以及 vSwitch2发起新的地址对应关系的注册过程,并且ARS向vSwitchl下发其订阅的IP31的 MAC地址变化通知,其中,ARS将更新后的MAC地址和第二虚拟机当前所述ASR的地址通知给 ASRl ;步骤314,ASRl根据收到的Map_Notify消息,生成一个ARP_Notify,将IP31对应的MAC地址已经改变通知vSwitchl,此处为了保证跨站点的通讯经过ASRl,ARP_Notify中的IP31对应的MAC地址被ASR修改为ASRl的MAC地址MAC_ASR1 ;步骤315,vSwitchl记录下IP31和MAC_ASR1的对应关系;步骤316,VMll在VM31迁移后发出IP报文,由于其无法感知VM31的迁移,并且其本地的MAC缓存仍然存在,故其发出的报文目的MAC地址仍然为MAC3 ;步骤317,vSwitchl截获报文后,根据步骤315记录的IP31和MAC_ASR1的对应关系,对目标MAC地址进行重写,改为MAC_ASR1,并按现有技术将源MAC改为本身的实MAC地址 MAC2 ;步骤318,vSwitchl将修改后的报文发出,由于该报文的目标地址是ASRl的MAC 地址,该报文到达ASRl ;步骤319,ASRl收到上述报文后,查找本地数据库获得IP31对应的实MAC地址为 MAC2,并且归属于ASR2,则将收到报文的目的MAC地址修改为MAC2,并且封装在隧道中,隧道报头的地址为ASR2的地址,该隧道可以利用任何现有的隧道封装技术,比如IP in IP、 GRE隧道或者MPLS隧道等;步骤320,ASR2收到上述报文后,解封装隧道,取出原始报文;步骤321,ASR2将解封装后的报文的源MAC地址修改为自己的MAC地址MAC_ ASR2,以便后续报文可以经过自己进行中转,然后将报文根据目的MAC地址MAC2发送给 vSwitch2 ;步骤322,vSwitch2查找本地记录,将目标MAC地址修改为VM31,的虚拟MAC地址 MAC31,将报文送至VM31,的操作系统。请再次参考图1,本实施方式的实现虚拟机移动性的实现系统,包括运营商网络和数据中心,数据中心中的物理服务器上安装有虚拟机,在运营商网络中设置有地址解析服务器(ARS),在物理服务器上还设置有虚拟交换机,其中虚拟交换机,用于在虚拟机与通信对端建立通信的过程中,向ARS订阅通信对端的媒体接入控制(MAC)地址变化通知;同时用于在虚拟机迁移入该虚拟交换机所在的物理服务器时,向ARS注册迁移入的虚拟机的IP地址与自身MAC地址的对应关系。虚拟交换机还用于在向ARS订阅通信对端的MAC地址变化通知时,接收虚拟机发送的广播查询请求,将广播查询请求转换为单播的查询&订阅请求,采用该单播的查询&订阅请求从ARS查询第二虚拟机的IP地址对应的MAC地址并订阅第二虚拟机的MAC地址变化通知。虚拟交换机在收到虚拟机的报文后,将该报文的目的MAC地址修改为所接收到的虚拟机的通信对端更新后的MAC地址,通过二层交换机将该报文发送给虚拟机的通信对端所在物理服务器上的虚拟交换机。ARS,用于更新迁移的虚拟机的IP地址对应的MAC地址,并根据虚拟机的订阅,将迁移的虚拟机更新后的MAC地址通知给订阅的虚拟机。ARS在根据虚拟机的订阅,将迁移的虚拟机更新后的MAC地址通知给订阅的虚拟交换机时,将更新后的MAC地址通知给订阅的虚拟交换机机所属的接入服务路由器(ASR)。ARS在根据虚拟交换机的订阅,将迁移的虚拟机更新后的MAC地址通知给订阅的虚拟交换机时,将更新后的MAC地址通知给订阅的虚拟机所属的接入服务路由器(ASR)。ASR,用于在更新后的MAC地址为其下虚拟交换机的地址时,将该更新后的MAC地址通知给订阅的虚拟机所在物理服务器上的虚拟交换机。ASR,用于在更新后的MAC地址非其下虚拟交换机的地址时,保存虚拟机的通信对端更新后的MAC地址和通信对端所属ASR的地址,将自身的地址作为更新后的MAC地址通知给虚拟机所在物理服务器上的虚拟交换机。虚拟机用于向第二虚拟机发送报文。虚拟交换机在收到报文后,将该报文的目的MAC地址修改为所接收到的ASR的地址。ASR接收到报文后,将该报文的目的MAC地址修改为更新后的MAC地址,并封装在隧道中,隧道报头的地址为虚拟机的通信对端所属ASR的地址,发送给该虚拟机的通信对端所属ASR。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。当然,本发明还可有多种实施方式,在不背离本发明精神及其实质的情况,熟悉本领域的技术人员当可根据本发明做出各种相应的更改或变化,但凡在本发明的精神和原则之内所作的任何修改、等同替换、改进,均应包含在本发明的保护范围之内。
权利要求
1.一种实现虚拟机移动性的方法,其特征在于,包括第一虚拟机在与第二虚拟机建立通信的过程中,通过虚拟交换机向地址解析服务器 (ARS)订阅所述第二虚拟机的媒体接入控制(MAC)地址变化通知;所述第二虚拟机进行迁移后,迁移到的物理服务器中的虚拟交换机向所述ARS注册该第二虚拟机的IP地址与自身MAC地址的对应关系;所述ARS更新所述第二虚拟机的IP地址对应的MAC地址,并根据所述第一虚拟机的订阅,将所述第二虚拟机更新后的MAC地址通知给所述第一虚拟机。
2.如权利要求1所述的方法,其特征在于,在所述第一虚拟机与第二虚拟机建立通信的过程中,所述第一虚拟机在向所述ARS查询所述第二虚拟机的IP地址对应的MAC地址的同时,通过虚拟交换机向所述ARS订阅所述第二虚拟机的MAC地址变化通知。
3.如权利要求2所述的方法,其特征在于,所述第一虚拟机在向所述ARS查询所述第二虚拟机的IP地址对应的MAC地址的同时,通过虚拟交换机向所述ARS订阅所述第二虚拟机的MAC地址变化通知的步骤中,采用一条请求消息向所述ARS查询所述第二虚拟机的IP 地址对应的MAC地址和订阅所述第二虚拟机的MAC地址变化通知。
4.如权利要求3所述的方法,其特征在于,所述采用一条请求消息向所述ARS查询所述第二虚拟机的IP地址对应的MAC地址和订阅所述第二虚拟机的MAC地址变化通知包括所述第一虚拟机发送广播查询请求,该第一虚拟机所在的物理服务器中的虚拟交换机截获该广播查询请求,将所述广播查询请求转换为单播的查询&订阅请求,采用该单播的查询&订阅请求从所述ARS查询所述第二虚拟机的IP地址对应的MAC地址并订阅所述第二虚拟机的MAC地址变化通知。
5.如权利要求1所述的方法,其特征在于,所述ARS根据所述第一虚拟机的订阅,将所述第二虚拟机更新后的MAC地址通知给所述第一虚拟机包括所述ARS更新所述第二虚拟机的IP地址对应的MAC地址后,将更新后的MAC地址通知给所述第一虚拟机所属的接入服务路由器(ASR);所述ASR在所述更新后的MAC地址为其下虚拟交换机的地址时,将该更新后的MAC地址通知给所述第一虚拟机所在物理服务器上的虚拟交换机。
6.如权利要求5所述的方法,其特征在于,该方法还包括所述第一虚拟机在订阅所述第二虚拟机的MAC地址变化通知后,向所述第二虚拟机发送报文;所述第一虚拟机所在物理服务器上的虚拟交换机收到所述报文后,将该报文的目的 MAC地址修改为所接收到的所述第二虚拟机的更新后的MAC地址,通过二层交换机将该报文发送给第二虚拟机所在物理服务器上的虚拟交换机。
7.如权利要求1所述的方法,其特征在于,所述ARS根据所述第一虚拟机的订阅,将所述第二虚拟机更新后的MAC地址通知给所述第一虚拟机包括所述ARS更新所述第二虚拟机的IP地址对应的MAC地址后,将该第二虚拟机的更新后的MAC地址和该第二虚拟机所属ASR的地址,通知给所述第一虚拟机所属的ASR ;所述第一虚拟机所属的ASR在所述更新后的MAC地址非其下虚拟交换机的地址时,保存所述更新后的MAC地址和所述第二虚拟机所属ASR的地址,将自身的地址作为所述更新后的MAC地址通知给所述第一虚拟机所在物理服务器上的虚拟交换机。
8.如权利要求7所述的方法,其特征在于,该方法还包括所述第一虚拟机在订阅所述第二虚拟机的MAC地址变化通知后,向所述第二虚拟机发送报文;所述第一虚拟机所在物理服务器上的虚拟交换机收到所述报文后,将该报文的目的 MAC地址修改为所接收到的所述第一虚拟机所属的ASR的地址;所述第一虚拟机所属的ASR接收到所述报文后,将该报文的目的MAC地址修改为所述更新后的MAC地址,并封装在隧道中,隧道报头的地址为第二虚拟机所属ASR的地址,发送给该第二虚拟机所属ASR。
9.如权利要求8所述的方法,其特征在于,该方法还包括所述第二虚拟机所属ASR收到所述报文后,解除所述隧道,将报文的源MAC地址修改为自身的MAC地址,根据目的MAC地址将报文发送给第二虚拟机所在物理服务器上的虚拟交换机,该虚拟交换机根据报文中的目的IP地址查询所述第二虚拟机的MAC地址,将该报文的目的MAC地址修改为所述第二虚拟机的MAC地址,发送给所述第二虚拟机。
10.一种虚拟机移动性的实现系统,包括运营商网络和数据中心,所述数据中心中的物理服务器上安装有虚拟机,其特征在于,在所述运营商网络中设置有地址解析服务器 (ARS),在所述物理服务器上还设置有虚拟交换机,其中所述虚拟交换机,用于在虚拟机与通信对端建立通信的过程中,向所述ARS订阅所述通信对端的媒体接入控制(MAC)地址变化通知;同时用于在虚拟机迁移入该虚拟交换机所在的物理服务器时,向所述ARS注册迁移入的虚拟机的IP地址与自身MAC地址的对应关系;所述ARS,用于更新迁移的虚拟机的IP地址对应的MAC地址,并根据所述虚拟机的订阅,将所述迁移的虚拟机更新后的MAC地址通知给订阅的虚拟机。
11.如权利要求10所述的系统,其特征在于所述虚拟交换机在向所述ARS订阅所述通信对端的MAC地址变化通知时,接收所述虚拟机发送的广播查询请求,将所述广播查询请求转换为单播的查询&订阅请求,采用该单播的查询&订阅请求从所述ARS查询所述第二虚拟机的IP地址对应的MAC地址并订阅所述第二虚拟机的MAC地址变化通知。
12.如权利要求10所述的系统,其特征在于所述ARS在根据所述虚拟机的订阅,将所述迁移的虚拟机更新后的MAC地址通知给订阅的虚拟交换机时,将更新后的MAC地址通知给所述订阅的虚拟交换机机所属的接入服务路由器(ASR);所述ASR,用于在所述更新后的MAC地址为其下虚拟交换机的地址时,将该更新后的 MAC地址通知给所述订阅的虚拟机所在物理服务器上的虚拟交换机。
13.如权利要求12所述的系统,其特征在于所述虚拟机,还用于向所述通信对端发送报文;所述虚拟交换机在收到所述报文后,将该报文的目的MAC地址修改为所接收到的所述虚拟机的通信对端更新后的MAC地址,通过二层交换机将该报文发送给虚拟机的通信对端所在物理服务器上的虚拟交换机。
14.如权利要求10所述的系统,其特征在于所述ARS在根据所述虚拟交换机的订阅,将所述迁移的虚拟机更新后的MAC地址通知给订阅的虚拟交换机时,将更新后的MAC地址通知给所述订阅的虚拟机所属的接入服务路由器(ASR);所述ASR,用于在所述更新后的MAC地址非其下虚拟交换机的地址时,保存所述虚拟机的通信对端更新后的MAC地址和通信对端所属ASR的地址,将自身的地址作为所述更新后的MAC地址通知给所述虚拟机所在物理服务器上的虚拟交换机。
15.如权利要求14所述的系统,其特征在于所述虚拟机,还用向所述第二虚拟机发送报文;所述虚拟交换机在收到所述报文后,将该报文的目的MAC地址修改为所接收到的所述 ASR的地址;所述ASR接收到所述报文后,将该报文的目的MAC地址修改为所述更新后的MAC地址, 并封装在隧道中,隧道报头的地址为虚拟机的通信对端所属ASR的地址,发送给该虚拟机的通信对端所属ASR。
全文摘要
本发明公开了一种实现虚拟机移动性的方法及系统,包括第一虚拟机在与第二虚拟机建立通信的过程中,通过虚拟交换机向地址解析服务器(ARS)订阅第二虚拟机的媒体接入控制(MAC)地址变化通知;第二虚拟机进行迁移后,迁移到的物理服务器中的虚拟交换机向ARS注册该第二虚拟机的IP地址与自身MAC地址的对应关系;ARS更新第二虚拟机的IP地址对应的MAC地址,并根据第一虚拟机的订阅,将第二虚拟机更新后的MAC地址通知给第一虚拟机。本发明,可以在一个扩展的L2网络中支持虚拟机的移动性而无需中断上层应用的连接,使得虚拟机迁移的实用性大大增加。
文档编号H04L12/56GK102457583SQ20101051737
公开日2012年5月16日 申请日期2010年10月19日 优先权日2010年10月19日
发明者汪军 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1