虚拟化与非虚拟化网络之间的虚拟化网关的制作方法

文档序号:6484882阅读:170来源:国知局
虚拟化与非虚拟化网络之间的虚拟化网关的制作方法
【专利摘要】提供了用于通过使用虚拟化网关来控制在虚拟化网络与非虚拟化实体之间的通信的方法和设备。由虚拟化网络中的虚拟机将分组发送给非虚拟化实体。分组由虚拟机的主机路由到虚拟化网关的提供者地址。网关将该网关的提供者地址转换成非虚拟化实体的目的地地址,并且将分组发送到非虚拟化实体。非虚拟化实体可以是物理资源,诸如物理服务器或存储设备。物理资源可以专用于一个客户或者可以在客户之间共享。
【专利说明】虚拟化与非虚拟化网络之间的虚拟化网关
【技术领域】
[0001]本发明涉及在虚拟化网络与非虚拟化网络之间桥接通信的虚拟化网关,并且更具体地,涉及用于控制在虚拟化网络与非虚拟化实体之间(诸如虚拟机与物理服务器之间)的通信的方法和设备。
【背景技术】
[0002]数据中心可以包括由高速交换机和路由器互连的数百个或数千个服务器。云数据中心可以为多个客户提供各种各样的服务,诸如web应用、电子邮件服务、搜索引擎服务等。近年来,随着企业IT大规模合并到数据中心枢纽中并且随着云计算服务提供者的出现,数据中心已经改变了计算。
[0003]虚拟机(VM)技术允许一种或多种操作系统或者虚拟机并发地运行在一个物理主机或物理机上。虚拟机技术的优点已经变得被广泛认可。这些优点所共有的是在单个主机上运行多个虚拟机的能力,以及将虚拟机从一个主机迁移到另一个主机的能力。
[0004]存在对云数据中心的需求,以支持多租户或多组织网络隔离,而同时跨越各种范围的建筑物(premise)地保持客户地址。客户需要在不会因为地址的重新编号而中断服务的情况下将服务从公司网络移动到云数据中心,而数据中心管理员需要在不重新配置网络或中断服务的情况下迁移或合并工作负载的灵活性。为了满足这些要求,云数据中心需要调停(accommodate)潜在地重叠的客户地址。
[0005]在虚拟化网络中,虚拟机可以与诸如存储设备的物理资源通信,所述物理资源是非虚拟化的。物理资源可以位于数据中心内、位于客户位置处或者位于另一个数据中心。物理资源可以专用于一个客户,或者可以在客户之间共享。虚拟机和物理资源可以利用不同的寻址方案。

【发明内容】

[0006]已经提出利用策略控制的网络虚拟化来使应用或客户地址从物理或提供者地址解除耦合,而同时保持这两组地址之间的映射。这允许客户在跨越子网或建筑物移动服务的同时保持客户地址。这还允许数据中心管理员在不中断服务的情况下在子网内以及跨越子网地合并与迁移服务,并且使数据中心提供者能够调停来自客户的重叠的地址空间。
[0007]本发明提供用于通过使用虚拟化网关来控制在虚拟化网络与非虚拟化实体之间的通信的方法和设备。由虚拟化网络中的虚拟机将分组发送给非虚拟化实体。该分组由虚拟机的主机路由到虚拟化网关的提供者地址。该网关将网关的提供者地址转换成非虚拟化实体的目的地地址,并且将该分组发送到非虚拟化实体。
[0008]在一些实施例中,非虚拟化实体包括物理服务器,其具有虚拟化网络的地址空间中的客户地址。网关将网关的提供者地址转换成物理服务器的客户地址。在这样的实施例中,物理服务器可以专用于该虚拟化网络。
[0009]在另外的实施例中,非虚拟化实体包括具有提供者地址的物理服务器。网关通过施行网络地址转换来转换网关的提供者地址。在这样的实施例中,物理服务器可以在客户之间共享。网络地址转换可以包括响应于接收到来自第一虚拟网络中的虚拟机的分组而施行第一网络地址转换,以及响应于接收到来自第二虚拟网络中的虚拟机的分组而施行第二网络地址转换。
[0010]在另外的实施例中,转换网关的提供者地址包括访问虚拟网络策略,该虚拟网络策略包含将网关的提供者地址映射到非虚拟化实体的地址的映射策略。网关可以从虚拟化网络的虚拟机管理器接收映射策略更新。映射策略更新可以反映虚拟化网络中的映射策略变化。
[0011]在另外的实施例中,网关可以接收由非虚拟化实体发送给虚拟化网络中的虚拟机的分组。网关将虚拟机的客户地址转换成虚拟机的提供者地址,并且将分组发送到虚拟化网络中的虚拟机的提供者地址。
[0012]根据本发明的一个方面,提供一种用于控制在虚拟化网络与非虚拟化实体之间的通信的方法。该方法包括:由虚拟化网关接收分组,该分组由虚拟化网络中的虚拟机发送给非虚拟化实体,并且由虚拟机的主机路由到网关的提供者地址;由网关将网关的提供者地址转换成非虚拟化实体的目的地地址;以及由网关将分组发送到非虚拟化实体。
[0013]根据本发明的另一方面,提供一种用于控制在虚拟化网络与非虚拟化实体之间的通信的虚拟化网关。所述虚拟化网关包括处理设备和用指令编码的存储设备,当所述指令由处理设备执行时被配置成:接收分组,该分组由虚拟化网络中的虚拟机发送给非虚拟化实体,并且由虚拟机的主机路由到网关的提供者地址;将网关的提供者地址转换成非虚拟化实体的目的地地址;以及将分组发送到非虚拟化实体。
[0014]根据本发明的另外的方面,提供一种用于控制在虚拟化网络与非虚拟化实体之间的通信的方法。所述方法包括:由主机接收分组,该分组由虚拟机发送给目的地地址处的非虚拟化实体;由主机将分组的目的地地址转换成虚拟化网关的提供者地址;以及由主机将分组发送到虚拟化网关的提供者地址,以用于地址转换和发送到非虚拟化实体。
【专利附图】

