采用数据中心网络管理器的分布式负载均衡器健康状况管理

文档序号:1967117 发布日期:2021-12-14 浏览:16次 >En<

阅读说明:本技术 采用数据中心网络管理器的分布式负载均衡器健康状况管理 (Distributed load balancer health management using a data center network manager ) 是由 马尼什·钱德拉·阿格拉瓦 莎马尔·夏尔马 希亚姆·卡帕迪亚 卢卡斯·卡拉蒂格尔 于 2020-04-24 设计创作,主要内容包括:本公开的技术涉及一种负载均衡系统。该负载均衡系统被配置为在控制器处从多个叶交换机接收健康状况监视度量值。该负载均衡系统还被配置为基于健康状况监视度量值来确定服务器已经发生了故障,并修改网络架构的负载均衡配置。负载均衡系统还被配置为将负载均衡配置传输给网络架构中的每个叶交换机,并更新每个叶交换机中的表以反映可用的服务器。(The technology of the present disclosure relates to a load balancing system. The load balancing system is configured to receive health monitoring metric values from a plurality of leaf switches at a controller. The load balancing system is further configured to determine that a server has failed based on the health monitoring metric values and modify a load balancing configuration of the network architecture. The load balancing system is further configured to communicate the load balancing configuration to each leaf switch in the network fabric and update the table in each leaf switch to reflect the available servers.)

具体实施方式

下面提出的详细描述旨在作为对实施例的各种配置的描述,而并非为了代表可以在其中实施本公开的主题的唯一配置。附图并入本文,并构成详细描述的一部分。为了更彻底地理解本公开的主题,详细描述包括了具体细节。然而,显而易见的是,本公开的主题不限于本文阐述的具体细节,并且可以在没有这些细节的情况下实施。在一些情况下,结构和组件以框图的形式示出,以避免使本公开的主题的概念变得晦涩难懂。

概述

在已知计算系统的示例中,工作负载服务器集群可以作为物理服务器或虚拟机来提供,以向终端用户或客户端提供所需的特性。需要负载均衡来实现独立的交换架构中的上述功能。本公开的技术解决了本领域对更高效的分布式负载均衡器管理方式的需求,其中客户端请求分布在多个应用服务器上。本公开的技术允许控制器探测每个叶交换机,而每个叶交换机只探测它的一个或多个本地服务器。控制器监视、跟踪和报告服务器的健康状况。

本主题技术的各种实施例通过提供一种控制器来解决这些及其他技术问题,该控制器通过订阅由叶交换机提供的健康状况监视度量值来进行负载均衡。控制器通过运行在服务器上的应用程序来工作。控制器可以通过更大的网络框架内的管理网络与交换架构进行通信。

详细描述

下面详细讨论了本公开的各种实施例。尽管讨论了具体实现方式,但是应当理解的是,这仅仅是为了说明的目的。相关领域的技术人员将认识到,在不脱离本公开的精神和范围的情况下,可以采用其他组件和配置。

要求能够监视连接至架构中另一个叶交换机的服务器或应用程序的健康状况,而无需探测每个服务器。当架构中的每个叶交换机探测架构中的所有服务器时,无论它们是否连接到该架构,都会将大量的控制流量注入到该架构,从而导致大量带宽被占用。

各种实施例涉及一种负载均衡设备,该负载均衡设备被配置为探测、监视、跟踪和报告服务器或运行在该服务器上的应用程序的健康状况。负载均衡设备接收健康状况监视度量值,确定服务器出现故障,并修改网络架构上的负载均衡配置。健康状况监视度量值是通过控制器探测架构中的每个叶交换机来获取的。架构中的每个叶交换机只探测与其连接的服务器。

通过在控制器中包含负载均衡功能,这减少了架构的接入层中的流量,从而可以提高可用容量并降低数据中心内的丢包率。

图1是示出了示例性数据中心网络100的简化示意图,在该示例性数据中心网络中可以实现本文所述的系统和/或方法。如图1所示,示例性数据中心网络100可以包括叶交换机110,这些叶交换机连接至一个或多个主机服务器120,每个主机服务器可以运行虚拟机130的集合。主机服务器120通过特定的子网通信,这导致了该子网安装在所附接的叶交换机110中。

虚拟可扩展局域网(VXLAN)或其他封装可以用于实现叠加网络140。在一些实施例中,在数据中心网络100上将数据包从一个终端设备传递给另一个终端设备。图1中的网络具有叶交换机110和脊交换机140以及服务节点(例如,主机服务器120、VM、容器、微服务、应用程序单元等)。每个脊交换机160连接至所有叶交换机110。主机服务器120连接至叶交换机110。

