一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用物理位置修改分布式虚拟网元的行为的制作方法

2021-11-10 03:11:00 来源:中国专利 TAG:

使用物理位置修改分布式虚拟网元的行为
1.本技术是申请日为2015年9月17日、申请号为201580056903.4、发明名称为“使用物理位置修改分布式虚拟网元的行为”的发明专利申请的分案申请。
技术领域
2.本发明公开一般而言涉及使用物理位置修改分布式虚拟网元的行为。


背景技术:

3.网络虚拟化的益处是众所周知的。是允许虚拟化vm网络的产品套件。nsx提供网元作为分布式虚拟网络的基本构建块,网元诸如分布式逻辑交换机(用于提供基于l2的分组转发)和分布式逻辑路由器(用于提供基于l3的分组转发)。
4.分布式逻辑网元(例如,分布式逻辑交换机或路由器)的概念是强大的,因为它允许运营商构建虚拟网络,同时隐藏底层物理网络连接及其限制。底层物理基础设施唯一需要的是能够转发以太网封装的ip帧。
5.分布式逻辑网元在参与逻辑网络的多个物理节点(例如,管理程序)上被实例化。这些节点还在软件中提供统一的分组转发能力。控制平面负责在参与的管理程序节点上配置这些统一策略。这些策略和配置在逻辑层是必须的。换句话说,它们不关心底层物理拓扑结构。这种方法在底层物理网络为所有参与的管理程序提供“统一连接”的情况下良好工作。通过“统一连接”,所有管理程序都连接到具有类似属性(例如延迟、吞吐量等)的网络。


技术实现要素:

6.本发明的一些实施例提供用于网络虚拟化的系统,其中不同物理上下文中的物理网络资源被配置成实现一个或多个分布式逻辑网元,实现分布式逻辑网元的至少一些物理网络资源根据这些网络资源的物理上下文进行配置。在一些实施例中,一些分布式逻辑网元是逻辑转发元件,诸如分布式逻辑交换机和/或分布式逻辑路由器。在一些实施例中,通过在位于不同物理区域(例如,站点或数据中心)的主机上运行的虚拟化软件或管理程序来实现分布式逻辑网元。
7.在一些实施例中,物理区域的本地配置是特别为该物理区域修改的逻辑配置的版本。在一些实施例中,这种修改基于分配给该物理区域的区域标识符。在一些实施例中,本地配置由物理区域本身在本地提供。在一些实施例中,本地配置由集中式网络控制器或管理器提供,其将本地配置传递到物理区域中的每一个。在一些实施例中,本地配置嵌入在整个网络的逻辑配置中,并且取决于物理区域来识别可适用于该物理区域的逻辑配置的部分。该区域的联网和计算资源(例如,主机中的虚拟化软件)又使用分配的区域标识符来识别嵌入在逻辑配置中的可适用的本地配置。
8.不同的实施例不同地使用区域特定的信息来修改分布式逻辑网元的行为。一些实施例使用区域特定的信息来修改下一跳优选项。一些实施例执行ecmp以基于区域特定的信息从vm、mpse和/或mpre中选择下一跳。在一些实施例中,本地修改的配置用于确定vm的布
置。在一些实施例中,vm布置引擎使用区域特定的信息来决定vm的布置,即,基于所有物理区域的区域特定的信息来选择合适的物理区域中的托管vm的合适的主机。
9.前面的发明内容旨在用作对本发明的一些实施例的简要介绍。它并不意味着是本文档中所公开的所有发明性主题的介绍或概述。以下的具体实施方式和具体实施方式参考的附图将进一步描述在发明内容以及其它实施例中描述的实施例。因此,为了理解本文档所描述的所有实施例,需要对发明内容、具体实施方式和附图进行全面地阅读。此外,所要求保护的主题不受在发明内容、具体实施方式和附图中的说明性细节的限制,而是要由所附的权利要求来限定,因为可以在不脱离本主题的精神的情况下以其它特定的形式来体现所要求保护的主题。
附图说明
10.本发明的新颖特征在所附权利要求中阐述。但是,为了解释的目的,在下面的图中阐述了本发明的多个实施例。
11.图1图示其中通过物理元件实现分布式逻辑网元的网络,其中所述物理元件根据这些物理元件的物理上下文分别进行配置。
12.图2概念性地图示在网络的物理区域中可用的联网和计算资源。
13.图3图示在不同区域的主机中运行的虚拟化软件。
14.图4图示使用分配的区域标识符来识别逻辑配置的可适用部分。
15.图5概念性地图示将逻辑配置修改为物理区域处的区域特定的配置。
16.图6a

b概念性地图示用于使用物理位置信息来修改逻辑配置中的分布式逻辑网元的行为的过程。
17.图7概念性地图示当执行ecmp用于决定分布式逻辑网元的下一跳时使用区域特定的修改。
18.图8图示使用区域特定的信息来决定网络中vm的布置的vm布置引擎。
19.图9图示操作虚拟化软件的示例主机。
20.图10概念性地图示实现本发明的一些实施例的电子系统。
具体实施方式
21.在以下描述中,出于解释的目的阐述了许多细节。但是,本领域普通技术人员将认识到的是,可以在不使用这些具体细节的情况下实践本发明。在其它的情况下,众所周知的结构和设备以框图的形式示出,以便防止用不必要的细节模糊本发明的描述。
22.网络虚拟化是强大的,因为它可以让网络运营商不必主动地管理底层物理网络连接和限制。但是,在许多情况下,知道其自己的物理上下文允许管理程序基于其物理上下文来优化其自身的性能和吞吐量,即使在参与用于网络虚拟化的逻辑网元时也是如此。这种物理上下文包括实现管理程序的主机的硬件以及主机位于其中的本地联网环境的硬件。对于位于数据中心的主机,站点的基础设施也构成管理程序的物理上下文。
23.本发明的一些实施例提供用于网络虚拟化的系统,其中不同物理上下文中的物理网络资源被配置成实现一个或多个分布式逻辑网元,实现分布式逻辑网元的至少一些物理网络资源根据这些网络资源的物理上下文进行配置。在一些实施例中,一些分布式逻辑网
元是逻辑转发元件,诸如分布式逻辑交换机和/或分布式逻辑路由器。在一些实施例中,通过在位于不同物理区域(例如,站点或数据中心)的主机上运行的虚拟化软件或管理程序来实现分布式逻辑网元。图1图示其中通过物理元件实现分布式逻辑网元的网络100,其中每一个物理元件根据这些物理元件的物理上下文进行配置。
24.图1包括网络100的逻辑视图101和物理视图102。网络100的逻辑视图是隐藏或封装网络的底层物理现实的系统的逻辑抽象。通过其逻辑抽象来管理网络100使得网络运营商不必管理网络的实际物理特性。在一些实施例中,逻辑视图101反映如根据逻辑配置105定义的网络100的视图。底层物理基础设施进而根据逻辑配置进行配置以便实现网络100。
25.如所图示的,网络的逻辑视图101(或逻辑配置)包括虚拟机(vm)111

