数据中心互连和流量工程的制作方法

文档序号:7734742阅读:195来源:国知局

专利名称::数据中心互连和流量工程的制作方法数据中心互连和流量工程对相关申请的交叉引用本申请要求2008年6月9日提出的授予Maltz等人的题为“DATACENTERINTERCONNECTANDTRAFFICENGINEERING(数据中心互连和流量工程)”的临时专利申请No.61/060,040的优先权,该申请的全部内容通过援引纳入于此。背景当今的数据中心中主存的应用程序遭受资源内部分割、刚性、以及由连接数据中心的服务器的网络的体系结构施加的带宽制约。当前常规体系结构将web服务静态地映射到以太网VLAN,由于控制平面开销,每一个VLAN在大小方面限制于几百个服务器。经由昂贵的自定义硬件和专有软件来实现用于跨VLAN分散流量的IP路由器和用于跨服务器在VLAN内分散请求的负载平衡器。如此,昂贵的IP路由器端口变成任何机架-到任何机架服务器连通性的瓶颈,如此,限制了许多数据密集型应用程序(例如,数据挖掘、映射/降低计算、分布式文件系统、大型对象(blob)存储)的流量。此外,常规体系结构将流量集中于必须常常升级和替换以跟上需求的一些硬件中——直接抵触数据中心的其余部分的流行原则(流行原则为横向扩展(添加更多便宜的组件)而并非纵向扩展(向少量的昂贵的组件添加更多能力和复杂性))的方法。将流量集中于小数量的网络路由器和交换机的做法还将网络置于发生故障和停机的风险中,因为这种小数量的组件的故障击败嵌入到系统中的冗余,并导致停机。现在存在在极低的端口成本下有非常高的端口速度的商用交换硬件可用,使得现在是重新设计数据中心网络基础结构的恰好时机。数据中心包括服务器和网络组件,其中,组件之间的距离通常小于一毫秒的光速传播时间(即,以l(ibps速度或更大的速度,越过少量的交换机)。基础结构的服务器部分现在就商品化而言太遥远一高端企业级服务器已经被大量的低成本PC所替代。分布式计算和系统管理软件中的新发明已经使个体服务器的不可靠性被系统作为整体的聚合的可靠性所掩盖。运行的主题是由PC商品化的经济因素进行驱动的“横向扩展代替纵向扩展”。商用部件的特征在于广泛的可用性、标准化、以及用于增大的能力的驱动程序(例如,IGbpsUOGbps技术已可用,IOOGbps技术现在是新兴的)。数据中心基础结构的网络部分为商品化呈现下一新领域。需要互连的服务器的数量的增大已经如此延伸了企业网络解决方案的限制,以至于当前体系结构类似最初旨在在数量级较小的企业网络中工作的协议的一系列修补和替代方法。现在将参考图1讲述常规数据中心的某些挑战和要求,图1示出了从推荐的源获取的数据中心的常规体系结构100。参见"Ciscosystems=Datacenter=Loadbalancingdatacenterservices,2004(思科系统数据中心负载平衡数据中心服务,2004)”,其藉此通过援引全部纳入于此。多个应用程序在数据中心内运行,但是,通常每一应用程序都被主存在其自己的一组(潜在可能的虚拟)服务器机器102中,单个组织拥有并控制数据中心内的活动。来自因特网104的请求通常被发送到公开可见和可路由的虚拟IP地址(VIP),并且有与在数据中心中运行的每一应用程序相关联的一个或多个VIP。从因特网到达的请求,基于目的VIP地址,通过边界路由器(BR)和访问路由器(AR)被IP(层3)路由到层2域。VIP被配置到连接到顶交换机⑶的两个负载平衡器(LB)上,并使用复杂的机制来确保如果一个负载平衡器失败,则其他负载平衡器拾起流量。参ΒΕ.R.HindenPJf^^"Virtualrouterredundancyprotocol(^1%^!^VRRP)”,该申请通过援引全部纳入于此。对于每一个VIP,负载平衡器被配置成具有直接IP地址列表(DIP),直接IP地址是负载平衡器下面的机架中的物理服务器102的私有和内部地址。此DIP列表定义可以处理到该VIP的请求的服务器池,负载平衡器跨池中的DIP分散请求。随着数据中心中所需的服务器的数量增长,向层2域中添加附加成对的交换机和相关联机架,如图所示。由于广播和控制平面流量的开销,层2子网在大小方面被限制于几百个服务器,如此,在层2交换机上配置了VLAN,以将域分割为多个层2子网,每个VLAN—个子网。当层2域最终达到与大小大约为4,000个服务器的大以太网域相关联的限制(例如,VLAN耗尽、广播/控制流量)时,创建附加层2域,并将其连接到其他访问路由器对。常规方法具有下列问题资源的分段诸如目的NAT(或半NAT)和直接服务器返回之类的流行的负载平衡技术,要求VIP的池中的所有DIP都位于同一层2域中。参见由C.Kopparapu所著的‘‘LoadBalancingServers,Firewalls,andCaches(负载平衡服务器、防火墙和高速缓存)”,其藉此通过援引全部纳入于此。此约束意味着,如果应用程序增长并要求更多服务器,则它不能使用其他层2域中的可用服务器-最终导致对资源的分段和利用不足。经由源NAT(或完全NAT)的负载平衡允许服务器跨层2域分散,但是,随后服务器从来不看客户端IP,这常常是无法接受的,因为服务器需要将客户端IP记入日志以便进行规章顺应性和数据挖掘。差的服务器到服务器连通性网络的分层本性意味着,为使不同的层2域中的服务器进行通信,流量必须经过网络的层3部分。由于层3端口比层2端口昂贵得多,因此这些链路通常被过量预订(例如,访问路由器和边界路由器之间的链路的容量小于连接到访问路由器的服务器的输出容量的总和)。结果是,数据中心的不同部分中的服务器之间可用的带宽会是十分受限的。这将产生严重的全局优化问题,因为必须小心翼翼地安置属于所有应用程序的所有服务器,以确保其流量的总和不会使任何一个网络链路饱和,并且在实践中,在应用程序之间实现这一水平的协调是困难的。在服务器之间缺乏足够的容量还将服务器的池分段。例如,当在数据中心中运行的应用程序需要更多服务器来处理其工作负荷时,位于数据中心中的别处的未使用的服务器无法投入服务中——如果在它们和现有应用程序服务器之间没有足够容量的话。纵向扩展,而非横向扩展的专有硬件常规体系结构中的负载平衡器被成对地用于1+1弹性配置中。当负载对于负载平衡器来说变得太大时,操作员将现有负载平衡器替换为具有更大的容量的新的对,而不可能添加单个负载平衡器来获得更大的容量。
发明内容本系统涉及用于横向扩展数据中心网络的简单设计。该系统设计使用简单的网格类体系结构、商用交换机、对控制平面的修改,以控制协议开销以及通过多径路由来支持灵活的流量工程。它将负载平衡的功能解聚为一组标准服务器,结果,负载平衡服务器硬件可以在数据中心中的机架之间分布,从而导致更大的灵活性和较少的分段。该体系结构创建巨大且灵活的交换域、支持任何服务器/任何服务、全互联灵活性、以及低成本的未严加管制的服务器容量。在各实施例中,该系统包括用于数据中心的互连拓扑,该数据中心具有多个服务器以及数据中心中的网络的多个节点,可以经过所述节点路由数据包。该系统使用这样的路由方案路由不在意网络中的节点之间的流量模式,且其中,该互连拓扑包含一个或多个服务器之间的多条路径。与常规体系结构完全不同,当前体系结构符合下列挑战任何地方的布局该体系结构允许数据中心中的任何地方的任何服务器是任何VIP背后的服务器池的一部分,以便服务器池可以动态地收缩或扩展。即,服务器以及每一VIP背后的DIP可以被置于数据中心中的任何地方。服务器到服务器带宽许多应用程序要求数据中心内的大量的计算,如此,该体系结构优化数据中心中的每对服务器之间的带宽,而不管它们所在的位置。横向扩展的商用硬件随着需要更大的容量,本系统使得添加更多单个组件比用较新且较高容量模型替换现有组件更加容易。这要求该体系结构支持其中所有组件都是活动的弹性模型,其中,η个组件中有1个组件失败只移除总容量的1/η。利用相同体系结构支持任意数量的服务器未来的数据中心将在大致100,000个服务器之间提供密集的内部通信。本系统允许有效的负载平衡和这么多的服务器之间的通信。信息存储和用于交换和负载平衡的消息接发随着服务器的数量线性地缩放。网络硬件和消息接发随着网络元件的数量以nlogn缩放。如下面所说明的,本系统通过利用服务器的可编程性、带有标准路由和封装能力的交换机、以及交换机硬件中所实现的某一有用的数据平面原语来应付这些挑战。附图简述图1是数据中心的常规网络体系结构的图示。图2是示出了由没有过量预订链路的网络所连接的所有服务器的本系统的体系结构的概览图。图3是主机的网络栈的图示。图4是当数据包从一个服务器流向同一个数据中心中的另一服务器时的数据包处理的示例性图示。图5是跨因特网的连接的网络路径的图示。图6是连接103,680个服务器的交换机的示例拓扑的图示。图7是示例互连拓扑的图示。图8是示例互连拓扑的图示。图9是使用144端口交换机双倍缩放互连拓扑的图示。具体实施例方式现在将参考图2-9来说明本系统。给定带有低于$100并降至$10的Kibps端口、具有降至$1,000到$100的IOGbps端口、以及带有接近于标准化的40Gbps和IOOGbps的商用交换硬件的可用性,正是重新设计数据中心网络基础结构的时候。下面提供了用于商品化用于“云”服务的数据中心的网络的系统,其中,大量的服务器协作地处理巨大的工作负荷(例如,web搜索)。本系统的特征包括网格上的流量工程在商用交换机的网格上使用Valiant(英勇)负载平衡(VLB),以实现热点空闲内核结构(hot-spotfreecorefabric),该结构以不在意的方式支持任意流量模式(即,它适应由服务器接口卡准许的任何流量矩阵)。交换机的作用简化为快速转发,且缩放和控制中的许多复杂性被转移到服务器。扩展到巨大的层2域数据包在服务器之间使用平坦地址引导,以便任何服务器都可以使用任何地址,不管它在物理上连接到数据中心中的何处。如此处所使用的,平坦地址是只指示服务器或目的地的标识而不指示服务器或目的地被连接到网络上的位置的地址。平坦地址与在拓扑上有效的其他地址不同,在拓扑上有效意味着这些地址不仅标识服务器或目的地,而且还指示服务器或目的地连接到网络上的位置。网络对于服务器来说看来似乎是单个巨大的层2域,但是,可使用若干种技术,以便此域可以纵向扩展到10万个服务器或更多。解聚负载平衡功能负载平衡被实现为数据包转发的整体组成部分,以便可以使用一致散列来跨多个服务器地分散去往任何IP地址的流量。在下面的描述中,使用术语“数据包”和“分组”来指由服务器所发送的以头部为开始的数据序列。头部可以是层2或者层3,而后面的数据可包括额外的头部。在下面的描述中,术语“路由器”和“交换机”可互换地使用,来指在至少一个端口上接收数据包并作为响应将数据包传输出一个或多个端口的组件。体系结构图2提供了根据本系统的体系结构200的概览。两个特征是将单个层2域中的数据中心内的所有100,000服务器连接在一起的网络和可在服务器池上分布请求的灵活方式。下面说明了该体系结构,后面是提供有关每一点的更多细节的小节。网络207被设计成具有完全可达性,而没有过量预订的链路,这意味着,任何服务器都可以以该服务器的网络接口的完全mbps速率与任何其他服务器进行通信。对于平坦地址空间的支持有效地支持在数据中心看到的移动性形式通过注册新位置,图像或虚拟机从一个物理机器迁移到另一个物理机器。结果对于在层3-7操作的负载平衡器上的VIP/DIP和应用程序服务器上的安全策略而言是透明的。本系统的网络的层3部分使用等价多径(ECMP)来在所有边界路由器(BR)和访问路由器(AR)上均勻地分散从因特网202接收到的请求。随着请求进入层2域,访问路由器使用一致的散列来在充当目的VIP的负载平衡器的一组服务器206上均勻地分散请求。通过配置或交换机可编程性,可以使用加权多径而并非等价多径。最后,负载平衡器使用应用程序专用负载分布函数来在由其DIP所标识的实现应用程序功能的服务器210的池上分散请求。本系统的用于在一组服务器206分散发往一IP地址的数据包的能力意味着,负载平衡器可以被解聚——即,从商用服务器代替专门的高吞吐量硬件来构建。随着所提供的负载开始淹没现有的负载平衡器,可以提供额外的服务器206来作为负载平衡器以稀释负载。另外,使用商用服务器作为负载平衡器可使它们能完全可编程,且其算法针对特定数据中心应用程序可调,而并非设法应付供应商在固件中所提供的算法。如在图2中所示,任何访问路由器、负载平衡器或服务器的失败不会对数据中心的功能造成长期危害。保健服务连续地监视每一服务器的活性,而当检测到服务器被从旋转池取出的问题时,不再向它发送新请求。(控制和管理平面实现都是可能的。参见,例如,M.Isard所著的"AutopilotAutomaticdatacentermanagement(自云力导航自云力数据中心管理)”,其藉此通过援引全部纳入于此)。可用的组件在设计本系统的数据中心网络时,由于两种原因,期望使用低成本的交换机。第一原因是经济因素。低成本的交换机会降低网络的总成本。第二原因是冗余模型。使用多个低成本的交换机能实现在失败的情况下适度降级的n+m冗余模型。尽管低成本交换机缺乏更昂贵的交换机或路由器的许多数据包处理特征,但是,当前体系结构示出了具有以硬件实现的转发平面的但是带有可编程控制平面软件的交换机如何足以实现优美而性能好的设计。低成本的交换机具有影响数据中心网络的设计的下列特性。封装/解除封装机制封装允许交换机在另一种数据包内携带一种数据包,且由最外面头部确定对数据包的转发。解除封装允许接收发往其地址的已封装数据包的该交换机移除最外面的头部,然后使用其正常转发规则——但是适用于下一最外面头部——来转发数据包。如随后的小节所示,具有实现此基本要素的交换机是有价值的,因为它允许末端服务器上的软件编排复杂的网络行为,并且服务器软件可以比交换机上的软件更轻松地编写、修改和部署。低成本的交换机常常实现多个封装/解除封装机制。第一示例是IP-中-IP(IP-in-IP)封装(由评定要求文件2003进行定义,其藉此通过援引全部纳入于此),其中,IP数据包被封装在另一个IP头部内。第二示例是VLAN封装,其中,数据包被封装在包含VLAN标记的802.1头部内。第三示例是MAC-中-MAC(MAC_in_MAC)隧穿(在IEEE802.Iah中阐述,其藉此通过援引全部纳入于此)定义了类似于IP-中-IP封装的层2。当交换机接收到发送到其自己的MAC地址的数据包时,它移除最外面MAC头部,且如果里面有另一个MAC头部,则将数据包转发到里面头部中的MAC目的地址。当今802.Iah是在“电信级以太网”交换机中实现的,但是可以预期会被广泛应用。受限的转发表大小由于大型芯片上存储器的成本,低成本交换机常常具有小的转发表。例如,尽管一些交换机在其转发表中支持超过100KMAC条目,但是,绝大多数交换机只支持16,000MAC个条目或12,000个IP路由条目。由于是以带有100K个服务器的数据中心为目标,显然,不是每一个交换机都保留至每一服务器的路由。节点度有各种节点度的低成本的交换机可用,如此,可以使用多种交换机。例如,将来自每一机架中的20个服务器的20个Kibps链路聚合到2个10(ibpS上行链路上的架顶式(top-of-rack:T0R)交换机。作为第二示例,带有IOGbps的144端口的“核心”交换机。这类交换机可从诸如Broadcom(广通)、Arastra(艾拉思塔)、WovenSystems(机织系统),FulcrumMicrosystems(支点微系统),Nortel(北电),以及Extreme(极进)之类的供应商处购得。服务器到服务器转发在数据中心中的服务器之间转发数据包的能力是本系统的基本方面,其他功能被构建于其上。在提供转发时有三个主要问题要解决。转发可缩放性本系统必须使用由每一交换机只能存储16,000个转发条目的诸交换机构成的网络来连接100,000个服务器。本系统不允许交换机看见每一服务器的目的地址。本系统的解决方案是让发送方服务器将其数据包封装到目的地的架顶式交换机,以使得交换机只需存储其他交换机以及它们自己直接连接的服务器的转发条目。可以有多种实施例。在一个实施例中,由服务器所发送的L2数据包被封装在MAC-中-MAC数据包内。在另一实施例中,由服务器所发送的L3数据包被封装在IP-中-IP数据包内。在更进一步的实施例中,数据包可以被封装在VLAN或Q-中-Q(VLAN中的VLAN)中。应该理解,“架顶式交换机”被用来描述服务器所连接的交换机。此交换机常常与服务器位于同一机架上,但是,交换机的位置并非重要的,且在需要时,可以将它安置到数据中心中的别处,或与服务器集成到一个包封中(如在刀片式服务器配置中那样,其中,一个包封包括由交换机连接的多个服务器或中央处理单元)。ARP可缩放性目标是创建支持平坦地址并连接所有服务器的单个大型层2域。如上文所描述的,常规设计的一个失败在于,每一服务器使用地址解析协议(ARP)来解析它希望与其进行通信的其他服务器的地址。ARP协议所使用的广播数据包导致无法接受的开销,其将层2域的大小限制成远比所希望的服务器的数量(例如,100,000个服务器)小。本系统的解决方案是在由服务器所生成的ARP数据包离开服务器之前截取它们,并替代地向目录服务发送请求。目录服务返回发送方服务器必须使用的地址(例如,目的服务器的MAC或IP地址,和/或目的地服务器所连接到的架顶式交换机,和/或一个或多个中间交换机的MAC或IP地址)。流量工程在不知道应用程序将运行的流量模式的情况下,本系统必须支持任何流量矩阵,其中,没有服务器被要求发送或接收比其网络接口所允许的Kibps更多的流量(被称为软管流量模型。参见N.G.Duffield,P.Goyal,A.G.Greenberg,P.P.Mishra,K.K.Ramakrishnan,以及J.E.vanderMerwe所著的"Aflexiblemodelforresourcemanagementinvirtualprivatenetwork(用于虚拟专用网络中的资源管理的柔性模型),,,其藉此通过援引全部纳入于此)。本系统的解决方案是使用Valiant负载平衡(VLB),这是已知的处理服从软管模型的任意流量波动的不在意路由策略(obliviousroutingstrategy)。参见由Μ.Kodialam、Τ·V.Lakshman、J.B.Orlin,以及S.Sengupta所著的"AVersatileSchemeforRoutingHighlyVariableTrafficinServiceOverlaysandIPBackbones(用于在月艮务冠带层和IP主干中路由高度可变流量的通用方案)”和由R.Zhang-Shen和N.McKeown所著的"DesigningaPredictableInternetBackboneNetwork(设计可预测因特网主干网)”,在此引用了这两个文件的全部内容作为参考。VLB要求跨网络发送的每一数据包在被转发到其目的地之前首先从随机选择的中间交换机“弹出”。本系统通过向数据包添加将这些数据包送往随机选择的交换机的附加封装头部来来实现VLB。通过使用拥塞控制机制(例如,IP网络中的TCP或以太网中的QCN),将任意提供的流量需求转换为接近于软管模型下可容许的负载的流量矩阵负载——从网络边缘处的端口发送出或进入其的流量不超过端口速度。拥塞控制、VLB,以及适当的交换机拓扑组合起来确保均勻的高吞吐量。负载分散在构建数据中心应用程序时,能够跨一组服务器分散请求常常是有用的。本系统的解决方案是支持负载分散作为基本转发的一部分。每当本系统将数据包发送到IP地址I时,已准备好将该IPI地址解析为MAC或IP地址列表,这些地址与其他服务器相关联,这些其他服务器中的每一个都适用于处理最初由应用程序发送到IP地址I的数据包。在此情况下,发送方可以使用一致的散列来选择向其发送数据包的地址。总的来说,这些解决方案能在例如使用带有小的转发表的交换机的同时实现带有VLB的流量不在意属性的大型层2域。由单个IP地址解析为多个地址的能力所产生的网络的负载分散能力,意味着,负载平衡可以使用服务器本身来实现,而无需专门的负载平衡硬件。从目录获取路径信息当在服务器210上运行的应用程序将要发送到一IP地址的数据包呈现给其网络栈时,服务器在它可以创建并发送数据包之前需要两个信息片段。如上所述,它必须具有负责处理该IP地址的服务器的地址列表,以及其中那些服务器中的每一个所连接到的架顶式交换机的地址。它还需要交换机地址列表,它将从该列表中随机挑选要从其“弹出”数据包的交换机。服务器从由本系统所维护的目录服务获取这些信息片段。下面将讲述藉由其利用数据填充目录服务的手段。图3示出了本系统中的服务器210的网络栈300。传统ARP实现已经被禁用,并被替换为可以在用户或内核模式下运行的进程,简称为代理302,并且已添加了新的虚拟接口,叫做封装器306,来封装传出数据包。这些变化对应用程序是完全透明的。当封装器306从IP网络栈接收数据包时,它计算数据包的流id,并检查其活动流的缓存,以查找匹配条目。如果没有条目,则将数据包列入队列,并向代理302发送请求,以使用目录服务查找远程IP。一旦目录服务返回IP地址解析到的地址、那些服务器所连接到的架顶式交换机的地址、以及一组要使用的VLB中间交换机,封装器306就选择目的地址(以及其相对应的架顶式交换机地址)以及该流的VLB中间节点,并高速缓存此映射。服务器可以为每一流选择不同中间节点,如此,在所有VLB中间节点之间分散其负载,而不导致TCP数据包重排序。如果目录服务将一远程IP地址映射到地址列表,则服务器将为到该远程IP的每一个流选择不同地址,从而实现负载分散。利用来自流高速缓存中的条目中的信息,封装和转发数据包是直接的。图4示出了如何利用三个头部传送IP数据包400。最外面头部402将所选中间节点(N)作为目的地,中间头部404将目标架顶式交换机(TD)作为目的地,而最里边头部406具有最终目的地的地址(D)。应该理解,可以使用各种头部封装协议,包括MAC、VLAN或IP。发送方服务器的架顶式交换机(TS)将数据包转发到VLB中间节点,该VLB中间节点在接收到数据包之际移除外部头部,并将数据包转发到目的地的架顶式交换机。该过程重复,且架顶式交换机将带有单个头部的普通以太网数据包转发到目的服务器。诸如SEUE之类的现有工作(参见C.Kim、Μ.Caesar,以及J.Rexford所著的"Buildingscalableself-configuringnetworkswithSEIZE(构建具有SEIZE的可缩放自配置网络)”,在此引用该文的全部内容作为参考)还使用中间交换机“弹出”流量。然而,本系统和SEUE之间的主要区别在于,SEUE通过相同中间节点将所有流量路由到给定目的地,而本系统跨所有可用的中间节点分散流量以获得VLB的优点。外部连接图5示出了在数据中心的外面起源或终止的连接的网络路径。外部流量通过边界路由器(BR)进入和退出数据中心。边界路由器通过层3等价多径(ECMP)路由配置连接到一组访问路由器(AR)。如上文所描述的,通过经由本系统的目录服务的地址解析和源处的以太网数据包的封装,在数据中心内路由流量。由于访问路由器可能不被修改以执行源路由,所有外部流量都可以通过充当到数据中心的网关的叫做“进入服务器”的特殊服务器502来路由。每一进入服务器都具有两个网络接口——一个直接连接到访问路由器,而另一个经由架顶式交换机连接到数据中心网络。对于来自因特网的数据包,进入服务器502从访问路由器获取数据包,使用本系统的目录服务解析内部IP,并使用前面所描述的相同服务器到服务器的转发机制来在数据中心内转发流量。目录服务将层2域的默认网关的IP地址映射到进入服务器的MAC地址,因此向因特网前进的数据包通过它们流入到访问路由器。在一替换实施例中,进入服务器可以具有一个网络接口,且该接口连接到架顶式交换机。负载平衡许多数据中心应用程序要求在服务器池上分发工作的能力。在某些情况下,工作发源于因特网中的客户端,在其他情况下,发源自数据中心内的服务器。本系统提供支持最常见类型的工作分发的机制。负载分散当目标是将请求均勻地分散在服务器池上并且服务器应该将客户端的IP地址看作请求的源地址时,由根据本系统的服务器到服务器转发机制所提供的负载分散基本要素是足够的。该池中的所有服务器都将配置有与该池相关联的VIP以及它们自己的IP地址。然后,目录服务将维护与VIP相关联的池中的所有服务器的地址。响应于对VIP的给定请求,将使用一致的散列来为每一个请求挑选服务器。负载平衡当目标是在实际服务器前面放置中间盒时,本系统可以使用如图2所示的方法。VIP被配置到所有中间盒上,导致进入服务器使用上文所描述的一致的散列和负载分散方法来跨中间盒均勻地分散请求。通过以此方式跨多个中间盒分散负载,本系统支持N+1故障转移配置,与常规体系结构所使用的1+1故障转移配置相反。中间盒自由地实现应用程序所希望的任何功能。例如,中间盒可以实现负载平衡器,该负载平衡器重写源和目的IP地址以使用某种工作负荷或请求敏感的逻辑来在第二服务器池上分散请求,或者,它可以进行深数据包检查,以在将请求发送到应用程序服务器之前证实请求。作为另一个示例,中间盒可以结束传入TCP连接,并解密它们中所包含的SSL连接,从而,从应用程序服务器卸载工作。此示例还示出了负载分散为什么必须使用一致的散列——ECMP可以将数据包(为相同TCP连接的一部分)送往多个不同的访问路由器和进入服务器。可是,所有那些数据包最终被发送到同一个中间盒是关键的,一致的散列将确保此发生。作为一致的散列的替代方案是节点之间的每流态(per-flowstate)同步。交换机拓扑有许多可用来将构成层2域的交换机连接起来的物理拓扑,但是,本节提供了将^100,000服务器互连并特别适用于Valiant负载平衡的拓扑的一个具体示例。如图6所示,每一架顶式交换机602在网络一侧具有2个10(ibpS端口,这些端口连接到两个不同核心进入-外出交换机604,以便容错。在一个实施例中,有Ii1=144个这样的进入-外出交换机604。这些进入-外出交换机在它们之间没有链路,但是,它们中的每一个都通过10(ibpS端口连接到每一中间交换机602,中间交换机602有n2=72个。此拓扑是克洛斯(clos)网络的修改,并特别适用于VLB,因为它向由流占据的路径添加最小的延伸(额外的跳跃)。此外,每一流都可以从同一组交换机602中选择其要弹出的中间交换机602。控制平面本系统的控制平面具有至少两个职责首先,在交换机中维护转发表;其次,操作跟踪每一服务器用来连接到网络的端口,以及服务器的IP和MAC地址的目录服务。架顶式交换机可以被编程以跟踪直接连接到它们的服务器的IP和MAC地址,并在链路状态广告(LSA)中宣告此信息。替换地,向数据中心应用程序指派服务器的供应系统可以在其指定它们时记录每一服务器的MAC地址、IP地址,以及TOR。维护转发表如上文所阐述的,本系统要求每一交换机都具有带有每个其他交换机的条目的转发表。可以使用可以计算数据中心中的大致涨个交换机之间的路由的任何技术。在一个可能的实施例中,交换机在它们本身之间运行链路状态路由协议。在一替换实施例中,可以基于4D体系结构使用在逻辑上集中的路由,以计算交换机的转发表,并响应于失败根据需要重新计算表。超正方体(参见H.Yan、D.A.Maltz、Τ.S.Ε.Ng、H.Gogineni,H.Zhang,以及Ζ.Cai所著的Tesseract:Α4Dnetworkcontrolplane(超正方体4D网络控制平面),在此引用该文的全部内容作为参考)表明,使用判决元件所实现的集中式控制轻松地缩放以管理1000个交换机,如此,可以计算100,000服务器数据中心中的大致5,000交换机的路由。为消除由广播流量所引起的缩放问题,交换机可以被编程为将没有转发条目的任何数据包转发到判决元件。这会诱捕服务器可能发送的任何广播数据包(例如,DHCP请求),并允许判决元件决定如何处理它。为防止透明学习算法改变由判决元件所产生的转发表,可以禁用交换机上的学习。在一替换实施例中,可以使用交换机上其他代理来截取并转发广播流量。例如,可以使用交换机上的DHCP中继代理来将DHCP请求转发到DHCP服务器。在又一实施例中,每一服务器上的代理可以截取服务器尝试发送的广播或多播数据包,并将这些数据包重定向到判决元件或目录服务器供进行处理。维护目录服务有许多用于实现本系统所需的目录服务的方式,但是一个这样的方法如下运行控制平面的判决元件提供一目录服务,该目录服务将服务器的IP地址映射到(服务器地址、架顶式交换机地址)元组的列表和中间节点地址的列表。此设计实现起来简单,因为填充目录服务所需的大部分信息来自从架顶式交换机中获取的LSA,并已经可为判决元件所用。然而,当服务器崩溃时,在LSA更新以及从目录服务中移除服务器之前可能要花费一些时间。大多数数据中心应用程序已经提供监视服务器的保健服务(例如,AutoPilot(gsj]M),#JaLM.IsardPJf^"AutopilotAutomaticdatacentermanagement(自动导航自动数据中心管理)”,在此引用该文的全部内容作为参考),且本系统利用此保健服务来从跨其上对请求进行负载平衡的服务器的池中快速地移除失败的服务器。在一替换实施例中,目录服务是通过不直接参与网络控制平面的操作的服务器来实现的。在此实施例中,作为供应过程、配置过程的一部分,或经由服务器向DHCP系统的注册,将IP地址、架顶式交换机地址和中间交换机地址之间的映射通知给服务器。也可以使用目录服务来通过禁止由某一服务器对某一IP地址的解析,来实现安全策略(例如,用于将应用程序彼此隔离)。给定新兴的云服务数据中心的规模、成本和重要性,重新考虑其网络的组件和总体体系结构是网络社区的责任。这些数据中心的组件包括非常低的价格点的带有吉比特速度网络端口的强大的多核服务器;自动化几十万个服务器和交换机的配置和管理的分布式系统;以及,所有这些都在单个组织的控制下。这些因素一起打开了对数据中心内部的服务器和交换机进行基础改变的机会,但仍维护外部IP接口。令人遗憾的是,流行的数据中心网络体系结构(图1)不足以实现这些组件的完全优点。具体而言,在当今的云服务数据中心,网络和服务器容量被分段,且二等分带宽低于聚合服务器带宽一到两个数量级。在本系统中,提供了利用新兴的数据中心组件的能力的网络设计。利用将网络功能置于主机的能力来在商用服务器上实现解聚的可缩放负载平衡,以及附属的网络健康监测和目录服务。利用如此重构的功能,控制平面和数据平面可以被扩展以支持在数据中心中的所有服务器之间提供全带宽的巨大的层2交换域。数据中心互连和流量工程的一个重要设计目标是为了在受服务器线卡进入/外出约束(当前是mbps)的数据中心中的所有服务器之间支持任意流量模式。这意味着,在任何给定时间在任何服务器对之间都可能存在并发流,只要进入或退出服务器的总流量至多是K^bps。也称为软管流量模型的此流量波动模型(参见N.G.Duffield,P.Goyal,A.G.Greenberg、P.P.Mishra、K.K.Ramakrishnan,以及J.Ε·vanderMerwe所著的"Aflexiblemodelforresourcemanagementinvirtualprivatenetworks(用于虚拟专用网络中的资源管理的柔性模型)”,在此引用该文的全部内容作为参考),在ISP主干网设计的上下文中的文献里已经被考虑(例如,指定虚拟专用网络(VPN)的流量要求)。为在软管模型中路由流量,此处阐述了某些具体互连拓扑,这些互连拓扑考虑了交换机端口数连同保证软管流量的吞吐量而无需实时测量流量或响应于它而重新配置网络的不在意路由策略。本设计使用简单的网格类体系结构、商用交换机、对控制平面的修改,以控制协议开销(例如,来自ARP)以及通过多径路由来支持灵活的流量工程(参见SLAM期刊之计算(SIAMJournalonComputing)中由L.G.Valiant所著的"Aschemeforfastparallelcommunication(用于快速并行通信的方案)”,在此引用该文的全部内容作为参考)。它将负载平衡的功能解聚为一组常规服务器,结果,负载平衡服务器硬件可以在数据中心中的机架之间分布,导致更大的灵活性和较少的分段。该体系结构创建巨大且灵活的层2交换域,从而支持任何服务器/任何服务、全网格灵活性、以及低成本下的未分段的服务器容量。互连拓扑结构下面的结构通过较小的交换节点的互连产生极高吞吐量的网络。该结构提供非常高的灵活性和非常高的效率——意味着,该结构允许从任何节点到任何其他节点发生高速度传输,而不管节点位置如何。此外,任何服务都可以在任何节点上得到支持,并且该服务可以动态地迁移到其他节点。这些结构的有利属性包括支持全速率下的任意流量混合和矩阵。具体而言,可以使用η节点结构来支持任何流量矩阵Τ,其中IVj<Ci并且EiTiij<知其中,Tiij是多个节点中从节点i到节点j的需求,Ci是节点i可以成功地发送流量的最高速率,dj是节点j可以成功地接收流量的最高速率。·支持广泛的节点和链路失败集,并且对于存活的结构影响小且服务带宽适度退化——通过自适应调整路由方案或(重新)随机化对目的地服务器、架顶式交换机或者中间交换机的地址选择的动作。·支持多路径路由——要么通过随机或基于散列的负载分散机制,要么通过流量工程机制。·支持TCP友好行为,意味着,数据包重新排序事件是稀少的。?·支持使流量出入交换机结构。·支持跨任意节点组对流量进行负载平衡。·自动化网络和系统管理的集成。构件是至少两种类型的节点类型1度dl,速度Sl(S卩,dl双向端口,且每一端口在每一方向以速度s1运行)。·类型2度d2,速度s2(S卩,d2双向端口,且每一端口在每一方向以速度s2运行)。一般而言,类型i度di,速度si(S卩,di双向端口,且每一端口在每一方向以速度、一/.一\si;仃)。假设类型1节点提供访问;即,到源和到接收器的流量——这些具有访问侧上以访问速度运行的某一数量P的端口。假设类型2(或更高)节点充当类型1节点之间的中转。在由类型1和类型2节点构成的网络中,可以使用多种路由算法中的任何一种。可以使用的三种类型的路由算法为最短路径转发(SPF)节点i到节点j之间的路由沿着给定的与链路相关联的度量下从i到j的最短路径。-Valiant负载平衡(VLB)节点i到节点j之间的路由是通过首先确定中间节点k然后路由i到k接下来经由k到j来选择的。为可证明地获得高吞吐量,将从i到j的流量分散到大量的路径上是有利的。因此,可以通过通信流id(TCP/IP头部的非易失性分量)的伪随机散列来选择k。可以使用SPF来从i路由到k,并从k到j。到不同中间节点k的流量分割比可以相等或不相等。·流量工程(TE)可以通过考虑流量矩阵和网络拓扑(例如,通过测量),以及优化过程中的一个来选择路由,以便在沿着从i到j的路径的每一节点对i,j之间分割流量。这可以例如通过产生不必取最短路径的路由的优化(例如,多商用流优化)来完成,或者替换地,通过调整SPF权重和使用SPF。假设有nl个类型1节点和n2个类型2节点,如此,总共有η=nl+n2个节点。可以按如下方式陈述参数之间的关系该结构按如下方式工作。两个节点类型可以被视为在逻辑上排列成圆。(此圆与物理布局毫无关系一它只是用于描述如何在网络中放置边缘的方便设计。物理布局是任意的。)按如下方式在节点之间添加链路1.将每一个节点连接到节点i_l以及i+Ι模η。2.绕着圆以n/(dl_2)位置间隔增量,将每一个节点连接到其他节点(模η)。这在两种类型的每一个节点处使用度dl,并消耗类型1节点的所有链路。3.重复步骤2,只考虑类型2节点的较小嵌入环,并绕着圆以n2/(d2-dl)位置间隔增量,将每一类型2节点连接到其他类型2节点(模n2)。这消耗类型2节点的所有链路。步骤1,2被概括为在第一层中使用任何dl-正则(连接的)图拓扑。其他具体示例包括(i)绕着圆在任一方向上将每一个节点连接到节点直到dl/2位置,(ii)如果节点的数量是dl次幂,则为(dl/2)维环形。类似地,步骤3被概况为类型2节点之间的互连。在所有链路都是两部分(在类型(1)和类型(之间)的情况下,可以使用结构的变化。这导致下面参考图8所描述的第二示例中的优化的VLB互连。在该示例中,还提供了对类型(1)和类型(交换机使用144端口交换机的版本。作为第二示例的变体的图9的第三示例允许纵向扩展到200,000个服务器来进行互连。一种考虑该结构的方便方式在于,首先在维度dl的正则2维栅格中嵌入(随机地或有规则地)η个节点,然后,在维度d2-dl的另一个正则2维栅格中嵌入(也是随机地或有规则地)类型2节点。类型2节点提供通过原始栅格的“捷径”。栅格可被创建成具有相当大的增长灵活性——通过在嵌入中保留孔,以及经由通过更大的度dl'和d2'(dl<dl'和d2<d2')来实现,从而保留备用端口以便有机地并简单地容纳新节点。示例1(带有计算)参考图7,下面的示例示出了在40,000服务器数据中心中提供全速率结构的互连拓扑700。使用更具体的术语,假设1.类型⑴的L2访问交换机,带有用于访问的p=2010G端口(面向架顶式交换机),以及网络侧上的度dl=2010G端口。这些有nl=48。2.类型(的L2中转交换机,带有度d2=10010G端口(假设现在没有访问侧端口)。这些有n2=24。那么,有总节点数=n=nl+n2平均节点度d=(nl*dl+n2*d2)/n在假设VLB或者TE的情况下,给定类型(1)交换机对之间的平均(双向)需求=(l/n)*(p+p)=2p/n,交换机(1)对的数量=nl*(nl-l)/2给定类型⑴和类型⑵交换机对之间的平均(双向)需求=(l/n)*p(因为类型⑵交换机没有访问)=ρ/η交换机(1),(2)对的数量=nl*n2以上交换机对之间的总需求=(2p/n)*nl*(nl-l)/2+(p/n)*nl*n2=(p/η)*nl*(nl+n2-l)最短路径的平均跳跃长度可以近似为Sqrt(n/d)()。因此,所使用的总带宽-跳跃(以IOG为单位)=(p/n)*nl*(nl+n2-l)*sqrt(n/d)网络中的IOG链路的数量=n*d/2因此,平均链路利用率=[(p/n)*nl*(nl+n2-l)*Sqrt(n/d)]/(n*d/2)(其应该是小于1以支持全速率任何到任何(any-to-any)流量矩阵)。这些是平均数。为获得准确数,可以选择参数来确定对于VLB和TE的路由和分割比。假设IOG端口平均耗费$1K,总成本大约是$4.1Μ。示例2(优化的VLB互连)参考图8,通过按如下方式优化VLB分割比,对于此特定情形(20xl0G软管),可以获得更简单的互连拓扑800。1.将每一类型⑴节点连接到π2=20个类型⑵节点,对于每一个,使用一个IOG端口。(在两种类型(1)节点或两种类型(节点之间没有链路)2.与使用具有分割比1/20的VLB——每一类型(1)节点都分割至所有n2=20个类型⑵节点。然后,所有链路被完全使用。每一类型(1)节点上的端口=20+20=40每一类型⑵节点上的端口=48(每一类型⑴节点,一个)。所使用的总的IOG端口=48*40+20*48=2880(每一个被100%利用)这会增加到大约$2.9M(每个端口为$1K)。为与以前的设计进行比较,如果每一链路利用率都被缩小为0.7(同类型作比较),结果是观80/0.7=4115个端口。大约$4.IM(与以前的设计成本相比较)。再次参考上面的图6,对类型(1)和类型(使用144端口交换机,获得下面的互连。这可以支持高达1Μχ36χ20=103,680个服务器。示例3(双倍缩放优化的VLB互连)现在参考图9,通过重复上文在图6中所讨论的拓扑并将每一TOR连接到拓扑的不同副本中的类型(1)交换机,互连拓扑900可以扩展到hlMx36x20=207,360服务器。路由和流量工程可以基于上文参考图6所示出和讨论的拓扑的Valiant负载平衡来示出不在意路由策略。考虑在TOR-A处进入网络并退出TOR-B的两个服务器之间的端对端流。此流在网络中沿着路径TOR-A->类型(1)交换机(连接到TOR-A)->类型(交换机_>类型(1)交换机(连接到TOR-B)->T0R-B。在概念上,在给定TOR处进入网络的流以比率l/n2=1/72被分割到每一中间节点类型(2)交换机。可以验证,当每一服务器线卡准许流量以IG的全线速率进入/外出时,这样的分割比导致网络中的所有IOG链路完全被利用。为防止数据包重排序(以及其对TCP性能的潜在影响),每一流都可以被散列到中间节点(例如,基于5元组流标识符)。为隐藏核心网络中的服务器地址,并实现如上的两阶段路由,使用两级的封装/隧穿(参见,例如,RFC2003或IEEE802.Iah标准,http://www.ieee802.org/l/pages/802.lah.html,在此引用了该文的全部内容作为参考)来在核心网络中转发数据包。前面的对本发明的详细描述只是为了说明和描述。它不是详尽的说明或将本发明限于所公开的准确的形式。根据上述原理,许多修改方案和变化也是可以的。所描述的实施例只是为了最好地说明本发明的原理以及其实际应用,从而使精通本技术的其他人在各种实施例中最佳地利用本发明,适合于特定用途的各种修改也是可以的。本发明的范围由所附的权利要求进行定义。权利要求1.一种用于数据中心的互连拓扑,包括所述数据中心中的多个服务器O10);所述数据中心中的网络的多个节点006),能够通过所述多个节点路由数据包;以及用在所述数据中心中的路由方案,其中,路由不在意所述网络中的节点(206)之间的流量模式;其中,所述互连拓扑包含一个或多个服务器之间的多条路径(207)。2.如权利要求1所述的互连拓扑,其特征在于,还包括服务器或节点中的一个上的组件,所述组件通过所述组件限制遍历所述组件的流量以便防止被所述流量占据的路径的任何链路上的持续过载来对所述路由方案作贡献。3.如权利要求2所述的互连拓扑,其特征在于,所述流量限制组件是TCP。4.如权利要求1所述的互连拓扑,其特征在于,节点i到节点j之间的路由是通过首先确定中间节点k然后路由i到k接下来是k到j来选择的。5.如权利要求4所述的互连拓扑,其特征在于,还包括目录服务,其中,在没有特定路由指令的情况下由服务器所发送的数据包被定向到中间节点k,所述节点k咨询所述目录服务,以确定所述数据包的目的服务器以及从k到j的路由。6.如权利要求4所述的互连拓扑,其特征在于,使用封装来修改数据包,以将所述数据包定向到所选中间节点。7.如权利要求4所述的互连拓扑,其特征在于,通过所述数据包的TCP/IP头部的非易失性分量的随机或伪随机散列来选择k。8.如权利要求1所述的互连拓扑,其特征在于,所使用的所述路由方案是Valiant负载平衡。9.如权利要求4所述的互连拓扑,其特征在于,向每一中间节点k发送的流量的分数对于所有节点k是不相同的。10.如权利要求4所述的互连拓扑,其特征在于,如果节点k没有落在i和j之间的最短路径上,则数据包能从i流到j,而不穿过k。11.一种用于数据中心的互连拓扑,包括多个节点,能通过所述多个节点路由数据包;提供服务器之间的多条路径的交换机的拓扑;以及路由方案,所述路由方案使用Valiant负载平衡以允许发生从任何节点到任何其他节点的数据包传输,所述路由方案在所述多条路径之间划分流量,所述路由方案通过首先确定中间节点以及通过所述中间节点进行路由来选择第一和第二节点之间的路由。12.如权利要求11所述的互连拓扑,其特征在于,所述路由方案是自适应路由方案,所述自适应路由方案通过考虑流量矩阵、被阻塞的链路、网络拓扑中的至少一个来选择路由,并与优化过程合并在一起,以便以不相等的比率在多个中间节点之间划分流量。13.如权利要求11所述的互连拓扑,其特征在于,还包括控制平面和目录服务中的至少一个,所述控制平面和所述目录服务在节点或链路失败的情况下,通过使数据包避开已失败的交换机或链路来自适应地调整所述路由方案。14.如权利要求11所述的互连拓扑,其特征在于,还包括目录服务,其中,所述数据包的源或所述数据包的路径上的交换机使用所述目录服务来标识适合于接收所述数据包的服务器的一个或多个地址。15.如权利要求14所述的互连拓扑,其特征在于,所述目录服务提供用于构造数据包的地址,所述地址指定中间或目的地节点、交换机或服务器中的至少一个。16.一种用于数据中心的互连拓扑,包括所述数据中心中的多个服务器;多个节点,能通过所述多个节点路由数据包;以及允许发生从任何节点传输到任何其他节点的数据包传输的路由方案,所述路由方案包括用于提供用以到达目的服务器的路由信息的目录服务,用于使用所述目录服务来查找每一个数据包的目的地址或交换机地址中的至少一个的代理,以及修改数据包以便它们穿过目的服务器或中间交换机中的至少一个的封装器。17.如权利要求16所述的互连拓扑,其特征在于,所述封装器选择不同中间节点以在不导致数据包重新排序的情况下分散负载。18.如权利要求16所述的互连拓扑,其特征在于,所述路由方案使用Valiant负载平衡,其中,没有节点被要求发送或接收比其网络接口在某一时间能支持的更多的流量。19.如权利要求18所述的互连拓扑,其特征在于,通过数据包的TCP/IP头部的非易失性分量的随机或伪随机散列来选择通过其路由数据包的所述中间节点。20.如权利要求16所述的互连拓扑,其特征在于,源节点和目的节点之间的所述路由方案遵循在给定与所述多个节点之间的所述链路相关联的度量下所述源节点和目的节点之间的最短路径。全文摘要公开了用于商品化数据中心网络的系统。该系统包括用于数据中心的互连拓扑,该数据中心具有多个服务器和数据中心中的网络的多个节点,可以经过所述节点路由数据包。该系统使用这样的路由方案路由不在意网络中的节点之间的流量模式,其中,该互连拓扑包含一个或多个服务器之间的多条路径。多径路由可以是Valiant负载平衡。它将负载平衡的功能解聚为一组常规服务器,结果,负载平衡服务器硬件可以在数据中心中的机架之间分布,导致更大的灵活性和较少的分段。该体系结构创建巨大且灵活的交换域,支持任何服务器/任何服务、全互联灵活性、以及低成本的未严加管制的服务器容量。文档编号H04W16/08GK102057631SQ200980122220公开日2011年5月11日申请日期2009年5月31日优先权日2008年6月9日发明者A·G·格林伯格,D·A·马尔茨,P·K·帕特尔,P·拉希瑞,S·森古普塔申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1