用于数据网络中的平衡负载的系统和方法与流程

文档序号:12949122阅读:159来源:国知局
用于数据网络中的平衡负载的系统和方法与流程

本公开涉及用于数据网络中的平衡负载的系统和方法,且具体(但不排他)地,涉及用于多层数据网络的拥塞感测的平衡负载的系统和方法。

背景

随着互联网的出现和其激增的使用量,数据网络、特别是数据中心网络通常被使用。数据中心通常包括被称为服务器农场(serverfarms)的布置在网络中的多个服务器。具有服务器农场的数据中心对在现代经济中的不同应用和部门中的信息操纵系统的运作是必不可少的。

数据中心网络通常在各种结构或架构中出现。数据中心网络通常被设定成具有如两层、三层、四层布置等的多层架构。三层和四层布置是非常普遍的。数据中心网络、特别是在网络中的节点或服务器布置在各种拓扑中。数据整体性和数据处理速度对于今天的应用是必不可少的要求。因此能够检测在数据中心网络中的数据拥塞并通过网络选择数据路径或信息路径以增加处理请求的速度变得越来越必要。

发明概述

根据本发明的第一方面,提供了用于在包括多个网络交换机的数据网络中的平衡负载的方法,该方法包括:

接收数据流,

发起路径选择过程以确定在源网络交换机和目的地网络交换机之间的路径,

路径选择过程基于第一网络交换机的拥塞信息和第二网络交换机的拥塞信息来选择最佳路径,最佳路径相应于最小拥塞的路径,以及

沿着选定路径传输数据流。

在实施方式中,在源交换机和目的地交换机之间的每个路径包括:

至少第一跳跃、最终跳跃和一个或多个中间跳跃,其中每个跳跃是在源交换机和目的地交换机之间的路径的一部分,

路径选择过程是两阶段路径选择过程,两阶段路径选择过程的第一阶段识别路径的第一个和最终跳跃,经由所述跳跃将数据流传输到目的地交换机,

两阶段路径选择过程的第二阶段识别路径的一个或多个跳跃,经由所述跳跃将数据流传输到目的地交换机。

在实施方式中,两阶段路径选择过程的第一阶段识别聚合交换机id,两阶段路径选择过程的第一阶段识别相应于在第一pod中的源tor交换机和源聚合交换机之间的路径的第一跳跃,以及还识别相应于在第二pod中的目的地tor交换机和目的地聚合交换机之间的路径的第二跳跃。

在实施方式中,源聚合交换机和目的地聚合交换机经由配对连接特性与彼此相关,配对连接特性使得源聚合交换机和目的地聚合交换机具有相同的交换机id并与彼此相关。

在实施方式中,连接到一个或多个聚合交换机的路径的第一跳跃和最终跳跃具有相同的交换机id。

在实施方式中,第一跳跃与源tor交换机的一个或多个上行链路相关,而最终跳跃与目的地tor交换机的一个或多个上行链路相关。

在实施方式中,两阶段路径选择过程的第二阶段识别路径的第二跳跃和第三跳跃,第二跳跃与源聚合交换机的上行链路相关,而第三跳跃与目的地聚合交换机的上行链路相关。

在实施方式中,两阶段路径选择过程的第二阶段识别在源聚合交换机和核心交换机之间的跳跃,以及其中两阶段路径选择过程的第二阶段识别在目的地聚合交换机和核心交换机之间的跳跃。

在实施方式中,源聚合交换机和目的地聚合交换机连接到同一核心交换机。

在实施方式中,通过应用在网络内的每个交换机处的拥塞监控过程来确定第一网络交换机的拥塞信息以确定与在出去或进入方向上的网络交换机相关的所有上行链路的拥塞信息。

在实施方式中,第一网络交换机的拥塞信息是到在出去方向上的第一交换机的所有上行链路的拥塞信息,以及第二网络交换机的拥塞信息是到在进入方向上的第二交换机的所有上行链路的拥塞信息。

在实施方式中,拥塞信息是与网络交换机的上行链路相关的局部拥塞信息。

在实施方式中,拥塞监控过程包括确定在进入和出去方向上的一个或多个网络交换机的局部拥塞信息。

在实施方式中,拥塞监控过程还包括:在每个tor交换机处,基于进入tor交换机的分组或字节的数量来更新在进入方向上的局部拥塞信息,以及基于离开tor交换机的分组或字节的数量来更新在出去方向上的局部拥塞信息。

在实施方式中,该方法包括封装具有专用表头的每个数据流的第一分组的额外步骤,表头至少包括与至少一个网络交换机的所有上行链路相关的拥塞信息,专用表头由源网络交换机产生。

在实施方式中,该方法包括额外的步骤:

将具有专用表头的分组传输到目的地网络交换机,目的地网络交换机处理专用表头以提取拥塞信息,

目的地网络交换机处理拥塞信息以识别相应于最少拥塞的中间网络交换机。

在实施方式中,该方法包括额外的步骤:

封装具有专用表头的每个数据流的第一分组,源tor交换机封装具有专用表头的第一分组以创建请求分组,以及

将请求分组和专用表头传输到目的地tor交换机。

在实施方式中,该方法包括额外的步骤:

由目的地tor交换机接收请求分组,

处理请求分组以确定每个路径的第一和最终跳跃的拥塞的最大水平,

选择相应于在第一和最终跳跃中的最少拥塞的聚合交换机id,以及

产生响应分组并将响应分组传输到匹配聚合交换机id的聚合交换机。

在实施方式中,请求分组包括将分组识别为路径选择请求分组的第一标签、识别路径选择过程的阶段的第二标签、识别拥塞度量的数量和包括与在源tor交换机的出去方向上的所有上行链路相关的拥塞信息的拥塞数据字段的第三标签。

在实施方式中,产生响应分组的步骤包括额外的步骤:

复制请求分组,

交换源和目的地ip地址,

设置在专用表头中的第二标签以识别路径选择的第二阶段,

清除第三标签并清除拥塞数据。

在实施方式中,选择聚合交换机id的步骤由目的地tor交换机执行,选择聚合交换机id的步骤包括额外的步骤:

提取与在源tor交换机的出去方向上的上行链路相关的拥塞信息,

将与在目的地ror交换机的出去方向上的上行链路相关的拥塞信息与在进入方向上的上行链路相关的拥塞信息聚合,并选择相应于最少拥塞信息的聚合交换机id。

在实施方式中,与在进入方向上的上行链路相关的拥塞信息涉及连接到在进入方向上的目的地tor的聚合交换机。

在实施方式中,两阶段路径选择过程的第二阶段识别相应于在源聚合交换机和核心交换机之间的路径的第二跳跃,并识别相应于在目的地聚合交换机和核心交换机之间的路径的第三跳跃,其中源聚合交换机和目的地聚合交换机与同一核心交换机通信。

在实施方式中,该方法包括确定相应于与源聚合交换机和目的地聚合交换机相关的最少拥塞信息的核心交换机的额外步骤。

在实施方式中,该方法还包括额外的步骤:

在目的地聚合交换机处接收具有带有空白拥塞数据的专用表头的分组,

将与目的地聚合交换机相关的拥塞信息添加到专用表头的拥塞数据字段内,与目的地聚合交换机相关的拥塞信息是相应于在目的地聚合交换机的进入方向上的所有上行链路的拥塞的水平的拥塞信息,以及

将分组传输到相应于目的地聚合交换机的交换机id的源聚合交换机。

在实施方式中,该方法包括额外的步骤:

在源聚合交换机处接收具有专用表头的分组,