118、用于网段a的逻辑交换机(l2转发元件)121、用于网段b的逻辑交换机122、逻辑路由器/网桥(l3转发元件)131,以及边缘网关141。vm 111

114属于网段a并且通过逻辑交换机121互连。vm 115

118属于网段b并且通过逻辑交换机122互连。网段a和b(121和122)通过逻辑路由器/网桥131互连,该逻辑路由器/网桥131又通过边缘网关141连接到互联网。在一些实施例中,网段可以是ip子网(诸如,vlan)或封装覆盖网络(诸如,vxlan)。在一些实施例中,每一个l2网段通过网段标识符(诸如,vni(vxlan网络标识符))被识别或引用。逻辑路由器/网桥131在不同网段121和122之间转发分组。在一些实施例中,逻辑路由器/网桥131通过l3路由(例如,使用目的地l3 ip地址查找目的地vni和目的地l2 mac地址)和/或通过桥接(使用目的地l2 mac地址查找目的地vni)转发分组。
26.在一些实施例中,不考虑底层物理现实地指定逻辑配置。换句话说,如同底层物理基础设施的连接是统一的并且在一个区域中的资源与另一个区域中的资源之间没有区别一样来产生逻辑配置。但是,在一些实施例中,通过位于不同物理位置的网络资源实现逻辑配置,使得每一个分布式逻辑网元(诸如,121、122和131)能够跨越若干物理位置。
27.物理视图102图示实现网络100的逻辑配置的底层物理基础设施。如所图示的,通过四个物理区域191

194(“sfo”、“lax”、“sjc”和“nyc”)实现网络100。四个物理区域191

194通过在一些实施例中由互联网提供的区域间连接180互连。这些区域中的每一个提供一组用于实现虚拟机的计算资源以及用于实现逻辑交换机和路由器/网桥的联网资源。
28.逻辑配置105的逻辑交换机121和122以及逻辑路由器/网桥131跨越四个物理区域。这些逻辑转发元件(121、122和131)中的每一个由这四个区域191

194中的物理转发元件以分布式的方式实现。具体而言,逻辑交换机121由区域191的物理转发元件a1

a2、区域192的a3

a4、区域193的a5

a6和区域194的a7

a8实现。逻辑交换机122由区域191的物理转发元件b1

b2、区域192的b3

b4、区域193的b5

b6以及区域194的b7

b8实现。逻辑路由器/网桥131由区域191的物理转发元件r1

r2、区域192的r3

r4、区域193的r5

r6以及区域194的r7

r8实现。换句话说,转发元件实现在跨越四个物理区域191

194的联网和/或计算资源上。
29.vm 111

118(v1

v8)同样地实现在跨越四个物理区域的计算资源上。具体而言,vm 111

112由“sfo”中的计算资源实现、vm 113

114由“lax”中的计算资源实现、vm 115

116由区域“sjc”(193)中的计算资源实现,并且vm 117

118由区域“nyc”(194)中的计算资源实现。
30.在一些实施例中,每一个物理区域是数据中心,该数据中心包括其自己的互连网
络资源集合。每一个物理位置具有其自己的属性、能力和限制的集合。这样的本地属性可以包括可用的联网和计算资源的数量和类型、连接联网资源的互连的带宽、在联网和计算资源之间发送数据分组的延迟等。不同的物理区域也可以是在地理上分开的,以至于对从一个物理区域行进到另一个物理区域的数据强加明显的延迟。当与数据中心内或计算设备内可用的通信介质相比时,链接不同物理位置的通信介质可能具有有限的速度和吞吐量(例如,互联网)。
31.每一个物理区域与基于物理区域的属性、能力和限制的本地配置的集合相关联。在一些实施例中,当被应用时,物理区域的本地配置修改物理区域的联网和计算资源的行为,使之背离由逻辑配置指定的统一性。在一些实施例中,物理区域的本地配置基于物理区域的区域特定的属性。这与一些实施例中的逻辑配置不同,该逻辑配置对用户隐藏了不同区域的本地特性,并且将整个网络视为统一的资源和连接池。在一些实施例中,区域的本地配置将区域中的物理组件与其它区域中的物理组件进行区分。在一些实施例中,本地配置在某些条件下优选或禁止使用某些网络资源。在一些实施例中,本地配置为来自某些节点的流量保留网络资源。在一些实施例中,本地配置基于网络中的物理组件的性能度量(诸如,延迟、可用的存储器、可用的带宽等)。在一些实施例中,进行本地配置以优化物理区域中的资源使用,以便平衡负载、避免拥塞路由资源、保证带宽或执行等价多径路由(ecmp)。
32.如所图示的,区域191