【附图说明】
[0015]参考附图以便更好地理解本发明,所述附图通过引用合并于此,其中:
图1是连接到客户系统的数据中心的实施例的示意性框图;
图2是数据中心的实施例的示意性框图,其示出虚拟机与专用物理服务器之间通过虚拟化网关的通信;
图3是示出图2的虚拟化网关的实施例的示意性框图;
图4是示出根据本发明的实施例的、在虚拟机与专用物理服务器之间的通信的流程
图;
图5是示出根据本发明的实施例的、在物理服务器与虚拟化网络中的虚拟机之间的通信的流程图;
图6是数据中心的实施例的示意性框图,其示出虚拟机与共享物理资源之间的通信; 图7是示出图6的虚拟化网关的实施例的示意性框图;
图8是示出根据本发明的实施例的、在虚拟机与共享物理资源之间的通信的流程图; 图9是数据中心的实施例的示意性框图,其示出在虚拟机的实时迁移(livemigration)的情况下虚拟机与共享物理资源之间的通信;
图10是数据中心的实施例的示意性框图,其示出虚拟机与非IP资源之间的通信;
图11是数据中心的实施例的示意性框图,其示出供应有虚拟化网关功能性的负载均衡器;以及
图12是计算设备的实施例的示意性框图。
【具体实施方式】
[0016]图1中显示并入本发明特征的数据中心的实施例的简化示意性框图。数据中心10可包括通过数据中心网络架构20互连的第一主机12、第二主机14以及虚拟化网关16。当在这里使用时,术语“主机”指的是物理机器,通常是例如在图12中所示的且在下文被描述的服务器或其它计算设备。数据中心还包括虚拟机管理器22。包括在虚拟机管理器22的任务中的是:向主机12和14及虚拟化网关16供应且更新映射策略,正如下文所描述的。
[0017]数据中心10中的每一个主机可以作为一个或多个虚拟机(VM)的宿主,所述虚拟机可以包括能够独立于其它虚拟机来运行应用的完整操作系统。如图1中所示,第一主机12作为虚拟机30、32和34的宿主,而第二主机14作为虚拟机40和42的宿主。
[0018]数据中心10中的每一个主机可以包括交换机,用来路由去往和来自主机中的虚拟机的数据分组。在单个虚拟机的情况下,可以不需要交换机。每一个虚拟机可以包括网络适配器,用于经由其所驻留的主机进行外部通信。每一个主机还包括虚拟化模块,用于在去往和来自主机中的虚拟机的通信期间进行地址转换。
[0019]在图1的例子中,虚拟机30和42是第一虚拟网络或隔离组的一部分,虚拟机32和40是第二虚拟网络或隔离组的一部分,而虚拟机34是第三虚拟网络或隔离组的一部分。尽管这三个虚拟网络的虚拟机可以由相同的主机作为宿主,但是这三个虚拟网络可以对应于数据中心的三个不同客户并且彼此隔离。每一个虚拟网络可以包括在相同或不同主机上的另外的虚拟机(未示出)。此外,数据中心10可以作为另外的虚拟网络的宿主。
[0020]如图1中进一步显示的,虚拟化网关16通过物理网络50连接到物理服务器52、54和56。物理服务器52、54和56中的每一个可以是例如存储设备或其它非虚拟化物理资源。虚拟化网关16有助于在虚拟机中的一个或多个与物理服务器中的一个或多个之间的通信。在一些实施例中,物理服务器52、54和56可以专用于一个虚拟网络,诸如包括虚拟机30和42的虚拟网络。在其它实施例中,物理服务器52、54和56可以在两个或更多个虚拟网络之间共享。
[0021]如图1中进一步显示的,数据中心10经由负载均衡器60、边缘路由器62和因特网64连接到客户系统70。在图1的实施例中,客户系统70包括路由器72、VPN网关74和企业网76,其作为虚拟机80和82的宿主。应理解的是,客户系统70可以具有任何配置。在图1的实施例中,数据中心10中的包括虚拟机30和42的第一虚拟网络专用于客户系统70。
[0022]图2和3显示数据中心10的第二实施例。在图2和3的实施例中,第一主机12作为虚拟机100、102和104的宿主,而第二主机14作为虚拟机106、108和110的宿主。虚拟机100、102和106是第一虚拟网络112 (图3)的单元,而虚拟机104、108和110是第二虚拟网络114的单元。虚拟化网关120由网络122耦合到物理服务器124及存储设备126和 128。
[0023]如图2所示,每一个虚拟机与一客户地址AA (应用地址)及一提供者地址LA (位置或物理地址)相关联。客户地址AA对应于虚拟机的IP地址,而提供者地址LA对应于虚拟机在数据中心10中的物理位置。因此,例如,第一主机12中的虚拟机100具有客户地址AA1和提供者地址LA115两个或更多个虚拟机可以具有相同的客户地址AA,但是每一个虚拟机的提供者地址LA在数据中心10中是独一无二的。客户地址AA1和提供者地址LA1 —起形成地址对AA1 = LA1,该地址对定义用于虚拟机100的映射策略。映射策略被用来控制虚拟机之间的通信,以及用来控制在虚拟机与非虚拟化实体之间的通信,正如下文所讨论的。客户地址AA由虚拟机使用,而提供者地址LA由物理机(诸如主机)使用。
[0024]用于虚拟网络的众多映射策略可以被聚集在虚拟网络策略中,诸如图2中所示的虚拟网络策略140中。虚拟网络策略140驻留在第一主机12、第二主机14、虚拟机管理器22和虚拟化网关120中,并且与第一虚拟网络112相关联。虚拟网络112包括虚拟机100、102和106,并且可以包括其它虚拟机(未示出)。虚拟网络策略140中的每一个条目包括映射策略,所述映射策略包括客户地址AA和提供者地址LA。
[0025]在图2和3的例子中,包括物理服务器124及存储设备126和128的物理资源专用于包括虚拟机100、102和106的第一虚拟网络112。相应地,虚拟网络策略140包括用于虚拟机100、102和106中的每一个的条目、用于物理服务器124的条目、以及用于存储设备126和128的条目。如图2所示,物理服务器124被指派客户地址AAP1,存储设备126被指派客户地址AAP2,而存储设备128被指派客户地址AAP3。此外,物理服务器124及存储设备126和128各自映射到网关120的提供者地址LAffl。虚拟网络策略140中的每一个条目可以按需要包括另外的信息。应理解的是,虚拟网络策略可以具有包含映射信息的任何结构,诸如表。
[0026]如上文所指出的,虚拟网络策略140包括用于第一虚拟网络112中的每一个虚拟机和每一个物理资源的策略映射条目。另外的虚拟网络策略对应于另外的虚拟网络。例如,第一主机12和第二主机14中的单独的虚拟网络策略包含用于包括虚拟机104、108和110的第二虚拟网络114的映射策略。
[0027]如图3所示,虚拟化网关120可以包括虚拟化模块160和IP转发模块162。网关120还可以包括连接到数据中心架构20的网络接口卡(NIC)164、以及连接到网络122的网络接口卡166。NIC 164使能通过数据中心架构20到虚拟网络112的通信。NIC 166使能通过网络122到物理服务器124及存储设备126和128的通信。如用箭头168所指示的,虚拟化模块160与虚拟机管理器22通信。根据本发明的实施例,虚拟机管理器22向虚拟化管理器160提供定义地址转换的映射策略。
[0028]在图2和3的实施例中,物理服务器124及存储设备126和128专用于虚拟网络112,并且只与虚拟网络112通信。物理服务器124及存储设备126和128被分别指派给客户地址AAp1、AAp2和AAP3。因此,物理服务器124及存储设备126和128可被视为虚拟网络112的地址空间的一部分。用于虚拟网络112的地址空间可以被分成包括虚拟机100、102和106的第一部分、以及包括物理服务器124及存储设备126和128的第二部分。当虚拟化模块160标识寻址到物理服务器124及存储设备126和128之一的分组时,该分组通过网络接口卡166和网络122被发送到其目的地。当虚拟化模块160标识寻址到虚拟机100、102和106之一的分组时,该分组通过网络接口卡164和数据中心架构20被发送到其目的地。
[0029]图4是示出根据本发明的实施例的、用于在虚拟机与专用物理服务器之间的通信的过程的流程图。具体地,虚拟机100将分组发送到物理服务器124。
[0030]在动作200中,虚拟机100发送分组220 (图2中的箭头(I )),该分组被寻址到客户地址AApi处的物理服务器U^AA1OAApiX在动作202中,虚拟机100的第一主机12引用虚拟网络策略140,该虚拟网络策略包括用于客户地址AApi处的物理服务器124的映射策略。该映射策略指示将寻址到物理服务器124的分组指引到网关120的提供者地址LAffl。
[0031]在动作204中,虚拟机100的第一主机12可以用网关120的提供者地址LAew来封装分组(LA1OLAew)以提供封装的分组222 (图2)。在动作206中,虚拟机100的第一主机12发送分组,该分组已经通过地址封装到网关120而被处理(图2中的箭头(2))。
[0032]在动作208中,网关120接收来自第一主机12的封装的分组222,并且对该分组解除封装以提供解除封装的分组224。具体地,分组的提供者地址部分被移除,留下物理服务器124的客户地址AAP1。在动作210中,网关120将解除封装的分组224递送到物理服务器124 (图2中的箭头(3))。网关120的虚拟网络策略提供在网关120的提供者地址LAew与物理服务器124的客户地址AApi之间的映射策略。
[0033]图5是示出根据本发明的实施例的、用于在物理服务器与虚拟网络中的虚拟机之间的通信的过程的流程图。在图5的实施例中,物理服务器124将分组发送给第一虚拟网络112中的虚拟机100。该过程 实质上是在图4所示的且在以上被描述的过程的逆过程。
[0034]在动作250中,具有地址AApi的物理服务器124将分组发送到具有客户地址AA1的虚拟机100。在动作252中,网关120引用其虚拟网络策略,以获得从虚拟机100的客户地址AA1到虚拟机100的提供者地址LA1的映射。在动作254中,网关120可以用虚拟机100的提供者地址来封装分组(LAfflOLA1X在动作256中,网关120将封装的分组发送到虚拟机100的主机12。
[0035]在动作258中,虚拟机100的主机12接收分组,并且根据虚拟网络策略140中的映射策略来对该分组解除封装,所述映射策略将虚拟机100的提供者地址LA1与虚拟机100的客户地址AA1联系起来。在动作260中,解除封装的分组被递送到客户地址AA1处的虚拟机 100。
[0036]图6和7显示数据中心10的第三实施例。在图6和7的实施例中,第一主机12作为虚拟机100、102和104的宿主,正如上文所描述的。虚拟机100和102是第一虚拟网络112 (图7)的单元,而虚拟机104是第二虚拟网络114的单元。如上文所指示的,虚拟网络112和114可以包括另外的单元(未示出)。
[0037]如图6和7进一步显示的,数据中心10包括物理服务器300及存储设备302和304。物理服务器300及存储设备302和304可以分别对应于图2和3中所示的物理服务器124及存储设备126和128。然而,物理服务器300及存储设备302和304具有与图2和3中所示的物理资源不同的寻址方案。物理服务器300及存储设备302和304通过网络310连接到数据中心网络架构20,并且分别具有提供者地址LAP1、LAp2和LAP3。
[0038]如图6和7进一步显示的,数据中心10包括作为第一 NAT (网络地址转换)模块322和第二 NAT模块324的 宿主的虚拟化网关320。第一 NAT模块322与第一虚拟网络112一起操作,而第二 NAT模块324与第二虚拟网络114 一起操作。NAT模块使得能够由不同虚拟网络共享物理资源,正如下文所描述的。
[0039]如图6所示,第一主机12包括虚拟网络策略140,该虚拟网络策略包括在第一虚拟网络112中的客户地址和提供者地址之间的映射策略。第一主机12还包括第二虚拟网络策略142,该第二虚拟网络策略包括在第二虚拟网络114中的客户地址和提供者地址之间的映射策略。如所示,虚拟网络策略140将客户地址AAp1、AAp2和AAp3映射到虚拟化网关320的提供者地址LAew。虚拟化网关320包括虚拟网络策略330,该虚拟网络策略与虚拟网络策略140的不同在于将物理资源的客户地址AAP1、AAP2和AAp3分别映射到提供者地址LAP1、LAP2和LAp3。如图7所示,虚拟化网关320包括虚拟化模块340和网络接口卡342。网络接口卡342耦合到数据中心架构20,并且通过网络310耦合到物理服务器300及存储设备302和304。
[0040]图8是根据本发明的实施例的、用于在虚拟机与共享的物理资源之间的通信的过程的流程图。该过程的动作由图6中的对应箭头指示。
[0041]在动作350中,虚拟机100发送分组352 (图6中的箭头(I)),该分组被寻址到客户地址AApi处的物理服务器300。在动作354中,虚拟机100的第一主机12引用虚拟网络策略140中对应于物理服务器300的映射策略。第一主机12确定:客户地址AApi处的物理服务器300映射到虚拟化网关320的提供者地址LAffl。
[0042]在动作356中,第一主机12用网关320的提供者地址LAffl来封装分组,以提供分组358 (图6)。在动作360中,第一主机12将封装的分组358发送到网关320。
[0043]在动作362中,网关320接收来自虚拟机100的第一主机12的封装的分组358。在动作364中,网关320对接收到的分组358解除封装,以提供解除封装的分组366 (图6中的箭头(2))。在动作370中,网关320的第一 NAT模块322施行对解除封装的分组366的网络地址转换,以提供NAT分组372 (图6中的箭头(3))。NAT分组372处于客户地址空间中,并且指示:客户地址AAnat正发送分组到地址AApi处的物理服务器300。在动作374中,网关320将NAT分组372从客户地址空间重写到提供者地址空间,以提供NAT分组376(图6中的箭头(4))。NAT分组376指示:提供者地址LAnat正发送分组到提供者地址LApi处的物理服务器300。网关320将NAT分组376发送到提供者地址LApi处的物理服务器300(图6中的箭头(5))。
[0044]在第一 NAT模块322已经建立了对应于虚拟机100的条目之后,物理服务器300可以通过使用在图8所示的并在上文被描述的操作的逆操作将应答分组发送到虚拟机100。在类似的过程中,第二虚拟网络114中的虚拟机104可以通过使用第二 NAT模块324将分组发送到物理服务器300。
[0045]如上文所指示的,数据中心10中的虚拟机主机包括将物理服务器映射到网关320的提供者地址的映射策略。相反地,网关320包括将物理资源的客户地址映射到对应的提供者地址的映射策略。此外,第一主机12封装被指引到网关320的分组,而网关320重写被指引到物理服务器300的分组。具体地,第一主机12中的虚拟网络策略140包括用于对发送到网关320的分组进行地址封装的映射策略,而虚拟化网关330中的虚拟网络策略330包括用于对发送到物理资源的分组进行地址重写的映射策略。
[0046]图9是数据中心的实施例的示意性框图,其示出在虚拟机的实时迁移的情况下在虚拟机与共享的物理资源之间的通信。如图9所示,通过实时迁移将虚拟机100从第一主机12转移到第三主机410,如箭头400所指示的那样。实时迁移允许正在运行的虚拟机从一个主机转移到另一个主机,而无需该虚拟机的操作显著中断。实时迁移可以由虚拟机管理器22控制。
[0047]在图9的例子中,已迁移的虚拟机IOO111的客户地址AA1保持不变,但是已迁移的虚拟机IOOm的提供者地址从提供者地址LA1变成提供者地址LA#W。已迁移的虚拟机IOOm的新的提供者地址LAliw被反映在虚拟网络的每一个主机和虚拟化网关320的虚拟网络策略中,以便避免分组丢失。相应地,跟随在实时迁移之后,虚拟网络中的每一个主机和网关320中的映射策略被更新。
[0048]在实时迁移之前,第一主机12上的虚拟机100通过使用在图6-8中所示的且在上文被描述的过程将分组发送到存储设备302,如图9中的箭头420所指示的那样。虚拟化网关320接收来自第一主机12的封装的分组,并且对该分组施行解除封装和网络地址转换,以提供NAT分组。NAT分组被转换成提供者地址LAnat并被发送到存储设备302。
[0049]跟随在实时迁移之后,假设网关320中的虚拟网络策略330已经被更新成反映已迁移的虚拟机IOOm的新映射策略。具体地,虚拟网络策略330包括地址对AA1:LAliw,该地址对定义用于已迁移的虚拟机IOOm的映射策略。如果已迁移的虚拟机IOOm将分组发送给存储设备302,则该分组由第三主机410封装并被发送到网关320,如箭头422所指示的。网关320核查用于已迁移的虚拟机IOOm的更新的映射策略,并且施行如在图6-8中所示的且在上文被描述的解除封装和网络地址转换。在网络地址转换之后,NAT分组被转换成提供者地址LAnat并被发送到存储设备302。因此,在实时迁移之前和之后,分组看起来都是由存储设备302从提供者地址LAnat接收到的。
[0050]事实上,网络地址转换掩饰了虚拟机100的提供者地址的变化,而同时保持在虚拟机100与物理资源之间的连接。在实时迁移之前和之后,虚拟网络策略330都确保用于虚拟机100的提供者地址的正确映射。利用这种途径,实时迁移对物理服务器是透明的,因为它们只看到NAT地址LAnat。
[0051]图10是数据中心的实施例的示意性框图,其示出虚拟机与非IP资源之间的通信。在图10的数据中心10中,第一主机12作为虚拟机450的宿主,而第二主机14作为虚拟机452的宿主。包括物理服务器300及存储设备302和304的非IP资源通过网络310和非IP网关460被连接到数据中心网络架构20。第一主机12包括虚拟网络策略456,其具有用于对发送到非IP资源的分组进行地址封装的映射策略。
[0052]如图10进一步显示的,虚拟机452将分组470发送给存储设备304 (图10中的箭头(I))。虚拟机452使用以太网MAC地址来为分组寻址。具体地,虚拟机452使用存储设备304的MAC地址(MAC2->MACP3)。分组470由第二主机14用网关460的提供者地址LAnip来进行封装,以提供封装的分组472。封装的分组472被发送到网关460,并被解除封装以提供解除封装的分组474(图10中的箭头(2))。解除封装的分组474由网关460发送到存储设备304。
[0053]图11是数据中心的示意性框图,其示出供应有虚拟化网关功能性的负载均衡器。在图11的数据中心10中,第一主机12作为虚拟机100、102和104的宿主;第二主机14作为虚拟机106、108和110的宿主;第三主机510作为虚拟机520、522和524的宿主;以及第四主机530作为虚拟机540和542的宿主。虚拟机100、102、106、520、524和540是第一虚拟网络的单元,如由虚拟网络策略550所表示的那样。虚拟机104、108、110、522和542是第二虚拟网络的单元,如由虚拟网络策略552所表示的那样。
[0054]负载均衡器560耦合在因特网与数据中心网络架构20之间。负载均衡器560包括基于策略的网络虚拟化,并且包含虚拟网络策略550和552。
[0055]如图11所示,网关的一个实施例是将虚拟化网关功能性整合到负载均衡器中,以实现多租户的、虚拟化感知的负载均衡器。现有的负载均衡器通过向一个面向外部的IP地址(所谓的VIP)、向由不同DIP (用于直接IP)表示的一组后端服务器工作负载散发查询来施行“均衡”。整合有虚拟化功能性的负载均衡器能以以下方式工作。负载均衡器的面向外部侧被配置有多个VIP,每个客户一个VIP。每一个VIP可以映射到给定客户的AA地址空间中的一组DIP。通过客户标识符来为这组AA DIP编索引,所述客户标识符可以被用来将流量(traffic)指引到虚拟化的正确的AA-LA映射策略。例如,负载均衡器可以具有两个VIP地址:用于客户A的VIPa=128.1.1.1和用于客户B的VIPB=128.1.1.2。用于客户A (128.1.1.1)的负载均衡算法是要均匀地散发给用于客户A的一组两个客户A VM AA:10.1.1.1和10.1.1.2,而对于客户B (128.1.1.2),映射是到两个客户B VM AA:同样是
10.1.1.1 和 10.1.1.2。
[0056]负载均衡器分开地针对VIPa和VIPb来为负载均衡表编索引,以使得用于客户A和客户B的正确的虚拟化映射表将被用于任何进入的请求。例如,客户A的AA:10.1.1.1和
10.1.1.2可以被映射到LA1和LA2,而客户B的AA 10.1.1.1和10.1.1.2可以被映射到LA3和la4。以此方式,负载均衡功能性可以被无缝地与内部数据中心虚拟化策略整合。如之前所描述的,网关的整合构造的优点在于:通过VM部署和实时迁移,网关的虚拟化模块还将是数据中心虚拟化策略框架的一部分。一个益处是现在只要整合的负载均衡器中的AA-LA映射表也被更新,就可以跨越物理子网地迁移后端工作负载。所有这些可以在不打破现有的负载均衡或代理会话的情况下发生,这是因为DIP (其为用于VM的AA)保持不变。
[0057]为了支持多租户环境中的IP多播,管理服务器可以给每一个客户虚拟网络指派一个在LA空间中的多播地址。来自客户VM的所有多播流量将被封装且被重新指引到数据中心中的客户特定的多播组(或地址)。通过用于每一个客户的这种分开的多播组,还实现了多播流量的隔离。例如,数据中心管理员通过使用诸如VMM的管理工具可以将224.0.0.1指派给客户A并将224.0.0.2指派给客户B。尽管用于客户A和客户B的VM两者都发送被指引到多播组(目的地地址)224.1.2.3的多播流量,但是虚拟化规则将规定如下:
(策略I)从客户A的VM发送到任何多播或广播目的地的分组_>用224.0.0.1封装 (策略2)从客户B的VM发送到任何多播或广播目的地的分组_>用224.0.0.2封装。
[0058]基于这些策略,由客户A发送的从AAai到224.1.2.3的分组将用到224.0.0.1的LAai来封装,而由客户B发送的从AAbi到224.1.2.3的分组将用到224.0.0.2的LAbi来封装。只要客户A的VM的所有物理主机都预订224.0.0.1,并且客户B的VM的所有物理主机都预订224.0.0.2,多播分组就分别到达客户A和客户B的VM的所有主机。在接收到多播分组时,虚拟化策略还将把发送到224.0.0.1的分组辨别为去往客户A的VM,而把发送到224.0.0.2的分组辨别为去往客户B的VM。所述分组将变为被解除封装,并且将基于虚拟化规则而被指示到正确的VM。[0059]本发明可以与许多其它通用或专用计算系统环境或配置一起操作。可适于与本发明一起使用的熟知的计算系统、环境和/或配置的例子包括但不限于个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费者电子设备、网络PC、小型计算机、大型计算机、包括任何上述系统或设备的分布式计算环境
坐坐寸寸O
[0060]本发明可以在由计算机执行的计算机可执行指令(诸如程序模块)的一般上下文中被描述。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本发明还可以在分布式计算环境中实践,在分布式计算环境中由通过通信网络链接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质两者中。
[0061]参考图12,用于实现本发明的示范性系统包括采用计算机1010形式的通用计算设备。图12的计算设备可以用于实现本文所描述的主机、虚拟机管理器和任何其它计算设备。计算机1010的组件可以包括但不限于处理单元1020、系统存储器1030以及系统总线1021,系统总线1021将包括系统存储器的各种系统组件耦合到处理单元1020。系统1021可以是若干类型总线结构中的任一种,包括存储器总线或存储器控制器、外围总线、以及使用各种各样总线体系结构中的任何总线体系结构的本地总线。作为例子而非限制,这样的体系结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强型ISA (EISA)总线、视频电子标准协会(VESA)本地总线、以及外围组件互连(PCI)总线(也被称为夹层总线)。
[0062]计算机1010通常包括各种各样的计算机可读介质。计算机可读介质可以是能被计算机1010访问的任何可用介质,并且包括易失性和非易失性介质、可拆卸和不可拆卸介质。作为例子而非限制,计算机可读介质可以包括计算机存储介质。计算机存储介质包括以任何方法或技术实现的、用于存储信息一诸如计算机可读指令、数据结构、程序模块或其它数据一的易失性和非易失性、可拆卸和不可拆卸介质。计算机存储介质包括但不限于RAM、ROM、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储装置、盒式磁带、磁带、磁盘存储装置或其它磁性存储设备、或者可以用来存储所期望的信息并且可以被计算机1010访问的任何其它介质。上文中的任何项的组合也应当被包括在计算机可读存储介质的范围内。
[0063]系统存储器1030包括采用易失性和/或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM) 1031和随机存取存储器(RAM) 1032。基本输入/输出系统1033(BIOS)(包含有用来诸如在启动期间帮助在计算机1010内的单元之间转移信息的基本例程)通常存储在ROM 1031中。RAM 1032通常包含可以被处理单元1020直接访问和/或目前正对其操作的数据和/或程序模块。作为例子而非限制,图12示出操作系统1034、应用程序1035、其它程序模块1036以及程序数据1037。
[0064]计算机1010还可以包括其它可拆卸/不可拆卸、易失性/非易失性的计算机存储介质。仅作为例子,图12示出从不可拆卸的非易失性磁性介质读取或向其写入的硬盘驱动器1040、从可拆卸的非易失性磁盘1052读取或向其写入的磁盘驱动器1051、以及从可拆卸的非易失性光盘1056 (诸如⑶ROM或其它光学介质)读取或向其写入的光盘驱动器1055。可用在示范性操作环境中的其它可拆卸/不可拆卸、易失性/非易失性的计算机存储介质包括但不限于盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器1041通常通过不可拆卸的存储器接口(诸如接口 1040)连接到系统总线1021,而磁盘驱动器1051和光盘驱动器1055通常通过可拆卸的存储器接口(诸如接口 1050)连接到系统总线1021。
[0065]上文讨论的且在图12中示出的驱动器及其相关联的计算机存储介质为计算机1010提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如在图12中,硬盘驱动器1041被图示为存储操作系统1044、应用程序1045、其它程序模块1046和程序数据1047。要指出的是,这些组件可以与操作系统1034、应用程序1035、其它程序模块1036和程序数据1037相同或者不同。操作系统1044、应用程序1045、其它程序模块1046和程序数据1047在这里被给予不同的标号,以说明最低限度它们是不同的副本。
[0066]用户可以通过诸如键盘1062和定点设备1061 (通常被称为鼠标、轨迹球或触摸板)的输入设备将命令和信息输入计算机1010中。其它输入设备可以包括麦克风1063、操纵杆、输入板1064、碟形卫星天线、扫描仪等等。这些以及其它输入设备常常通过耦合到系统总线的用户输入接口 1060而被连接到处理单元1020,而可以不通过其它接口和总线结构(诸如并行端口、游戏端口或通用串行总线(USB))来连接。监视器1091或其它类型的显示设备也经由接口(诸如视频接口 1090)连接到系统1021。除了监视器以外,计算机还可以包括其它的外围输出设备,诸如扬声器1097和打印机1096,它们可以通过输出外围接口1095被连接。
[0067]计算机1010可以利用到一个或多个远程计算机(诸如远程计算机1080)的逻辑连接而在联网的环境中操作。远程计算机1080可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并且通常包括以上相对于计算机1010描述的许多或所有的单元,虽然在图12中仅示出了存储器存储设备1081。图12中描绘的逻辑连接包括局域网(LAN) 1071和广域网(WAN) 1073,以及例如经由无线接口 1098利用天线完成的无线链路,但是也可以包括其它网络。这样的联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。尽管无线接口 1098被显示为直接连接到系统总线1021,但已认识到无线接口 1098可以经由网络接口 1070连接到系统总线1021。
[0068]当在LAN联网环境中使用时,计算机1010通过网络接口或适配器1070被连接到LAN 1071。当在WAN联网环境中使用时,计算机1010通常包括调制解调器1072或用于在WAN 1073 (诸如因特网)上建立通信的其它手段。调制解调器1072 (其可以是内部的或外部的)可以经由用户输入接口 1060或其它适当的机制被连接到系统总线1021。在联网的环境中,相对于计算机1010所描绘的程序模块或其的一些部分可以存储在远程存储器存储设备中。作为例子而非限制,图12将远程应用程序1085示为驻留在存储器设备1081上。将理解的是,所示的网络连接是示范性的,并且可以使用其它用来建立计算机之间的通信链接的手段。
[0069]因此已经描述了本发明的至少一个实施例的若干方面,应当理解的是本领域的技术人员将容易想到各种改变、修改和改进。
[0070]这样的改变、修改和改进被规定为本公开内容的一部分,并且被规定为在本发明的精神和范围内。相应地,之前的描述和附图仅仅是作为例子。
[0071]本发明的上述实施例可以以许多方式中的任一种来实现。例如,可以利用硬件、软件或其组合来实现所述实施例。当通过软件实现时,软件代码可以在任何适当的处理器或处理器的集合上执行,无论其是提供在单个计算机中还是分布在多个计算机之间。这样的处理器可以被实现为集成电路,令一个或多个处理器处于一个集成电路组件中。然而处理器可以利用任何适当格式的电路来实现。
[0072]此外,应当理解的是,计算机可以被体现为众多形式中的任一种,诸如机架式计算机、桌上型计算机、膝上型计算机或平板计算机。此外,计算机可以被嵌入在通常不被认为是计算机但具有适当的处理能力的设备中,包括个人数字助理(PDA)、智能手机或者任何其它适当的便携式或固定的电子设备。
[0073]此外,计算机可以具有一个或多个输入和输出设备。这些设备尤其可以用来呈递用户接口等等。可以被用来提供用户接口的输出设备的例子包括:用于输出的视觉呈现的打印机或显示屏,和用于输出的听觉呈现的扬声器或其它声音生成设备。可以被用于用户接口的输入设备的例子包括键盘以及诸如鼠标、触摸板和数字化输入板的定点设备。作为另一个例子,计算机可以通过语音识别或以其它可听格式接收输入信息。
[0074]这样的计算机可以通过任何适当形式的一个或多个网络而被互连,所述适当形式包括作为局域网或广域网,诸如企业网络或因特网。这样的网络可以基于任何适当的技术,并且可以根据任何适当的协议操作,以及可以包括无线网络、有线网络或光纤网络。
[0075]此外,本文所概述的各种方法或过程可以被编码成可在一个或多个处理器上执行的软件,所述处理器采用各种各样的操作系统或平台中的任一种。此外,这样的软件可以利用众多适当的编程语言和/或编程或脚本工具中的任一种来编写,并且还可以被编译成在框架或虚拟机上执行的可执行机器语言代码或中间代码。
[0076]在这方面,本发明可以被体现为用一个或多个程序编码的计算机可读存储介质(或多个计算机可读介质)(例如,计算机存储器、一个或多个软盘、压缩盘(CD)、光盘、数字视频盘(DVD)、磁带、闪存、在现场可编程门阵列或其它半导体器件中的电路配置、或其它非瞬时的有形计算机存储介质),当所述程序在一个或多个计算机或其它处理器上被执行时,其施行实现以上所讨论的本发明的各种实施例的方法。计算机可读存储介质或多个计算机可读存储介质可以是可输送的,以使得存储在其上的程序或多个程序可以被加载到一个或多个不同的计算机或其它处理器上,以实现以上所讨论的本发明的各个方面。当在本文中使用时,术语“非瞬时的计算机可读存储介质”仅涵盖可被视为制造品(即制造的物品)或机器的计算机可读介质。替换地或附加地,本发明可以被体现为除计算机可读存储介质之外的其它计算机可读介质,诸如传播的信号。
[0077]本文所用的术语“程序”或“软件”在一般意义上是指代任何类型的计算机代码或计算机可执行指令组,所述代码或指令组可用来对计算机或其它处理器进行编程以实现以上所讨论的本发明的各个方面。此外,应当理解的是,根据这个实施例的一个方面,当被执行时,施行本发明的方法的一个或多个计算机程序不需要驻留在单个计算机或处理器上,而是可以以模块的方式分布于多个不同的计算机或处理器之间以实现本发明的各个方面。
[0078]计算机可执行的指令可以具有由一个或多个计算机或其它设备执行的许多形式,诸如程序模块。通常地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常可以按在各种实施例中所期望的那样组合或分布程序模块的功能性。
[0079]此外,数据结构可以被存储在任何适当形式的计算机可读介质中。为了举例说明的简明性,数据结构可被示为具有通过在数据结构中的位置而联系起来的字段。这样的关系可以同样地通过为所述字段的存储指派计算机可读介质中的位置来实现,所述的位置传达了字段之间的关系。然而,可以利用任何适当的机制来建立数据结构的字段中的信息之间的关系,包括通过使用用来建立数据元素之间的关系的指针、标签或者其它机制。
[0080]本发明的各个方面可以单独地、组合地、或以未在上文所述的实施例中具体讨论的各种各样的安排来被使用,并且因此并未将其应用限于在上文描述中阐明的或在附图中示出的组件的细节和安排。例如,在一个实施例中描述的一些方面可以以任何方式与在其它实施例中描述的一些方面组合。
[0081]此外,本发明可以被体现为方法,其例子已经被提供。作为方法的一部分而被施行的动作可以以任何适当的方式排序。因此,实施例可以被构造成其中动作是以不同于所图示的顺序施行的,这可以包括同时施行一些动作,尽管在说明性实施例中是被显示为有序的动作。
[0082]在权利要求中使用诸如“第一”、“第二”、“第三”等序数词来修改权利要求元素本身并不意味着一个权利要求元素超过另一个权利要求元素的任何优先级、优先地位或顺序,或者方法的动作被施行的时间顺序,而是仅仅被用作标签以将具有某个名称的一个权利要求元素与具有相同名称(如果没有使用序数词的话)的另一个元素区分开,以便区分权利要求元素。
[0083]此外,本文所用的措词和术语是出于描述的目的,而不应被视为限制性的。本文中“包含”、“包括”、或“具有”、“含有”、“涉及”及其变型的使用意在涵盖其后所列出的项目及其等同物以及另外的项目。
【权利要求】
1.一种用于控制在虚拟化网络与非虚拟化实体之间的通信的方法,包括: 由虚拟化网关接收分组,所述分组由所述虚拟化网络中的虚拟机发送给所述非虚拟化实体,并且由所述虚拟机的主机路由到所述网关的提供者地址; 由所述网关将该网关的提供者地址转换成所述非虚拟化实体的目的地地址;以及 由所述网关将所述分组发送到所述非虚拟化实体。
2.如权利要求1所限定的方法,其中所述非虚拟化实体包括具有客户地址的物理资源,并且其中所述转换包括将所述网关的提供者地址转换成所述物理资源的客户地址。
3.如权利要求1所限定的方法,其中所述非虚拟化实体包括具有提供者地址的物理资源,并且其中对所述网关的提供者地址的转换包括在客户地址空间中施行网络地址转换。
4.一种用计算机可执行指令编码的计算机可读存储设备,当所述指令由计算设备执行时施行如权利要求1所限定的方法。
5.一种用于控制在虚拟化网络与非虚拟化实体之间的通信的虚拟化网关,包括: 处理设备和用指令编码的存储设备,当所述指令由所述处理设备执行时被配置成: 接收分组,所述分组由所述虚拟化网络中的虚拟机发送给所述非虚拟化实体,并且由所述虚拟机的主机路由到所述网关的提供者地址; 将所述网关的提供者地址转换成所述非虚拟化实体的目的地地址;以及 将所述分组发送到所述非虚拟化实体。
6.如权利要求5所限定的虚拟化网关,其中所述非虚拟化实体包括具有客户地址的物理资源,并且其中所述虚拟化网关被进一步配置成将所述网关的提供者地址转换成所述物理资源的客户地址。
7.如权利要求5所限定的虚拟化网关,其中所述非虚拟化实体包括具有提供者地址的物理资源,并且其中所述虚拟化网关被配置成在客户地址空间中施行网络地址转换。
8.一种用于控制在虚拟化网络与非虚拟化实体之间的通信的方法,包括: 由主机接收分组,所述分组由虚拟机发送给目的地地址处的非虚拟化实体; 由所述主机将所述分组的目的地地址转换成虚拟化网关的提供者地址;以及 由所述主机将所述分组发送到所述虚拟化网关的提供者地址,以用于地址转换和发送到所述非虚拟化实体。
9.如权利要求8所限定的方法,其中转换分组的目的地地址包括访问虚拟网络策略,所述虚拟网络策略包含将非虚拟化实体的目的地地址映射到网关的提供者地址的映射策略。
10.一种用计算机可执行指令编码的计算机可读存储设备,当所述指令由计算设备执行时施行如权利要求8所限定的方法。
【文档编号】G06F9/44GK103733574SQ201180072872
【公开日】2014年4月16日 申请日期:2011年10月11日 优先权日:2011年8月16日
【发明者】M.斯里哈兰, D.A.马尔茨, N.A.文卡塔拉麦亚, P.K.帕特尔, Y-S.王 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1