用于支持多租户集群环境中的分区感知路由的系统和方法与流程

文档序号:11455638阅读:475来源:国知局
用于支持多租户集群环境中的分区感知路由的系统和方法与流程

版权声明

本专利文档公开的一部分包含受版权保护的素材。版权拥有者不反对任何人对专利文档或专利公开按照在专利商标局的专利文件或记录中出现那样进行的传真复制,但是除此之外在任何情况下都保留所有版权。

本发明一般而言涉及计算机系统,并且具体而言,涉及多租户(multi-tenant)集群环境。



背景技术:

多租赁允诺对可用系统资源的高利用率,并且有助于维护服务提供商的成本有效(costeffective)的操作。然而,多租户高性能计算(hpc)基础设施带来了独特的挑战,这些挑战与向租户提供性能隔离以及实现跨网络架构的高效负载平衡这二者关联。



技术实现要素:

系统和方法可以支持多租户集群环境中的分区感知(partition-aware)路由。示例性方法可以支持多租户集群环境内的一个或多个租户。该方法可以将一个或多个租户中的每个租户与多个分区中的分区关联。然后该方法可以将该多个分区中的每个分区与多个节点中的一个或多个节点关联,该多个节点中的每个节点与多个交换机中的一叶子交换机关联,该多个交换机包括多个叶子交换机和多个根交换机。最后,该方法可以生成一个或多个线性转发表,这一个或多个线性转发表提供多个分区之间的隔离,其中这多个节点中的每个节点与一分区次序关联。

根据实施例,在多租户hpc系统中,每个租户可以经历可预测的网络性能,而不受其他租户的工作负载的影响。

附图说明

图1示出了根据实施例的多租户集群环境的图示。

图2示出了在其中可以实践本公开的实施例的网络环境中的树形拓扑的图示。

图3示出了在其中可以实践本公开的实施例的多租户集群环境中的路由的图示。

图4示出了在其中可以实践本公开的实施例的多租户集群环境中的路由的图示。

图5示出了根据实施例的支持多租户集群环境中的分区感知路由的图示。

图6示出了根据实施例的支持多租户集群环境中的分区感知路由的图示。

图7示出了根据实施例的支持多租户集群环境中的分区感知路由的图示。

图8示出了根据实施例的支持多租户集群环境中的分区感知路由的图示。

图9示出了根据实施例的用于支持多租户集群环境中的分区感知路由的方法的图示。

具体实施方式

在下面的详细描述中,将通过举例而不是限制的方式在附图的图中说明本发明。应当指出,在本公开中对“一”或“一个”或“一些”实施例的引用不一定是对相同的实施例,并且这种引用意味着至少一个实施例。虽然讨论了具体的实现,但是应当理解,具体实现仅仅是为了说明的目的而提供的。相关领域的技术人员将认识到,在不背离本发明的范围和精神的情况下,可以使用其它部件和配置。

在整个附图和详细描述中,使用共同的引用标号来指示相同的元件;因此,如果在其它地方对元件进行了描述,则图中所使用的引用标号可以在特定于这个图的具体描述中引用,或者可以不在特定于这个图的具体描述中引用。

本发明的以下描述使用infinibandtm(ib)网络作为高性能网络的示例。对于本领域技术人员将清楚的是,可以使用其它类型的高性能网络而不受限制。以下描述还使用胖树拓扑作为架构拓扑的示例。对于本领域技术人员将清楚的是,可以使用其它类型的架构拓扑而不受限制。

infinibandtm

infinibandtm(ib)是由infinibandtm贸易协会开发的开放标准无损网络技术。该技术基于提供高吞吐量和低延迟通信的串行点对点全双工互连,尤其适用于hpc应用和数据中心。

infinibandtm体系结构(iba)支持双层拓扑划分。在下层,ib网络被称为子网,其中子网可以包括使用交换机和点对点链路互连的一组主机。在上层,ib架构构成一个或多个子网,该一个或多个子网可以使用路由器互连。

在子网内,使用交换机和点对点链路来连接主机。此外,存在一个主管理实体——子网管理器(sm),它驻留在子网中的指定的子网设备上。子网管理器负责配置、激活和维护ib子网。此外,子网管理器(sm)可以负责执行ib架构中的路由表计算。在这里,例如,ib网络的路由的目的在于本地子网中的所有源和目的地对之间的恰当的负载平衡。