194(“sfo”、“lax”、“sjc”和“nyc”)的本地配置概念性地图示为分别具有本地配置151、152、153和154。这些本地配置与统一地可适用于所有四个物理区域的网络的逻辑配置(即,逻辑视图101)不同。本地配置151只可适用于区域“sfo”内的资源。本地配置152只可适用于区域“lax”内的资源。本地配置153只可适用于区域“sjc”内的资源。本地配置154只可适用于区域“nyc”内的资源。
33.图2概念性地图示网络100的物理区域191

194(“sfo”、“lax”、“sjc”、“nyc”)中的可用的联网和计算资源。如所图示的,每一个物理区域包括标记为“主机”(区域191中的主机211

213、区域192中的主机221

223、区域193中的主机231

233、以及区域194中的主机241

243)的计算设备的集合。这些计算设备正在运行允许计算资源用作vm的主机的虚拟化软件(标记为“vsw”)。在主机中运行的虚拟化软件根据网络100的逻辑配置105进行配置,这允许主机将逻辑交换机121

122的本地副本和逻辑路由器/网桥131的本地副本实例化为物理转发元件。一些物理区域还包括标记为“tor”(top of rack,机架顶部)或“ph”(物理路由器)的联网设备。这些网络设备执行分组转发任务(l3/l2/桥接),但不操作虚拟化软件。物理区域的主机、tor和ph通过物理区域的区域内连接进行互连。物理区域的计算和路由资源然后通过标记为“gwy”的网关设备连接到互联网。
34.如上所述,除了根据网络100的逻辑配置之外,还根据一组本地配置来配置每一个物理区域的计算和网络资源。如所图示的,物理区域191

194的计算和网络资源(主机、ph、tor等)分别由本地配置151

154进行配置。在一些实施例中,本地配置用于根据每一个区域的本地属性配置每一个物理区域的计算和联网资源。例如,不同区域可以具有不同数量的用作主机的计算设备。不同区域可以具有不同类型的用作主机的计算设备。不同区域可以有不同数量或类型的tor或ph。一个区域的区域内连接可以具有与另一个区域的区域内连接不同的容量或延迟。并且通过区域内连接将分组发送到相同区域的计算或联网资源通常比通过互联网将分组发送到不同区域的计算或联网资源需要更少的延迟。
35.图3图示在不同区域的主机中运行的虚拟化软件。虚拟化软件管理vm的操作以及其对主机的计算资源和网络资源的访问。在一些实施例中,虚拟化软件提供在每一个vm与由底层网络支持的逻辑交换机之间的接口。虚拟化软件可以包括一个或多个软件组件和/或层,可能地包括虚拟机技术领域中已知的作为虚拟机监视器(vmm)、管理程序或虚拟化内核的软件组件中的一个或多个。由于虚拟化术语随着时间的推移而演化并且尚未完全被标准化,因此这些术语并不总是在其所指的软件层和组件之间提供清楚的区别。如本文所使用的,术语“管理程序”旨在一般地指逻辑上介于虚拟机和主机平台之间的软件层或组件。将在下面的第三部分中进一步描述用作主机的计算设备。
36.图3分别图示区域191

194(“sfo”、“lax”、“sjc”和“nyc”)中的四个主机211、221、231和241。这些主机中的每一个正在运行允许它成为网络100的逻辑配置105的一部分的虚拟化软件。虚拟化软件允许其主机在逻辑配置中操作逻辑交换机的本地实例和逻辑路由器/网桥的本地实例。如上所述,逻辑配置105包括逻辑交换机121

122和逻辑路由器/网桥131。主机中的逻辑交换机121的本地实例是用于网段a的l2物理交换元件。主机中的逻辑交换机122的本地实例是用于网段b的l2物理交换元件。主机中的逻辑路由/桥接元件的本地实例是物理路由元件或桥接元件。由于这些物理转发元件由虚拟化软件管理,因此它们也被称为受管理物理交换元件(mpse)和受管理物理路由元件(mpre)。可以在于2013年12月20日提交的标题为“logical router”的美国专利申请no.14/137,862中找到关于mpse、mpre、逻辑路由元件(lre)和逻辑交换元件(lse)的进一步描述。美国专利申请no.14/137,862通过引用被结合于此。
37.根据网络100的逻辑配置105,主机211将mpse 311和321实例化为物理转发元件a1、b1。主机211还将mpre 331实例化为物理转发元件r1。同样通过主机221、231和241中的mpse和mpre的实例化来实现物理转发元件a3、b3、r3、a5、b5、r5、a7、b7、r7。(在一些实施例中,在相同主机中的不同网段的mpse被实现为该主机中的一个mpse。在一些实施例中,这样的mpse通过vni标识符区分不同网段的l2流量)。
38.除了mpse和mpre之外,主机的虚拟化软件还实现特定于物理区域或主机的本地配置。在一些实施例中,区域的主机的虚拟化软件使用特定于该区域的信息来修改下一跳决定。如所图示的,主机211具有特定于区域“sfo”的信息341,并且该主机211使用该区域信息来创建或修改一组下一跳表351。主机211中的mpse 311和mpre 321再使用修改后的下一跳表来选择用于其生成的分组的目的地。同样,主机221、231和241中的mpse和mpre也使用它们各自的本地配置或区域信息来确定下一跳。换句话说,物理区域信息(或本地配置)修改由逻辑配置指定的分布式逻辑网元(mpse和mpre)的行为。
39.下面描述本发明的多个更详细的实施例。第i部分描述实现用于修改分布式逻辑网元的行为的区域特定的配置的方法。第ii部分描述使用区域特定的配置来修改分布式逻辑网元的行为的示例。第iii部分描述实现本发明的一些实施例的示例通信设备。最后,第iv部分描述实现本发明的一些实施例所使用的电子系统。
40.i.实现区域特定的配置
41.不同的实施例不同地实现特定于物理区域的本地配置(或区域特定的配置)。在一些实施例中,物理区域的本地配置是专门为物理区域修改的逻辑配置的版本。在一些实施例中,这种修改基于分配给物理区域的区域标识符。在一些实施例中,本地配置由物理区域
本身本地提供。在一些实施例中,本地配置由集中式网络控制器或管理器提供,其将本地配置传递到每一个物理区域。在一些实施例中,本地配置嵌入在整个网络的逻辑配置中,并且取决于物理区域来识别作为可适用于该物理区域的逻辑配置的部分。该区域的联网和计算资源(例如,主机中的虚拟化软件)又使用分配的区域标识符来识别嵌入在逻辑配置中的可适用的本地配置。
42.逻辑配置的示例部分是用于逻辑路由器(例如,逻辑路由器131)的路由条目的定义,在一些实施例中,该定义是看起来如下的指示/命令/定义/语句:
43.<destination