图1所示的数据中心网络100可以包含映射,使得脊交换机160知道主机服务器120附接至哪个叶交换机110。应当理解的是,叶交换机110和脊交换机160可以具有交换或路由能力。在一个示例中,脊交换机160被当成数据中心网络100的网络架构中的路由反射器。

分布式互联网协议(IP)选播网关可以在叶层或接入层。架构架构基于叶-脊拓扑。存在将架构连接至外部网络的边界叶交换机150。也可以使用具有边界功能的脊交换机160。

表在转发逻辑中的叶交换机110中维护。在一些实施例中,这些类似于在传统网络中维护的转发表。封装允许网络管理员将主机服务器120从一个叶交换机110移动到另一个叶交换机110。在各种实施例中,只有叶交换机110的表了解主机服务器120的身份细节。

边界叶交换机150可以将不同的数据中心连接至IP骨干网,从而允许在一个数据中心和另一个数据中心之间发送和接收第2层流量。为此,在数据中心内,叶路由器各自充当VxLAN隧道端点(VTEP)。VTEP创建并终止VXLAN段,其中每个VTEP将主机服务器120映射到VXLAN段,并执行VXLAN封装和解封装。

在图1中,为了支持叠加网络140,叶交换机110被配置为VTEP,该VTEP创建并终止定义叠加网络140的VXLAN段。例如,叶交换机110执行VXLAN封装和解封装,并将主机服务器120映射到VXLAN段。通常,子网是第3层结构,而VXLAN段是第2层结构。

主机服务器120可以在不同的子网上通信,并且可以在该不同的子网上分配网络地址。较大的网络可以是采用边界网关协议(BGP)作为控制平面来通告较大网络内的IP可达性的任何类型的架构(诸如交换架构)。该架构可以通过在控制平面上分发IP可达性信息来实现最佳的第2层和第3层转发,这在叶层或接入层实现了分布式IP选播网关。

如本文所使用的,术语“子网”是共享一系列连续的IP地址的连接网元的逻辑分组。“主机服务器”120是数据中心网络中的任何终端设备。在该数据中心网络中,主机可以是服务器、客户端或两者兼而有之。另一方面,客户端是具有软件的计算机,该软件使其能够向服务器120发送对特定服务的请求。

图2是根据本主题技术的各个方面示出了数据中心网络中的控制器200的简化示意图。控制器200可以具有服务器上的应用程序210、单独的机器、数据中心网络外部托管的服务或者使用其他一些配置来实现。应用程序210在较大的网络管理框架内管理网络的独立组件,并执行几个关键功能。控制器200上的应用程序210通过收集健康状况度量值来识别、配置、监视、更新和检修路由器、交换机和其他网络组件。健康状况度量值可以包括服务连接的数量、发送给服务或由服务发送的数据包数量、服务响应请求的响应时间以及服务对网络带宽的使用。

在一些实施例中,健康状况度量值可以是服务节点是否出现故障的指示。控制器200可以通过利用服务探测数据中心中的每个叶交换机来获得架构中服务节点的健康状况度量值。在服务中,发布者应用程序创建消息并将其发送给主题。发布者应用程序是多个叶交换机中的每个叶交换机110,而订阅者是其上运行有应用程序210的控制器200。订阅者应用程序创建对主题的订阅,以从该主题接收消息。通信可以是从一个控制器到多个叶交换机。发布者应用程序在服务中创建一个主题,并向该主题发送消息。消息包含有效负载和描述有效负载内容的可选属性。服务转发来自控制器向其订阅消息的主题的消息。服务接收到消息,要么将它们推送给订阅者选择的端点,要么由订阅者从该服务中提取它们。在一些实施例中,控制器200可以向叶交换机110发送请求并接收所请求的数据,而无需订阅由叶交换机110发布的度量值。

可以由架构中的一个或多个交换机来维护存储桶到服务节点的映射。例如,架构中的脊交换机160和叶交换机110可以包括定义服务或散列存储桶到服务节点的映射的软件。当用于数据流的服务节点出现故障时,交换机上的软件可以将该数据流引导至可用的活动节点。存储桶到服务节点的映射还可以在服务节点和架构之间协调,包括该架构中的一个或多个交换机。在一些实施例中,叶交换机110可以被配置为基于存储桶到服务节点的映射来定向或重定向流量,这为每个存储桶的流量转发创建了数据包路径。这可以包括流量存储桶到服务节点的一对一映射,或者流量存储桶到服务节点的多对一映射。映射可以包含在与静态随机存取存储器(SRAM)表510相关联的三态内容可寻址存储器(TCAM)表500中,这将在图5中进一步讨论。