比较与目的地聚合交换机相关的拥塞信息和与源聚合交换机相关的拥塞信息,其中与源聚合交换机相关的拥塞信息是相应于在源聚合交换机的出去方向上的所有上行链路的拥塞的水平的拥塞信息,以及

从与目的地聚合交换机相关的拥塞信息和与源聚合交换机相关的拥塞信息识别相应于最少拥塞的核心交换机。

在实施方式中,该方法包括额外的步骤:

由源tor交换机接收具有专用表头的分组,其中表头的第二标签指示两阶段路径选择过程的第二阶段,

基于聚合交换机的id来更新路径选择表,分组从聚合交换机传输到源tor交换机。

在实施方式中,路径选择表用于记录由一个或多个网络交换机做出的路径选择决定,路径选择表被维持在每个tor交换机中,路径选择表维持相应于选定路径的网络交换机的id。

在实施方式中,数据网络是包括核心层、聚合层和主机层的三层网络,核心层包括多个核心交换机,聚合层包括多个聚合交换机,以及主机层包括多个tor交换机,其中每个tor交换机连接到多个主机,聚合交换机和tor交换机布置在pod中,网络布置在clos拓扑中。

根据本发明的第二方面,提供了用于网络中的平衡负载的系统,该系统包括:

布置在多层网络拓扑中的多个网络交换机,每个网络交换机包括处理器和存储器,以及

其中每个网络交换机配置成根据第一方面的任一个或多个实施方式来执行用于在网络内的平衡负载数据流的方法。

根据本发明的第三方面,提供了用于在网络内的平衡负载数据流的系统,该系统包括:

数据网络,

该网络包括三层clos拓扑,该网络还包括核心层、聚合层和主机层,核心层包括多个核心交换机,聚合层包括多个聚合交换机,以及主机层包括多个tor交换机,其中每个tor交换机连接到多个主机,聚合交换机和tor交换机布置在pod中,

其中多个tor交换机、多个聚合交换机和多个核心交换机配置成按照第一方面的任一实施方式实现平衡负载的方法,以及

其中平衡负载的方法被配置为分布式协议。

根据本发明的第四方面,提供了包括所存储的指令的非临时计算机可读介质,所述指令当由一个或多个处理器执行时使所述一个或多个处理器按照第一方面的任一实施方式执行用于在数据网络内的平衡负载的方法。

虽然参考多个优选实施方式描述了本发明,应认识到,本发明可体现在很多其它形式中。

在这个说明书中,词“comprising(包括)”及其变形例如“comprises”根据国际专利实务具有其通常的含义。也就是说,除了特别列举出的那些以外,该词并不排除额外或未列举的元件、实例或方法步骤。因此,在本发明的各种实施方式中,所述装置、实例或方法可具有其它元件、实例或步骤。权利要求的目的是定义构成本发明的特征且不一定是本发明定义的装置、实例或方法的有效实施方式可具有的所有特征。在权利要求中定义的装置、实例或方法可因此包括其它元件、步骤或实例以及构成本发明并在权利要求中特别列举的创造性元件、步骤或实例。

附图的简要描述

现在将参考附图作为例子描述本发明的实施方式,其中:

图1a示出根据本发明的用于网络中的平衡负载数据的方法的流程图的实施方式。

图1b示出根据本发明的配置成用于平衡负载的方法的3层clos网络的实施方式。

图1c示出还包括配置成网络中的平衡负载数据的方法的控制服务器的3层clos网络的可选实施方式。

图2示出在利用局部拥塞监控协议的示例性网络内的数据流。

图3示出将局部拥塞监控过程用作平衡负载的方法的一部分的流程图。

图4示出3层clos网络的实施方式,其中包括两阶段路径选择过程

图5示出作为用于平衡负载的方法的部分的两阶段路径选择过程的流程图。

图6示出用作用于平衡负载的方法的部分的路径选择表的例子和两阶段路径选择过程。

图7示出示例性以太网表头和示例性以太网表头的结构。

图8a提供根据本发明的平衡负载的一种方法的流程图。

图8b示出在按照图4的网络的拓扑中的两个数据流a和b的平衡负载。

图9示出在故障的情况下根据本发明的平衡负载的方法的示例性配置。

图10示出使用click原型工具构造的示例原型。

图11示出用作实验的测试台的部分的小规模3层clos网络的例子。

图12示出实验结果的表格,该表格示出在以线速率发送的源tor交换机处通过每个元件转发分组的平均cpu时间,

图13示出发送方开始发送第一分组所花费的平均时间的表格,该表格示出在100次运转上的时延比较。

图14示出按照本发明的平衡负载的方法和web搜索工作负载的ecmp协议的比较的曲线图,特别是,曲线图示出web搜索工作负载的fct结果。

图15示出按照本发明的平衡负载的方法和数据挖掘工作负载的ecmp协议的比较的曲线图,特别是,曲线图示出数据挖掘工作负载的fct结果。

图16示出在4pod10gpbs胖树中利用的不同流量模式的压力测试结果,其用作性能实验的部分。

图17示出在具有以2:1的比率超额利用(overscribed)的核心层的基线12pod胖树网络中的web搜索工作负载的标准化(nfct)时间。

图18示出在具有以2:1的比率超额利用的核心层的基线12pod胖树网络中的数据挖掘工作负载的标准化(nfct)时间。

图19示出对于在具有在核心层处的变化的超额利用比(oversubscriptionratio)的基线拓扑中的所有流的优于ecmp协议的平均fct提高的曲线图。

图20示出对于当tor层使用多个主机或服务器被超额利用时在具有变化的超额利用比的基线拓扑中的所有流的优于ecmp协议的平均fct提高的曲线图。

图21示出在聚合层和核心层链路中存在故障时平均fct减小的曲线图。

图22示出在聚合层和核心层链路中存在故障时的平均fct减小。

图23示出具有8个脊柱和8个叶交换机的web搜索工作负载的标准化fct结果的曲线图,图23是实验结果。

图24示出具有8个脊柱和8个叶交换机的数据挖掘工作负载的标准化fct结果的曲线图,图23是实验结果。

优选实施方式的详细描述

在没有被理论约束的情况下,发明人在这里通过他们的研究、测试和实验发现,数据中心网络可使用多根拓扑来提供大量等成本路径和在主机之间的冗余带宽。一些数据中心网络也使用多层拓扑。现代数据中心网络也可使用其它拓扑,且理想地,高度模块化拓扑被选择以允许数据中心网络容易被修改以响应于增加资源要求。高度模块化可扩展网络拓扑需要提供灵活性来随意按比例调整网络的容量。例如额外的服务器pod或额外数量的服务器或额外的核心交换机可被添加到网络或从网络除去以配合不同的需要,例如增加的性能。

在网络内的最佳路径选择、即网络之间(intra-network)最佳路径选择必须确保数据处理的速度和数据处理的效率。数据流被路由到适当的服务器用于处理,或数据流被路由到具有额外容量/资源(capacity)的服务器。必须监控网络中的拥塞以选择最佳路径来确保处理速度及数据完整性。在复杂的网络结构中的拥塞监控和最佳路径选择的一个主要挑战是基于所获取的全局拥塞和路径数据来选择最佳路径。这是因为要动态地监控的路径的数量增加了两个数量级。此外,所收集的信息必须反映每个路径的真实时间状态,然而当路径的数量增加时,保持信息是最新的变成甚至更大的挑战。这些挑战可阻碍数据网络、特别是多层网络例如clos网络结构或胖树网络结构的扩展性。