network/prefix>via nexthop<nh>forward on interface<id>(1)
44.因此,逻辑配置语句“0/0 via nexthop 192.168.1.1 forward on interface lif0”将全局适用于所有物理区域。但是,这个定义没有考虑基于物理区域的任何修饰符。具有基于区域的修饰符的路由条目看起来如下:
45.<destination

network/prefix>via nexthop<nh>0n locale<locale

id>forward on interface<id>
ꢀꢀ
(2)
46.这样的路由条目是允许考虑到区域特定的属性的指示。因此,路由条目“0/0 via nexthop 192.168.1.1 on locale

nyc’forward on interface lif0”是具有区域修饰符“nyc”的路由条目。它是将被识别为特定于区域“nyc”的本地配置的本地配置,同时基于区域id“nyc”而被其它区域忽略。同样,路由条目“0/0 via nexthop 192.168.1.2 on locale

lax

forward on interface lif0”是具有本地修饰符“lax”的路由条目。它将被识别为特定于区域“lax”的本地配置,同时基于区域id“lax”被其它区域忽略。
47.图4图示使用分配的区域标识符来识别逻辑配置的可适用部分。该图图示用于网络100的逻辑配置105,该逻辑配置105包括可适用于所有物理区域的部分以及区域特定的部分。如所图示的,逻辑配置105包括可适用于所有区域的全局可适用部分410。逻辑配置105还分别包括特定于区域191

194(“sfo”、“lax”、“sjc”和“nyc”)的部分411

414。在一些实施例中,逻辑配置的这种区域特定的部分包括具有区域特定的修饰符的指示,诸如上述路由条目(2)。
48.为了使每一个物理位置识别可适用于它们的逻辑配置105的部分,网络管理器150首先将区域标识符分配给物理区域。在一些实施例中,每一个物理区域在网络100的初始配置阶段期间接收其区域标识符。物理区域然后使用接收到的区域id来识别和应用逻辑配置的可适用部分,同时忽略只可适用于其它物理区域的逻辑配置的部分。换句话说,每一个物理区域使用物理区域标识符作为过滤器来仅接受和应用逻辑配置的相关部分。例如,区域“sfo”(191)使用其分配的区域标识符来仅接受全局配置410和特定于区域“sfo”的部分411。在一些实施例中,特定于物理区域的逻辑配置的部分由该物理区域的标识符标记,因此每一个物理区域通过将其自己接收到的物理区域id与标记逻辑配置的不同部分的区域id进行比较来识别逻辑配置的相关部分。下面通过参考图6a描述用于识别逻辑配置的区域特定的部分作为本地配置的过程。
49.图4还概念性地图示用于物理区域中的每一个的过滤器(分别用于区域191

194的区域过滤器421

424),过滤器使用其物理区域的区域id来透进(filter

in)用于其区域的逻辑配置的相关部分。在一些实施例中,由区域内的联网和计算资源(诸如,通过主机的虚
拟化软件)来执行对用于物理区域的逻辑配置的过滤。在一些实施例中,由每一个区域中的本地配置管理器执行对逻辑配置的过滤。
50.如上所述,在一些实施例中,物理区域的本地配置是专门为物理区域修改的逻辑配置的版本。在这些实施例中的一些实施例中,在物理区域自身处基于其区域特定的属性来执行至少一些修改。图5概念性地图示将逻辑配置修改成物理区域处的区域特定的配置。如所图示的,网络管理器150将逻辑配置105传递到物理区域191

194中的每一个。物理区域中的每一个然后基于特定于该区域的信息或属性对接收到的逻辑配置执行本地修改,以产生特定于该区域的本地配置的集合。例如,区域“sfo”(191)基于sfo特定的信息521将逻辑配置105修改成sfo特定的本地配置511。修改由本地修改模块501执行,在一些实施例中,本地修改模块501是在物理区域191的主机中操作的虚拟化软件的一部分。
51.在一些实施例中,区域特定的信息(例如,“sfo”本地信息521)包括由网络管理器150提供的与该区域相关的逻辑配置的部分,诸如如上所述的逻辑配置的区域特定的部分411

414或用于逻辑路由器的区域特定的路由条目。在一些实施例中,区域特定的信息包括物理区域(例如,数据中心)的静态网络拓扑结构,在其中网络管理器具有这种信息的一些实施例中,该信息由中央网络管理器提供。在一些实施例中,区域特定的信息由本地网络管理器(例如,物理区域“sfo”191的本地管理器531)本地供应。在一些实施例中,本地供应的信息包括物理区域的静态网络拓扑结构。在一些实施例中,本地供应的信息包括实时更新的物理区域的动态网络度量(诸如,延迟、可用的存储器、可用的带宽等)。在下面参考图6b描述用于基于区域特定的信息修改逻辑配置的过程。
52.对于一些实施例,图6a