通过子网管理接口,子网管理器与子网管理代理(sma)交换被称为子网管理数据包(smp)的控制数据包。子网管理代理驻留在每个ib子网设备上。通过使用smp,子网管理器能够发现架构,配置端节点和交换机,以及接收来自sma的通知。

一般而言,除主子网管理器之外的所有其它子网管理器都在待机模式下起作用以用于容错。然而,在主子网管理器发生故障的情景中,由待机的子网管理器协商新的主子网管理器。主子网管理器还执行对子网的周期性扫描(sweep),以检测任何拓扑变化并相应地重新配置网络。

此外,子网内的主机和交换机可以使用本地标识符(lid)来寻址,并且单个子网可以被限制为49151个lid。除了作为在子网内有效的本地地址的lid,每个ib设备还可以具有被烧录到其非易失性存储器中的64位全局唯一标识符(guid)。guid可以被用于形成全局标识符(gid),全局标识符是ib层三(l3)地址。可以通过将64位子网标识符(id)与64位guid串接以形成类似于ipv6的128位地址来创建gid。例如,可以将不同的端口guid指派给连接到ib架构的端口。

在网络初始化时,sm可以计算路由表(即,树内的每对节点之间的连接/路由)。此外,无论何时拓扑改变,路由表都可以被更新,以便确保连接性和最佳性能。在正常操作期间,sm可以执行对网络的周期性轻扫描(lightsweep)以检查拓扑变化。如果在轻扫描期间发现变化,或者如果sm接收到发信号通知网络变化的信息(陷阱),则sm可以根据所发现的变化重新配置网络。

例如,当网络拓扑改变时,诸如当链路断开时、当添加设备时或者当链路被移除时,sm可以重新配置网络。重新配置步骤可以包括在网络初始化期间执行的步骤。此外,重新配置可以具有限于在其中发生网络变化的子网的局部范围。而且,使用路由器对大型架构的分段会限制重新配置的范围。

ib系统中的多租赁

从联网角度来看,经由分区的多租赁可以提供对网络资源的高利用率,并有助于维护服务提供商的成本有效的操作。然而,多租户基础设施还强加了若干重要的安全问题,最具挑战性的安全问题之一是与为租户提供性能隔离关联的。应当向每个租户提供可预测的网络性能,而不受系统中其他租户的工作负载的影响。ib系统中的网络隔离可以通过分区来提供。

根据实施例,分区是端口的逻辑组,使得组的成员只能与同一组的其他成员通信。在主机通道适配器(hca)和交换机处,可以使用分区成员资格信息来过滤数据包以实施隔离。数据包一到达传入端口,就可以丢弃具有无效分区信息的数据包。在多租户ib系统中,分区可以被用于创建租户集群。在分区实施到位的情况下,节点不可以与属于不同租户集群的其它节点通信。以这种方式,即使在存在受损租户节点或恶意租户节点的情况下,也可以保证系统的安全性。

ib路由一般可以基于存储在交换机中的线性转发表(lft)。lft是由子网管理器(sm)在不考虑分区信息的情况下计算的。因此,中间网络链路可能携带属于不同分区的流量。中间链路的这种共享可能导致分区干扰。因此,租户体验不可预测的网络性能。此外,在分区的子网中路由算法的平衡特征也受到影响。这是因为,即使跨越分区边界的链路不用于用户流量,这些链路也与其它起作用的链路以相同的方式被路由(并且因此在平衡中被考虑)。变差的平衡会导致缩减的有效带宽和次优的网络利用率。

ib一般提供服务质量(qos)特征,该服务质量特征可以被用于向每个分区保证可用带宽的份额而无论其它分区中的节点如何。然后通过给每个分区指派被称为服务层级(sl)的可用的差异化的流量类别来提供带宽保证。然后根据sl到虚拟道(virtuallane,vl)映射表将每个sl映射到链路上可用的十五个vl中的一个。

在将sl指派给分区时可能出现问题,这是因为系统只可以利用15个vl在网络中创建不同的分区,而ib网络一般可以具有大量的分区(例如,每个端口可以是最多达32768个分区的成员)。此外,在现有的ib硬件中,常见的是只支持九个vl(包括为子网管理保留的一个vl)。另外,由于sl是稀缺资源,所以可能期望尽可能多地留出它们以用于其它目的,例如,用以在网络中提供容错或服务差异化。