等价多径路由(equalcostmulti-pathrouting,ecmp)是在现实中最普遍使用的平衡负载解决方案。已知ecmp常常使用大象流(即大尺寸数据流)的低吞吐量和带宽利用率和老鼠流(即小尺寸数据流)的长尾部时延,因此提供较差的性能。此外,ecmp不正确地操纵在网络拓扑中的非对称性,其常常由于一个或多个网络部件的故障而出现在大规模网络中。这些问题通常归因于数据流尺寸分布的重尾(heavily-tailed)性质。ecmp协议或方法在性质上是不可知拥塞的。因此,这个协议和ecmp协议的使用限制ecmp协议处理网络动态的能力。这可以在试图处理并提高重尾数据流性能时是明显的。在网络中的等成本路径上的拥塞水平和动态改变,使ecmp变得无效,因为ecmp协议是不能感测拥塞的。例如在对称拓扑中,一些路径可由于散列冲突而变得暂时拥塞。故障引起的拓扑不对称可在网络的任何部分中在任何时间产生,并使一些路径持续地更拥塞。本发明得到某种方式来处理所述的一些问题或至少给公众提供有用的可选方案。

本公开涉及用于数据网络中的数据平衡的系统和方法,虽然不是排他地,本公开涉及用于多层数据网络的拥塞感测平衡负载的系统和方法。特别是,本公开目的在于用于在三层网络中的拥塞感测平衡负载的方法和系统。平衡负载包括基于路径的拥塞数据来确定数据流的最佳路径。本发明还包括非临时计算机可读介质,其包括所存储的指令,指令当由一个或多个处理器执行时使一个或多个处理器执行用于计算机网络内的平衡负载的方法。如所述的处理器是合并在3层网络的交换机例如tor交换机、聚合交换机和核心交换机中的处理器。平衡负载的当前方法是被配置为分布式协议的路由协议,所有功能由网络的硬件部件实现。

图1a示出概括的平衡负载的方法10。平衡负载的方法10被配置为在多层网络中的分布式协议并由各种部件例如网络交换机、即tor交换机、聚合交换机、核心交换机等执行。

平衡负载的方法10包括应用两阶段路径选择过程以确定穿过数据流的网络的最不拥塞的或最佳的路径。平衡负载的方法在步骤11应用局部拥塞监控过程以确定接收数据流的交换机的局部拥塞信息,在步骤12应用两阶段路径选择过程以基于这两个交换机的聚合局部拥塞信息来确定在两个交换机之间的最佳路径。平衡负载10的方法启发式地确定最佳路径。应用于多个数据流的路径选择方法确保在网络内的平衡负载,并确保拥塞的路径被避免。平衡负载的方法10且特别是两阶段路径选择过程12在每流基础上被执行并被限制到在两个交换机之间的路径确定而不是跟踪全局拥塞信息和基于全局拥塞信息来确定路径。平衡负载的方法10是有利的,因为它是更简单的方法,需要较少的资源来实现,因此需要较少的成本,是可扩展的并可应用于大型网络和不对称网络。

本发明的描述以三层网络作示例,因为在现代数据中通常使用三层网络。不同的拓扑可被使用,例如clos拓扑、胖树拓扑或dcell拓扑。在数据中心中通常使用clos拓扑,因为它们是高度可扩展的且是有成本效益的。

图1b示出具有clos拓扑的一般化3层网络。网络100以clos拓扑(其为了在本文解释的容易而将被称为clos网络)布置。clos网络100包括多个pod。图1示出包括两个pod200、300的clos网络100。可以理解的是,在数据中心中的工业网络包括多个pod。

每个pod200、300包括多个tor(topofrack,机架顶)交换机和多个聚合交换机。tor交换机连接到包括多个服务器的服务器机架。为了方便解释,没有示出服务器机架。如图1所示,pod200包括多个tor交换机202、204、…、r。pod300包括多个tor交换机302、304、…、r。通常,每个pod包括数量为r的tor交换机。每个pod200、300包括多个聚会交换机,其中每个tor交换机连接到在pod内的每个交换机。如图1所示,pod200包括四个聚合交换机210、212、214、216。pod300还包括四个聚合交换机310、312、314、316,如图1所示。tor交换机202、204…r互连到在pod200内的每个聚合交换机。tor交换机302、304…r互连到在pod300内的每个聚合交换机。在每个pod中的聚合交换机形成聚合阶层或聚合层。每个pod200、300布置在2层叶脊柱网络或布置中。

网络100包括多个核心面。图1b示出两个核心面400、500。在附图中,核心面也被称为核心面1和核心面4。每个核心面400、500包括多个核心交换机。如图1所示,核心面400包括多个核心交换机402、…、核心交换机m。核心面500包括多个核心交换机502、…、核心交换机m。通常,核心交换机将被称为m,因为根据网络的要求,可以有任何数量的核心交换机。

聚合交换机属于唯一的核心面或与唯一的核心面相关,并连接到与相关核心面相关的所有核心交换机。例如,pod200的聚合交换机210、212、214、216与核心面400相关,并互连到核心面400中的所有核心交换机。为了解释的容易并为了描述一般化网络,将使用下面的文法:t代表tor交换机、a代表聚合交换机、c代表核心交换机、上标表示pod/平面数量和下标表示特定的交换机id。在网络中的每个交换机包括唯一的交换机id以允许各种网络部件识别交换机。例如,是在podp中的第r个tor交换机,是在podp中的第4个聚合交换机,以及是在平面4中的第m个核心交换机。

如图1所示,网络100的3层clos拓扑提供以任何尺寸按比例调整容量的灵活性。例如,当更多的计算容量被需要时,额外的pod可被添加以增加服务器的数量。如果更多的pod间网络容量是需要的,则额外的核心交换机可被添加到所有核心面上。

tor交换机202、204、302、304一般将具有4x40gbps上行链路。每个pod通常包括4个聚合交换机,但在可选实施方式中,每个pod可包括更多或更少的聚合交换机,取决于网络要求和拓扑。本文所述的聚合和核心交换机一般具有多达96x40gbps端口。因此例如,如果网络100包括96个pod,则拓扑可适应73,72810gbps主机。

tor交换机、聚合交换机和核心交换机每个包括嵌入式处理器和至少某个类型的存储器连同其它切换和接口连接电路。tor交换机、聚合交换机和核心交换机还可包括处理能力。tor交换机、聚合交换机和核心交换机还包括适当的输入/输出电路或部件以及通信模块以允许与其它网络内元件的电子通信。

核心交换机402、502、m包括输入/输出部件或电路和允许核心交换机与互联网和客户端设备例如pc、膝上型计算机等连接和通信的通信电路。来自客户端设备的数据或来自客户端设备的请求在核心交换机处被接收到并可通过网络经由网络中的聚合交换机和tor交换机传输到适当的服务器。

可选地,在可选的实施方式中,网络100还可包括关于图1b所述的所有特征和如图1c所示的额外的控制服务器1000。控制服务器配置成与每个pod和核心面通信。控制服务器1000配置成与至少tor交换机、聚合交换机和核心交换机中的每个进行电通信。控制服务器1000包括处理器1002、存储器1003例如ram或rom或eprom、i/o模块1004和通信模块1005。在这个可选的实施方式中,控制服务器1000配置成控制在网络100中的交换机的操作。特别是,控制服务器1000使用如本文所述的平衡负载的方法10来控制交换机的操作。在这个可选的实施方式中,存储器1003是非临时计算机可读介质,其包括存储其中的指令。指令由处理器1002可执行以使处理器执行如本文所述的平衡负载的方法的步骤。处理器1002与网络交换机通信,如由两个虚线表示的,并可与任何对的交换机通信作为平衡负载方法的部分。