b概念性地图示用于使用物理位置信息来修改逻辑配置中的分布式逻辑网元的行为的过程。图6a概念性地图示用于使用物理区域标识符来识别逻辑配置的区域特定的部分(或具有特定区域修饰符的配置定义)的过程601。图6b概念性地图示用于基于区域特定的信息来修改逻辑配置的过程602。在一些实施例中,由物理区域中的主机的虚拟化软件执行过程601和602。
53.一些实施例根据逻辑配置在网络的初始配置期间执行过程601。例如,当网络管理器150根据逻辑配置105配置底层物理硬件时,物理区域191

194中的主机(即,其虚拟化软件)执行过程601。
54.当过程601从网络管理器接收到(在610处)区域标识符时,过程601开始。区域标识符是网络管理员分配给包括运行该过程的主机的物理区域的标识符。该过程然后从网络管理器接收(在620处)逻辑配置。在一些实施例中,该过程通过与网络管理器通信的控制平面接收区域标识符和逻辑配置。
55.接下来,该过程基于接收到的分配给主机的物理区域的区域id来识别(在630处)逻辑配置的可适用部分。在一些实施例中,该过程对逻辑配置进行过滤以仅接受逻辑配置的相关部分,即,或者是全局适用于所有物理位置的部分或者是由匹配区域id标记的部分。在一些实施例中,逻辑配置的相关部分是通过区域id修改的配置定义/语句/指示(例如,区域id修改后的路由条目(2))。
56.最后,该过程通过应用被识别为与这个物理区域相关的逻辑配置的部分来配置(在640处)分布式逻辑网元(例如,mpse和mpre)。在一些实施例中,逻辑配置的全局可适用部分实例化分布式逻辑网元,而逻辑配置的区域特定的部分修改实例化的分布式逻辑网元
的行为。然后过程601结束。
57.过程601是用于在网络的初始配置期间基于由网络管理器提供的信息来配置物理区域的过程。另一方面,过程602是用于修改接收到的逻辑配置的过程。一些实施例在初始配置之后通过基于区域特定的信息修改接收到的逻辑配置来执行过程602,该区域特定的信息在一些实施例中包括物理区域的角度的网络拓扑和/或由物理区域提供的静态/动态网络性能度量。一些实施例在初始配置期间或在初始配置之后立即执行过程602。
58.过程602在初始配置期间从网络管理器接收(在650处)逻辑配置。过程602然后识别(在660处)区域特定的信息。在一些实施例中,过程602识别由中央网络管理器传输的配置数据内的区域特定的信息。在一些实施例中,过程602从在物理区域处本地可用的信息(诸如,区域的动态实时性能度量或区域的网络拓扑结构)识别区域特定的信息。
59.然后,该过程基于识别出的区域特定的信息修改(在670处)逻辑配置。该过程然后通过应用修改后的逻辑配置来配置(在680处)逻辑配置中的分布式逻辑网元。例如,在一些实施例中,该过程通过基于识别出的区域信息修改mpse或mpre的下一跳优选项(因此修改mpse/mpre的行为)来修改逻辑配置。在一些实施例中,区域特定的信息包括允许分布式逻辑网元选择或避免特定节点作为下一跳的关于区域中的联网资源的信息。在应用修改后的逻辑配置之后,过程602结束。
60.ii.区域特定的配置的使用例
61.不同的实施例不同地使用区域特定的信息来修改分布式逻辑网元的行为。例如,如上所述,一些实施例使用区域特定的信息来修改下一跳优选项。具体而言,一些实施例执行ecmp以从vm、mpse和/或mpre中选择下一跳。区域特定的信息或修改后的逻辑配置允许对于这些全局配置的分布式逻辑网元的下一跳选择基于对网络的中央运营商隐藏的本地信息来操作。
62.对于一些实施例,图7概念性地图示当为了决定分布式逻辑网元的下一跳执行ecmp时使用区域特定的修改。该图图示基于区域191“sfo”的区域特定的信息来修改vm 112(v2)和mpse 311(a1)的逻辑配置(因为v2和a1两者都实例化在区域191的主机中)。
63.如所图示的,网络100的逻辑配置105包括用于vm 112(v2)的下一跳表701和用于mpse 311(a1)的下一跳表702以及其它。vm 112属于网段b,并且因此逻辑交换机b 122的所有mpse(b1

b8)都适合用于vm 112的下一跳。mpse 311(a1)是用于网段a的逻辑交换元件121(逻辑交换机a)的实例化。由于逻辑路由器131是逻辑交换机a的下一跳,因此属于逻辑路由器131的所有mpre(r1

r8)都适合用于mpse 311的下一跳。但是,这些适合的跳是严格地从逻辑配置的角度确定的,而没有考虑任何区域特定的信息。
64.逻辑配置111的内容由区域“sfo”的区域特定的修改模块501进行处理。模块501使用特定于区域“sfo”的信息(本地信息521)来修改用于在物理区域“sfo”的主机中运行的分布式逻辑网元(mpse和mpre)的逻辑配置105。在一些实施例(未示出)中,区域特定的修改是基于由网络管理器分配的区域id识别的逻辑配置的相关部分。区域特定的修改模块501产生用于vm 112(v2)的区域修改后的配置711和用于mpse 311(a1)的区域修改后的配置712。
65.区域修改后的配置区分分布式逻辑网元的可能的不同的下一跳。具体而言,修改后的配置711基于可能的下一跳b1

b8与vm 112(v2)的分离来区分可能的下一跳b1

b8,而修改后的配置712基于可能的下一跳b1

b8与mpse 311(a1)的分离来区分可能的下一跳r1