ib体系结构

根据实施例,ib是由ibta(infinibandtradeassociation,infiniband贸易协会)开发的开放标准无损网络技术。该技术定义了提供高吞吐量和低延迟通信的串行点对点全双工互连。ib网络可以由使用路由器互连的一个或多个子网组成。在子网内,使用交换机和点对点链路连接主机。在每个ib子网内,可以存在一个主管理实体——驻留在任何指定的子网设备上的子网管理器(sm),该子网管理器配置、激活和维护该ib子网。

通过子网管理接口,sm与驻留在每个ib设备上的子网管理代理(sma)交换被称为子网管理数据包(smp)的控制数据包。通过使用smp,sm能够发现架构、配置端节点和交换机,以及接收来自sma的通知。sm还可以执行对子网的周期性轻扫描,以检测任何拓扑变化并相应地重新配置网络。

根据实施例,ib网络中的子网内路由可以基于存储在交换机中的lft。lft由sm根据使用中的路由机制计算。在子网中,所有交换机以及端节点上的所有hca端口都使用本地标识符(lid)来寻址。lft中的每个条目由目的地lid(dlid)和输出端口组成。支持表中每个lid仅一个条目。当数据包到达交换机时,它的输出端口是通过在该交换机的转发表中查找dlid来确定的。路由是确定性的,因为数据包在给定的源-目的地对(lid对)之间采用网络中的相同的路径。

根据实施例,分区是由ib支持的、用于提供共享网络架构的系统的逻辑组的隔离的安全机制。架构中的节点上的每个hca端口可以是一个或多个分区的成员。分区成员资格由集中式分区管理器管理,该集中式分区管理器可以是sm的一部分。sm可以将关于每个端口的分区成员资格信息配置为16位分区键(p键)的表。sm还可以利用包含与lid关联的p键信息的分区实施表来配置交换机和路由器。

根据实施例,对于节点之间的通信,除了管理队列对(qp0和qp1)之外,可以将队列对(qp)和端到端上下文(eec)指派给特定分区。然后可以将p键信息添加到所发送的每个ib传送数据包。当数据包到达hca端口或交换机时,可以对照由sm配置的表验证该数据包的p键值。如果找到无效的p键值,则立即丢弃数据包。以这种方式,仅在共享分区的端口之间允许通信。

图1中示出了ib分区的示例,图1示出了根据实施例的多租户集群环境的图示。在图1中所示的示例中,节点a-e即101-105使用infiniband架构100经由相应的主机信道适配器111-115进行通信。节点a-e被布置成分区,即分区1110、分区2120和分区3130。分区1包括节点a101和节点d104。分区2包括节点a101、节点b102和节点c103。分区3包括节点c103和节点e105。由于分区的布置,节点d104和节点e105不允许通信,因为这些节点不共享分区。同时,例如,节点a101和节点c103被允许通信,因为这些节点两者都是分区2120的一部分。

根据实施例,ib是分层体系结构,其中可以使用vl将每个物理链路划分成多个虚拟链路。每个vl可以具有自己的缓冲、流量控制和拥塞管理资源。可以通过一组差异化的流量类别(sl)来提供qos。sl表示数据包可以在网络中接收的服务的类别。每个sl基于所配置的sl到vl映射表而映射到链路上的vl。ib支持最多达16个vl。然而,最后一个vl是为子网管理流量保留的并且一般不被用户应用使用。

胖树(ftree)拓扑和路由

根据实施例,基于ib的hpc系统中的一些采用胖树拓扑以利用胖树提供的有用属性。这些属性包括由于每个源-目的地对之间的多个路径的可用性而产生的固有的容错和完全的二分带宽。胖树背后的最初想法是,当树朝向拓扑的根移动时,在节点之间采用具有更多的可用带宽的较胖的链路。较胖的链路可以帮助避免上层交换机中的拥塞并且二分带宽被维持。

图2示出了其中可以实践本公开的实施例的网络环境中的树形拓扑的图示。如图2中所示,在网络架构200中可以连接一个或多个端节点201-204。网络架构200可以基于胖树拓扑,该胖树拓扑包括多个叶子交换机211-214以及多个脊交换机或根交换机231-234。此外,网络架构200可以包括一个或多个中间交换机,诸如交换机221-224。

