专利名称:用于实现虚拟机在虚拟私有云内的迁移的方法和设备的利记博彩app
技术领域:
本发明一般涉及网络通信。更具体地,本发明涉及虚拟私有云中的虚拟机的迁移。
背景技术:
云计算的出现改变了用户终端的计算模式一将计算中心从客户端转移到网络侦牝极大地降低了对客户端的运行能力的要求。这样的计算架构使得瘦客户端成为可能,从而为客户端设备提供了更广的发展空间。此外,这样的计算架构也使得允许原本不具备大容量、高处理及计算速度的客户端设备使用更多的网络应用,尤其是那些要求高计算和强处理能力的应用。因此,云计算能够向客户端提供比任何现有技术都更多更新的、具有吸引力的服务。目前云计算与瘦客户端相结合的应用已经越来越流行,在未来将成为网络技术领域的热点之一。简单来说,云计算主要是通过虚拟化技术,将客户端设备上的计算工作转移到网络中的设备上,承接了这种计算工作的设备往往被形象地称为云中心,包括例如资源池、数据中心等。这样的云中心能够为客户端设备提供良好的安全性、灵活性以及可扩展性。可以理解,客户端会期望云中心能够提供越来越高的服务效率,从而提升服务质量、获得良好的服务体验。因此具体运行云中心计算任务的虚拟机VM(Virtual Machine)需要能够根据客户端最新的状态(例如在哪里、何时可能会使用云计算服务、将需要进行哪些云计算等等)动态地、自适应地迁移到最佳位置,并具有高灵活性。这不仅需要硬件和软件支持,同时还需要消除虚拟机的位置依赖性。也就是说,虚拟机应当能够在多个不同的或分布式云中心之间自由迁移。这样,运行在虚拟机上的基于云的应用对于客户端设备来说,就是在任何地点、任何时间都是可用的、可访问的,并且能够满足用户的位置和连接状态等具体情况的要求。可见,实现虚拟机迁移是提高云中心服务效率的主要途径之一。基于虚拟机迁移可以将若干个分布式的云中心整合起来(如整合计算资源、存储资源等),成为一个功能更强大的云中心。此外,实现虚拟机迁移还可以带来诸多优点,例如,通过迁移能够改善工作负载的分布,方便云中心的管理、改善整个系统性能、提高云中心的容错能力等等。最近,私有云或者说虚拟私有云(VPC, Virtual Private Cloud)正在成为云计算的发展方向之一。虚拟私有云可将共享的或公有云的一部分资源提供给用户使用。利用虚拟私有云,云服务可以通过VPN连接的方式与现有IP网络基础设施整合起来。目前亚马逊、Google等诸多企业都开发了这样的虚拟私有云。使用VPN的目的就是在多个虚拟私有云之间实现隔离。虚拟私有云中的虚拟机会被分配私有IP地址。当属于不同VPN但拥有相同私有地址的虚拟机同时跨越广域网迁移时,会在网络中产生地址冲突,导致PE无法区分具有相同私有地址的两个虚拟机。目前用来实现虚拟私有云中虚拟机跨越广域网进行迁移的方案是为了保证移动的虚拟机的IP地址在整个广域网络环境中是唯一的,即,避免不同VPN中的虚拟机的IP地址彼此冲突或交叠,为具有迁移需求的虚拟机分配公有IP地址。这样,当虚拟私有云中的虚拟机发生迁移时,运营商边缘路由器便将其私有IP地址映射到为其分配的公有IP地址,进而通过公有IP地址来指示目的地为该移动虚拟机的分组应该被转发到哪里。但是,随着具有迁移需求的虚拟机的增多,这样的迁移方案将消耗大量公有IP地址,其可扩展性和效率都比较弱。鉴于还需要较长的时间才能完成从IPv4到IPv6的转换,所以公有地址,特别是IPv4公有地址仍然是宝贵的网络资源。由上述可见,急需有效的虚拟机迁移方案,使得在不耗费或至少不耗费大量公有IP地址的情况下,实现虚拟机在基于MPLS VPN的虚拟私有云内的灵活迁移。
发明内容
为了解决或者至少缓解现有技术中的上述问题,本发明提供了一种用于实现虚拟机在基于MPLS VPN的虚拟私有云内的迁移的方法和设备,以及相应的计算机程序以及存储有计算机可读代码的计算机可读介质。根据本发明的第一方面,提供了一种用于实现虚拟机在虚拟私有云内迁移的方法,所述方法包括维护用于标识虚拟机的虚拟机二元标识符以及为该虚拟机提供服务的提供商边缘路由器之间的绑定信息;在接收到去往虚拟机的分组数据的情况下,基于对数据分组的接收确定目的虚拟机的二元标识符,并根据所维护的绑定信息确定与该二元标识符相关联的提供商边缘路由器;其中,所述分组数 据将被路由到所确定的提供商边缘路由器;虚拟机的二元标识符包括该虚拟机的私有IP地址以及能够标识该虚拟机所在的虚拟专用网的区分符。优选地,根据所确定的与二元标识符相关联的提供商边缘路由器,确定所述分组数据的标签交换路径。根据本发明的第二方面,提供了一种用于实现虚拟机在虚拟私有云内的迁移的方法,所述方法包括维护标识虚拟机的二元标识符以及为该虚拟机提供服务的提供商边缘路由器之间的绑定信息;在接收到关于所维护的绑定信息的更新或者新的绑定信息的情况下,更新所维护的绑定信息;在接收到查询绑定信息的消息情况下,如果所维护的绑定信息中有所查询的绑定信息,则作为响应,发送相应的绑定信息;如果所维护的绑定信息中没有所查询的绑定信息并且所述查询绑定信息的消息发送自提供商边缘路由器,则向其他路由映射设备查询该绑定信息,并将所获得的绑定信息发送给所述提供商边缘路由器;否则,向其他路由映射设备查询该绑定信息,并作为响应发送所获得的绑定信息,或者不做任何响应;其中,虚拟机的二元标识符包括该虚拟机的私有IP地址以及能够标识该虚拟机所在的虚拟专用网的区分符。根据本发明的第三方面,提供了一种设备,该设备包括用于实现上述方法以及本发明的实施例的任意方法的装置。根据本发明的第四方面,提供了一种用于实现虚拟机在虚拟私有云内的迁移的设备,所述设备包括收发单元,用于收发信息;数据库,用于维护标识虚拟机的虚拟机二元标识符以及为该虚拟机提供服务的提供商边缘路由器之间的绑定信息;绑定信息管理单元,在经由收发单元接收到去往虚拟机的分组数据的情况下,基于对数据分组的接收确定目的虚拟机的二元标识符,并根据所维护的绑定信息确定与该二元标识符相关联的提供商边缘路由器;其中,所述分组数据将被路由到所确定的提供商边缘路由器;虚拟机的二元标识符包括该虚拟机的私有IP地址以及能够标识该虚拟机所在的虚拟专用网的区分符。根据本发明的第五方面,提供了一种用于实现虚拟机在虚拟私有云内的迁移的设备,所述设备包括收发单元,用于收发信息;数据库,用于维护标识虚拟机的虚拟机二元标识符以及为该虚拟机提供服务的提供商边缘路由器之间的绑定信息;绑定信息管理单元,在经由收发单元接收到查询绑定信息的消息情况下,如果所维护的绑定信息中有所查询的绑定信息,则作为响应,经由所述收发单元发送相应的绑定信息;如果所维护的绑定信息中没有所查询的绑定信息并且所述查询绑定信息的消息发送自提供商边缘路由器,则经由所述收发单元向其他路由映射设备查询该绑定信息,并将所获得的绑定信息发送给所述提供商边缘路由器;否则,经由所述收发单元向其他路由映射设备查询该绑定信息,并作为响应发送所获得的绑定信息,或者不做任何响应;其中,虚拟机的二元标识符包括该虚拟机的私有IP地址以及能够标识该虚拟机所在的虚拟专用网的区分符。根据本发明的第六方面,前述方法以及根据本发明的实施例实现的任意方法都可以由计算机程序来实现。根据本发明的第七方面,提供了一种设备,其包括接口,用于接收和发送信息;存储器,其上存储有用于实现本发明的任意方法或设备的计算机可执行代码;处理器,所述处理器能够引起所述存储器上存储的计算机可执行代码被所述设备执行。根据本发明的第八方面,提供了一种计算机可读存储介质,其上存储有用于实现本发明的方法或设备的计算机可执行指令。根据本发明的方案,使用虚拟机在基于MPLS VPN的虚拟私有云中的私有IP地址就可以实现虚拟机在基于MPLS VPN的虚拟私有云中的迁移。使得当虚拟机发生迁移时,即,虚拟机成为移动虚拟机时,无需再为其单独分配公有IP地址。这样,只要需要,采用本发明的方案的网络环境中的任何一个虚拟机可以随时成为移动的虚拟机。从而,本发明实现了虚拟机在基于MPLS VPN的虚拟私有云中的迁移。对于虚拟私有云提供商来说,使用本发明的虚拟机迁移技术,可以更方便地将虚拟私有云服务与MPLS VPN集成,而无需为其相应的虚拟私有云服务或应用特别地构建MPLS网络 。而且,在本发明的优选实施例中,对于基于多协议(例如IPv4、IPv6等)的MPLSVPN的虚拟私有云中心,可以利用所提出的ICMP消息来承载本发明中的注册过程的消息,利用扩展BGP更新消息(Update message)来承载本发明中的有关绑定信息的更新、查询、通知等消息。这样,实现了对现有的网络运行环境、通信协议、通信设备的最小的改动,最小化对现有框架的影响。此外,在另一优选实施例中,在上述消息中引入了新的可选非传递属性作为对现有协议的扩展。这样,进一步实现了与现有网络架构的兼容性(不支持本发明的网络设备可以直接丢弃接收到的与本发明相关的信息)。
通过下面结合附图进行的详细描述,将会对本发明有进一步的理解,从而本发明的上述以及其他优点、所公开的示例性实施例的其它特性和优点对本领域技术人员将变得明显。然而,需要注意的是,无论是附图还是下文中的具体实例,均只是为了说明本发明的思路而做出的示例性描述,不应当被作为对本发明的任何方面的限制。本发明的保护范围由所附权利要求的内容及其等效方案来限定。在附图中,图1示意性示出用于实施本发明的方案的一种示例性网络架构;图2示意性示出根据本发明的一个实施例在PE处的处理过程。图3a示意性示出可以部署在PE路由器上用于实现本发明的一个实施例的设备的框图。图3b示意性示出用于实施本发明的设备的另一实施例的示意性框图。图4示出了用于实施本发明的方案的另一种示例性优选网络架构。图5示意性示出根据本发明的一个实施例在ARR处执行的处理过程。图6a示例性示出了根据本发明的一个实施例在ARR处用于实现本发明的方案的设备的框图。图6b示例性示出了根据本发明的另一个实施例在ARR处用于实现本发明的方案的设备的框图。图7示意性示出VM经过向PE注册从而能够与客户端设备进行通信的处理流程。图8示意性示出根据本发明的一个实施例VM在区域内部发生迁移的情况下客户端与VM之间的通信实例。图9示意性示出根据本发明的一个实施例VM在区域间发生迁移的情况下客户端与VM之间的通信实例。
具体实施例方式图1示例性示出用于实施本发明的方案的一种示例性网络架构。对于本领域技术人员来说,由图1可知,用于实施本发明的网络环境与现有技术中集成了虚拟私有云的MPLS VPN网络运行环境相同。也就是说,根据本发明的方案可以通过将实现本发明的方法、功能、设备直接附加到现有的网络中来实施本发明,无需对现有的网络框架做出改动。这也体现了本发明良好的兼容性。如图1所示, MPLS VPN网络包括提供商边缘路由器PE(Provider Edge),即,标签边缘路由器LER(LabeI Edge Router)和提供商P(Provider)路由器。VPC提供商站点网络A、B、C以及VPC服务预定网络包括用户边缘路由器CE (CE,Customer Edge)和普通的用户C(Customer)路由器。其中,PE路由器具有与CE的直接的层3连接,这里,CE是VPC提供商站点网络或VPC服务预定网络中的边缘路由器。而P路由器只与其他P路由器以及PE路由器通信,而不会与CE建立直接的网络连接。如本领域技术人员熟知的,C路由器均通过CE路由器与PE路由器建立连接,而CE路由器与外界的所有通信都通过PE来完成。具体地,当虚拟机VM或客户端需要与外界通信时,其通过相应的C路由器,经由CE路由器连接到PE (在这种情况下,也被称为入口 PE)上。然后,由PE负责对待传输的数据分组封装内层和外层标签,进而依据外层标签在P路由器之间传递,直到将数据传输到所确定的出口 PE路由器。于是,出口 PE路由器对标签进行解封装,并将数据分组转发给作为传输的目的地的客户端或VM。由上述可见,在该架构中,数据层面的处理机制与现有技术相同。即,分组被根据其转发等价类来附加标签作为前缀,并沿着标签交换路径(LSR)从一个PE传递到另一个PE。如下面所描述的,本发明的方案在控制层面作出了改进。为了支持VM在VPC内跨越MPLS网络的迁移,本发明以二元的方式来标记每一个VM,即,区分符和私有地址。这里,区分符用来标记VM所在的VPN,以区分不同的MPLS VPN,进而使得具有相同私有IP地址的VM能够彼此相区分。这里,区分符可以是任何形式的能够用来区分不同VPN的标识符,例如包括,但不限于标识VM所在的VPC和/或VPN的标识符。用来标识VPN的标识符例如是,能够全网唯一地标识特定VPN的路由区分符RD (RouteDi stingui sher)。可以理解,只要区分符能够对网络中的不同VPN进行标识,那么对于PE来说,就能够识别具有相同私有IP地址的VM。而且,在某些情况中,VPC往往只包括一个VPN。在这种情况下,可替代地,可以使用对VPC进行标识的标识符来区分网络中的不同VPN。即,使用VPC的标识符作为本发明中的区分符,也同样能够避免PE处的VM地址冲突问题。特别地,在使用VPC的标识符作为区分符来实施本发明的网络环境中,如果存在包含有多个VPN的VPC,则可以分别对该VPC内的VPN进行标记,并使用VPC的标识符和标记该VPC中的特定VPN的标识符两者作为本发明的区分符。这样,在后一种情况中,即便是位于一个VPC中两个不同的虚拟专用网中的虚拟机具有相同的私有地址,也可以通过区分符中的另一元素——VPN标识符来对同一个VPC的不同VPN中的虚拟机进行区分。具体地,例如,如果一个虚拟私有云中A包含多个虚拟专用网a、b、c等,则可以使用VPC和VPN两者来共同、唯一地标识VM所在的VPN,例如Aa、Ab, Ac等等,并将其作为虚拟机VM的标识符中的区分符。容易理解,除了利用现有的能够对不同的VPN加以区分的属性外,可以直接对网络中的VPN重新进行标识。 然后,以重新标识的标识符作为虚拟机VM的标识符中的区分符。结果是,网络中的VM都具有唯一的标识符,这为在不额外分配公有IP地址的情况下VM跨越MPLS网络而随意迁移提供了可能(如上文提到的)。在本发明中,虚拟机VM的这种二元标识符的使用主要是在PE路由器上实现。在本发明的优选实施例中,虚拟机VM的二元标识符中的区分符,例如,RD,是利用网络中的现有参数来区分VM所在的VPN。而且,在使用现有技术中的数据分组传输方式的情况下,PE就能够确定并利用这样的区分符来对VM加以区分。此外,本发明提出的用于VM的二元标识符无论对MPLS VPN网络中的P路由器,还是对VPC提供商站点或预订网络(例如网络中的CE、C路由器)来说,都是透明的。在上述优选实施例中,最大化地降低了实施本发明的复杂度,并且最小化了对VPC提供商站点的网络以及VPC服务预订网络的影响。在其他实施例中,如果按照现有的数据分组传输方式,PE不能获得这样的区分符,贝U可能需要VPC提供商站点或VPC服务预订网络中的设备(例如CE路由器)的配合。具体地,例如,由CE额外地将所需的区分符添加到发往PE的数据分组中,或通过现有的或新类型的消息直接发送给PE。关于在PE处与VM的二元标识符相关的操作,图2示意性示出根据本发明的一个实施例在PE处的处理过程。如图2所示,PE维护VM以及该VM的服务PE这样的绑定信息。也就是说,绑定信息体现了某个虚拟机VM与一个特定PE的映射关系。对于一条绑定信息,可以视为绑定信息中的二元标识符表示的虚拟机VM成功地注册到一个PE之后(这将在下文详细描述),与该二元标识符绑定的PE成为这一虚拟机的服务PE,即,该虚拟机逻辑上绑定到了该PE。下面的表I示例性示出PE路由器所维护的关于VM绑定信息的列表。这里,将虚拟机VM的二元标识符表示为VMID (Virtual Machine Identifier),并且将RD作为区分符。本文中给出的本发明的实施例多数以RD为区分符进行说明的,但是本领域技术人员应当理解,RD只是一种示意性的举例。如上文提到的,任何现有的、处于开发中的以及未来出现的或者在实施本发明的方案过程中单独定义的能够确定虚拟机VM归属于哪个虚拟专用网VPN的标识符,都可以作为本发明VM 二元标识符中的区分符。此外,如表I所示,以服务PE的IP地址来对服务PE进行标识。可以理解,采用其他的信息来标识不同的PE也是可行的,本发明在此不再熬述。
权利要求
1.一种用于实现虚拟机在虚拟私有云内的迁移的方法,所述方法包括 维护用于标识虚拟机的虚拟机二元标识符以及为该虚拟机提供服务的提供商边缘路由器之间的绑定信息; 在接收到去往虚拟机的分组数据的情况下,基于对数据分组的接收确定目的虚拟机的二元标识符,并根据所维护的绑定信息确定与该二元标识符相关联的提供商边缘路由器; 其中,所述分组数据将被路由到所确定的提供商边缘路由器;虚拟机的二元标识符包括该虚拟机的私有IP地址以及能够标识该虚拟机所在的虚拟专用网的区分符。
2.如权利要求1所述的方法,其中,如果所维护的信息中没有与所确定的二元标识符相关联的绑定信息,则向其他提供商边缘路由器、相应的路由映射器或经由相应的路由映射器向网络中的其他路由映射器中的一个发送绑定信息查询消息,以查询该绑定信息,并根据包含在接收到的绑定信息通知消息中的绑定信息,确定相关联的提供商边缘路由器。
3.如权利要求1或2所述的方法,其中,如果接收到来自虚拟机的注册消息,则基于对注册消息的接收确定该虚拟机的二元标识符,并将自己作为该虚拟机的服务提供商边缘路由器与所确定的二元标识符绑定,将所确定的新的绑定信息更新到所维护的绑定信息中,并向虚拟机发送注册通告消息以表明注册成功。
4.如权利要求3所述的方法,所述方法进一步包括在绑定信息更新消息中将所确定的新的绑定信息发送给其他提供商边缘路由器、相应的服务路由映射器、旧的服务提供商边缘路由器中的至少一个。
5.如前述任一权利要求所述的方法,所述方法进一步包括如果接收到来自其他提供商边缘路由器或相应的路由映射器的绑定信息更新消息,则将所接收的绑定信息更新到所维护的绑定信息中。
6.如前述任一权利要求所述的方法,所述方法进一步包括如果接收到来自其他提供商边缘路由器或相应的路由映射器的绑定信息查询消息,则如果所维护的信息中有所查询的绑定信息,则将所查询到的绑定信息包含在绑定信息通知消息中向回发送。
7.如前述任一权利要求所述的方法,其中,所述区分符是标识VM所在的虚拟私有云和/或虚拟专用网的标识符,优选地是路由区分符;和/或所述注册消息和注册通告消息是ICMP消息,所述绑定信息查询消息、绑定信息通告消息、绑定信息更新消息是扩展的MP BGP更新消息。
8.如前述任一权利要求所述的方法,如果接收到来自其他提供商边缘路由器或路由映射器的绑定信息更新消息,并且该消息指示此前绑定到该提供上边缘路由器的虚拟机迁移到了新的另外的提供商边缘路由器,则保留该虚拟机的迁移信息,并在接收到去往该虚拟机的数据分组的情况下,将接收到的数据分组转发给新的另外的提供商边缘路由器,直到经过预定的时间段或接收到通知数据分组不再会到达该提供上边缘路由器为止。
9.一种用于实现虚拟机在虚拟私有云内的迁移的设备,所述设备包括 收发单元,用于收发信息; 数据库,用于维护标识虚拟机的虚拟机二元标识符以及为该虚拟机提供服务的提供商边缘路由器之间的绑定信息; 绑定信息管理单元,在经由收发单元接收到去往虚拟机的分组数据的情况下,基于对数据分组的接收确定目的虚拟机的二元标识符,并根据所维护的绑定信息确定与该二元标识符相关联的提供商边缘路由器; 其中,所述分组数据将被路由到所确定的提供商边缘路由器;虚拟机的二元标识符包括该虚拟机的私有IP地址以及能够标识该虚拟机所在的虚拟专用网的区分符。
10.一种用于实现虚拟机在虚拟私有云内的迁移的方法,所述方法包括 维护标识虚拟机的二元标识符以及为该虚拟机提供服务的提供商边缘路由器之间的绑定信息; 在接收到关于所维护的绑定信息的更新或者新的绑定信息的情况下,更新所维护的绑定信息; 在接收到查询绑定信息的消息情况下,如果所维护的绑定信息中有所查询的绑定信息,则作为响应,发送相应的绑定信息;如果所维护的绑定信息中没有所查询的绑定信息并且所述查询绑定信息的消息发送自提供商边缘路由器,则向其他路由映射设备查询该绑定信息,并将所获得的绑定信息发送给所述提供商边缘路由器;否则,向其他路由映射设备查询该绑定信息,并作为响应发送所获得的绑定信息,或者不做任何响应; 其中,虚拟机的二元标识符包括该虚拟机的私有IP地址以及能够标识该虚拟机所在的虚拟专用网的区分符。
11.如权利要求10所述的方法,其中,所述区分符是标识VM所在的虚拟私有云和/或虚拟专用网的标识符,优选地是路由区分符。
12.一种用于实现虚拟机在虚拟私有云内的迁移的设备,所述设备包括 收发单元,用于收发信息; 数据库,用于维护标识虚拟机的虚拟机二元标识符以及为该虚拟机提供服务的提供商边缘路由器之间的绑定信息; 绑定信息管理单元,在经由收发单元接收到查询绑定信息的消息情况下,如果所维护的绑定信息中有所查询的绑定信息,则作为响应,经由所述收发单元发送相应的绑定信息;如果所维护的绑定信息中没有所查询的绑定信息并且所述查询绑定信息的消息发送自提供商边缘路由器,则经由所述收发单元向其他路由映射设备查询该绑定信息,并将所获得的绑定信息发送给所述提供商边缘路由器;否则,经由所述收发单元向其他路由映射设备查询该绑定信息,并作为响应发送所获得的绑定信息,或者不做任何响应; 其中,虚拟机的二元标识符包括该虚拟机的私有IP地址以及能够标识该虚拟机所在的虚拟专用网的区分符。
13.一种用于实现虚拟机在虚拟私有云内的迁移的设备,包括用于执行如权利要求1至8、10中任一权利要求所述的步骤。
全文摘要
本发明提供了一种用于实现虚拟机在虚拟私有云内的迁移的方法和设备。其中,所述方法包括维护用于标识虚拟机的虚拟机二元标识符以及为该虚拟机提供服务的提供商边缘路由器之间的绑定信息;在接收到去往虚拟机的分组数据的情况下,基于所接收到的数据分组确定目的虚拟机的二元标识符,并根据所维护的绑定信息确定与该二元标识符相关联的提供商边缘路由器;其中,所述分组数据将被路由到所确定的提供商边缘路由器;虚拟机的二元标识符包括该虚拟机的私有IP地址以及能够标识该虚拟机所在的虚拟专用网的区分符。
文档编号H04L12/46GK103036919SQ20111029927
公开日2013年4月10日 申请日期2011年9月30日 优先权日2011年9月30日
发明者梁铮, 宾梵翔, 温海波, 郑军 申请人:上海贝尔股份有限公司