r8。区域特定的信息521使得这些区分成为可能,特定于区域的信息521识别这个物理区域/数据中心中的下一跳相对于其它物理区域/数据中心中的下一跳。例如,修改后的配置711将b1和b2识别为与v2相同的数据中心中(也在区域“sfo”中)的下一跳,将b5和b6识别为在附近数据中心(在区域“sjc”)中的下一跳,将b3、b4、b7和b8识别为远或很远(区域“lax”或“nyc”)的下一跳。基于该信息,用于vm 112的ecmp模块721将能够进行基于区域特定的信息优化(例如,通过赞成(favoring)或为靠近或在相同数据中心的下一跳加权)的下一跳选择决定。ecmp模块722同样基于区分作为下一跳的r1

r8的区域信息做出下一跳决定(r1和r2与a1在相同的数据中心,r5和r6在附近的数据中心,r3、r4、r7、r8在远处的数据中心)。
66.修改后的配置712是使用区域特定的参数(即,与当前区域的地理分离)来特征化可能的下一跳的示例本地配置。图7还图示使用其它区域特定的参数来特征化可能的下一跳的其它示例修改后的配置(762和772)。
67.修改后的配置762报告到达/来自mpse 311(a1)的可能的下一跳r1

r8的延迟。ecmp模块722然后可以使用报告的延迟来选择下一跳。如所图示的,下一跳r1和r2具有最小的延迟(可能是因为它们在相同区域“sfo”中),而下一跳r7和r8具有最大的延迟(可能是因为它们在遥远的区域“nyc”中)。在一些实施例中,在修改后的配置762中报告的延迟度量是基于由该区域的物理硬件获得的实时测量。在一些实施例中,报告的延迟度量是可以由数据中心本地提供或由中央网络管理器(例如,150)集中提供的历史平均值。
68.修改后的配置772指定与可能的下一跳中的每一个相关联的指示或命令。如所图示的,对于来自mpse a1的流量,r3、r4、r7和r8被指定为“禁止”,而r2被指定为“优选”。r1具有说明“为v1预留”的指示,使得只有源自vm 111(v1)的流量可以使用r1作为下一跳。某些实施例使用诸如这些的指示以通过例如为来自特定vm的流量预留联网资源来保证用于特定vm的带宽。在一些实施例中,可以由数据中心本地指定或由网络管理器(例如,150)集中指定这样的指示。
69.在一些实施例中,当选择下一跳时,不同类型的修改后的配置由ecmp模块联合使用。例如,当选择下一跳时,ecmp模块722可以使用来自修改后的配置712、762和772中的任何或全部的信息。虽然未图示,但是也可以使用其它区域特定的参数(例如,计算设备的存储容量、处理器速度等)来特征化下一跳。更一般而言,可以使用不同的区域特定的参数来修改分布式逻辑网元的行为或修改由网络管理器集中指定的统一/全局逻辑配置。
70.在一些实施例中,使用本地修改后的配置确定vm的布置。如上所述,逻辑网络可能跨越不同地理位置中的若干数据中心。在一些实施例中,逻辑网络的运营商或用户不指定或关心哪个数据中心中的哪个主机正在托管vm,但是vm布置引擎使用区域特定的信息来决定vm的布置(即,基于所有物理区域的区域特定的信息在托管vm的合适的物理区域中选择合适的主机)。
71.对于一些实施例,图8图示使用区域特定的信息来决定网络中vm的布置的vm布置引擎810。该图图示在两个阶段801

802中基于区域特定的信息的vm布置。
72.在第一阶段801处,vm布置引擎810接收用于区域191

194(“sfo”、“lax”、“sjc”和“nyc”)的区域特定的信息521

524。在一些实施例中,这种信息由物理区域(数据中心)本身生成和提供。在一些实施例中,这种信息由网络管理器(例如,150)集中维护和提供。vm布置引擎810还从网络100的逻辑配置105接收需要被布置的vm的列表。
73.在第二阶段802处,vm布置引擎810将由逻辑配置指定的vm分配到不同物理区域中的主机。当为vm选择区域和主机时,vm布置引擎检查区域特定的信息。在一些实施例中,逻辑配置中的一些或所有vm中的每一个都与要求的唯一集合相关联,并且布置引擎再基于vm的要求和区域的特定属性为这些vm找到最合适的主机和物理区域。例如,特定的vm可能需要某种带宽保证,并且vm布置引擎将再使用区域特定的信息来识别可以提供必需带宽的物理区域和主机。在一些实施例中,这种区域特定的信息可以包括在具有足够带宽以处理有保证的带宽要求的特定主机上运行的特定分布式逻辑网元(mpse或mpre)的标识。
74.虽然未图示,但是在一些实施例中,vm布置引擎在决定vm的布置之后向每一个区域发送指示。在一些实施例中,这种指示也是区域特定的,诸如在区域中为特定vm预留特定的联网或计算资源,或者对于特定的分布式逻辑网元要求特定的下一跳等。在一些实施例中,这种指令或命令的传递依赖于由网络管理器分配给区域的区域id,如以上参考图4所描述的那样。
75.iii.计算设备
76.如前所述,由在作为主机的计算设备上运行的虚拟化软件或管理程序实现本发明的一些实施例。对于一些实施例,图9示出了操作虚拟化软件905的示例主机900。虚拟化软件905允许主机托管虚拟机911

914以及将虚拟机连接到物理网络990。这个物理网络990可以跨越一个或多个数据中心,并且包括各种物理交换机和路由器。
77.如所图示的,主机900能够通过物理nic(pnic)995访问物理网络990。虚拟化软件905用作托管的vm 911

914与物理nic 995(以及其它物理资源,诸如处理器和存储器)之间的接口。vm中的每一个包括用于通过虚拟化软件905访问网络的虚拟nic(vnic)。vm中的每一个vnic负责在vm和虚拟化软件905之间交换分组。在一些实施例中,vnic是由虚拟nic仿真器实现的物理nic的软件抽象。
78.虚拟化软件905管理vm 911