还如图2中所示,端节点201-204中的每一个可以是多宿主节点,即,通过多个端口连接到网络架构200的两个或更多个部分的单个节点。例如,节点201可以包括端口h1和h2,节点202可以包括端口h3和h4,节点203可以包括端口h5和h6,并且节点204可以包括端口h7和h8。

此外,每个交换机可以具有多个交换机端口。例如,根交换机231可以具有交换机端口1-2,根交换机232可以具有交换机端口3-4,根交换机233可以具有交换机端口5-6,并且根交换机234可以具有交换机端口7-8。

根据实施例,胖树路由机制是用于基于ib的胖树拓扑的最流行的路由算法之一。胖树路由机制也在ofed(开放架构企业分发——用于构建和部署基于ib的应用的标准软件堆栈)子网管理器opensm中实现。

胖树路由机制的目的在于生成跨网络架构中的链路均匀散布最短路径路由的lft。该机制按索引次序遍历架构并将端节点的目标lid(以及因此对应的路由)指派给每个交换机端口。对于连接到相同叶子交换机的端节点,索引次序可以取决于端节点所连接到的交换机端口(即,端口编号顺序)。对于每个端口,该机制可以维护端口使用计数器,并且可以在每次添加新路由时使用这个端口使用计数器来选择最少使用的端口。

如上面所提到的,在分区的子网中,不允许不是共同分区的成员的节点进行通信。在实践中,这意味着由胖树路由算法指派的路由中的一些不用于用户流量。当胖树路由机制以与该胖树路由机制针对其它起作用的路径相同的方式为这些路由生成lft时,会出现问题。这种行为会导致链路上的变差的平衡,因为节点是以索引的次序路由的。由于路由是在不注意(oblivious)分区的情况下进行的,所以胖树路由的子网一般在分区间提供不佳的隔离。

图3示出了其中可以实践本公开的实施例的多租户集群环境中的路由的图示。更具体而言,图3详细说明了变差的负载平衡和不佳的隔离的问题。

图3示出了在三个重叠分区中具有四个交换机(根交换机325-326和叶子交换机320-321)以及六个端节点(节点a-f,301-306)的二级胖树拓扑。分区1包括节点b302和节点c303。分区2包括节点a301、节点c303、节点d304和节点f306。最后,分区3包括节点d304和节点e305。

根据实施例,分区1和分区3分别被完全限制在叶子交换机320和321(即,单叶子交换机分区)内。因此,分区1和分区3中的节点之间的通信通过它们对应的叶子交换机进行,而不会将流量移动到根交换机325或326。当这个拓扑通过胖树路由机制路由时,朝向连接到叶子交换机320和叶子交换机321的节点的路由被指派根交换机,因此叶子交换机间(inter-leafswitch)的流可以到达它们的目的地。为了负载平衡,朝向a和c的路由被指派根交换机325(在图上示为链路p),而根交换机326路由朝向节点b的流量(在图上示为链路q)。类似地,对于叶子交换机321,朝向叶子交换机间的分区2中的节点d和节点f的流量经由根交换机325被路由(在图上示为链路r),并且朝向节点e的流量经由根交换机326被路由(在图上示为链路s)。

根据实施例,根交换机上的端端口(endport)选择被示为图中具有节点标识符的小圆圈。由于路由是(使用胖树路由机制)在不考虑分区信息的情况下进行的,所以子网中的路径不是恰当地平衡的。链路p和链路r被超额订阅,而永远没有叶子交换机内(intra-leafswitch)的流会使用链路q或链路s。所指派的朝向节点b和节点e的路由不被利用(除了相对较低的管理流量),因为这两个节点由于它们的分区而都不能从其叶子交换机外部接收任何通信。当分区的通信仅限于拓扑中的一些层级时,这种平衡问题也会在胖树中发生。

现在参考图4,图4示出了其中可以实践本公开的实施例的多租户集群环境中的路由的图示。更具体而言,图4详细说明了与胖树中不佳的隔离关联的问题。

图4示出了具有四个交换机(根交换机425-426和叶子交换机420-421)以及八个端节点(节点a-g,401-408)的二级胖树拓扑。同样,端节点被划分成两个分区。分区1包括节点a401、节点b402、节点g407和节点h408。分区2包括节点c403、节点d404、节点e405和节点f406。