当叶交换机110接收到输入的请求时,控制器200运行以执行适当的算法(例如,轮询调度算法、最少连接算法、最少流量算法、源IP算法等)来将该输入的请求分配给服务器120。控制器200通过向多个叶交换机110传播信息来传递分配。在分配服务器120之后,控制器200通过修改所有叶交换机110上的硬件编程来修改负载均衡配置,以反映替换故障服务器的可用的活动服务器。

当用户还没有配置服务器120时,控制器200可以采用不同的负载均衡算法来修改网络架构中的负载均衡配置。一种算法会将服务请求分配给序列中的下一个服务器。备选地,一种算法会测量每个服务器上的负载来确定哪个服务器拥有最多的可用资源来为请求提供服务,并会向当前客户端连接最少的服务器发送新请求。在另一种算法中,客户端的IP地址用于确定哪个服务器接收请求。

图3是根据本主题技术的各个方面示出了配置有备用节点的数据中心网络100中的控制器200的简化示意图。在本示例中,将边界叶交换机150L4配置给主机服务器120S5。当连接至其他任何叶交换机110的其他任何主机服务器120出现故障时,控制器200会配置主机服务器120S5以接收输入的流量。控制器200会向架构中的所有叶交换机110发送带有故障服务器地址的消息,并指示先前配置的可用活动服务器。

图4是根据本主题技术的各个方面示出了没有配置备用节点的数据中心网络100中的控制器200的简化示意图。在本示例中,没有将边界叶交换机150L4配置给任何主机服务器120。当连接至其他任何叶交换机110的其他任何主机服务器120出现故障时,控制器2000会配置主机服务器120SO以接收输入的流量。可以通过上述各种负载均衡算法来选择主机服务器。

图5根据本主题技术的各个方面示出了每个叶交换机110中的三态内容可寻址存储器(TCAM)表500及其静态随机存取存储器(SRAM)表510。控制器200可以以通信方式耦接至多个叶交换机110,该叶交换机以通信方式耦至TCAM 500和SRAM 510。TCAM 500和SRAM510可以被配置为提供本文所公开的高速搜索。TCAM 500和SRAM 510被配置为在控制器200的指示下执行负载均衡技术。

在数据中心网络中执行转发和监管功能的大多数架顶式(ToR)交换机都利用专门的内容可寻址存储器来存储规则。该存储器容纳在交换机ASIC(专用集成电路)内,这实现了基于硬件的数据包转发。

CPU或处理器从控制器200接收配置请求,以对TCAM 500和SRAM510进行编程。基于TCAM 500和SRAM 510的内容,ASIC将一个接口处输入的数据包定向到另一个接口。

TCAM 500由许多条目组成,并且当给它一个输入字符串时,它会将该字符串与所有条目进行比较,并报告与该输入匹配的第一个条目。TCAM是一种全关联存储器,在该全关联存储器中,不仅可以搜索输入的二进制的“1”或“0”,还可以搜索三进制的“X”(不用在乎)。例如,搜索标签“110X”匹配“1101”和“1100”。如果给定一个请求,执行TCAM 500查找,然后利用二级SRAM 510查找检索所有匹配结果。

通过以前缀长度递减的顺序将转发表前缀加载到TCAM 500中,可以在一个TCAM500周期中确定任何目的地址的最长匹配前缀的TCAM 500索引。利用该索引,可以访问SRAM510的字,其中与匹配前缀相关联的下一跳被存储并完成转发任务。数据包转发的TCAM 500解决方案需要一次TCAM 500搜索和一次SRAM 510访问来转发数据包。

所提供的TCAM 500能够以接近可编程硬件本身的速度运行。TCAM500将搜索输入与存储数据表进行比较。TCAM 500查找出现在数据流中的IP地址。控制器200将每个数据流分配给服务节点,诸如主机服务器。TCAM 500可以包括将流量存储桶映射到服务器的表。控制器200为输入的数据包重写L2包头,以将它们定向到叶交换机110。控制器200通过将数据包交换或路由到由其新的L2包头提供的叶交换机来充当交换机。

