用于虚拟机的迁移的互连数据中心的制作方法

文档序号:7791179阅读:170来源:国知局
用于虚拟机的迁移的互连数据中心的制作方法
【专利摘要】本发明公开涉及用于虚拟机的迁移的互连数据中心。提供有利于虚拟机跨数据中心的迁移的方法和配置。指定要从第一数据中心迁移到第二数据中心的虚拟机,虚拟机包含真实标识符。向虚拟机分配伪标识符,并在第一数据中心的控制器处将伪标识符映射到真实标识符。对于路由任务,用伪标识符替代数据包中的真实标识符。保持第一数据中心的控制器与第二数据中心的控制器之间的通信,并使控制器同步以更新虚拟机的正确位置。将虚拟机从第一数据中心迁移到第二数据中心。
【专利说明】用于虚拟机的迁移的互连数据中心

【背景技术】
[0001]当今,许多企业在虚拟机(VM)上运行应用。实时和离线的VM可移动性均可提供极大的灵活性,同时降低营运支出成本。然而,由于与跨子网实时和离线迁移相关的复杂性,因此,VM的实时和离线迁移均仍然一般限于局部网络内。这些复杂性主要来自各种层3路由协议使用的分层寻址。对于跨数据中心VM可移动性,虚拟化厂商通常要求,VM迁移的新数据中心的网络配置必须与旧数据中心类似。这严重限制了跨数据中心网络的VM迁移的广泛使用。
[0002]对于离线迁移,可通过重新配置迁移VM的IP地址克服一些限制。但是,由于这些IP地址被嵌入这些VM内的各种配置文件内,因此即使这种工作也是不平常和耗时的。


【发明内容】

[0003]概括而言,本发明的一个方面提供一种方法,该方法包括:指定要从第一数据中心迁移到第二数据中心的虚拟机,所述虚拟机包含真实标识符;向所述虚拟机分配伪标识符;在所述第一数据中心的控制器处将所述伪标识符映射到所述真实标识符;对于路由任务,用所述伪标识符替代数据包中的真实标识符;保持所述第一数据中心的控制器与所述第二数据中心的控制器之间的通信,并使所述控制器同步以更新所述虚拟机的正确位置;和将所述虚拟机从所述第一数据中心迁移到所述第二数据中心。
[0004]本发明的另一方面提供一种设备,包括:至少一个处理器;和包括能够被所述至少一个处理器执行的计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包含:被配置为指定要从第一数据中心迁移到第二数据中心的虚拟机的计算机可读程序代码,所述虚拟机包含真实标识符;
[0005]被配置为向所述虚拟机分配伪标识符的计算机可读程序代码;
[0006]被配置为在所述第一数据中心的控制器处将所述伪标识符映射到所述真实标识符的计算机可读程序代码;
[0007]被配置为对于路由任务,用所述伪标识符替代数据包中的真实标识符的计算机可读程序代码;被配置为保持所述第一数据中心的控制器与所述第二数据中心的控制器之间的通信,并使所述控制器同步以更新所述虚拟机的正确位置的计算机可读程序代码;和被配置为将所述虚拟机从所述第一数据中心迁移到所述第二数据中心的计算机可读程序代码。
[0008]本发明的附加方面提供一种计算机程序产品,该计算机程序产品包括:包括计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包含:被配置为指定要从第一数据中心迁移到第二数据中心的虚拟机的计算机可读程序代码,所述虚拟机包含真实标识符;被配置为向所述虚拟机分配伪标识符的计算机可读程序代码;被配置为在所述第一数据中心的控制器处将所述伪标识符映射到所述真实标识符的计算机可读程序代码;被配置为对于路由任务,用所述伪标识符替代数据包中的真实标识符的计算机可读程序代码;被配置为保持所述第一数据中心的控制器与所述第二数据中心的控制器之间的通信,并使所述控制器同步以更新所述虚拟机的正确位置的计算机可读程序代码;和被配置为将所述虚拟机从所述第一数据中心迁移到所述第二数据中心的计算机可读程序代码。
[0009]为了更好地理解本发明的示例性实施例及其其它和进一步的特征和优点,结合附图参照以下的描述,并且,在所附的权利要求中指出本发明的要求权利的实施例的范围。

【专利附图】

【附图说明】
[0010]图1示意性地示出系统架构。
[0011]图2阐述更一般地用于促进虚拟机迁移的处理。
[0012]图3示出计算机系统。