如前文所述的,ecmp是用于在网络周围传输数据流的协议。ecmp是不可知拥塞的,即不真正计算在网络内的拥塞。因此必须配置拥塞感测平衡负载协议以管理数据流来维持在网络内的速度、效率和数据整体性。通常使用局部拥塞监控协议。图2示出一个例子,其中基于局部拥塞信息的决定导致子最佳结果。100mbps的流横穿路径(s1,s4,s2),而1gbps的另一流横穿路径(s2,s5,s3)。当新流(虚线)到达s1时,局部拥塞感测平衡负载协议将新流发送到s5,而不知道或未能感测到下游拥塞。这将导致差性能并增加处理的时间。

现有的协议通过保持在tor交换机的所有对之间的所有路径的拥塞度量(congestionmetrics)来处理这个问题。例如,在已知的conga协议中,每个tor交换机保持对其它tor交换机的所有路径的拥塞信息。拥塞度量在它们横穿路径时通过在数据分组中的背负式运输(piggypacking)来得到,并接着反馈回到源tor交换机。这种方法在2层叶脊柱拓扑中是有用的,因为与3层网络比较,要跟踪和维持的状态的数量相对小。例如甚至在具有与48端口叶交换机成对的57640gbps端口的大2层叶脊柱拓扑中,每个叶交换机只需要跟踪大约7k个路径。这提出在3层clos拓扑例如网络100中的可扩展性问题。在3层拓扑中,收集所有路径的拥塞信息或度量是有挑战性的,因为要监控的路径的数量明显增加(即两个数量级)。如图1所示,3层clos网络具有在不同pod中的一对tor交换机的mn路径。因此每个tor需要为所有可能的目的地tor交换机跟踪o(nmpr)路径。这是相当难以实现的大量信息,且所收集的信息必须反映每个路径的实时状态,因为拥塞可由于突发性流和在tcp中的指数速率减速而快速改变。此外,当路径的数量增加时,维持最新的拥塞信息变得更有挑战性。每路径反馈设计例如cpnga协议需要至少o(nmpr)个并行流来同时覆盖tor交换机的所有路径,这相当难以实现。

本发明提出可扩展和可靠的拥塞监控过程。拥塞监控过程600提供局部拥塞监控过程或协议。在局部拥塞监控过程600中,每个交换机监控在网络内的它的所有上行链路的外出和进入拥塞度量。局部拥塞监控过程600需要每个tor交换机维持连接到聚合层的n上行链路的2n状态和连接到核心层的m上行链路的在每个聚合交换机处的2m状态。实时聚合状态每当数据分组进入并离开交换机时可容易被收集并更新。且不需要任何背负式运输。

局部拥塞监控过程600由tor和聚合交换机在与它们连接到上游交换机的所有上行链路配置并运行。这个布置覆盖整个网络中路径,而没有连接主机和tor交换机的链路,其是唯一的且不是平衡负载的部分。局部拥塞监控过程使用链路负载作为拥塞度量或拥塞信息,这是有效的并可容易在硬件中实现。

局部拥塞监控过程600包括确定交换机、即tor交换机或聚合交换机的所有上行链路的步骤601。图3示出局部拥塞监控过程600的示例性实施方式。如图3所示,步骤601由在网络中的每个交换机确定,且上行链路在外出和进入方向上被确定。过程600继续进行到步骤602,在该步骤,每个交换机确定在外出和进入方向上的局部拥塞。局部拥塞度量是在外出和进入方向上的链路负载。在步骤603,交换机基于经由相应上行链路之一进入交换机的多个分组或字节来更新在进入方向上的局部拥塞信息。在步骤604,交换机基于经由多个上行链路中的一个相应上行链路离开交换机的多个分组或字节来更新在外出方向上的局部拥塞信息。

局部拥塞信息、即链路负载可存储在每个交换机处。局部拥塞信息在整个网络中至少在每个tor交换机处实时地更新。这是有利的,因为实时拥塞数据被跟踪或监控。可选地,局部拥塞信息、即链路负载信息存储在拥塞表中。当数据分组由网络中的特定交换机传输到其它交换机时,拥塞表或拥塞信息与分组一起被传输。每当分组进入并离开交换机时,拥塞数据不断地被更新。

局部拥塞监控过程600使用折扣率估计器(dre)来确定链路负载。dre维持寄存器x,其每当分组通过链路被发送/接收时按照递增了以字节为单位的分组尺寸,并递减了每个tdre,α的因子在0和1之间。tdre是时间增量。在示例中,tdre被设置为20微秒,且α被设置为0.1。链路负载信息相对于链路速度被量化成3位。

在整个网络当中的拥塞信息聚集以得到沿路径的拥塞。两阶段路径选择过程700被配置为本发明的部分。两阶段路径选择过程700允许以最小开销(overhead)有效地聚集信息。两阶段路径选择700涉及在过程的步骤处的两个交换机。两阶段路径选择700确定数据流的最佳路径,最佳路径与具有最低拥塞的路径有关。如前文所述的拥塞监控过程可用于确定在任何交换机处的拥塞信息,拥塞信息由两阶段路径选择方法700使用。如所述的方法600和700的植入导致在网络中配置的拥塞感测平衡负载方法。3层clos网络包括被定义为配对(pairwise)连接的显著的结构特性。在3层clos网络中,idi的聚合交换机只连接到在其它pod中的同一idi的聚合交换机。这是因为这些聚合交换机连接到同一核心面。因此无论源tor交换机选择传输到哪个聚合交换机,数据分组总是经由在目的地pod中的同一id的聚合交换机前进。

两阶段路径选择过程700利用这个配对特性来起作用。图4示出在3层clos网络100的部分中配置的两阶段路径选择过程700的实施方式。

在不同pod中的任两个tor交换机之间有四个跳跃(hops)。跳跃是在源和目的地之间的路径的一部分,即跳跃是在不同pod中的两个tor交换机之间的路径的一部分。两阶段路径选择过程700的第一阶段使用第一和第二链路的拥塞信息来选择最佳聚合交换机(第一和最终跳跃)。在第二阶段中,方法700使用第二和第三链路的拥塞信息来确定要使用的最佳核心交换机(即第一和第三跳跃)。

图5示出两阶段路径选择过程700的流程图。当数据流的第一分组到达tor交换机、即源tor交换机时,过程在步骤702开始。在图4中被标记为srctor(即202)的源ror交换机在步骤704标记第一分组以添加第一跳跃信息,即它的上行链路的外出拥塞度量。这个修改的数据分组充当请求分组。被标记为dsttor(即302)的目的地tor交换机在步骤706接收并读取来自请求分组的拥塞度量。在步骤708,目的地tor交换机302与所有它的上行链路的它的进入度量聚合。在步骤710,最不拥挤的交换机被识别为在源tor交换机202和目的地tor交换机302之间。在步骤712,源分组在目的地tor交换机302处产生。在步骤714,响应分组被传输或发送到被标记为dstaggr(即310)的所选择的目的地聚合交换机。在步骤716,目的地聚合交换机310将第三跳跃拥塞度量反馈到被标记为srcaggr(即210)的源聚合交换机。源聚合交换机210在步骤718选择具有最不有效的拥塞的核心交换机。在步骤720,源聚合交换机210将响应分组传输到源tor交换机202(即srctor)以识别数据流的选定路径。选定路径是具有最小拥塞的路径,因此这允许平衡负载的方法平衡在网络当中的数据负载并减小在任一个交换机或位置处的拥塞。