在本示例中,TCAM 500存储描述要进行匹配的数据包的属性的数据,而SRAM 510存储描述当SRAM 510中发生相应的匹配时要采取的动作的数据。如果数据包的IP地址在由TCAM 500条目指示的范围内,那么要采取的动作是将该数据包定向到在对应于该TCAM 500条目的SRAM 510条目中列出的服务器。例如,如果数据包的IP地址在XX00X指示的范围内,那么流量被定向到S0。负载均衡功能是通过配置存储在TCAM 500和SRAM 510中的条目来实现的,以实现根据需要将数据包定向到特定的可用活动服务器。

图6是根据本主题技术的各个方面的由控制器200执行的方法600的流程图。应当理解的是,对于本文讨论的任何方法,除非另有说明,否则在各种实施例的范围内,可以以相似或可选的顺序或并行执行额外的、较少的或可选的步骤。方法600可以由控制器200(诸如数据中心网络管理器(DCNM)或类似的系统)执行。

在步骤602,控制器200可以从网络架构中的多个叶交换机110接收健康状况度量值。从每个叶交换机110接收的健康状况监视度量值与由特定叶交换机110管理的本地服务器120相关联。网络架构中任何特定的叶交换机110可以探测特定叶交换机110连接到的服务节点(服务器120、VM、容器、应用程序、服务、进程或其他任何处理/计算单元)。在一些实施例中,叶交换机110可以不需要证明没有安装到该叶交换机的服务器120。探测机制可以是互联网控制消息协议(ICMP)请求(例如,ping和traceroute)和ICMP响应的形式。

在步骤604,控制器200将确定网络架构中的一个或多个服务器120已经发生故障。这可以由正在管理故障服务器的特定叶交换机110传递给控制器200。控制器200订阅由网络架构中的多个叶交换机110发布的消息。每个叶交换机110不断地或连续地发布它们正在管理的一个或多个服务器120的健康状况监视度量值。

在步骤606,控制器200可以在确定服务器已经发生故障之后修改网络架构的负载均衡配置。例如,控制器200可以将由特定叶交换机110接收的关于故障服务器120的信息传播给网络架构中的其他所有叶交换机110。当服务器120发生故障时,所有叶交换机110上的硬件编程被修改,以反映替换该故障服务器的可用活动服务器。

在操作608,控制器200向网络架构中的多个叶交换机110中的每一个发送修改后的负载均衡配置。叶交换机110然后更新对应于故障服务器的TCAM 500条目的SRAM 510条目。TCAM 500和SRAM 510表位于网络架构中的每个叶交换机110中。属于网络架构中的叶交换机110的所有表都将被修改。TCAM 500表将确定地址中是否有匹配,并将通过修改对应于该地址的SRAM 510条目来将数据包发送给特定的可用活动服务器,而不是故障服务器。

图7A和图7B示出了根据各种实施例的系统。当实施各种实施例时,更合适的系统对于本领域普通技术人员来说将是显而易见的。本领域普通技术人员也会容易认识到的是,其他系统也是可以的。

图7A示出了传统总线计算系统700的示例性架构,其中该系统的组件利用总线705彼此电性通信。计算系统700可以包括处理单元(CPU或处理器)710和系统总线705,该系统总线可以将包括系统存储器715(诸如存储设备720中的只读存储器(ROM)和随机存取存储器(RAM)725)在内的各种系统组件耦接至处理器710。计算系统700可以包括高速存储器的缓存712,该缓存712与处理器710直接连接、紧邻该处理器或集成为该处理器的一部分。计算系统700可以将数据从存储器715和/或存储设备730复制到缓存712,以供处理器710快速访问。这样,缓存712可以实现性能提升,这避免了等待数据时的处理器延迟。这些及其他模块可以控制或被配置为控制处理器710执行各种动作。其他系统存储器715也可供使用。存储器715可以包括具有不同性能特性的多种不同类型的存储器。处理器710可以包括任何通用处理器和被配置为控制处理器710的硬件模块或软件模块(诸如存储在存储设备730中的模块1 732、模块2 734和模块3 736)以及专用处理器,其中软件指令结合到实际的处理器设计中。处理器710本质上可以是完全独立的计算系统,包含多个核心或处理器、总线、存储器控制器、缓存等。多核处理器可以是对称的或非对称的。