这些分区中的每一个具有连接到两个叶子交换机中的每一个的两个节点。如图所示,胖树路由机制指派根交换机425和根交换机426上的向下端口。由于胖树路由机制的本质,每个根交换机路由朝向属于两个分区的节点的流量,这提供了不佳的隔离,这在分区环境中是不期望的。例如,朝向节点a和节点c的流量在共享链路p上被路由。不同分区的节点之间的对中间链路的共享会造成它们之间的干扰。尽管网络在根层级处具有足够的资源以在提供分区之间的完全隔离,但是胖树路由机制不提供所期望的隔离。

分区感知的胖树(pftree)路由

根据实施例,分区感知的胖树路由机制(在本文不同地称为pftree)可以实现与ib网络中的多租赁关联的期望目标。例如,pftree机制可以通过跨树中的链路均匀分布路由来为胖树拓扑提供良好平衡的线性转发表。此外,在维持链路上的路由平衡的同时,pftree可以去除属于不同分区的路径之间的争用。

根据实施例,pftree机制可以使用关于子网的分区信息来确保分区中的节点接收不受其它分区中运行的工作负载影响的可预测的网络性能。在拓扑没有足够链路可用于在每个层级处提供分区隔离(而不损害负载平衡)的情景中,pftree可以指派vl以减少争用的影响。

根据实施例,pftree机制可以递归地工作,以便为与每个端节点关联的lid在所有相关的交换机上设置lft。这在下面的伪代码(本文中称为清单1)中示出:

根据实施例,routedowngoingbyascending()在下面的伪代码(本文中称为清单2)中例示:

根据实施例,routeupgoingbydescending()在下面的伪代码(本文中称为清单3)中例示:

根据实施例,assignvirtuallanes()在下面的伪代码(在本文中不同地被称为清单4)中例示:

根据实施例,在滤除单叶子交换机分区(即,可以完全在单个叶子交换机内通信的那些分区)之后,对于每个叶子交换机,该机制可以按特定于分区的次序对连接的端节点进行分类(上面清单1的行4)(例如,经由具有唯一分区次序号的每个分区)。这种排序可以辅助确保在考虑在叶子交换机处的上行端口的可用数量的情况下根据节点的分区对节点进行路由。然后,pftree机制可以调用诸如routedowngoingbyascending(上面清单1的行9)的函数,并在树中向上移动,以选择下一层级处的路由lid的端口,如清单2中所示。

根据实施例,端口选择是基于最少数量的已经指派的路由。这可以帮助确保负载跨可用的路径散布。然而,当具有相同负载的若干端口可用时,该函数可以遍历这些最少负载的端口,并且选择连接到已经被正被路由的节点的分区键标记的交换机的端口(清单2的行3-行9)。如果没有交换机被标记(这可以指示这个分区的第一个节点正被路由),则系统可以默认选择具有最大全局唯一标识符(guid)的端口(清单2的行2)。当交换机被第一次选择用于分区时,用分区键在向下方向上标记该交换机(清单2的行11)。

根据实施例,在为lid设置交换机处的下行端口之后,该机制可以通过下降树调用来在所有连接的向下交换机上为它指派向上端口(清单3的routeupgoingbydescending)。同样,上行端口的选择可以首先基于负载准则,并且然后基于在向上方向上远程交换机的分区标记。然后,可以通过向上移动到树中的下一层级来重复该过程,直到所有lft都被设置。注意到,可以使用多个分区键标记交换机。pftree机制可以为每个交换机维护表,从而为每个分区存储所路由的节点的计数。如果具有标记的分区的若干交换机可用于路由节点,则该计数器可以被用于决定端口的选择。可以选择具有分区的最大数量的已经路由的节点的交换机。

根据实施例,一旦生成了路由表,保持分区隔离准则,该机制就可以继续以检查链路中的一些是否正被用于朝向不同分区中的节点的流。对于这些情况,该机制可以将vl指派给干扰分区以提供隔离。清单4中示出了vl指派机制的示例。

根据实施例,vl指派机制可以遍历分区并检查由分区中的节点使用的任何中间通信链路是否与尚未被指派单独vl的另一个分区共享中间链路。如果遇到这种情景,则可以指派新的vl。pftree路由机制可以支持用于vl选择的两种模式:严格模式和正常模式。

根据实施例,在严格模式中,如果用于pftree路由的所需的vl的数量超过系统中的可用vl,则路由会失败(清单4的行10)。