通过在源tor交换机202和目的地tor交换机1302之间的单路往返中产生请求分组和响应分组、即通过产生请求消息和响应消息来完成路径选择过程。路径选择决定、即选定路径被维持并存储在源tor交换机和所识别的聚合交换机处。两阶段路径选择过程在交换信息的每个阶段需要两个交换机。对于新tcp连接,方法700在握手过程期间独立地选择在两个方向上的两个流,且不引起任何分组排序。两阶段路径选择是启发式的,因为它不探测所有可用的路径,因而使该方法更快并减小资源需要。从选择聚合和核心交换机id的最佳组合到顺序地选择,路径选择的问题被简化。

路径选择方法700和拥塞监控方法600被配置为分布式协议,所有功能导致网络的交换机。为了实现简单性在每流基础上配置路径选择方法和拥塞监控方法600。

路径选择决定被维持在路径选择表(pst)6000中。pst被维持在每个tor交换机和聚合交换机中。作为两阶段路径选择过程的部分,只有数据流的路径的北行小径需要被记录,因为有从给定核心或聚合交换机到给定tor交换机的唯一南行路径。北行意指从源tor交换机到目的地tor交换机的路径。

现在将参考图6更详细地描述路径选择表,图6示出路径选择表布局的例子。每个pst条目记录从散列五元组得到的流id6002、所选择的出端口6004、指示路径选择是否完成(1)或未完成(0)的路径选择状态(pss)6006和指示条目是否是有效的(1)或无效的(0)的有效位6008。在图6中示出示例路径选择表(pst)。

当分组到达交换机时,pst基于它的流id而被考虑。如果条目存在且是有效的,则分组被路由到相应的出端口。如果条目是无效的且pss位是1或没有条目存在,则分组代表新流并开始新的一轮路径选择。当路径被选择时,有效和pss位被置位。pss位确保路径选择只被执行一次。当流或流的一部分的随后分组(即flowlet)——如果有的话——在路径选择完成之前到达时,具有零pss位的无效pst条目不触发路径选择。

pst条目在不活动期之后超时以便检测不活动的流并迫使新路径被选择。当存在沿着聚合交换机和核心交换机的特定路径的不活动流时,条目从pst被清除,以重新开放那条路径或识别出路径是畅通的,有最小拥塞。当条目超时时,有效位被重置。在一个实施方式中,pst的超时值被设置在100毫秒处。设想其它超时值,例如多达500毫秒。pst超时值可低至1毫秒。

在可选的实施方式中且根据网络拓扑和网络的处理要求,也设想在微秒范围内例如在20微秒和500微秒之间的其它超时值。

优选地,超时值足够大以过滤出同一流的突发脉冲,因为路径选择在每流基础上出现。可使用每个条目的一个额外位和整个pst6000的全局定时器来配置定时器。

如图6的示例性pst是有利的,因为它维持在交换机处的每流状态,其对照常规平衡负载和路径选择协议被使用。如所述配置的两阶段路径选择过程700和pst6000的成本对于数据中心网络是低的。如所述的方法700是可扩展的,并可应用于任何大小的网络,因为该方法在每流基础上被应用并涉及确定和在任何时间聚合在两个交换机之间的拥塞而不是试图聚合在网络中的每个交换机的拥塞信息。在示例clos网络100中,同时的数据流的数量对于示例性重负载交换机将小于8k。pst6000优选地是64k条目长。64k条目的pst长到足以覆盖在至少示例性3层clos网络100中的所有情形。

本发明在三层网络中的拥塞感测平衡负载的配置期间在ip分组上使用专用以太网标签。以太网标签可类似于ieee802.1qvlan加标签以在各种交换机之间在网络100内在两阶段路径选择过程700期间交换拥塞信息以在网络交换机之间记录并传输信息。在源mac地址和ethertype/长度字段之间添加新以太网表头字段。在图7中示出新字段和以太网表头7000的结构。以太网表头7000包括标签协议标识符、充当第一标签以将分组识别为请求分组或资源分组的tpid7002。这个字段被设置为0x9900以将分组识别为在路径选择过程700期间使用的路径选择分组。以太网表头字段包括阶段标志、sf位7004。这个字段识别分组服务于哪个阶段(0是对第一阶段,1是对第二阶段)。第一阶段的加标签的分组表示请求分组,而第二阶段的加标签的分组表示响应分组。分组还包括条目(noe)7006的数字的7位序列。这个位字段识别在分组中携带的拥塞度量(即链路负载)的数量。至多noe字段7006可包括128位。表头7000还包括实际拥塞数据(cd)或拥塞信息7008。拥塞度量、即拥塞信息布置在4位序列中,第一位作为填补。如图7所示,拥塞信息占据分组的64字节。

图8a示出根据本发明的平衡负载800的一种方法的流程图。图8b示出关于网络中的tor交换机和聚合交换机的平衡负载方法800的示例性配置。平衡负载的方法或过程800包括拥塞监控过程和两阶段路径选择过程。拥塞监控过程是确定在网络100中的交换机处的拥塞的局部化过程。用作平衡负载方法800的部分的拥塞监控过程可类似于如早些时候所述的方法600。用作平衡负载方法800的部分的两阶段路径选择过程可类似于如所述的方法700。方法800使用存在于网络的交换机中、即在网络的硬件元件内的所有功能被配置为分布式协议。

图8b示出如按照图4的在网络的拓扑中的两个数据流a和b的平衡负载。应理解,在网络中的平衡负载方法可与任三层拓扑一起使用且对如图1所示的3层clos网络拓扑特别有用。

在tor交换机(即tor交换机202)和tor交换机(即tor交换机302)下的主机或服务器之间存在新tcp连接。流a是在从tor交换机202到tor交换机302或更具体地从在tor交换机202下的服务器/主机到在tor交换机302下的服务器/主机的正向方向上的数据的流。

流b在反向方向上。平衡负载过程或方法800由交换机对每个流独立地应用,且每个流的路径独立地被确定和建立。如所陈述的,两阶段路径选择过程和拥塞感测平衡负载方法在每流基础上被建立以为每个流独立地确定最少拥塞的最佳路径。

在流a中的第一分组被标记为syn。分组在步骤802到达它的源tor交换机(即tor交换机202)。在步骤804,通过检查pst、即路径选择表来发起路径选择过程或机制。(tor交换机202)用它的出口链路负载(即拥塞信息或度量)来给分组加标签,将f设置为0并相应地设置noe。被设置为0的sf识别出两阶段路径选择在路径选择的第一阶段中。

在步骤806,加标签的分组、即请求分组由tor交换机20转发并将新条目插在pst中,pss位被设置为0。聚合交换机忽略请求分组850并简单地转发请求分组850。目的地tor交换机(即tor交换机302)在步骤808接收请求分组850。在步骤810,目的地tor交换机302检查noe字段并从请求分组拉拥塞信息或数据。在步骤812,目的地tor交换机302使用配对连接以其出口链路负载逐个条目地聚合noe。使用目的地tor交换机id和如所述的配对连接来识别入口链路负载、即与在聚合层中的聚合交换机有关的入口拥塞数据。在源tor交换机和聚合层之间的所有n个路径(即所有聚合交换机路径)的实际拥塞被简单地确定为两个跳跃的最大负载,即在源tor交换机和拥塞层之间和聚合层到目的地tor交换机的部分路径。