为了实现用户与计算系统700的交互,输入设备745可以代表任何数量的输入机构,诸如用于语音的麦克风、用于手势或图形输入的触摸保护屏幕、键盘、鼠标、运动输入、语音等。输出设备735还可以是本领域技术人员已知的多个输出机构中的一个或多个。在一些情况下,多模式系统可以使用户能够提供多种类型的输入来与计算系统700通信。通信接口740可以控制和管理用户输入和系统输出。在任何特定的硬件配置上操作可能没有限制,因此这里的基本特性可以很容易地被开发的改进硬件或固件配置所替代。

存储设备730可以是非易失性存储器,并且可以是硬盘或能够存储计算机可访问的数据的其他类型的计算机可读介质,诸如磁带盒、闪存卡、固态存储设备、数字通用光盘、盒式磁带、RAM 725、只读存储器(ROM)720及其组合。

存储设备730可以包括用于控制处理器710的软件模块732、734、736。可以考虑其他硬件或软件模块。存储设备730可以连接至系统总线705。在一个方面,执行特定功能的硬件模块可以包括存储在与必要的硬件组件(诸如处理器710、总线705、输出设备735等)连接的计算机可读介质中的软件组件,以执行该功能。

图7B示出了可以根据一个实施例使用的传统芯片组计算系统750的示例性架构。计算系统750可以包括处理器755,代表了能够执行被配置为执行所识别的计算的软件、固件和硬件的任意数量的物理和/或逻辑上不同的资源。处理器755可以与芯片组760通信,该芯片组可以控制处理器755的输入和输出。在该示例中,芯片组760可以向输出设备765(诸如显示器)输出信息,并且可以向存储设备770读取和写入信息,该存储设备可以包括例如磁性介质和固态介质。芯片组760还可以从RAM 775读取数据并向该RAM写入数据。可以提供用于与各种用户接口组件785接合的桥780,用于与芯片组760接合。用户接口组件785可以包括键盘、麦克风、触摸检测和处理电路、指示设备(诸如鼠标)等。计算系统750的输入可以来自多种来源(机器生成的来源和/或人类生成的来源)中的任何一种。

芯片组760还可以与可以具有不同物理接口的一个或多个通信接口790接合。通信接口790可以包括有线和无线局域网(LAN)、宽带无线网络以及个人局域网的接口。本文公开的用于生成、显示和使用图形用户界面(GUI)的方法的一些应用程序可以包括通过物理接口接收有序数据集,或者可以由机器本身通过处理器755分析存储在存储设备770或RAM775中的数据来生成。此外,计算系统700可以经由用户接口组件785从用户接收输入,并且通过使用处理器755解读这些输入来执行适当的功能(诸如浏览功能)。

应当认识到的是,计算系统700和750可以分别具有一个以上的处理器710和755,或者可以是联网在一起以提供更大处理能力的计算设备组或集群的一部分。

根据上述示例的方法可以利用存储在计算机可读介质中或以其他方式可从计算机可读介质获得的计算机可执行指令来实现。这些指令可以包括例如指令和数据,其促使或以其他方式配置通用计算机、专用计算机或专用处理设备来执行特定功能或一组功能。所使用的计算机资源的各部分可以通过网络访问。计算机可执行指令可以是例如二进制指令、中间格式指令(诸如汇编语言)、固件或源代码。可用于存储指令、所用信息和/或在根据所述示例的方法过程中创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、配备有非易失性存储器的USB设备、联网存储设备等。实现根据这些公开的方法的设备可以包括硬件、固件和/或软件,并且可以采用多种外形因素中的任何一种。此类外形因素的典型示例包括笔记本电脑、智能手机、小型个人电脑、个人数字助理、机架式设备、独立设备等。本文所述的功能还可以体现在外围设备或扩展卡中。再举个例子,这种功能还可以在电路板上的不同芯片或在单个设备中执行的不同进程中实现。

指令、用于传送这些指令的介质、用于执行这些指令的计算资源以及用于支持这些计算资源的其他结构是用于提供这些公开中描述的功能的手段。

尽管采用了各种示例和其他信息来说明所附权利要求书范围内的各个方面,但是不应基于这些示例中的特定特征或配置来暗示对权利要求书的限制,因为普通技术人员将能够利用这些示例来衍生出各种各样的实现方式。此外,尽管一些主题可能已经用针对结构特征和/或方法步骤的示例的语言进行了描述,但是应当理解的是,所附权利要求书中定义的主题未必限于这些描述的特征或动作。例如,这种功能可以以不同的方式分布或者在除了本文所标识的组件之外的组件中执行。相反,所描述的特征和步骤被公开为所附权利要求书范围内的系统和方法的组件的示例。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种显示设备之间的交互方法及显示设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!