根据实施例,在正常模式中,算法可以从vl1起重新开始将vl指派给分区(清单4的行8)。

根据实施例,提供了用于基于ib的胖树网络(不同地称为pftree)的高效的分区感知路由机制。pftree机制可以为胖树拓扑提供分区的网络范围的隔离。此外,pftree为交换机产生良好平衡的lft。给定足够的网络资源,pftree可以仅在物理链路层级处对分区进行隔离。例如,如果胖树具有两个不重叠的相等大小的分区,则pftree可以基于路由本身将中间网络链路划分成两个相等大小的逻辑子网络。此外,如果网络没有足够的可用资源来提供完全的分区隔离,则pftree可以采用与物理隔离相结合而起作用的补充的基于vl的隔离方案。

根据实施例,pftree路由机制的目的在于实现两个主要目标。首先,通过跨树中的链路均匀地分布路由,该机制可以为胖树拓扑生成良好平衡的lft。其次,在维护链路上的路由平衡的同时,pftree去除属于不同分区的路径之间的争用。pftree可以使用关于子网的分区信息,并确保分区中的节点接收可预测的网络性能而不受其它分区中运行的工作负载的影响。如果拓扑没有足够的链路可用于在每个层级处提供分区隔离(而不损害负载平衡),则pftree可以使用vl来减少争用的影响。

根据实施例,pftree机制可以递归地工作,以为与每个端节点关联的lid在所有相关的交换机上设置lft。在滤除单叶子交换机分区之后,对于每个叶子交换机,该机制可以按特定于分区的次序对连接的端节点进行排序。这种排序确保在考虑在叶子交换机处的上行端口的可用数量的情况下根据节点的分区对节点进行路由。在每个层级处的端口选择可以基于最少数量的已经指派的路由,以确保负载跨可用路径散布。然而,当具有相同负载的若干端口可用时,该函数遍历这些最少负载的端口,并选择连接到已经用正在被路由的节点的分区键标记的交换机的端口。如果没有交换机被标记(即,路由特定分区的第一个节点),则pftree可以落到具有最大全局唯一标识符(guid)的端口的默认选择。当交换机被第一次选择用于分区时,可以使用分区键来标记该交换机。以这种方式,该机制可以帮助确保给定足够的可用于平衡的路径,属于一个分区的节点将路由通过相同的交换机和对应的链路。一旦生成了路由表,保持分区隔离准则,该机制就可以继续以检查链路中的一些是否正用于朝向不同分区中的节点的流。对于那些情况,该机制可以将vl指派给干扰分区以提供隔离。

现在参考图5-图8,这些图是根据实施例的支持多租户集群环境中的分区感知路由的图示。

根据实施例,在图5-图8中通过超额订阅的胖树网络的简单部分示出pftree路由中的端口选择机制。

现在参考图5,图5示出了具有四个交换机(根交换机525-526和叶子交换机520-521)以及八个端节点(节点a-g,501-508)的二级胖树拓扑。同样,端节点被划分成两个分区。分区1包括节点a401、节点d504、节点g507和节点h508。分区2包括节点b502、节点c503、节点e505和节点f506。

根据实施例,如图5中所示,示例部分由两个叶子交换机(520和521)组成,每个叶子交换机分别连接到四个端节点和在叶子交换机上方的下一层级处的两个交换机,即根交换机(525和526)。图中还指示了down和max变量,它们分别表示在向下方向上指派的路由的数量以及为了确保每个链路上的恰当平衡而可以被路由的节点的最大数量。

根据实施例,给定在每个叶子交换机处存在两个上行端口,其中要路由四个端节点,上行链路中的每一个应当向下路由两个端节点,以确保链路是平衡的(即,max=2)。

根据实施例,对于叶子交换机520,前两个节点(节点a和节点b)的路由在图6中示出。路由机制可以选择根交换机525来路由朝向节点a的流量,并且使用节点a的分区键标记该交换机,在图中被示为“(分区1)”。类似地,对于节点b,可以选择根交换机526并且用节点b的分区键标记根交换机526,在图中被示为“(分区2)”。变量down也被更新,以对两个向下链路中的每一个上的单个被路由的节点进行计数。