在步骤814,目的地tor交换机选择具有最小有效拥塞的聚合交换机id,其为在图8b的所示例子中的端口2。目的地tor交换机302在步骤816通过复制来自请求分组的tcp/ip表头并交换src和dstip分组来产生响应分组852而没有有效载荷。在步骤818,目的地tor交换机302给具有被设置为1的sf的请求分组852加标签,并将分组转发到相应于选定id的选定聚合交换机,其在所示实施方式中是聚合交换机(即聚合交换机302)。来自请求分组的标签在步骤820被转发到目的地主机或服务器。这完成两阶段路径选择过程800的第一阶段。

第二阶段是类似的并涉及使用响应分组来选择到核心层的路径的聚合交换机的使用。按照图8b,在步骤822,选定聚合交换机310(即)操纵具有被设置为0的noe的响应分组852,添加它的入口负载并相应地设置noe。在图8b的所示实施方式中,选定聚合交换机被称为目的地聚合交换机。源聚合交换机(即聚合交换机210)在步骤824接收修改的响应分组852。源聚合交换机基于配对连接而相应于目的地聚合交换机。源聚合交换机210在步骤826通过比较在聚合交换机310处的入口负载与它自己的出口负载并选择具有最低负载的核心交换机(其在这种情况下是核心交换机id(1))使用非零noe值来对修改的响应分组852做出反应。聚合交换机210(即)通过交换src和dstip地址来计算流a的id。在步骤828,源聚合交换机插入新pst条目或更新流a的现有条目,将1记录为路径选择结果(基于配对连接)并将pss和有效位都设置为1。最后在步骤830,源tor交换机310(即202)接收响应分组852,使它与pst中的流a的条目匹配,将它的入口端口(在这种情况下是2)记录在条目中作为路径选择结果,并将pss和有效位都设置为1并丢弃响应分组。这包括流a的路径选择。

流b的路径选择确切地以相同的方式完成。与流b的唯一差异是流b的源tor交换机是tor交换机(即tor交换机302)。接收第一分组的新源tor交换机302开始如所公开的两阶段路径选择过程,除了在反向方向上以外。选定聚合和核心交换机可与在对流a识别和选择的交换机不同。注意:流b没有在图8中示出。当路径选择在tcp握手期间完成时,如所述的两阶段路径选择过程不引起分组重新排序。

下面是提出tor和聚合交换机的路径选择和分组处理逻辑的两个算法。算法1概述用于两阶段路径选择过程的第一阶段的算法。下面的算法2概述用于两阶段路径选择过程的第二阶段的算法。算法1和算法2是示例性算法,且可使用将类似的功能配置为所述的两阶段路径选择的其它算法。

在路径选择的第一阶段中由tor交换机使用的算法1:

在算法1中,ecmp用于传输初始分组作为路径选择过程的部分。exp-请求描述请求分组。exp-响应描述请求响应。算法1被配置为在网络内的分布式协议并由在网络100内的tor交换机配置。

下面的算法2是由聚合交换机使用以将核心交换机识别为路径选择过程的第二阶段的部分的算法。

在上面的算法中,exp-响应是响应分组。如上所示的算法1和算法2是示出两阶段路径选择过程的第一和第二阶段的一个示例性配置的示例性算法。算法还示出操纵拥塞信息作为路径选择过程的部分的示例性方法。

本发明、特别是拥塞感测平衡负载的方法在控制分组、即请求分组或响应分组被丢掉或失去的情况下没有任何重传机制。数据的流不被此影响。在请求分组或响应分组失去的情况下有两个可能性。在第一可能性中,没有建立路径。在看到无效条目的任何分组使用ecmp(其为在数据网络中使用的标准方法)被路由的情况下。在第二情况下,在聚合交换机处但不在tor交换机建立路径的部分。因为在这种情况下,在聚合交换机处的pst条目将超时。在两阶段路径选择过程的任何部分中的故障的情况下,网络100配置成使用标准ecmp协议来传输分组,直到下一分组被使用为止。恢复到使用ecmp协议的网络100是作为平衡负载方法的部分的误差操纵机制。

故障是标准,除了在具有数千个交换机的大规模数据网络中的例外以外。本发明是有利的,因为用于平衡负载的方法800自动路由在由故障引起的任何拥塞周围的流量,由于方法800的拥塞感测性质,提供优于ecmp过程的更好性能。

图9示出在故障的情况下的根据本发明的平衡负载的方法的示例。在图9的例子中,链路(202)到(402)被损坏或降级。这使到每个pod的第一聚合交换机的链路(如用虚线示出的)是拥塞的,因为这些仅仅是要到达的路径在这个例子中,如果有从的流,则链路比从到核心层的两条链路更拥塞。从到其它pod比如pod3的数据流量将被路由到以便基于拥塞确定来避免拥塞的链路作为平衡负载的方法或协议的部分。相反,ecmp协议将均匀地分布数据流量并进一步使拥塞。

根据本发明的平衡负载方法是进一步有利的,因为两阶段路径选择方法利用路径的部分信息和因此特别是非对称网络拓扑的某些流的次最优决定。考虑如图9所示的上面的例子。假设有从pod1到pod2的流量。由于的故障,有在带宽上的50%减小,且从tor交换机到的上行链路在传输pod间流量时不能实现它们的全容量。因此,这些上行链路实际上更可能被选择,有利于可能恶化在上的拥塞的低负载。应理解,在图9中公开的tor交换机、聚合交换机和核心交换机可从网络100切换。唯一编号系统在图9中用于更好地解释平衡负载方法如何解释在网络中的故障。

本发明基于在网络中的聚合交换机的有效容量通过使用tor交换机上行链路的链路负载倍增器来处理上面的问题。使用负载倍增器作为平衡负载的方法的部分使网络瓶颈在tor交换机处是可见的。基本路由协议、即在网络或控制面或网络控制器中使用的以标准为基础的路由协议可向聚合层到核心层的tor交换机通知链路故障。这个通知方法是众所周知的。tor交换机然后为到如图9所示的聚合交换机的上行链路设置链路负载倍增器。链路负载倍增器用作拥塞确定过程的部分,其为平衡负载方法的部分。链路负载倍增器影响在tor交换机处的pod间流量。链路负载可由倍增器按比例调整,当它们在两阶段路径选择过程的第一阶段中用于聚合tor交换机的拥塞信息时。链路负载倍增器的使用是有利的,因为倍增器的使用将在聚合层处的容量减小成比例地移动到tor层。tor交换机更可能选择到的上行链路,并在网络周围更有效地重新分布流量以平衡在网络当中的负载。

平衡负载的方法关于3层clos网络被描述,但也可用作分布式协议作为2层叶-脊柱拓扑的部分。两阶段路径选择过程减小到单阶段路径选择,因为只有tor交换机被涉及。请求分组携带源tor交换机的出口负载,且目的地tor将它与它的入口负载聚合以得到所有可能的路径的端对端拥塞信息。该方法选择具有最少拥塞的路径。聚合交换机忽略具有零noe的南行响应分组并转发它。所选择的聚合交换机id作为响应分组的入口端口被得到,当它到达源tor交换机时。类似的方法可应用于pod内流量。