914的操作,并且包括用于管理vm对物理网络的访问(在一些实施例中通过实现vm所连接到的逻辑网络)的多个组件。如所图示的,虚拟化软件905包括物理交换元件920、物理路由元件930、控制器接口940、上行链路模块970以及区域特定的配置模块950。
79.控制器接口940从控制器或控制器的集群960接收控制平面消息。在一些实施例中,这些控制平面消息包括用于配置虚拟化软件和/或虚拟机的各种组件(诸如,物理交换元件920和物理路由元件930)的配置数据。在一些实施例中,控制平面消息还包括来自中央网络管理器或本地网络管理器的区域特定的配置信息。
80.物理交换元件920(或受管理物理交换元件mpse)向对接物理网络990的物理nic 995传递网络数据并且从该物理nic 995传递网络数据。物理交换元件还包括数个虚拟端口(vports),该虚拟端口将物理nic与vm 911

914、物理路由元件930和控制器接口940通信地互连。在一些实施例中,每一个虚拟端口与唯一的l2 mac地址相关联。物理交换元件在连接到其虚拟端口的任何两个网元之间执行l2链路层分组转发。物理交换元件还在连接到其虚拟端口中的任何一个端口的任何网元和物理网络990上可达的l2网元(例如,在另一个主机上运行的另一个vm)之间执行l2链路层分组转发。
81.物理路由元件930(或受管理物理路由元件mpre)对从物理交换元件920上的虚拟端口接收到的数据分组执行l3路由(例如,通过执行l3 ip地址到l2 mac地址解析)。在一些
实施例中,物理路由元件930附接到的虚拟端口是汇点端口(sink port)。每一个路由的数据分组然后被发送回到物理交换元件920,以根据解析的l2mac地址被转发到其目的地。这个目的地可以是连接到物理交换元件920上的虚拟端口的另一个vm,或物理网络990上可达的l2网元(例如,在另一个主机上运行的另一个vm、物理非虚拟化机器等)。
82.区域特定的配置模块950存储特定于主机的物理区域的信息。该信息可用于物理交换元件920和物理路由和桥接元件930,其使用该区域特定的信息来修改其行为,例如通过赞成或不赞成特定的下一跳。在一些实施例中,区域特定的配置模块使用区域标识符来确定从控制器接口940接收到的数据是否是可适用于这个主机的区域特定的配置数据。在这些实施例的一些实施例中,区域特定的配置模块950充当过滤器,并且仅允许使用相关配置数据来修改物理交换元件920和物理路由元件930的行为。
83.上行链路模块970在物理交换元件920和物理nic 995之间中继数据。在一些实施例中,上行链路模块970允许主机900用作封装覆盖网络(诸如,vxlan和vlan)的隧道端点。vxlan是覆盖网络封装协议。由vxlan封装创建的覆盖网络有时被称为vxlan网络,或简称为vxlan。当主机900上的vm将数据分组(例如,以太网帧)发送到相同vxlan网络中但在不同主机上的另一个vm时,在将分组发送到物理网络之前,上行链路模块970使用vxlan网络的vni和vtep的网络地址来封装数据分组。通过物理网络(即,封装使得底层分组对于介于中间的网元透明)将分组隧道化到目的地主机。上行链路模块970还对传入的vxlan分组进行解封装,并只将原始的内部数据分组转发到目的地vm。
84.在本文档中,术语“分组”是指跨网络发送的特定格式的比特集合。本领域普通技术人员将认识到的是,术语分组在本文中可以用于指可以跨网络发送的各种格式化的比特集合,诸如以太网帧、tcp段、udp数据报、ip分组等。
85.本说明书贯穿本文涉及包括虚拟机(vm)的计算和网络环境。但是,虚拟机只是数据计算节点(dcn)或数据计算端节点(也被称为可寻址节点)的一个示例。dcn可以包括非虚拟化物理主机、虚拟机、在不需要管理程序或单独的操作系统的情况下在主机操作系统之上运行的容器、以及管理程序内核网络接口模块。
86.在一些实施例中,vm使用由虚拟化软件(例如,管理程序、虚拟机监视器等)虚拟化的主机的资源在主机上利用其自己的客户操作系统操作。租户(即vm的所有者)可以选择在客户操作系统之上要操作哪些应用。另一方面,一些容器是在不需要管理程序或单独的客户操作系统的情况下在主机操作系统之上运行的结构。在一些实施例中,主机操作系统使用名称空间将容器彼此隔离,并且因此提供在不同容器内操作的不同应用组的操作系统级隔离。这种隔离类似于在虚拟化系统硬件的管理程序虚拟化环境中提供的vm隔离,并且因此可以被视为将在不同容器中操作的不同应用组隔离的一种虚拟化形式。这种容器比vm更轻巧。
87.在一些实施例中,管理程序内核网络接口模块是非

vm dcn,该非

vm dcn包括具有管理程序内核网络接口和接收/发送线程的网络堆栈。管理程序内核网络接口模块的一个示例是作为vmware公司的esxi
tm
管理程序的一部分的vmknic模块。
88.本领域普通技术人员将认识到的是,虽然本说明书提到vm,但是给出的示例可以是任何类型的dcn,包括物理主机、vm、非

vm容器和管理程序内核网络接口模块。事实上,在一些实施例中,示例网络可以包括不同类型的dcn的组合。
89.iv.电子系统
90.许多上述特征和应用被实现为软件过程,该软件过程被指定为记录在计算机可读存储介质(也被称为计算机可读介质)上的指令的集合。当这些指令被一个或多个处理单元(例如,一个或多个处理器、处理器核心、或其它处理单元)执行时,指令使得(一个或多个)处理单元执行在指令中指示的动作。计算机可读介质的示例包括但不限于,cd