根据实施例,对于节点c和节点d,可以选择已经用对应的分区键标记的交换机,如图7中给出的。得出的路由通过经过根交换机525的相同链路流向属于第一分区的节点(即,节点a和d)。类似地,可以经过根交换机526向下路由第二分区的节点(即,节点b和节点c)。路由的这种分离避免两个分区的流量流之间的干扰。注意到,在每个链路上向下路由的节点的数量不超过max变量,这意味着路由仍然是平衡的。

最后,根据实施例,图8示出了用于连接到叶子交换机521的端节点的路由。而且在这里,由于第二层级的交换机已经根据第一叶子交换机路由用分区键进行标记,因此对应的交换机可以被选择以路由每个节点(即,节点e、f、g和g)。如图中所示,最终的路由可以通过基于路由将中间网络链路划分成两个相等大小的逻辑子网络来隔离两个分区。

图9示出了根据实施例的用于支持多租户集群环境中的分区感知路由的方法的图示。示例性方法900可以在支持多租户集群环境中的一个或多个租户的步骤901处开始。在步骤902处,示例性方法可以将一个或多个租户中的每个租户与多个分区的一分区关联。在步骤903处,该方法可以将多个分区中的每个分区与多个节点中的一个或多个节点关联,这多个节点中的每个节点与多个交换机中的一叶子交换机关联,这多个交换机包括多个叶子交换机和在其它层级处的多个交换机。最后,在步骤904处,该方法可以生成一个或多个线性转发表,这一个或多个线性转发表提供这多个分区之间的隔离,其中这多个节点中的每个节点与一分区次序关联。

本发明的许多特征可以在硬件、软件、固件或其组合中执行,利用硬件、软件、固件或其组合执行,或者在硬件、软件、固件或其组合的辅助下执行。因此,本发明的特征可以利用(例如,包括一个或多个处理器的)处理系统来实现。

本发明的特征可以在计算机程序产品中实现,利用计算机程序产品实现,或者在计算机程序产品的辅助下实现,其中计算机程序产品是其上/其中存储有可用来编程处理系统以执行本文所呈现的任何特征的指令的存储介质或计算机可读介质。存储介质可以包括但不限于任何类型的盘(包括软盘、光盘、dvd、cd-rom、微驱动器、以及磁光盘)、rom、ram、eprom、eeprom、dram、vram、闪存存储器设备、磁卡或光卡、纳米系统(包括分子存储器ic)、或适于存储指令和/或数据的任何类型的媒介或设备。

存储在任何一种(一个或多个)机器可读介质中,本发明的特征可以被结合到软件和/或固件中,以用于控制处理系统的硬件,并且用于使处理系统能够利用本发明的结果与其它机制交互。这种软件或固件可以包括但不限于应用代码、设备驱动程序、操作系统和执行环境/容器。

本发明的特征也可以利用例如诸如专用集成电路(asic)的硬件部件在硬件中实现。实现硬件状态机以便执行本文所描述的功能对相关领域的技术人员将是显然的。

此外,本发明可以方便地利用一个或多个常规的通用或专用数字计算机、计算设备、机器或微处理器来实现,这些数字计算机、计算设备、机器或微处理器包括一个或多个处理器、存储器和/或根据本公开的教导编程的计算机可读存储介质。如对软件领域的技术人员将清楚的,适当的软件编码可以容易地由熟练的程序员基于本公开的教导来准备。

虽然以上已经描述了本发明的各种实施例,但是应该理解,它们已通过示例而不是限制给出。对相关领域的技术人员将清楚的是,在不背离本发明的精神和范围的情况下,其中可以做出各种形式和细节上的变化。

本发明已经借助说明指定功能及其关系的执行的功能构建块进行了描述。这些功能构建块的边界在本文中通常是为了方便描述而任意定义的。可以定义可替代的边界,只要指定的功能及其关系被适当地执行。任何这种可替代的边界因此在本发明的范围和精神之内。

本发明的以上描述是为了说明和描述的目的而提供的。它不旨在是穷尽的或者要把本发明限定到所公开的精确形式。本发明的广度和范围不应该由任何上述示例性实施例来限制。许多修改和变化对本领域技术人员来说将是清楚的。修改和变化包括所公开特征的任何相关组合。实施例的选择与描述是为了最好地解释本发明的原理及其实践应用,从而使本领域其他技术人员能够理解用于各种实施例的本发明以及具有适于预期特定用途的各种修改的本发明。本发明的范围旨在由以下权利要求及其等价物来定义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1