在一个例子中,使用适当的原型化工具来将使用包括局部拥塞监控过程和两阶段路径选择过程的平衡负载方法的一个示例实施方式执行的实验作为原型。根据本发明的平衡负载的方法的一个示例实施方式的原型使用click、用于路由协议的快速原型化的模块化软件路由器被原型化。图10示出使用click原型化工具构造的示例原型。为原型发展两个新click元件。这些是测量链路负载的dre和进行两阶段路径选择的exproute。图10示出用于具有4个端口的tor或聚合交换机的平衡负载协议的分组处理管线。在这里,设备eth0和eth1由两个点对点链路连接到拓扑中的夏层路由器或主机。eth2和eth3连接到上层路由器。在click配置中,exproute操纵所有进入的分组。如果分组的目的地ip地址匹配这个交换机的目的地子集,即分组是南行的,则它在输出θ上被发射并传递到lookupiproute,如图10所示。lookupiproute元件然后使目的地地址与路由表条目匹配并将它转发到正确的下游出口端口。否则,如果分组是北行的,则exproute根据它的两阶段路径选择机制来选择出口端口,两阶段路径选择机制可配置例如在700中描述的两阶段路径选择过程。

现在描述如图10所示的dre元件的配置。dre元件在如图10所示的click配置中位于靠近eth2和eth3的fromdevice和todevice元件处。dre元件可准确地检测从/到每个链路发送的分组。exproute可得到来自上游dre元件的入口链路负载和来自下游dre元件的出口链路负载。click配置可以只配置毫秒分辨率,这影响链路负载的准确估计,这使dre反应比硬件配置更慢以链接负载变化。原型实验表明,在网络中被配置为分布式协议的平衡负载的方法是可能的且起作用。

在另一实验中,小规模emulab测试台用于实现click配置以测试根据本发明的平衡负载的方法的执行。图11示出用作这个实验的测试台的小规模3层clos网络的例子。用于这个示例性实验的emulab测试台使用pc3000节点来托管具有64位xenon3.0ghz处理器、2gbddr2ram和四个1gbenic的click路由器。所有节点运行具有修补的linux2.6.24.7内核和修补的intele1000‐7.6.15.5nic驱动器的centos5.5以提高click性能。在内核中的默认tcp立方配置用作示例性测试台配置的部分。作为原型的click配置在内核空间中操作,且测试台配置导致确定在两个click路由器之间的tcp吞吐量在940+mbps下是稳定的。作为这个示例性实验的部分,使用在每个pod中的2个聚合和tor交换机来建立小规模3层clos网络。每个聚合交换机连接到两个核心交换机,且每个tor交换机连接到两个主机或服务器,如图11所示。核心层由限制核心链路以模仿现实环境的速率在4:1下被超额利用。

emulab测试台在示例实验中用于按照本发明的实施方式使用平衡负载方法或协议来评估分组处理开销。图12示出表格,其显示通过在以线速率发送的源tor交换机处的每个元件转发分组的平均cpu时间,线速率在这个实验中使用intelxeon循环计数器来测量。从总处理时间除以分组的数量来得到平均值。hashroute元件用于执行ecmp并测量它的处理时间。由exproute和dre元件引起的额外开销被确定为数百纳秒。这与ecmp比较是可忽略的延迟。平衡负载的方法是有利的,优于ecmp,因为它确定拥塞并选择最少拥塞的路径。对tcp握手的两阶段路径选择的时延开销也被考虑为实验的部分。作为时延测量的部分,tcp连接开始,且测量发送方花费多长时间来开始发送第一数据分组,到这个时间时为止对两个方向的路径选择被完成且不影响流。平衡负载的方法加上在平均100次运转上的可忽略的平均15毫秒延迟,如在图13的表中所示的。所述实验显示根据本发明的平衡负载的方法的可行性。

现在将描述另一示例实验。这个实验被进行以使用来自生产数据中心的两个现实工作负载来评估平衡负载方法的执行。第一工作负载来自主要运行web搜索的群集。第二工作负载来自运行数据挖掘工作的大群集。这两个工作负载分布都是重尾的。在web搜索工作负载中,超过95%的字节来自大于1mb的30%的流。在数据挖掘工作负载中,95%的字节来自大于35mb的3.6%的流,多于80%的流小于10mb。作为这个实验的部分,流在图11所示的测试台网络的不同pod中的随机发送方和接受方之间产生。根据具有变化的到达速率的泊松过程来产生数据流以便模仿不同的负载。图14和15示出对于两个工作负载测试台的与ecmp比较的平衡负载的方法的fct结果。图14代表按照本发明的平衡负载的方法和web搜索工作负载的ecmp协议的比较。图15代表按照本发明的平衡负载的方法和数据挖掘工作负载的ecmp协议的比较。在附图中,按照本发明的平衡负载协议被称为expeditus,而ecmp被称为ecmp。

负载从0.1改变到0.7,在其之外,结果在测试台中变得不稳定。图14和15示出老鼠流(<100kb)和大象流(>1mb)的fct统计。在100kb和1mb之间的中等流的结果在很大程度上和大象流一致。为了简洁,没有示出中等流的fct统计。在图14和图15中的曲线中的每个数据点代表3次运转的平均值。如图14和15所示,按照本发明的平衡负载的方法或协议在老鼠流的平均和尾部fct中95%性能比ecmp协议好。对于在0.4和0.7mb之间的负载,按照本发明的平衡负载协议将平均fct在web搜索工作负载中减小了大约14%到30%且在数据挖掘工作负载中减小了17%到25%。在尾部fct中的减小甚至更大,在web搜索工作负载中是大约30%到45%而在数据挖掘工作负载中是5%-30%。根据本发明的平衡负载协议(即expeditus)也实质上提高在中和高负载中的大量流的吞吐量。在平均fct中的减小对于web搜索工作负载是9%-38%而对于数据挖掘工作负载115-18%。平均fct在数据挖掘工作负载中长得多,因为大象流鼻数据挖掘工作负载大得多。

另一实验被进行以测试在大规模网络中的平衡负载方法(或平衡负载协议)的执行。在这个实验中,12pod胖树拓扑用作基线拓扑。有在不同pod处的任何对主机之间的36个核心交换机、即36个等成本路径和总共432个主机或计算机。每个tor交换机具有分别与聚合层和主机的6个连接。所有链路被配置为在10gbps下运行。核心交换机的数量改变,作为这个实验的部分,以得到在核心层处的不同的超额利用比。基线超额利用比是2:1。在这个实验中的模拟的每次运行产生多于10k流,且超过3次运行的平均值用于产生或表示数据点。在这个实验中,使用来自生产数据中心的两个现实工作负载。第一工作负载与web搜索工作负载有关而第二工作负载与数据挖掘工作负载有关。作为这个实验的部分,示例性网络受到压力测试,其包括被分类为选通、双映射、随机的三个模式。在选通模式中,主机从左到右被便索引。服务器i将数据发送到服务器[(i+m)modn],其中m是在pod中的主机的数量,以及n是主机的总数量。在双映射模式中,每个主机将数据发送到在不同pod中的随机目的地。每个主机只从一个发送方接收数据。最后在随机模式中,每个主机向不在与本身相同的pod中的随机目的地发送。这个模式不同于双映射模式,因为多个主机可将数据发送到同一目的地。

作为这个实验的部分,在模拟中测试三个平衡负载方案。根据本发明的基于拥塞的平衡负载方法被称为expeditus。除了expeditus以外,还可使用clairvoyant和ecmp协议。clairvoyant是使用所有可能路径的完整沿路径的信息。ecmp是被使用的基线协议且没有基于拥塞的或拥塞感测特性。通过产生具有三个合成流量模式的同步流来执行压力测试以评估expeditus(即根据本发明的拥塞感测平衡负载方法)的平衡负载性能。从每个发送方产生50mb的数据流。为了改变同步的程度,使用从具有0.30毫秒和60毫秒的平均值的指数分布采样的流到达时间进行三组模拟。