rom、闪存驱动器、ram芯片、硬盘驱动器、eprom等。计算机可读介质不包括无线或通过有线连接传递的载波和电子信号。
91.在本说明书中,术语“软件”意在包括驻留在只读存储器中的固件或者可以被读入到存储器中用于被处理器处理的存储在磁存储设备中的应用。此外,在一些实施例中,若干软件发明可以被实现为更大程序的子部分,同时保持明显的软件发明。在一些实施例中,若干软件发明也可以被实现为单独的程序。最后,一起实现本文所描述的软件发明的单独程序的任意组合是在本发明的范围之内。在一些实施例中,当软件程序被安装以在一个或多个电子系统上操作时,该软件程序定义执行该软件程序的操作的一个或多个特定的机器实现。
92.图10概念性地图示实现本发明的一些实施例所使用的电子系统1000。电子系统1000可以用于执行任何控制、虚拟化或上述操作系统应用。电子系统1000可以是计算机(例如,台式计算机、个人计算机、平板计算机、服务器计算机、大型机、刀片计算机等)、电话、pda或任何其它种类的电子设备。这种电子系统包括用于各种其它类型的计算机可读介质的各种类型的计算机可读介质和接口。电子系统1000包括总线1005、(一个或多个)处理单元1010、系统存储器1025、只读存储器1030、永久存储设备1035、输入设备1040、以及输出设备1045。
93.总线1005统一地表示通信连接电子系统1000的众多内部设备的所有系统、外设和芯片组总线。例如,总线1005将(一个或多个)处理单元1010与只读存储器1030、系统存储器1025、永久存储设备1035通信地连接。
94.从这些各种存储器单元中,(一个或多个)处理单元1010检索要执行的指令和要处理的数据,以便执行本发明的过程。(一个或多个)处理单元在不同实施例中可以是单个处理器或多核处理器。
95.只读存储器(rom)1030存储(一个或多个)处理单元1010和电子系统的其它模块所需的静态数据和指令。另一方面,永久存储设备1035是读与写(read

and

write)存储器设备。这个设备是即使当电子系统1000关闭时也存储指令和数据的非易失性存储单元。本发明的一些实施例使用大容量存储设备(诸如,磁盘或光盘及其对应的盘驱动器)作为永久存储设备1035。
96.其它实施例使用可移除存储设备(诸如,软盘、闪存驱动器等)作为永久存储设备。与永久存储设备1035相同,系统存储器1025是读与写存储器设备。但是,与存储设备1035不同,系统存储器是易失性读与写存储器,诸如随机存取存储器。系统存储器存储处理器在运行时需要的一些指令和数据。在一些实施例中,本发明的过程被存储在系统存储器1025、永久存储设备1035和/或只读存储器1030中。从这些各种存储器单元中,(一个或多个)处理单元1010检索要执行的指令和要处理的数据,以便执行一些实施例的过程。
97.总线1005还连接到输入设备和输出设备1040和1045。输入设备使得用户能够向电
子系统传递信息并且选择到电子系统的命令。输入设备1040包括字母数字键盘和定点设备(也称为“光标控制设备”)。输出设备1045显示由电子系统生成的图像。输出设备包括打印机和显示设备,诸如阴极射线管(crt)或液晶显示器(lcd)。一些实施例包括诸如用作输入设备和输出设备两者的触摸屏的设备。
98.最后,如在图10中所示的,总线1005还通过网络适配器(未示出)将电子系统1000耦合到网络1065。以这种方式,计算机可以是计算机的网络(诸如,局域网(“lan”)、广域网(“wan”)、或内联网、或诸如互联网的网络的网络)的一部分。电子系统1000的任何或所有组件可以与本发明结合使用。
99.一些实施例包括电子组件,诸如微处理器、在机器可读介质或计算机可读介质(可替代地称为计算机可读存储介质、机器可读介质或机器可读存储介质)中存储计算机程序指令的存储设备和存储器。这种计算机可读介质的一些示例包括ram、rom、只读压缩盘(cd

rom)、可记录压缩盘(cd

r)、可重写压缩盘(cd

rw)、只读数字多功能盘(例如,dvd

rom,双层dvd

rom)、各种可记录/可重写dvd(例如,dvd

ram、dvd

rw、dvd rw等)、闪存(例如,sd卡、小型sd卡、微型sd卡等)、磁盘驱动器和/或固态硬盘驱动器、只读盘和可记录盘、超密度光盘、任何其它光介质或磁介质、以及软盘。计算机可读介质可以存储可由至少一个处理单元执行的并且包括用于执行各种操作的指令的集合的计算机程序。计算机程序或计算机代码的示例包括机器代码(诸如由编译器产生),以及包括由计算机、电子组件、或使用解释器的微处理器执行的更高级代码的文件。
100.虽然以上讨论主要涉及执行软件的微处理器或多核处理器,但是一些实施例通过一个或多个集成电路(诸如,专用集成电路(asic)或现场可编程门阵列(fpga))来执行。在一些实施例中,这种集成电路执行在电路自身上存储的指令。
101.如在本说明书中所使用的,术语“计算机”、“服务器”、“处理器”、以及“存储器”都是指电子设备或其它技术设备。这些术语不包括人或人群。出于本说明书的目的,术语显示或正在显示意味着在电子设备上显示。如本说明书中所使用的,术语“计算机可读介质”、“多个计算机可读介质”和“机器可读介质”被完全限制到以计算机可读的形式存储信息的有形的物理对象。这些术语不包括任何无线信号、有线下载信号、以及任何其它短暂信号。
102.虽然已经参考许多特定细节描述本发明,但是本领域普通技术人员将认识到的是,在不脱离本发明的精神的情况下,可以以其它特定形式体现本发明。此外,数个图(包括图6a

b)概念性地图示了过程。可以不以与所示出和描述的确切顺序执行这些过程的特定操作。可以不在一系列连续的操作中执行特定操作,并且可以在不同的实施例中执行不同的特定操作。此外,可以使用多个子过程实现过程,或者作为较大的宏过程的一部分来实现过程。因此,本领域普通技术人员将理解的是,本发明不受上述说明性细节的限制,而是由所附的权利要求限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献