【具体实施方式】
[0013]很容易理解,除了描述的示例性实施例以外,可通过各种各样不同的配置布置和设计这里在附图中一般描述和示出的本发明的实施例的各部件。因此,在附图中代表的本发明的实施例的以下的更详细的描述意图不在于限制要求权利的本发明的实施例的范围,而是仅代表本发明的示例性实施例。
[0014]在本说明书中提到的“一个实施例”或“实施例”(等)意味着关于实施例描述的特定的特征、结构或特性包含于本发明的至少一个实施例中。因此,在本说明书的各处出现短语“在一个实施例中”或“在实施例中”等未必均指的是同一实施例。
[0015]并且,可在至少一个实施例中以任何适当的方式组合描述的特征、结构或特性。在以下的描述中,提供大量的特定的细节,以使得能够彻底地理解本发明的实施例。但是,本领域技术人员可以认识到,可在没有特定细节中的至少一个的情况下或者通过其它的方法、部件、材料等实施本发明的各种实施例。在其它的实例中,为了避免混淆本发明的各个方面,没有详细地表示或描述公知的结构、材料或动作。
[0016]描述现在转到附图。参照附图,将最好地理解本发明的示出的实施例。以下的描述仅是例子,并且简单地示出这里要求权利的本发明的某些选择的示例性实施例。
[0017]应当注意,图中的流程图和框图示出根据本发明的各种实施例的系统、装置、方法和计算机程序产品的可能的实现的架构、功能和动作。关于这一点,流程图或框图中的各块可代表包含用于实现规定的逻辑功能的一个或更多个可执行指令的代码的模块、段或部分。还应注意,在一些替代性的实现中,在块中注明的功能可以按图示的次序以外的次序发生。例如,连续表示的两个块事实上可基本上被同时执行,或者,根据包括的功能,有时可以按相反的次序执行块。还应注意,可通过执行特定功能或作用的基于特殊用途硬件的系统或者特殊用途硬件和计算机指令的组合,实现框图和/或流程图的各块和框图和/或流程图的块的组合。
[0018]公开现在转到图1。应当理解,可在基本上任何适当的计算机系统或一组计算机系统上或者根据上述系统实施这里广泛地示出的处理、配置和产品,这些计算机系统作为解释性和非限制性的例子可包括诸如图2中的12'所示的系统或服务器。根据示例性实施例,可通过诸如分别在图2中的16'和28'上指示的那些的处理单元(一个或多个)或系统存储器,执行或利用参照图1讨论的即使不是全部也是大多数的处理步骤、部件和输出,不管是在服务器计算机、客户机计算机、分布式网络中的节点计算机上还是在它们的任意组合上。
[0019]根据本发明的至少一个实施例,这里广泛地设想用于提供网络构造的配置,该网络构造跨多个数据中心提供层无关和无缝实时和离线VM可移动性。在这样做时,尤其是在面对使得VM保留它们的初始层3身份(B卩,它们的IP地址)的问题时,解决和克服几种技术挑战。
[0020]一般地,已经认识到,VM当从一个网络迁移到另一个时应保留它们的初始层3网络地址(即,IP地址)。对于实时迁移,对于确保正在进行的TCP(传送控制协议)连接不破坏且保持无缝连接,保留IP地址是十分重要的。在离线迁移的情况下,保留IP地址是十分重要的,原因是,多层次应用通过使用这些IP地址相互连接,并且,如果IP地址被修改,则它们的连接会被破坏。对于迁移的VM手动或自动重新配置IP地址是不平常的且是费时的,原因是这些IP地址被嵌入这些VM内的各种配置文件内。但是,由于迁移的VM的IP地址范围会与这些VM迁移到的新数据中心网络的不同(不同的子网或不同的类),因此保留初始IP地址具有挑战性。这在网络层3上的数据包的后迁移路由中带来问题,原因是层3路由协议(诸如OSPF或运行最短路径优先)使用分层寻址,在分层寻址中,基于最长前缀(子网ID)匹配来匹配地址。跨层3边界的迁移破坏这种层次。作为结果,IP地址不再能用于路由数据包,因为任何IP地址可以驻留在跨多个数据中心的任何地方,从而寻址的替代形式需要被用于路由层3上的数据包。
[0021]另外应当认识到,在特定VM在同一数据中心外面移动时,给定数据中心上的各种层3防火墙会阻挡来自该特定VM的流量。为了避免这一点,希望在不需要广播和发现的层2语义的情况下在层2上处理跨数据中心的通信。换句话说,跨数据中心流量应以与层3路由类似的方式在层2上被“路由”。
[0022]并且,应当认识到,一般从用于目的地(如果目的地处于同一网络中)或用于缺省网关或第一跳路由器(如果目的地处于不同的网络上)的主机产生ARP (地址解析协议)请求。(这里,术语“主机”和“VM”或“虚拟机”可被视为可互换)。但是,网络ID的确定基于子网掩码和虚拟机的当前IP地址。当VM跨子网迁移时,与其连接的缺省网关或第一跳路由器将具有与在其网络配置设定中规定的IP地址完全不同的IP地址。
[0023]并且,关于“南北”流量,或者在与外部客户机的通信中,可以认识到,由于存在多个子网(和路由器)或者由于与数据中心内的VM直接通信(称为南北通信)的外部客户机,因此往(来)于迁移的VM的流量必须横穿数据中心内的层3边界。这是由上述的层3路由协议使用的分层寻址导致的问题。
[0024]另外,可以认识到,实时虚拟机可移动性一般需要源和目标物理机处于同一层2广播域中。需要单个广播域,使得VM正迁移的目标管理程序(或虚拟机监视器)可通过免费ARP(GARP)或反向ARP(RARP)消息宣布VM的新位置(VMware —般使用RARP消息)。层3边界或不同的子网破坏广播域(RARP和GARP消息不跨层3边界行进)。希望存在保持VM的当前位置并且在迁移时定期更新它的新机制。并且,新机制应能够将关于位置的查询重定向到自身且能够在需要时向所有网络要素宣布新位置。希望作为这种状态的结果产生的广播流量应最小,因为它可拥塞网络。
[0025]图1示意性地示出根据本发明的至少一个实施例的系统架构。示出与因特网
(100)通信的两个数据中心102a/b ;出于进一步参照的目的,它们也可分别称为DC O和DCI。各数据中心102a/b分别包含通过相应的集线器106a/b与数据中心网络中的所有路由器和交换机连接的网络控制器104a/b。各网络控制器104a/b形成其数据中心网络的集中控制平面,并且具有在所有路由器和交换机上安装规则的能力,根据这些规则,到来的数据包可被修改或者被路由。还示出这里理解的层2和层3 (也可称为L2和L3)。各数据中心102a/b分别包含L3核芯路由器108a/b、L3访问路由器110a/b和L2核芯交换机112a/b。各数据中心102a/b还分别包含两个纵槽(pod)114a/116a和114b/116b,并且,在各数据中心102a/b内,可进一步分别称为Pod O和Pod I。如图所不,各pod 114a/b和116a/b包含L2总计交换机118a/b和ToR(架顶)交换机120a/b。各ToR交换机120a/b可标有O或I。虚拟机122a/b与各ToR交换机120a/b相关,并且可在这里进一步标为O~15 (出于参照的目的)。
[0026]根据本发明的至少一个实施例,各VM 122a/b被分配伪MAC(媒体访问控制地址)或PMAC以及伪IP地址(PIP)。PMAC和PIP均是位置标识符,并且具有嵌入其中的网络拓扑信息。虽然PIP帮助确保到迁移的VM的跨层3边界的所有流量均可被无缝路由,但PMAC帮助确保可在层2上保持跨用于东西流量(即,源自一个数据中心到另一个的流量)的数据中心的连接性(以避免防火墙重新配置问题),并且,也可通过使用PMAC的最长前缀匹配“路由”层2上的流量(这又帮助确保在各层2交换机上需要的规则的数量保持较少)。
[0027]根据本发明的至少一个实施例,控制器104a/b向各主机或虚拟机122a/b分配以下形式的 48 位伪 MAC (PMAC):dcid.pod.posit1n, port, vmid,这里,dcid (8 位)是 DC 标识符,pod(16位)是与ToR交换机(120/b)驻留的pod(114a/b或116a/b)有关的pod标识符,posit1n (8位)是ToR交换机在pod内的位置的标识符,port (8位)是与物理主机直接连接的ToR交换机的端口号,而vmid (8位)是特定主机上的VM标识符。32位PIP嵌入位置如下:dcid.subnetid.hostid ;这里,dcid (8 位)是 DC 标识符,而 subnet id hostid可占据使用无阶级的互联网域间路由(Classless Internet Domain Routing, CI DR)所需要的剩余的24个位。
[0028]根据本发明的至少一个实施例,层3路由器或网关对于所有的它们的接口(直接与因特网连接、除了 PIP以外的被分配外部IP的核芯路由器108a/b)也被分配PMAC以及PIP0这些PMAC和PIP保持固定,而分配给主机或(VM)的PMAC和PIP基于它们的当前的位置(和任何迁移)继续改变。在数据中心102/ab内,数据包通过使用PMAC在层2上被转送,直到每一个需要跨层3边界,在该点上,它通过使用PIP被路由,并且可重新最终通过使用PMAC被传输到目的地。大多数的PMAC和PIP分配在ARP解析中发生。
[0029]根据本发明的至少一个实施例,ARP请求以及目的地是其它数据中心(由PMAC表示)的其它数据包路由到特定的封装交换机(在层2上),这些封装交换机将数据包隧穿到目的地数据中心(DC),在这里,类似的解封装交换机将其解封装并且基于PMAC路由。在层2上隧穿数据包帮助确保给定数据中心102a/b上的各种层3防火墙不需要重新配置以允许来自特定VM的流量。
[0030]根据本发明的至少一个实施例,一旦层2交换机或层3路由器加入网络,控制器104a/b就得到通知并且又确定是否交换机是入口交换机(即,ToR),并且,如果它是,则安装规则以将所有ARP请求重新引向控制器104a/b。(ARP请求可例如具有“Who has
10.0.0.1 ? ”的形式。)基于层2协议类型的单个规则(对于ARP为0x806)被安装于所有架顶(TOR)交换机120a/b上;这可被称为规则R1。注意,从用于目的地(如果目的地处于同一网络中)或用于缺省网关或第一跳路由器(如果目的地处于不同的网络上)的主机产生ARP请求,并且网络ID的确定基于配置的子网掩码和VM 122a/b的当前IP地址。对于同一子网ARP查询,控制器可很容易地响应以相应的PMAC,原因是控制器保持将其DC内的所有主机的真实IP和实际MAC(AMAC)映射到它们的PIP和PMAC的映射表。控制器可静止地从文件读取这些映射或者动态地通过使用诸如位置发现协议(LDP)的协议掌握它们(例如,参见 R.Mysore 等人,“PortLand:A Scalable Fault-Tolerant Layer 2Data CenterNetwork Fabric,”在 ACM SIGCOMM, August 2009)。控制器 104a/b 在这里也获知其它 DC 中的控制器的标识符(真实IP、PIP、AMAC和PMAC)。如果控制器104a/b确定特定的ARP请求针对没有在其映射表中提到的主机(或VM),那么它向所有其它的控制器播放ARP请求。只有在其映射表中具有真实IP的相应的条目的控制器才用PMAC响应第一控制器。
[0031]根据本发明的至少一个实施例,第一控制器(104a或104b)然后在其表格中高速缓存PMAC条目(连同IP和PIP),并且将其标记为AMAC的“N0MAC”,从而指示这是用于VM的条目,即,处于远程数据中心中。同时,远程控制器也在与目的地直接连接的目的地ToR120a/b上安装规则,以用实际MAC(AMAC)替代PMAC(该规则也可被称为R2)。由于ToR120a/b通常与不多于40个的主机连接,因此这导致在各ToR 120a/b上最多有40个规则(每个用于每个主机122a/b)。控制器还在入口(第一跳)ToR 120a/b上安装规则,以用伪IP(PIP)上替代真实IP,并在出口(最后一跳)ToR 120a/b上安装规则,以用所有直接连接的主机122a/b的真实IP替代PIP (这些规则可分别被称为R3和R4)。这可在各入口 ToR120a/b上产生大量的类型R3的规则,原因是,在理论上,主机可与网络中的任何其它主机交谈,并且这可潜在地导致与网络中的主机或VM(122a/b) —样多的规则。但是,这在实际上是不可能的,并且可很容易得到足够的时间使旧规则到期且使新规则被安装。
[0032]根据本发明的至少一个实施例,如果控制器102a/b基于其主机映射表(或者通过向其它数据中心中的控制器广播ARP请求)确定ARP请求针对缺省网关(且不针对目的地主机),那么它用特殊的MAC地址(例如,“00:00:00:00:00:00”)回应。然后,当具有该特殊MAC地址的第一 IP数据包到达讨论中的ToR(120a/b)时,它被重新引向控制器104a/b (原因是不存在对特殊MAC安装的规则),并且控制器104a/b在ToR 120a/b上安装规则,以用特殊的MAC和给定IP匹配数据包,并且用相应的目的地PMAC (对于给定的IP)替代特殊MAC,以及用PIP替代真实IP (该规则可被称为R5)。这确保到该目的地地址(具有不同子网的IP地址)的随后的数据包现在包含正确的PMAC,并且数据包可基于该PMAC在层2中被转送。
[0033]根据本发明的至少一个实施例,作为解释性和非限制性的例子,数据包可能不能在不横穿访问路由器110a/b (即层3边界)的情况下被传输到目的地PMAC,一旦访问路由器110a/b从层2核芯交换机112a/b接收数据包,路由现在就可基于包含于数据包中的PIP发生。如果路由器确定110a/b数据包用于外部数据中心,那么它断开层3路由并直接向相应的封装交换机发送数据包(基于基于PIP或PMAC的预安装静止规则)。在这种情况下,基本上任何层2核芯交换机(112a/b)可用作封装交换机,并且,绕过层3的路由由图1中的虚线连接箭头表示。
[0034]根据本发明的至少一个实施例,关于南北流量,应当注意,与外部客户机的真实IP的通信是唯一的并且可能是公众可见的;外部客户机(在数据中心外面)通过使用真实IP与VM 122a/b通信。因而,这里核芯路由器108a/b将用真实IP接收数据包,由于不存在安装于核芯路由器108a/b上的规则,因此它将其重新引向控制器104a/b以找出PIP。控制器104然后用正确的IP和PMAC回应(在在其自身的映射中发现它之后或者在咨询其它的控制器之后)并且还安装规则以用PIP替代给定的真实IP,并用PMAC替代AMAC(该规则可被称为R6)。如果它不是直接连接的机器,那么,基于PIP,如果目的地处于另一 DC 102a/b中,则核芯路由器108a/b路由到DC 102a/b内的适当的访问路由器110a/b或封装交换机(可以是以上讨论的层2核芯交换机112a/b)。如果它是直接连接的机器,那么路由然后基于PMAC前进。
[0035]根据本发明的至少一个实施例,一旦VM 122a/b迁移到目标主机,目标主机上的管理程序(或虚拟机监视器)就通过送出广播免费ARP (GARP)或反向ARP (RARP)消息宣布VM的新位置。该RARP或GARP消息被重新引向控制器104a/b (通过用于重定向更早地安装的所有ARP消息的规则Rl)。控制器104a/b在接收RARP或GARP时执行四个步骤如下。首先,它检查是否迁移的机器已在其自身的数据中心102a/b内迁移。如果它是内部数据中心迁移,那么它前进到下一步骤,否则它向所有其它的控制器发送RARP/GARP广播,并且定位VM 122a/b的控制器104a/b更早地用包含旧的PMAC、AMAC和真实IP的RARP响应回应。在下一步骤中,控制器104a/b然后向VM122a/b分配新的PMAC和PIP,并且用真实IP、新的PIP、AMAC和新的PMAC在其映射表中添加条目。如果它已具有用于IP的条目,那么它只通过用AMAC替代NOMAC并用新PMAC和新PIP替代旧PMAC和旧PIP进行更新。由此,控制器104a/b在VM 122a/b的直接连接的ToR交换机120a/b上安装新规则(R2和R4)以对于任何到来的数据包用AMAC替代PMAC,并用真实IP替代PIP。它还用更新的PMAC和PIP更新任何其它的规则(类型R3或R5)。最后,控制器104a/b向所有其它的控制器发送控制器ARP更新(也可称为CARP更新)以及规定旧PMAC、新PMAC、真实IP和新PIP的RARP消息。所有其它控制器然后删除规则(初始DC中的类型R2或R4)或用新PMAC和新PIP更新现有的规则(类型R3或R5)。各控制器104a/b还发送GARP更新以更新主机可具有的任何陈旧的ARP高速缓存映射。
[0036]图2阐述根据本发明的至少一个实施例的更一般地用于促进虚拟机迁移的过程。应当理解,可在基本上任何适当的计算机系统或一组计算机系统上实施诸如图2广泛地示出的处理,这些计算机系统作为解释性和非限制性的例子可包括诸如图3中的12'所示的系统。根据示例性实施例,可通过诸如分别在图3中的16'和28'上指示的那些的处理单元(一个或多个)或系统存储器,执行参照图2讨论的即使不是全部也是大多数的处理步骤。
[0037]如图2所示,指定用于从第一数据中心迁移到第二数据中心的虚拟机,虚拟机包含真实标识符(202)。向虚拟机分配伪标识符(204),并且,在第一数据中心的控制器上将伪标识符映射到真实标识符(206)。对于路由任务,用伪标识符替代数据包中的真实标识符(208)。保持第一数据中心的控制器与第二数据中心的控制器之间的通信,并使控制器同步化,以更新虚拟机的正确的位置(210)。虚拟机从第一数据中心迁移到第二数据中心(212)。
[0038]现在参照图3,表示云计算节点的例子的示意图。云计算节点10'仅是适当的云计算节点的一个例子,并且意图不在于关于这里描述的本发明的实施例的使用范围或功能提出任何限制。无论如何,云计算节点10’能够被实现和/或执行以上阐述的功能中的任一种。根据本发明的实施例,计算节点10’可能甚至未必是云网络的一部分,而可以是另一种类型的分布式或其它网络的一部分,或者可以代表独立的节点。但是,出于讨论和说明的目的,节点10'以不同的方式在这里称为“云计算节点”。
[0039]在云计算节点10'中,存在计算机系统/服务器12',它通过众多其它通用或专用计算系统环境或配置动作。可适用于计算机系统/服务器12'的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、薄客户机、厚客户机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统和包括任何上述系统或设备的分布式云计算环境等。
[0040]可在被计算机系统执行的诸如程序模块的计算机系统可执行指令的一般语境中描述计算机系统/服务器12'。一般地,程序模块可包含执行特定的任务或者实现特定的抽象数据类型的例程、程序、对象、部件、逻辑和数据结构等。可在通过经由通信网络链接的远程处理装置执行任务的分布式云计算环境中实施计算机系统/服务器12'。在分布式云计算环境中,程序模块可位于包含存储器存储装置的本地和远程计算机系统存储介质中。
[0041]如图3所示,以通用计算装置的形式表示云计算节点10'中的计算机系统/服务器12'。计算机系统/服务器12'的部件可包含但不限于至少一个处理器或处理单元16'、系统存储器28'和耦合包含系统存储器28'的各种系统部件与处理器16'的总线18'。
[0042]总线18'代表包括存储器总线或存储器控制器、外设总线、加速图形端口和使用各种总线结构中的任一种的处理器或本地总线的任意几种类型的总线结构中的至少一种。作为例子而不是限制,这种结构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及外设组件互连(PCI)总线。
[0043]计算机系统/服务器12' —般包括各种计算机系统可读介质。这种介质可以是计算机系统/服务器12'可访问的任何可用介质,并且包括易失性和非易失性介质、可移除和不可移除介质。
[0044]系统存储器28'可包括易失性存储器的形式的计算机系统可读介质中,诸如随机存取存储器(RAM) 30'和/或高速缓冲存储器32'。计算机系统/服务器12'还可以包括其它的可移除/不可移除、易失性/非易失性计算机系统存储介质。仅作为示例性的方式,可设置用于对于不可移除、非易失性磁介质(未示出,通常被称为“硬盘”)读写的存储系统34'。虽然没有示出,但可设置用于对可移除、非易失性磁盘(例如,“软盘”)读写的磁盘驱动和用于针对诸如CD-ROM、DVD-ROM或其它光学介质的可移除、非易失性光盘读写的光盘驱动。在这种情况下,每一个都可以通过至少一个数据介质接口与总线18'连接。如以下进一步示出和描述的那样,存储器28可包含具有被配置为实施本发明的实施例的功能的一组(例如,至少一个)程序模块的至少一个程序产品。
[0045]作为例子而不是限制具有一组(至少一个)程序模块42'的程序/实用程序40'以及操作系统、至少一个应用程序、其它程序模块和程序数据可存储于存储器28'中。操作系统、至少一个应用程序、其它程序模块和程序数据中的每一个或它们的一些组合可包含联网环境的实现。程序模块42' —般实施这里描述的本发明的实施例的功能和/或方法。
[0046]计算机系统/服务器12'还可与诸如键盘、指示设备、显示器24'等的至少一个外部设备14'、使得用户能够与计算机系统/服务器12'交互作用的至少一个设备和/或使得计算机系统/服务器12'能够与至少一个其它的计算装置通信的任何装置(例如,网卡、调制解调器等)通信。这种通信可通过I/O接口 22'发生。并且,计算机系统/服务器12'可通过网络适配器20'与诸如局域网络(LAN)、一般的广域网络(WAN)和/或公共网络(例如,因特网)的至少一个网络通信。如示出的那样,网络适配器20'通过总线18'与计算机系统/服务器12'的其它部件通信。应当理解,虽然没有示出,但可与计算机系统/服务器12'结合使用其它的硬件和/或软件部件。例子包括但不限于:微代码、装置驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据档案存储系统等。
[0047]应当注意,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0048]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0049]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0050]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0051]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机(设备)上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0052]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0053]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
[0054]计算机程序指令也可被加载到计算机、其它可编程数据处理装置或其它设备上,以导致在计算机、其它可编程装置或其它设备上执行的一系列的操作步骤产生计算机实现的过程,使得在计算机或其它可编程装置上执行的指令提供用于实现在流程图和/或框图中的一个或多个方框中规定的功能/动作的处理。
[0055]出于解释和描述的目的给出了本公开,但意图不在于是详尽的或限制性的。对于本领域技术人员来说,许多修改和变更是十分明显的。为了解释原理和实际的应用并使得本领域技术人员能够通过适于设想的特定用途的各种修改理解公开的各种实施例,选择和描述了实施例。
[0056]虽然这里参照附图描述了本发明的解释性的实施例,但应理解,本发明的实施例不限于这些确切的实施例,并且,在不背离本公开的范围或精神的情况下,本领域技术人员可在这里实现各种其它的变化和修改。
【权利要求】
1.一种方法,包括: 指定要从第一数据中心迁移到第二数据中心的虚拟机,所述虚拟机包含真实标识符; 向所述虚拟机分配伪标识符; 在所述第一数据中心的控制器处将所述伪标识符映射到所述真实标识符; 对于路由任务,用所述伪标识符替代数据包中的真实标识符; 保持所述第一数据中心的控制器与所述第二数据中心的控制器之间的通信,并使所述控制器同步以更新所述虚拟机的正确位置;和 将所述虚拟机从所述第一数据中心迁移到所述第二数据中心。
2.根据权利要求1的方法,其中,所述伪标识符包含层二伪标识符。
3.根据权利要求2的方法,其中,所述层二伪标识符包含伪MAC地址。
4.根据权利要求1的方法,其中,所述伪标识符包含层三伪标识符。
5.根据权利要求4的方法,其中,所述层三伪标识符包含伪IP地址。
6.根据权利要求1的方法,其中,到指定的虚拟机的源流量源自于取自包含以下的组中的至少一个:在虚拟机驻留的层二域内;跨层三边界。
7.根据权利要求1的方法,其中,所述伪标识符包含与所述虚拟机驻留的数据中心有关的编码。
8.根据权利要求7的方法,其中,所述伪标识符还包含与网络拓扑有关的编码。
9.根据权利要求8的方法,其中,所述伪标识符包含与数据中心内的虚拟机的位置有关的编码。
10.根据权利要求1的方法,其中,所述分配包含向所述虚拟机分配依赖于位置的伪标识符,所述依赖于位置的伪标识符使用地址解析协议请求消息来传播并编码数据中心号、网络拓扑和所述虚拟机在给定的数据中心网络中的位置。
11.根据权利要求10的方法,还包括: 所述替代包括通过取自包含以下的组中的一个来替代:通过地址解析协议;通过网络入口边缘交换机处的规则; 基于所述伪标识符路由数据包,并且通过用于将数据包路由到目的地虚拟机的网络出口边缘交换机处的规则用所述真实标识符替代所述伪标识符; 向封装交换机路由目的地是远程数据中心的数据包,所述封装交换机用远程封装交换机的层3地址封装数据包,并且在数据中心之间经由现有网络发送所述数据包,其中所述远程封装交换机在接收到数据包时将所述数据包解封装并且将所述数据包路由到层2交换机;并且 所述映射包含在每个数据中心内的网络控制器处将所述伪标识符映射到所述真实标识符。
12.根据权利要求11的方法,还包括:将对于独立于位置的目的地层3真实标识符的地址解析协议请求重定向到控制器,其中,所述控制器随即: 如果所述虚拟机处于同一网络中,则返回所述依赖于位置的层2伪标识符; 如果所述虚拟机处于不同网络中,则返回新的层2标识符,由此随后在所述数据包中使用所述新的层2标识符。
13.根据权利要求12的方法,还包括:通过控制器安装用于用层3伪标识符替代层3真实标识符的入口交换机上的规则和用于用相应的真实标识符替代层2和层3伪标识符的出口交换机上的规则。
14.根据权利要求11的方法,还包括: 如果目的地层3真实标识符不处于映射表中,则通过控制器向远程控制器广播地址解析协议请求;和 通过远程控制器,在从控制器接收到地址解析协议广播消息时,查询本地映射表,并且如果发现映射,则返回依赖于位置的真实层2和层3标识符。
15.一种设备,包括: 至少一个处理器;和 包括能够被所述至少一个处理器执行的计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包含: 被配置为指定要从第一数据中心迁移到第二数据中心的虚拟机的计算机可读程序代码,所述虚拟机包含真实标识符; 被配置为向所述虚拟机分配伪标识符的计算机可读程序代码; 被配置为在所述第一数据中心的控制器处将所述伪标识符映射到所述真实标识符的计算机可读程序代码; 被配置为对于路由任务,用所述伪标识符替代数据包中的真实标识符的计算机可读程序代码; 被配置为保持所述第一数据中心的控制器与所述第二数据中心的控制器之间的通信,并使所述控制器同步以更新所述虚拟机的正确位置的计算机可读程序代码;和 被配置为将所述虚拟机从所述第一数据中心迁移到所述第二数据中心的计算机可读程序代码。
16.一种计算机程序产品,包括: 包括计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包含:被配置为指定要从第一数据中心迁移到第二数据中心的虚拟机的计算机可读程序代码,所述虚拟机包含真实标识符; 被配置为向所述虚拟机分配伪标识符的计算机可读程序代码; 被配置为在所述第一数据中心的控制器处将所述伪标识符映射到所述真实标识符的计算机可读程序代码; 被配置为对于路由任务,用所述伪标识符替代数据包中的真实标识符的计算机可读程序代码; 被配置为保持所述第一数据中心的控制器与所述第二数据中心的控制器之间的通信,并使所述控制器同步以更新所述虚拟机的正确位置的计算机可读程序代码;和 被配置为将所述虚拟机从所述第一数据中心迁移到所述第二数据中心的计算机可读程序代码。
17.根据权利要求16的计算机程序产品,其中,所述伪标识符包含层二伪标识符。
18.根据权利要求16的计算机程序产品,其中,所述伪标识符包含层三伪标识符。
19.根据权利要求16的计算机程序产品,其中,到指定的虚拟机的源流量源自于取自包含以下的组中的至少一个:在虚拟机驻留的层二域内;跨层三边界。
20.根据权利要求16的计算机程序产品,其中,所述伪标识符包含取自包含以下的组中的至少一个:与所述虚拟机驻留的数据中心有关的编码;与数据中心内的虚拟机的位置有关的编码。
21.根据权利要求16的计算机程序产品,其中,所述计算机可读程序代码被配置为向所述虚拟机分配依赖于位置的伪标识符,所述依赖于位置的伪标识符使用地址解析协议请求消息来传播并编码数据中心号、网络拓扑和所述虚拟机在给定的数据中心网络中的位置。
22.根据权利要求21的计算机程序产品,其中,所述计算机可读程序代码进一步被配置为: 通过取自包含以下的组中的一个来进行所述替代:通过地址解析协议;通过网络入口边缘交换机处的规则; 基于所述伪标识符路由数据包,并且通过用于将数据包路由到目的地虚拟机的网络出口边缘交换机处的规则用所述真实标识符替代所述伪标识符; 向封装交换机路由目的地是远程数据中心的数据包,所述封装交换机用远程封装交换机的层3地址封装数据包,并且在数据中心之间经由现有网络发送所述数据包,其中所述远程封装交换机在接收到数据包时将所述数据包解封装并且将所述数据包路由到层2交换机;并且 在每个数据中心内的网络控制器处将所述伪标识符映射到所述真实标识符。
23.根据权利要求22的计算机程序产品,其中,所述计算机可读程序代码进一步被配置为将对于独立于位置的目的地层3真实标识符的地址解析协议请求重定向到控制器,其中,所述控制器随即: 如果所述虚拟机处于同一网络中,则返回所述依赖于位置的层2伪标识符; 如果所述虚拟机处于不同网络中,则返回新的层2标识符,由此随后在所述数据包中使用所述新的层2标识符。
24.根据权利要求23的计算机程序产品,其中,所述计算机可读程序代码进一步被配置为通过控制器安装用于用层3伪标识符替代层3真实标识符的入口交换机上的规则和用于用相应的真实标识符替代层2和层3伪标识符的出口交换机上的规则。
25.根据权利要求22的计算机程序产品,其中,所述计算机可读程序代码进一步被配置为: 如果目的地层3真实 标识符不处于映射表中,则通过控制器向远程控制器广播地址解析协议请求;和 通过远程控制器,在从控制器接收到地址解析协议广播消息时,查询本地映射表,并且如果发现映射,则返回依赖于位置的真实层2和层3标识符。
【文档编号】H04L12/749GK104081733SQ201380007412
【公开日】2014年10月1日 申请日期:2013年1月23日 优先权日:2012年1月31日
【发明者】S·凯尔也纳拉门, K·坎纳, V·曼恩, A·K·维什诺伊 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1