图16示出在5次运行上的具有误差棒的不同方案或协议的平均吞吐量。特别是,图16示出在4pod10gpbs胖树中利用的不同流量模式的压力测试结果。当所有流同时开始时,expeditus和clarivoyant与ecmp同时执行。当流稍微松散地同步时,expeditus能够选择比ecmp更好的路径并提高性能。expeditus对于选通和双映射将平均吞吐量提高了大约23%-42%,且对于具有30毫秒和60毫秒的平均到达时间的随机提高了大约25%。如从图16看到的,expeditus协议执行得与clarivoyant协议几乎一样好。clarivoyant协议在虚拟环境中是可测试的,但需要高开销,这使配置变得非常难和昂贵。相反,expeditus协议较容易配置,需要较少的处理资源并允许高度可扩展的网络设计。expeditus协议可与容易改变网络尺寸一起被使用,因为协议只基于两个交换机来确定路径选择并响应于数据的流来确定每个交换机的局部拥塞度量而不是维持全局拥塞度量。

在另一测试中,在大规模clos网络中使用现实流量踪迹来研究平衡负载的方法(即由发明人称为expeditus)的执行,同时将网络负载从0.1改变到0.8。根据本发明的平衡负载的方法是由网络交换机和网络元件配置的分布式协议。图17示出在具有在2:1的比率下超额利用的核心层基线12pod胖树网络中的web搜索工作负载的标准化fct(nfct)时间。这些是本发明的另一性能测试/实验的结果。nfct值是被标准化到在空闲网络中配置的最佳可能的完成时间的fct值,其中每个流可在瓶颈链路容量下传输。对于老鼠流,按照本发明的平衡负载的方法(即expeditus)提供优于ecmp的在95%下的20%-50%fct。对于大象流,expeditus平均也大约更快25%-30%。尾部和平均fct提高在更小的负载中更大。这是因为对于更小的负载更可能找到空闲路径。而且,很清楚,expeditux的性能紧密地跟踪clairvoyant协议的性能,如在图17中看到。在大部分情况下,如在图17中看到的,性能间隙小于10%,展示按照本发明的平衡负载的方法的有效性。这是因为平衡负载的方法是启发式路径选择设计。对数据挖掘工作负载观察到类似的提高。在图18中所示的曲线中展示数据挖掘工作负载的性能。基于在图17和18的曲线中所示的结果,可观察到,与ecmp比较,平衡负载的方法(即expeditus)在整个网络中的平衡负载下更有效。与ecmp比较,expeditus的使用减小平均吞吐量不平衡。与协议clairvoyant比较,expeditus协议也在tor到聚合层之间的平衡负载处执行得更好。

图19和20示出被进行来评估根据本发明的平衡负载的方法的执行以解决网络瓶颈的实验的曲线。如早些时候描述的,本发明的协议或方法被称为ieexpeditus。作为这个实验的部分,通过改变在网络的拓扑中的不同层处的超额利用比来改变在网络内的瓶颈的严重性和位置。图19示出对于在具有在核心层处的变化的超额利用比的基线拓扑中的所有流优于ecmp协议的平均fct提高。图19的曲线用于评估在网络中的平均严重性的影响,作为性能实验的部分。为了简洁,只示出web搜索的结果。通常从图19中可看到,expeditus协议首先使用更多的超额利用提供更多的益处,然后提高随着3的超额利用比而降低。这是因为网络是强烈地超额利用的,很多大象流占据路径,越过等成本路径且由于expeditus协议的拥塞感测性质而减小拥塞分集。

图20的曲线用于评估并考虑在网络内的瓶颈位置的影响。图20示出当tor层使用更多的主机或服务器被超额利用时的结果。tor交换机而不是聚合交换机的上行链路是瓶颈。从图20中可看到,expeditus协议在这个背景中执行得更好。原因是因为路径选择过程总是选择在tor层开始的路径。与是瓶颈的核心层比较,当tor层是瓶颈时,平衡负载协议/方法(即expeditus)的路径选择过程执行得更好。总的说来,按照本发明的平衡负载的方法在不同的拓扑设置、瓶颈的不同严重性和瓶颈的不同位置中比其它方法执行得更好(即至少与ecmp协议比较)。

进行另一实验以确定链路故障和拓扑不对称性的影响。在图21和22中示出性能的结果的曲线。实验在12pod非超额利用的胖树拓扑中的两个pod上进行。出故障的链路的数量改变,作为实验的部分。在一个pod中的链路被选择为在每次运行中随机地一致地出故障,每个交换机具有至多2个出故障的链路。只绘制web搜索工作负载的结果。图21示出当在聚合层和核心层中有故障时的平均fct减小。图22示出当在tor层和聚合层链路中有故障时的平均fct减小。

按照本发明的平衡负载的方法(即加标签的expeditus)比ecmp执行得更好,因为在聚合层和核心层链路中有更多的故障,如图21所示。这是因为ecmp总是将流均匀地弄乱到所有路径,而不考虑不对称上行链路带宽,因而加重拥塞。平衡负载的方法(expeditus)使用链路负载倍增器和拥塞监控来检测由于故障而引起的高利用链路,并因此使流量远离热点转移以平衡负载。如图21所示,expeditus协议与clairvoyant协议执行得几乎一样好,clairvoyant协议与至少ecmp比较增强expeditus协议的性能益处。图22示出当故障出现在tor层和聚合层链路中时的结果。在被测试的不同情形中,expeditus协议提供在20%和70%之间的性能增加。按照本发明的平衡负载的所有方法10对照在3层clos网络中的故障是鲁棒的。

也进行实验以与conga流控制协议和ecmp协议比较来确定2层叶-脊柱拓扑的expeditus协议(即平衡负载的方法)的性能特征。图23和24示出跟踪不同流的标准化fct的测试结果的各种曲线。在这些实验中使用的拓扑包括8个叶交换机、8个脊柱交换机和128个主机或服务器。图23示出web搜索工作负载的标准化fct结果,以及图24示出数据挖掘工作负载的结果。从曲线中可看到,expeditus协议对于越过所有负载的所有流配置范围从10%到30%的性能增加。expeditus协议在所有情况下在性能上也超过gonga流协议。

上面的实验示出平衡负载的方法的操作并示出按照本发明的平衡负载的方法的有效性。由于本文陈述的各种原因,平衡负载的方法是有利的,优于现有协议,并提供更有成本效益的、可扩展的和更好执行的用于在网络内的平衡负载数据流量的方法。

虽然不需要,参考附图所述的实验可被配置为应用编程接口(api)或作为库用于由开发商使用或可被包括在另一软件应用例如终端或个人计算机操作系统或便携式设备操作系统内。通常,因为程序模块包括帮助特定功能的执行的例程、程序、对象、部件和数据文件,技术人员将理解,软件应用的功能可分布在多个例程、对象或部件当中以配置本文所述的相同功能。

也将认识到,在本发明的方法和系统完全由计算系统或部分地由计算系统配置的场合,则可利用任何适当的计算系统架构。这将包括独立的计算机、网络计算机和专用硬件设备。在术语“计算系统”和“计算设备”被使用的场合,这些术语意欲包括能够实现所述功能的计算机硬件的任何适当布置。

本领域中的技术人员将认识到,可对如在特定的实施方式中所示的本发明做出很多变化和/或修改,而不偏离如广泛所述的本发明的精神和范围。本发明因此在所有方面被考虑为例证性的和非限制性的。

对包含在本文中的现有技术的任何提及不应被理解为承认信息是公共一般知识,除非另有指示。

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