CN107409096B - 自适应负载平衡 - Google Patents

自适应负载平衡 Download PDF

Info

Publication number
CN107409096B
CN107409096B CN201680007521.7A CN201680007521A CN107409096B CN 107409096 B CN107409096 B CN 107409096B CN 201680007521 A CN201680007521 A CN 201680007521A CN 107409096 B CN107409096 B CN 107409096B
Authority
CN
China
Prior art keywords
network
load balancing
switch
configuration
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680007521.7A
Other languages
English (en)
Other versions
CN107409096A (zh
Inventor
拉金德拉·库马尔·斯如木斯
萨钦·维贾伊·维莎瓦鲁佩
莎马尔·夏尔马
穆利·维特拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN107409096A publication Critical patent/CN107409096A/zh
Application granted granted Critical
Publication of CN107409096B publication Critical patent/CN107409096B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/084Configuration by using pre-existing information, e.g. using templates or copying from other elements
    • H04L41/0843Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

在示例中,提供了用于在交换机内提供本地负载平衡的网络设备,包括可操作为可通信地耦接到第一网络的第一网络接口;可操作为可通信地耦接到第二网络的多个第二网络接口,第二网络包括服务节点的服务池;提供可操作用于提供网络交换的交换引擎的一个或多个逻辑元件;以及包括可操作用于进行以下操作的负载平衡引擎的一个或多个逻辑元件:根据负载平衡配置通过本地硬件将传入网络流量负载平衡到服务池;检测加入到服务池的新的服务节点;以及调整负载平衡配置以考虑新的服务节点;其中交换引擎和负载平衡引擎被配置为被提供在与彼此和与所述第一网络接口和多个第二网络接口相同的硬件上。

Description

自适应负载平衡
相关申请交叉引用
本申请要求于2015年4月23日递交的名为“Method and Apparatus for AdaptiveLoad Balancing in Automated Fabrics(用于自动化结构中的自适应负载平衡的方法和装置)”的美国临时申请62/152,022的优先权,该临时申请的全部内容通过引用整体被结合于此。
技术领域
本公开总地涉及通信的领域,并且更具体地涉及用于提供网络交换机上的自适应负载平衡的方法和装置。
背景技术
数据中心越来越多地被企业用于有效的协作、数据存储、和资源管理。典型的数据中心网络包括无数的网络元件,包括服务器、负载均衡器、路由器、交换机等。连接网络元件的网络提供对于数据中心服务的安全的用户访问以及用于共享资源的部署、互连和聚集的基础设施。在数据中心中提高操作效率和优化资源利用是数据中心管理人员面临的一些挑战。数据中心管理人员寻求一种始终支持各种应用和服务的弹性基础设施。被合理计划的数据中心网络提供应用和数据完整性,并进一步优化应用的可用性和性能。
附图说明
当结合附图阅读时,根据以下详细描述可以最好地理解本公开。要强调的是,根据行业中的标准做法,各种特征不一定按比例绘制,并且仅仅出于说明的目的。明确地或隐含地示出的比例仅提供了一个说明性示例。在其他示例中,为了讨论的清楚,各种特征的尺寸可以被任意增大或减小。
图1A是根据本说明书的一个或多个示例的企业计算环境的网络层级图;
图1B是根据本说明书的一个或多个示例的计算集群的更详细的视图;
图2A是示出了根据本说明书的一个或多个示例的用于在网络环境中提供服务装备的系统的物理视图的简化示意图;
图2B是示出了根据本说明书的一个或多个示例的系统的逻辑图的简化示意图;
图3是根据本说明书的一个或多个示例的网络交换机的框图;
图4是根据本说明书的一个或多个示例的路由表的框图;
图5是根据本说明书的一个或多个示例的由交换机执行的方法的流程图;
图6是根据本说明书的一个或多个示例的负载平衡的方法的流程图;
图7是根据本说明书的一个或多个示例的方法的框图;
图8是根据本说明书的一个或多个示例的叶脊架构的框图;
图9是根据本说明书的一个或多个示例的配置自适应负载平衡的方法的流程图;
图10是根据本说明书的一个或多个示例的自适应负载平衡中加入新的节点的方法的流程图;
图11根据本说明书的一个或多个示例的自适应负载平衡中移除节点的方法的流程图。
概述
在示例中,存在提供用于在交换机内提供本地负载平衡的网络装置,包括可操作为可通信地耦接到第一网络的第一网络接口;可操作为可通信地耦接到第二网络的多个第二网络接口,第二网络包括服务节点的服务池;提供可操作以提供网络交换的交换引擎的一个或多个逻辑元件;以及包括负载平衡引擎的一个或多个逻辑元件,所述负载平衡引擎用于:根据负载平衡配置,通过本地硬件,将传入网络流量负载平衡到服务池;检测加入到服务池的新的服务节点;以及调整负载平衡配置以考虑新的服务节点;其中,交换引擎和负载平衡引擎被配置为被提供在与彼此和与所述第一网络接口和多个第二网络接口相同的硬件上。
具体实施方式
以下的公开提供了用于实现本公开的不同特征的许多不同的实施例或示例。
在已知计算系统的示例中,可以提供工作负载服务器集群作为物理服务器或作为虚拟机,以向端用户或客户端提供所期望的特征。仅提供一个非限制性的例子,工作负载服务器可以提供网站。当多个用户对于网站同时进行大量的连接时,需要在服务器机群中的各种服务器之间适当地分配工作负载。
为此,来自客户端设备的传入流量可以被路由到网络交换机。之后,网络交换机可以转发流量到负载平衡器。通常使用的负载平衡器的示例是运行Linux操作系统并且被提供有完整网络堆栈的网络装备或虚拟装备,以及用于确定将流量发送到哪个服务器的负载平衡逻辑。
例如,工作负载集群可以包括可以是物理服务器或虚拟机的16个节点。负载平衡器自身也可以是物理装备或虚拟装备。一旦接收到分组,负载平衡器确定在16个工作负载服务器中的每一个上的负载。之后,负载平衡器应用算法以确定用来处理流量的适当的节点。这可以包括例如标识负荷最少的节点并且分配流量到该节点。每个节点可以具有其自己的IP地址,在一个实施例中该IP地址不暴露给端用户客户端设备。然而,客户端设备仅仅知道负载平衡器自身的IP地址。因此,负载平衡器可以修改分组头部,例如,通过将其分配给工作负载服务器中的一个的虚拟IP(VIP)。然后负载平衡器可以将分组返回到交换机,其将分组路由到适当的工作负载服务器。
在该示例中,传入分组从交换机传输到负载平衡器,该负载平衡器可以提供在全功能操作系统(例如Linux)上运行的软件形式的完整的OSI 7层“堆栈”。因此,传入分组被向上提取(abstracted)到OSI模型的较高层中的一层,例如第6层或第7层,使得它能够由负载平衡软件处理。之后,分组被解提取(de-abstracted)到较低层并且返回到交换机,该交换机将其转发到适当的工作负载服务器。一旦接收到分组,工作负载服务器再次将分组向上提取到OSI模型的更高层之一。
本说明书的发明人已经意识到,负载平衡器和其开销表现出减少网络环境的可扩展性并且减缓网络的流量处理的潜在瓶颈。具体地,在OSI堆栈上下传送分组的过程虽然从人类角度来看非常快速,但是从网络角度来看可能是重大的瓶颈。
然而,本申请的发明人已经意识到,例如交换机或路由器的网络设备,除了执行其日常网络交换功能之外,还可以被配置为在本地用作负载平衡器。在这种情况下,无需提供在操作系统上运行的应用中的负载平衡算法,交换机可以通过更快的解决方案(例如可编程硬件而不是通用的软件驱动的处理器)提供负载平衡。这意味着负载平衡逻辑大部分或全部在硬件层面处理。此外,交换机通常在OSI模型的较低层(例如第1层和第2层)操作。因此,这减少了通过OSI堆栈提取和解提取分组的开销。
因此,交换机自身变成负载平衡器,并且并非作为瓶颈,而是能够通过在硬件层操作来提供兆兆位级带宽。
在示例中,流量桶和节点的概念被描述。流量可以被拆分为“桶”。每个桶可以被分配到节点。
流量桶作为用于标识将被重定向的流量子集的分类器。可以根据粒度需要而创建许多流量桶。为了流量的桶化,可以在算法中使用各种L2/L3头部字段。
通过选择不同字段,可以创建许多桶。通过示例的方式,我们可以使用B0、B1、B2、B3、B4…Bn来指代流量桶。
流量节点作为用于流量转发的“下一跳”。节点是具有从交换机可到达的相关联的IP地址的实体。通过示例的方式,我们可以使用N0、N1、N2、N3…Nm来指代节点。
可以建立映射以将流量桶关联到节点。该关联创建用于转发每个桶的流量的分组路径。其可以包括流量桶到节点的一对一映射,或流量桶到节点的多对一映射(即,多个桶可以被分配个单个节点)。
该架构实现了优于某些现有部署的实质优点。例如,一些现有负载平衡器存在诸如低效率和高开销之类的缺点。在一个示例中,低容量负载平衡器提供大约40Gbps,而更高端的负载平衡器提供大约200Gbps。
如以上所讨论的,通过用可编程硬件而不用在由软件编程的通用处理器上运行的软件来对负载平衡引擎进行编程,提升了速度和可扩展性。可编程硬件包括例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)等等。因为逻辑直接实现在硬件中,所以它可以比CPU快若干个数量级地执行“程序”,CPU必须从存储器获取指令之后再在通用硬件上运行那些指令。此外,操作系统、多任务、和多层网络堆栈引入不能直接贡献于执行负载平衡功能的额外复杂度。简言之,软件可编程CPU是极多功能的,并且其功能可以很容易地适用于许多不同的任务,但相对较慢。仅针对单一功能进行编程的专用可编程硬件设备并不是多功能的,但非常快速地执行其单一的专用功能。
在一个示例中,本说明书中基于硬件的负载平衡器必须能够处理将被进行负载平衡的流量和不需要进行负载平衡的流量。对于非负载平衡流量,设备应仍作为交换机或路由器来执行其本机功能,并且仅适当地交换或路由流量。
为了辅助该功能并且保留可编程的基于硬件的负载平衡引擎的速度优势,有利的是,不在标准存储器(例如随机存取存存储器(RAM))中存储数据值,因为这可能会消除硬件的速度优势。相反地,在一个示例中,三态内容可寻址存储器(TCAM)被提供,并且能够在接近可编程硬件本身速度的速度下操作。内容可寻址存储器(CAM)是用于极快速搜索(例如本地兆兆位级负载平衡所必要的那些搜索)的存储器种类。CAM将搜索输入(标签)和存储的数据表进行比较,并且返回匹配数据的地址。这与RAM相反,在RAM中,程序提供地址并且RAM返回存储在该地址处的值。当搜索被执行时,如果CAM找到对于标签的匹配,则CAM返回标签的地址,并且可选地返回该标签的值。如果未找到标签,则返回“未找到”值。TCAM是一种CAM,其中可以不仅针对二进制“1”或“0”,而且可以针对三进制“X”(无关)搜索标签。换言之,搜索标签“110X”匹配“1101”和“1100”两者。
在负载平衡的上下文中,网络管理员可以配置虚拟IP(VIP)标签,在一个示例中包括IP地址、协议和端口号。可以在TCAM中生成针对将被负载平衡的VIP标签的条目。还可以针对可接收匹配该VIP标签的流量的一组节点生成条目。
交换机通过路由协议通告VIP标签,并且接收目的地为VIP的流量。当流量进入交换机或路由器时,根据TCAM中的条目检查VIP标签。如果存在匹配条目,则流量将被负载平衡。之后,使用TCAM条目对流量进行桶化并且负载平衡到每个节点。
该架构实现几个重要的优点。由于服务器从1Gbps变为10Gpbs,传统的软件负载平衡器需要适当扩展。负载平衡器装备和服务模块还消耗机架空间、功率、布线和成本。然而,在本说明书的实施例中:
交换机或路由器的每个端口可以用作负载平衡器。
不需要外部装备并且不需要服务模块。
本说明书的教导可以被用于提供兆兆位级的负载平衡。
本说明书的实施例尤其涉及提供自适应负载平衡。自适应负载平衡可以帮助解决虚拟化环境中出现的问题。更具体地,虚拟化服务器的效益近期成为广泛讨论的话题。然而,虚拟化也为数据中心带来了新的挑战。虚拟化的优点之一是动态、灵活以及高效的资源部署。换言之,可以按需要“开始运转”(即,配设)新的VM以满足要求,并且一旦需求降低,则“停止运转”(即,解除配设)这些VM。
资源可以由服务器负载平衡分配以共享工作负载。网络管理员可以将责任划分为诸如应用、服务器、或网络基础架构之类的各种角色,不同的角色由不同的服务器池服务。在IT组织中,这些角色事实上可以由不同的各个网络管理员管理。因此,内部群组之间的协作是重要的。但是这种协作可能本身是耗时的并且可能至少破坏虚拟化的一些有效收益。因此,有利的是简化工作负载自动化,无需人工介入。为此,本说明书提供了智能流量导向器(ITD)等作为具有主机意识的负载平衡特征,所述主机意识由例如
Figure BDA0001362318330000071
DynamicFabric Automation(
Figure BDA0001362318330000072
动态结构自动化)能力或网络交换方面的其他类似技术提供。这实现了当新的节点被添加到服务池中或从服务池中移除时,ITD的“无接触”配置。
现在将更具体地参照附图描述用于交换机上的自适应负载平衡的系统和方法。以下描述组件和布置的具体示例以简化本公开。这些当然仅仅是示例并且不意在限制。此外,本公开可以在各种示例中重复使用参考标号和/或字母。这种重复用于简化和清晰的目的并且其本身并不指代所讨论的各种实施例和/或配置之间的关系。不同的实施例可以具有不同的优点,并且不存在任何实施例必须的具体优点。
在一些实施例中,诸如10-1和10-2之类的连字符参考标号可以用于指代相同或相似的项10的多个实例,或者指代10属类的不同种。
图1A是根据本说明书的一个或多个示例的安全企业100的网络层图示。在图1的示例中,多个用户120操作多个客户端设备110。具体地,用户120-1操作台式计算机110-1。用户120-2操作膝上型计算机110-2。并且用户120-3操作移动设备110-3。
每个计算设备可以包括适当的操作系统,例如Microsoft Windows、Linux、Android、Mac OSX、Apple iOS、Unix之类。上述操作系统中的一些可能在一种设备上比另一种设备上更常用。例如,在一个实施例中,可以是工程工作站的台式计算机110-1可能更倾向于使用Microsoft Windows、Linux、Unix或Mac OSX中的一种。通常是具有较少定制选项的便携式现成设备的膝上型计算机110-2可能更倾向于运行Microsoft Windows或MacOSX。移动设备110-3可能更倾向于运行Android或iOS。然而,这些示例并不是限制性的。
客户端设备110可以是任何合适的计算设备。在各种实施例中,通过非限制性示例的方式,“计算设备”可以是或者包括计算机、工作站、服务器、主机、嵌入式计算机、嵌入式控制器、嵌入式传感器、个人数字助手、膝上型计算机、蜂窝电话、IP电话、智能电话、平板计算机、可转换平板计算机、计算装备、网络装备、接收器、可穿戴计算机、手持计算器、虚拟机、虚拟装备、或用于处理和传送数据的任何其他电子、微电子、或微机电设备。
客户端设备110可以通过企业网络170可通信地耦接到彼此,并且耦接到其他网络资源。企业网络170可以是在一个或多个合适的网络协议上操作的任何合适的网络或一个或多个网络的组合,非限制性地包括例如局域网、内联网、虚拟网络、广域网、无线网络、蜂窝网络、或互联网(可选地通过代理服务器、虚拟机、或其他类似的安全机制访问)。企业网络170还可以包括一个或多个服务器、防火墙、路由器、交换机、安全装备、防病毒服务器、或其他有用的网络设备。在本说明中,为了简化,企业网络170被示出为单个网络,但是在一些实施例中,企业网络170可以包括大量的网络,例如连接到互联网的一个或多个企业内联网。企业网络170还可以提供通过外部网络172对外部网络(例如互联网)的访问。外部网络172可以类似地是任何合适的网络类型。
网络管理员150可以操作管理控制台140以管理工作负载集群142,并且以其他方式配置和施行企业计算和安全策略。
企业100可能遇到网络上的各种“网络对象”。网络对象可以是在企业网络170上操作或与其交互的任何对象。在一个示例中,对象可以大致划分为包括与网络通信或通过网络操作的任何物理设备的硬件对象,以及软件对象。软件对象可以进一步细分为“可执行对象”和“静态对象”。可执行对象包括可以主动执行代码或自动地操作的任何对象,通过非限制性示例的方式,例如应用、驱动程序、程序、可执行文件、库、进程、运行环境、脚本、宏、二进制文件、解析器、解析语言文件、具有内联码的简档、嵌入式代码、以及固件指令。静态对象可以宽泛地被指定为非可执行对象或不可执行的任何对象,通过非限制性示例的方式,例如,文档、图片、音乐文件、文本文件、无内联码的简档、视频、以及图画。在一些情况下,还可以提供混合软件对象,例如具有内置宏的文字处理文档、或具有内联码的动画。出于安全的目的,这些可以被视为单独分类的软件对象,或可以简单地视作可执行对象。
通过非限制性示例的方式,企业安全策略可以包括认证策略、网络使用策略、网络资源配额、防病毒策略、以及对客户端设备110上可执行对象的限制。各种网络服务器可以提供例如路由、网络、企业数据服务和企业应用之类的实质性服务。
安全企业100可以横跨企业边界104与外部网络172进行通信。企业边界104可以表示物理边界、逻辑边界、或其它边界。外部网络172可以包括例如,网站、服务器、网络协议、和其他基于网络的服务。在一个示例中,通过非限制性示例的方式,可以在外部网络172上提供无线基站130、外部服务器180、以及应用资源库182。无线基站130可以是例如无线地连接到移动设备110-3的LTE基站或其他类似的设备。无线基站130可以依次可通信地耦接到外部网络172。外部服务器180可以是提供企业用户可能需要使用的网页、数据、或其他资源的服务器。
应用资源库182可以表示Windows或Apple“App Store”或更新服务、类似Unix的资源库或端口集合、或向用户120提供在客户端设备110上交互地或自动地下载和安装应用的能力的其他网络服务。在一些情况下,安全企业100可以提供策略指令,该策略指令限制来自应用资源库182的可以被安装的应用类型。因此,应用资源库182可能包括非恶意但仍违反策略的软件。例如,一些企业限制类似媒体播放器和游戏的娱乐软件的安装。因此,即使安全的媒体播放器或游戏也可能不适用于企业计算机。安全管理员150可以负责分配符合这种限制的计算政策,并且将其施行在客户端设备120上。
在另一示例中,安全企业100可以仅是假设由父母充当安全管理员150的角色的家庭。父母可能希望保护他们的孩子远离不期望的内容,通过非限制性示例的方式,例如色情、广告软件、间谍软件、不适当年龄的内容、某些政治、宗教或社会运动的主张、或讨论非法或危险活动的论坛。在这种情况下,父母可以执行网络管理员150的一些或全部的职责。
图1B是根据本说明书的一个或多个示例的公开工作负载集群142的框图。在该示例中,工作负载集群142包括已经安装有多个机架安装服务器146-1至146-N的机架安装底座144。每个机架安装服务器146可以是专用装备,或者可以配置有用来启动虚拟客户端的一个或多个实例的管理程序。
可以提供交换机190以将工作负载集群142可通信地耦接到企业网络170。如下所述,交换机190可以具有用于可通信地耦接到机架安装服务器146的多个物理端口。在示例中,每个服务器146具有到交换机190的单个端口的物理有线连接,例如以太网连接。
在一些情况下,一些或全部机架安装服务器146-1至146-N专用于提供微云160。微云160可以是提供特定服务的单一目的云或专用云。例如,微云160可以被配置为服务于网站,提供例如一个或多个4G LTE服务或任何其它适当服务的通信系统。在一些情况下,微云160被提供为工作负载集群142上的“租户”。工作负载集群142可以提供虚拟环境管理器164,该虚拟环境管理器164可以负责施行在一个或多个微云租户160之间的租户边界,并且用于根据需要而动态地配设虚拟机162。虚拟机162-1至162-N可以表示虚拟服务器装备的多个实例。在一些情况下,VM 162也可以以不同的风格被提供。例如,一些VM 162可以被配设为防火墙,其他VM 162可以被配设为防病毒扫描装备,并且除了被配设为工作负载服务器的VM 162以外,其他VM 162可以提供其他辅助功能。
当交换机190被配设有负载平衡引擎时,负载平衡引擎负责跟踪工作负载服务器的数量和虚拟IP(VIP),使得它能够将流量正确地路由到工作负载服务器。在每个机架安装服务器146是独立装备的情况下,交换机190可以维护每个机架安装服务器146的VIP的表。在工作负载服务器被提供在微云160中的情况下,交换机190可以提供将每个VM的VIP映射到被分配给VM 162所在的物理机架安装服务器146的VIP的表。因此,交换机190可以包括不仅用于将分组路由到正确的机架安装服务器146,还用于将分组引导至机架安装服务器146上的正确VM 162的逻辑。
图2A和2B示出了系统架构的示例,该系统架构用于在网络环境中提供服务装备并且具体地提供作为网络交换机中的虚拟线卡的服务装备。虽然虚拟线卡允许服务装备位于网络中的任何位置,但是提供服务装备的其他方式(例如,将服务装备直接连接到交换机上)也是可能的。应当注意,这些示例仅是说明性的,并不意在作为限制。本公开预想了其他的架构和配置。
图2A是示出用于在网络环境中提供服务装备的系统110的物理视图的简化示意图。图2A包括通过云210将一个或多个服务器机群142-1和142-2连接到一个或多个客户端110的网络(示出为多个链路212)。云210可以包括任何公共、半公共和/或专用网络,包括企业网络、互联网或内联网、社区网络等。服务器机群142-1和142-2中的各个服务器可以分别通过交换机240-1和240-2在相同的机群内通信。在该特定示例实现方式中,服务器机群142-1中的服务器可以通过交换机190与服务器机群142-2中的服务器进行通信。
服务装备224可以通过通信信道226(例如,通过端口信道)连接到交换机190。如本文所使用的,“通信信道”包括用于从一个或多个发送方(例如,交换机190)向一个或多个接收方(例如,服务装备224)传送信息信号(例如,数据分组,控制分组等)的物理传输介质(例如,线路)或逻辑连接(例如,无线电信道,网络连接)。如本文所使用的,通信信道可以包括可以是物理的(例如,线路)或逻辑的(例如,数据链路,无线链路等)的一个或多个通信链路。通信信道的终端点可以包括诸如以太网端口、串行端口等的接口。在系统110的实施例中,通信信道226可以是单个信道:被部署用于控制消息(即,包括控制分组的消息)和数据消息(即,包括数据分组的消息)。
如本文所使用的,“服务装备”是具有集成软件(例如,固件)的离散(并且通常是分开的)硬件设备或虚拟机,其被设计为提供包括负载平衡、防火墙、入侵防御、虚拟专用网络(VPN)、代理等等的一个或多个网络服务。在一些情况下,交换机190可以被配置有智能服务卡管理器模块(ISCM)220,并且服务装备224可以被配置有相应的智能服务卡客户端模块(ISCC)230。ISCM 220和ISCC 230可以构成用于在交换机上配置服务装备224的远程集成服务引擎(RISE)基础架构的一部分,例如,作为交换机190中的虚拟线卡。
图2B是示出系统110的逻辑视图的简化示意图。在一些情况下,ISCC 230和ISCM220可以被配置为允许服务装备224表现为虚拟线卡290或一些其他虚拟网络节点/实体。术语“线卡”和“服务模块”本文中可互换地用于指代与电信线路(例如铜线或光纤)接口并且提供到电信网络的其余部分的路径的模块化电子线路。服务装备通常简称为“装备”或“模块”。因此,虚拟线卡290与ISCM 220(在某些情况下)是可互换的。虚拟服务模块(或虚拟线卡)是提供(与服务模块)相同功能的(服务模块的)逻辑实例。服务模块可以执行包括提供网络服务的各种功能(例如,类似于服务装备)。服务模块和服务装备之间的一个区别在于服务模块物理地位于交换机内,例如在适当的槽上。虚拟服务模块类似地可配置在交换机内。
在示例中,RISE(或类似技术)允许(外部)服务装备连接到交换机,并且无需在交换机内占用物理槽就可以像交换机内的服务模块一样运行。RISE有助于整合如何配设装备,并且使得装备具有作为在交换机内的服务模块的优点。用于这些服务装备的配设和配置的任务主要由交换机上提供的RISE执行,使得网络管理员能够容易地在网络中添加/移除服务装备。
根据本公开的实施例,使用系统110的基础架构,装备用户可以享受与服务模块的简单配置和操作相同的优点。例如,可能不需要为网络配置设置服务装备224。大体上所有这样的配置可以通过交换机190而非服务装备224做出。服务装备224可以将任何网络(例如,L2/L3网络)特定的控制平面和数据平面操作卸载(即,传送)到交换机190。在各种实施例中,利用(很可能嵌入在交换机190中的)专用集成电路(ASIC)的数据路径加速也是可能的。交换机190可以通过通信信道226将控制消息传送到服务装备224。因此,服务装备224内的服务的配置和配设可以通过交换机190实现。
需要注意的是,分配给图2A和2B的元素的数字和字母标记并不意指任何类型的层级;指代是任意的并且仅出于教导的目的。这些标记不应以任何方式被解释为限制其在可能受益于系统10的特征的潜在环境中的能力、功能或应用。为了便于描述,在图2A和2B中仅示出了两个代表性的服务器机群。在不脱离本公开的广泛范围的情况下,可以在网络中连接任何数量的服务器机群和交换机。
出于说明系统110的技术的目的,重要的是,理解给定系统(例如图2A和2B中所示的系统)中的通信。以下基础信息可以被视为能够适当解释本公开内容的基础。这些信息出于解释的目的被真挚地提供,因此不应以任何方式解释为限制本公开的宽泛范围以及其潜在的应用。
通常,通过一个或多个以下选项提供负载平衡、防火墙、入侵防御、代理、虚拟专用网络(VPN)等网络服务:(1)连接到网络交换机和路由器的服务装备;(2)被配置有服务的专门设计的高性能路由器;或(3)诸如配置有提供服务的服务模块的路由器或交换机之类的网络设备。
一些服务装备(例如,负载平衡器)将诸如负载平衡、防火墙、入侵防御、VPN等之类的服务集成为单个盒的形式,这通常基于模块化的可扩展平台,并且提供以上所列的三个选项中的最具成本效益的选项。服务装备可以通过适当的端口从外部连接到交换机(例如,聚合交换机或接入交换机等)。不同的服务装备被设计具有适用于不同网络环境的具体特征。服务装备可以独立地部署到网络基础架构的服务特定区域,或者它们可以被组合用于分层方法。服务装备通常位于客户端和服务器机群之间。数据分组通常在去往(和来自)服务器/客户端的途中经过服务装备。服务装备可以由服务装备上的管理应用(例如软件)管理,该管理应用能够实现配置设置和其他管理功能。
专门设计的高性能路由器也可以提供网络服务。这样的路由器可以实现巨大的并行处理器硬件和软件架构以传递集成的网络服务(例如,防火墙、深度分组检测等)。许多功能都被嵌入在路由器中的专门设计的处理器中。例如,这种专门设计的路由器可以提供集成的安全解决方案(例如,状态分组过滤、入侵检测和防止、对每个用户认证和授权、VPN能力、广泛的QoS机制、多协议路由、语音应用支持、以及集成WAN接口支持)和在单个盒中的路由。
也可以使用专用线卡将网络服务集成到网络设备(例如交换机或路由器)中。线卡可以安装在设备内部,允许设备上的任何端口作为防火墙端口进行操作,同时将服务集成在网络基础架构内。一些线卡可能安装在相同的底座中,在需要的地方提供模块化的解决方案。这样的解决方案允许用户利用现有的交换和路由基础架构,而无需任何昂贵的升级。
转向图2A和2B的可能的基础架构,示例的网络环境可以被配置为一个或多个网络,并且还可以以任何形式被配置,包括但不限于局域网(LAN)、无线局域网(WLAN)、虚拟局域网(VLAN)、城域网(MAN)、广域网(WAN)、VPN、内联网、外联网、或辅助网络中的通信的任何其他适当的架构或系统,或其任何组合。在一些实施例中,通信链路可以表示支持LAN环境的任何电子链路,例如线缆、以太网、无线技术(例如,IEEE 802.11x)、ATM、光纤等等或其任何合适的组合。在其他实施例中,通信链路可以表示通过任何适当的介质(例如,数字订户线路(DSL)、电话线路、T1线路、T3线路、无线、卫星、光纤、线缆、以太网等或其任何组合)和/或通过诸如广域网(例如,因特网)的任何附加网络的远程连接。
图2A和2B的元件可以通过使用任何合适连接(有线或无线)的一个或多个接口彼此耦接,这提供了用于电子通信的可行路径。此外,可以基于特定的配置需求对这些元件中的任何一个或多个进行组合或从架构中将其移除。系统110可以包括支持用于网络中的分组的电子发送或接收的传输控制协议/互联网协议(TCP/IP)通信的配置。在适当的情况下和基于具体需要,系统110还能够结合用户数据报协议/IP(UDP/IP)或任何其他合适的协议进行操作。此外,可以使用网关、路由器、交换机和任何其它合适的网络元件来辅助网络中各个节点之间的电子通信。
包括交换机190、240-1和240-2的系统110中的交换机可以包括连接网络段的任何类型的网络元件。例如,交换机190、240-1和240-2可以包括在数据链路层(第2层)处理和路由数据的多端口网桥。在另一示例中,交换机190、240-1和240-2可以处理在网络层(第3层)或第4层(具有网络地址转换和负载分配)、或第7层(基于应用特定事务的负载分配)、或多层(例如,第2层和第3层)的数据。在某些实施例中,交换机190、240-1和240-2的功能可以被集成到诸如网关、路由器或服务器的其他网络设备中。在各种实施例中,交换机190、240-1和240-2可以是被管理的(例如,使用命令行界面(CLI),web接口等进行管理的)交换机。
通信信道226可以包括端口信道,其可以包括到一个逻辑接口中的多个物理接口的聚合,例如用于提供更高聚合的带宽、负载平衡和链路冗余。具有多个链路的通信信道226可以提供高可用性信道:如果一个链路故障,则先前该链路上承载的流量可以切换到剩下的链路。通信信道226可以包含多达16个物理通信链路,并且可以跨越多个模块以实现增加的高可用性。在一个实施例中,通信信道226可以表示具有在多个端口上的四个点对点通信链路聚合的端口信道。在另一实施例中,通信信道226可以表示虚拟端口信道(vPC)。
尽管图2A和2B示出了服务器机群142-1和142-2,但应当理解,系统110不限于服务器。事实上,任何网络元件都可以通过适当的交换机连接到网络,其中,这些实现方式可以基于特定需要。如本文所使用的,术语“网络元件”意在包括计算机、虚拟机、网络设备、服务器、路由器、交换机、网关、桥接器、负载平衡器、防火墙、处理器、模块、或可操作以在网络环境中交换信息的任何其他合适的装备、组件、专有元件、或对象。此外,网络元件可以包括任何合适的硬件、软件、组件、模块、接口、或辅助其操作的对象。这可以包括允许数据或信息的有效交换的适当的算法和通信协议。例如,服务器机群142-1和142-2可以用在小办公室中连接台式计算机的LAN所替代。在另一示例中,服务器机群142-1和142-2可以由无线通信装备的网络所替代。在另一示例中,服务器机群142-1和142-2可以由一个或多个超级计算机所替代。各种其它配置和设备在本公开的广泛框架内被考虑。
根据本公开的实施例,系统110可以提供类似于结构扩展器(“FEX”)的协议、自动发现、类似于消息传输服务(“MTS”)的控制消息、以及在服务装备24和交换机22之间定义的消息。可以在交换机190上(如针对线卡一样)执行服务装备224的配置。数据路径转发可以被卸载到交换机190中的网络线卡上。控制路径处理可以适当地被卸载到交换机190上的管控引擎。在服务装备224具有多个虚拟服务(例如,虚拟机)的实施例中,每个虚拟服务可以是交换机190上单独的虚拟线卡。
图3是示出根据本公开的实施例的系统110的示例细节的简化框图。交换机190上的管控引擎360可以通过线卡与服务装备224进行通信,该线卡包括点对点连接到服务装备224上的节点的结构端口362。管控引擎360可以包括一些模块,例如安装器364、以太网端口管理器(ethPM)366、端口-信道管理器(PCM)368、服务质量(QoS)元件370、路由策略管理器(RPM)372、统一/单播路由信息库(URIB)374、访问控制列表管理器(ACLmgr)376和用于执行各种路由和/或管理功能的服务策略管理器(SPM)378。ISCM 220可以在管控引擎360中被配设以提供与RISE相关的功能。ISCM 220可以管理一个或多个服务模块,包括机架内服务模块和远程服务模块。
在各种实施例中,服务装备224可以支持具有各种地址(例如,127个地址)的流控制传输协议(SCTP)。在管控引擎360中缺少本地SCTP支持的情况下,可以强制UDP上的隧道发送SCTP分组。可以在管控引擎360中配设网络栈(Netstack)模块380,以用于实现针对击中管控引擎60的控制平面的接收到的帧的TCP/IP堆栈。管控引擎360可以被配置具有带内端口352,该频带内端口可以是向诸如处理器386之类的管理处理器提供用于管理流量(例如自动发现)的接口。
本文公开的每个逻辑块广义地意在包括被配置并且可操作以提供该逻辑块的所公开的逻辑操作的一个或多个逻辑元件。如本说明书所使用的,“逻辑元件”可以包括硬件、外部硬件(数字、模拟或混合信号)、软件、往复式软件、服务、驱动器、接口、组件、模块、算法、传感器、组件、固件、微代码、可编程逻辑、或可以协调以实现逻辑操作的对象。
在各种示例中,“处理器”可以包括逻辑元件的任何组合,以非限制性示例的方式包括微处理器、数字信号处理器、现场可编程门阵列、图形处理单元、可编程逻辑阵列、专用集成电路、或虚拟机处理器。在某些架构中,可以提供多核处理器,在这种情况下,处理器386可以适当地被视作多核处理器的仅一个核,或者可以被视为整个多核处理器。在一些实施例中,一个或多个协处理器还可以被提供用于专用功能或支持功能。在一些示例中,处理器是可编程硬件设备,其在本说明书中明确排除了通用CPU。
在一个示例中,负载平衡引擎320可操作以执行如本说明书中所述的计算机实现的方法。负载平衡引擎320可以包括一个或多个处理器,以及一个或多个非暂态计算机可读介质,该介质具有存储在其上的可执行指令,该指令可操作以指示处理器提供负载平衡。如本说明书所使用的,“引擎”包括具有类似或不类似种类的一个或多个逻辑元件的任何组合,其可操作用于并且被配置以执行由负载平衡引擎320提供的一种或多种方法。因此,负载平衡引擎320可以包括被配置为提供本说明书中公开的方法的一个或多个逻辑元件。在一些情况下,负载平衡引擎320可以包括被设计为执行方法或其一部分的专用集成电路,并且还可以包括可操作以指示处理器执行该方法的软件指令。在一些情况下,负载平衡引擎320可以作为“守护进程(daemon)”的过程而运行。“守护进程”可以包括无论是在硬件、软件、固件或其任何组合中实现的任何程序或系列可执行指令,该“守护进程”作为后台过程、终止和驻留程序、服务、系统扩展、控制面板、启动过程、BIOS子例程或无需直接的用户交互即可工作的任何类似的程序而运行。在某些实施例中,守护进程可以在“驱动器空间”、或在保护环架构的环0、1或2中以提升的权限运行。还应当注意,负载平衡引擎320还可以包括其他硬件和软件,以非限制性示例的方式包括简档、注册条目、和交互式或用户模式软件。
在一个示例中,负载平衡引擎320包括存储在非暂态介质上的可操作为执行根据本说明书的方法的可执行指令。在适当的时间,例如一旦启动设备或一旦有来自操作系统或用户的命令,则处理器可以从存储设备获取软件的副本,并且将其加载到存储器中。然后,处理器可以迭代地执行负载平衡引擎320的指令以提供所需的方法。
在另一示例中,负载平衡引擎320包括在ASIC、FPGA或专门编程以执行负载平衡引擎320的功能的其他低层硬件设备上被执行的逻辑。在一种情况下,可以从固件或类似的存储器加载未被硬编码到逻辑中的负载平衡引擎320的任何部分。在这种情况下,负载平衡引擎320可以在不具有操作系统的优势的情况下进行操作,以提高速度和效率。
负载平衡引擎320还可以可通信地耦接到TCAM 329。TCAM 329可以被配置为提供如本文所公开的高速搜索。
根据各种实施例,ISCM 220可以提供各种功能,例如处理(即,容纳、管理、处理等)RISE消息(例如,以MTS格式)、高可用性活动、定时器事件、分组交换流(PSS)、美国信息交换标准代码(ASCII)生成、记录、事件处理、健康监控、调试等。ISCM 220可以是基于有限状态机实用程序(FSMU)的应用(例如,其指示可以处于有限数量的状态中的一个状态的抽象机器)。在各种实施例中,ISCM 220可以具有所分配的明确定义的MTS无缝认证协议(MTSSAP),并且它可以打开基于套接字的MTS队列,并且将其绑定到明确定义的SAP,使得其他过程能够与其通信。
在各种实施例中,ISCM 220还可以维护MTS操作代码(“操作码”)的阵列,其可以定义如何处理接收到的MTS消息。该阵列可以包括每个操作码专用的MTS标志、处理程序功能等。ISCM 220可以被配置为接收CLI驱动的MTS消息、MTS通知(例如,指示例如特定VLAN是开启还是关闭的事件驱动消息)、以及MTS请求/响应。在各种实施例中,可以配置ISCM 220,使得基于MTS的与其他过程的通信可以是无阻塞的和异步的。因此,ISCM 220可以针对相同资源来处理(可以随时到达的)多个事件,使得资源的状态是一致的(并且不被折中)。即使在非MTS消息中也可以提供类似的操作码,用于指示交换机或服务可以如何处理消息。
在端口(例如,装备端口和交换机端口)已经被配置为RISE模式之后,ISCM 220和ISCC 230可以执行自动发现和引导程序,以建立适当的控制信道。在建立了控制信道之后,服务装备224中的应用可以通过应用控制平面384(例如,使用UDP套接字接口)向ISCC 230发送控制消息。应用控制平面384通常包括用于执行工作流管理、自我管理、和其他应用控制层进程的一个或多个软件组件。ISCC 230可以通过通信信道226将控制消息转发到交换机190的ISCM 220。在示例实施例中,ISCM 220和ISCC 230可以通过UDP分组进行通信;然而,本公开的教导可以适应各种其他协议和格式。管控器360可以被配设有(或者可以访问)用于执行其各种功能的处理器386和存储器388。ISCM 220可以使用处理器386和存储器388执行交换机190中与RISE相关的功能。类似地,服务装备224可以被配设有(或者可以访问)处理器390和存储器392。ISCC 230可以使用处理器390和存储器392执行服务装备224中与RISE相关的功能。
图4是根据本说明书的一个或多个示例的路由表400的框图。在该示例中,提供四个节点,指定为节点N0、N1、N2和N3。每个节点表示具有唯一VIP的服务器装备,无论是专用硬件服务器装备还是虚拟服务器装备。
负载平衡引擎320指定被标记为B0、B1、B2、B3、B4、B5、B6和B7的8个流量桶。基于负载和需求,负载平衡引擎320将每个流量桶映射到适当的节点。在该示例中,桶B0和B4被映射到节点N0。桶B1和B5被映射到节点N1。桶B2和B6被映射到节点N2。桶B3和B7被映射到节点N3。这些映射仅以非限制性示例的方式被提供,并且仅仅被提供以说明将桶映射到节点的原理。
当交换机190接收到传入流量时,负载平衡引擎320操作以执行适当的算法用于将传入流量分配到流量桶。这可以包括例如随机或伪随机分配、轮循调度、或任何合适的调度算法。在一个示例中,算法可以基于传入分组的源IP地址,如结合图7和图8所详细描述的。
在将流量分配到流量桶之后,交换机194利用针对服务于该流量桶的节点的适当的VIP来修改分组,并转发该分组。
当响应到来时,交换机194修改分组以反映交换机194的公共可见IP地址,使得负载平衡对于外部主机是完全不可见的。
图5是根据本说明书的一个或多个示例的由负载平衡引擎320执行的示例性方法500的流程图。
在块510中,交换机190接收传入流量并且将传入流量提供给负载平衡引擎320。
在块520中,交换机190将传入流量的目的地IP与指定用于负载平衡的VIP进行比较。如果存在匹配,则将传入流量提供给负载平衡引擎320以进行负载平衡。如果不存在匹配,则交换机190根据其正常功能仅路由或交换流量。
在块530中,负载平衡引擎320评估针对可用的工作负载服务器的工作负载平衡。如上所述,这可以通过轮循分配、随机或伪随机分配、或任何其他合适的负载平衡算法来执行。
在块540中,负载平衡引擎320基于块530的评估,来标识用于服务于传入流量的最佳可用节点。
在块550中,根据块540的标识,负载平衡引擎320将传入流量分配给与最佳可用节点相关联的桶。分配给节点可以包括修改头部以反映针对所分配的节点的VIP。
在块570中,在负载平衡引擎320已将流量分配到适当的桶并且由此分配给适当的节点之后,交换机190将传入流量转发到被指定用于服务于该桶的节点,具体地通过将流量转发到适当的VIP。
在块580中,负载平衡引擎320可以适当地或必要地记录事务。
在块590处,该方法完成。
图6示出了根据本说明书的一个或多个示例的借助TCAM(例如TCAM 329)在交换机上执行负载平衡的方法。该示例使用了流的概念。在示例中,由元组T唯一地标识流,元组T包括src-ip(源IP地址)、dst-ip(目的地IP地址)、协议、L4-src-port(第4层源端口)和L4-dst-port(第4层目的地端口)。
在示例中,客户端设备110-1发送被导向由交换机190服务的VIP的分组。作为说明,该流被称为F1,并且元组T1标识流F1。元组T1包括(Dev-110-l-IP、VIP、TCP、L4-src-port、L4-dest-port)。
类似地,客户端设备110-2发起到相同VIP的流量。由于客户端110-2的IP地址与客户端110-1的不同,所以该流将具有不同的元组。作为说明,这被称为由元组T2标识的流F2。元组T2包括(Dev-110-2-IP、VIP、TCP、L4-src-port、L4-dest-port)。
在各种示例中,多组流量桶可以是“池”的一部分,并且一个或多个池可以被分配给单个VIP,允许VIP流量在服务器节点之间被负载平衡。
现参考图6中的方法600,假设交换机190现在已经接收到流F1和F2。
在块610中,TCAM 329查找两个流中都出现的VIP的IP地址。在该示例中,两个流都被导向该VIP,该VIP是用于工作负载集群142中的服务器所提供的服务的虚拟IP地址。因此,交换机190可以快速确定流F1和F2将被负载平衡。
在块620中,负载平衡引擎320将每个节点分配给本文所述的流量桶。在某些示例中,这可以通过本文公开的任何负载平衡算法或任何其他适当的负载平衡算法来实现。在一个示例中,将每个流分配到桶包括分别基于Dev-9-IP和Dev-110-2-IP、根据图9的方法900进行分配。在这种情况下,TCAM 329可以包括将经掩码的IP地址片段映射到流量桶的表。
在块640中,负载平衡引擎320将每个流分配给用于服务的节点,例如工作负载集群142中的工作负载服务器。这可以是基于每个流被分配到的流量桶的确定性分配。为了提高速度,这还可以使用TCAM 329来实现。例如,TCAM 329可以包括将流量桶映射到服务节点的表。
在块660中,负载平衡引擎320为传入分组重写L2头部。例如,假设流量F1被分配给工作负载集群142中的服务节点1,并且流F2被分配给工作负载集群142中的服务节点2,则负载平衡引擎320为这些流中的分组重写L2头部以将它们引导到其各自的服务节点。
在块680中,交换机190结束其负载平衡任务,并且现在充当交换机,将分组交换或路由到其新的L2头部所提供的节点。
针对每个传入分组重复块610至块680,为每个传入分组选择适当的桶和服务节点。假设具有配置良好的负载平衡引擎320,分组将良好地分布在工作负载集群142中的可用服务节点上,使得工作负载能够最优地分布在可用服务节点之间。
逆向流量(从服务节点到客户端设备的响应)被直接传送到相应的客户端而无需负载平衡引擎320的干预。
在块690中,完成该方法。
图7是图6中描述的方法600的框图700。
图8是根据本说明书的一个或多个示例的叶-脊网络800的框图。本说明书的自适应负载平衡的教导很好地适用于叶-脊交换机网络,但它们也与更早的三层“树”架构兼容。
与三层“树”架构相比,叶-脊只有两层:叶层和脊层。在图8的示例中,交换机190被示出为脊交换机,附加的叶交换机390也被示出。为了说明原理,在该图中示出了一个脊交换机190和四个叶交换机390。在部署的网络中,脊交换机190和叶交换机390的数量将由网络的配置和需求来确定。
叶-脊网络800中的所有设备都相距相同数量的区段,而且具有一致的延迟。叶-脊网络800的叶层可以包括叶交换机390,这些叶交换机390连接到诸如服务器之类的终端设备或者诸如边缘路由器、防火墙、安全设备或任何其它合适的设备的中间设备。包括一个或多个脊交换机190的脊层,将每个叶交换机390与每个其它叶交换机390互连,并且还将叶交换机390连接到其他的脊交换机190。虽然通常可以适用于路由拓扑,叶-脊在数据中心中是尤其有用的,其中关注点在单个网络中的节点之间传播的数据(而不是例如在网络外部传播的数据)上。叶-脊的具体实施例包括“多个链路的透明互连”(TRILL)或“最短路径桥接”(SPB)。Trill和SPB两者都可以确定哪里被连接到结构,使得能够为其各自的以太网MAC地址提供无环路的最短路径。
在叶-脊架构的示例中,可以使用三层路由来互连层。这可以实现上述可预测的延迟。还可以使用动态路由来确定节点之间的最佳路径。在某些实施例中,可以基于网络中的变化来调整路由。在一个实施例中,可以通过“等成本多路径”(ECMP)来配置路由。有利地,利用ECMP,多个连接可以保持活跃,并且网络环路可以被避免。
叶-脊的某些实施例还可以使得更容易地以最小的网络中断来添加、升级、替换或以其他方式重新配置硬件。在示例中,可以容易地将附加的脊交换机添加到网络,然后可以将必要的上行链路添加到每个叶交换机。这无缝地提供了附加的层间带宽。类似地,当需要附加的端口容量时,可以添加附加的叶交换机390。它们可通信地耦接到网络中的每个脊。例如,叶-脊网络可以提供诸如
Figure BDA0001362318330000231
Standalone Fabric(
Figure BDA0001362318330000232
独立结构)之类的结构。
在图8的示例中,脊交换机190包括负载平衡引擎320和动态主机名配置协议(DHCP)服务器840。DHCP服务器840将动态地分配主机名和/或IP地址给出现在网络中的每个新的节点。在这种情况下,可能在某些“池”中保留某些IP地址,使得这些池中的节点可以被识别为属于该池。还提供了网络管理器370和编排器(orchestrator)380。网络管理器370可以是任何合适的设备,例如
Figure BDA0001362318330000233
Prime Data Center Network Manager(
Figure BDA0001362318330000234
主数据中心网络管理器)(DCNM)或类似设备。编排器380可以是合适的网络编排器,通过非限制性示例的方式,例如
Figure BDA0001362318330000235
Unified Computing System Director(
Figure BDA0001362318330000236
统一计算系统导向器)(UCSD)、VMWare vCD、或OpenStack。
作为示例,为Web服务器池810中的Web服务器保留表10.10.14.X的地址。为电子邮件服务器池820中的电子邮件服务器保留表10.10.18X的地址。为文件服务器池830中的文件服务器保留表10.10.24.X的地址。
在上述示例中,为每种服务器保留256个连续的地址。例如,10.10.14.0-10.10.14.255范围内的所有地址都属于网络服务器池810。然而应该认识到,可以分配给池任何合适数量的地址,并且地址不必是连续的。
如上所述,负载平衡引擎320涉及流量的快速负载平衡。例如,进入虚拟IP地址(VIP)10.10.0.6的流量被导向网络服务器池810。因此,当脊交换机190接收到在目的地字段中具有10.10.0.6的分组时,它对流量进行负载平衡,将流量分配到网络服务器池810中的一个服务器,然后将分组转发到叶交换机390-1,叶交换机390-1将分组转发到网络服务器池810中的服务器。
然而,在动态虚拟化数据中心中,应当理解,网络服务器池810中的服务器可以不是单独的“裸机”服务器。相反,它们可以是根据要满足的需求而被动态地配设的VM。当需求增加时,新的VM可以“开始运转”并被添加到网络服务器池810。一旦高需求时期消退,那些额外的VM可以“停止运转”,使得这些资源可以用于其他目的。
因此,如果负载平衡引擎320的配置可以被制成“无接触”的,则会是有利的。换言之,网络管理员150希望能够使用管理控制台140来指定配置,例如通过网络管理器370和编排器380,使得当编排器380添加新的网络节点时,网络管理器370用适当的规则更新来自动地重新配置负载平衡引擎320,而无需来自网络管理员150的其他干预。
在图9、10和11的流程图中描述了用于实现该结果的方法。这些流程图应该理解为是本说明书中提供的方法的非限制性示例。这些流程图中公开的任何操作可以以任何适当的顺序执行,并且可以适当地添加或省略附加的操作。
图9是根据本说明书的一个或多个示例的可用于配置网络管理器370以提供自适应负载平衡的方法900的流程图。
在块910中,诸如网络管理员150的用户通过编排器380创建新的租户,该新的租户映射到脊-叶网络300的结构中的适当的组织和分区。
在块920中,适当的信息被填充在网络管理器370中,例如在轻量级目录访问协议(LDAP)数据库中。在一个示例中,数据可以通过诸如表示状态转移(REST)API之类的适当的应用编程接口(API)从编排器380直接填充。或者,网络管理员150可以通过诸如图形用户接口(GUI)之类的网络管理器370的接口直接填充数据库。
在块930中,网络管理员150可以选择在其上启用ITD特征的一个或多个交换机190。基于负载平衡要求,网络管理员140可以创建ITD服务、用于路由到所需服务的适当的虚拟IP(VIP)、用于负载平衡的进入接口、以及诸如网络服务器池810、电子邮件服务器池820或文件服务器池830之类的必要设备群组。可以基于实时网络状况来动态地填充设备群组成员资格。可以通过“开机自动配设”(POAP)或直接通过网络管理器370所提供的CLI或GUI/REST API调用配置命令,来创建ITD配置。然而,网络管理员150不希望对于开始运转的每个新的虚拟设备都必须得重新配置ITD服务。因此,本说明书提供了自动的自适应负载平衡。
在块940中,编排器340创建租户网络,针对该租户网络分配来自编排器管理的分段ID池的适当的第2层分段ID。编排器380还可以通过REST API调用来发送该信息到网络管理器370,使得该信息被填充到网络管理器370的LDAP网络资源库中,以用于来自叶交换机390的后续查询。
在块950中,网络管理员150选择网络简档作为网络创建的一部分。这允许网络管理员150指定网络是否应作为ITD负载平衡拓扑的一部分,包括是否关联整个网络或子集(范围)。网络管理员150还可以提供将与网络相关联的ITD设备群组的名称。
在块960中,作为网络创建的一部分,编排器380对虚拟基础架构进行编程。具体地,编排器380用具有被分配给先前创建的租户网络的第2层分段ID的端口简档来对交换机190进行编程。
在块980中,网络管理员150可以在交换机190内通过编排器380创建(例如,管理程序中的)适当的端口群组,端口群组是作为虚拟以太网模块的一部分的被推动的计算节点。
在块999中,完成该方法。
图10是根据本说明书的一个或多个示例的配设动态负载平衡的方法的流程图。
在块1010中,新的虚拟机开始运转并且附接到端口群组,例如在图9的块970中配设的端口群组。该虚拟机可以是需要作为集群的一部分的服务装备,ITD为该集群提供负载平衡服务。
在块1020中,叶交换机390检测新的主机。在动态结构自动化(DFA)环境中,叶交换机可以通过各种方式检测新的虚拟或物理主机的存在,包括以下非限制性示例的方式。
数据分组触发可以基于由传入的IEEE 8002.1Q标记的分组触发的新的介质访问控制(MAC),其可以是包括作为非限制示例的ARP、DHCP或ND的任何合适的分组。例如使用VLAN-ID和移动域作为查询标识符,叶交换机390从网络管理器370下拉相关联的网络配置简档。
可以使用诸如vSphere数据保护(VDP)之类的编排器380实用工具来基于分段ID触发自动配置。当VM正在启动时,管理程序虚拟交换机可以向叶交换机发出通知,通知在“分段X”中工作负载正在启动,并且请求分配准备好从该WM接受流量所必要的任何资源。然后,叶交换机390可以使用分段ID作为查询标识符从网络管理器370下拉相关联的网络配置简档。
在块1040中,叶交换机390用第2层分段ID或VLAN-ID和移动域作为查询标识符,以查询网络管理器380。
在块1050中,作为查询响应的一部分,网络管理器380向叶交换机390返回所需的信息,包括例如虚拟路由和转发(VRF)实例、第3层分段ID、IP地址和简档。这些信息可以用于实例化端-主机(虚拟)网络简档配置。
在决策块1070中,叶交换机390检查新主机的IP地址,以确定它是否需要成为ITD服务组的一部分。如前所述,整个网络或范围/子集可被配置为服务组的一部分(参见例如图8)。如果不需要,则不需要采取进一步操作,并且在块1099中完成该方法。
如果要将新的主机添加到ITD设备组,则在块1080中,叶交换机390缓存与适当的网络相关联的ITD服务组信息。因此,下一次在叶交换机390上检测到同一网络中的新主机时,叶交换机390可以无需查询网络管理器370的LDAP数据库而应用适当的ITD服务负载平衡策略。这有效地保持了配置的更新,因为可以在源交换机上执行配置而无需手动干预或与网络管理器370的附加的握手。
在块1099中,完成该方法。
图11是根据本说明书的一个或多个示例的自动从ITD池中移除节点的方法的流程图。
在块1110中,主机断电,与其的通信丢失,或者它以其他方式不再与叶交换机390相关联。
在块1180中,叶交换机390清除配置。例如,如果主机是ITD服务组的一部分,则将其从该ITD服务组中移除。之后,ITD可以调整其“桶”以针对节点的损失做出调整。
在块1199中,完成方法。
应当注意,在本说明书中,对于“一个实施例”、“示例的实施例”、“实施例”、“另一实施例”、“一些实施例”、“各种实施例”、“其他实施例”、“替代的实施例”等中所包括的各种特征(例如,元件、结构、模块、组件、步骤、操作、特性等)的引用,意在指任何这样的特征被包括在本公开的一个或多个实施例中,但是可以组合或可以不组合在相同的实施例中。此外,词语“优化”及相关术语是指代在指定结果的速度和/或效率方面的改善的技术术语,并不意在表明实现指定结果的过程已经实现或能够实现“最优的”或非常快速/非常高效的状态。
在示例的实现方式中,本文中概述的活动的至少一些部分可以用软件来实现,该软件例如(例如,通过各种模块、算法、过程等)被配设在服务装备224和/或交换机190中。在一些实施例中,这些特征中的一个或多个可以用硬件来实现,该硬件被设置在这些元件外部或以任何适当的方式合并以实现预期功能。服务装备224和/或交换机190可以包括可以协调从而实现如本文所概述的操作的软件(或往复式软件)。在其他实施例中,这些元件可以包括辅助其操作的任何合适的算法、硬件、软件、组件、模块、接口或对象。
此外,本文描述和示出的交换机190和服务装备224(和/或其相关联的结构)还可以包括用于在网络环境中接收、发送和/或以其他方式传送数据或信息的合适接口。此外,与各种网络元件相关联的一些处理器和存储器可以被移除或以其他方式合并,使得单个处理器和单个存储器位置负责某些活动。在一般意义上,附图中描绘的布置按它们的表示可能更合乎逻辑,而物理架构可以包括这些元件的各种排列、组合和/或混合。应当注意的是,无数可能的设计配置可用于实现本文概述的操作目标。因此,相关的基础架构具有无数的替代布置、设计选择、设备可能性、硬件配置、软件实现方式、设备选项等。
在一些示例性实施例中,一个或多个存储器(例如,存储器392、存储设备388)可以存储用于本文描述的操作的数据。这包括能够存储被执行以实现本说明书中描述的活动的指令(例如,作为逻辑、软件、代码等的一部分)的存储器。处理器可以执行与数据相关联的任何类型的指令以实现本说明书中详细描述的操作。在一个示例中,处理器386和处理器390可以将元件或条款(例如,数据)从一个状态或事物转换到另一状态或事物。在另一示例中,本文概述的活动可以用固定逻辑或可编程逻辑(例如,由处理器执行的软件/计算机指令)来实现,并且本文标识的元件可以是某类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(FPGA)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、ASIC(包括数字逻辑、软件、代码、电子指令、闪存、光盘、CD-ROM、DVD ROM、磁或光卡、适用于存储电子指令的其它类型的机器可读介质)、或其任何合适的组合。
在操作中,系统110中的组件可以包括用于存储将用来实现如本文概述的操作的信息的一个或多个存储器元件(例如,存储器388、存储器392)。这些设备还可以将信息保持在任何合适类型的非暂态存储介质(例如随机存取存储器(RAM)、只读存储器(ROM)、现场可编程门阵列(FPGA)、可擦除可编程只读存储器(EPROM)、电可擦除可编程ROM(EEPROM)等)、软件、硬件、或合适的和基于特定需求的任何适当的组件、设备、元件或对象中。可以基于特定需求和实现方式在任何数据库、注册表、缓存、队列、控制列表或存储结构中提供在系统110中正在被追踪、发送、接收或存储的信息,所有这些信息可以在任何合适的时间表中引用。本文讨论的任何存储项都应被解释为涵盖在广义术语“存储器”内。类似地,本说明书中描述的任何可能的处理元件、模块和机器应被理解为涵盖在广义术语“处理器”内。
还应当注意,参考前面的图所述的操作和步骤仅仅示出可以由系统执行或在系统内部执行的一些可能的情形。在不脱离讨论的概念的范围的情况下,在适当的情况下这些操作中的一些可以被删除或移除,或者这些步骤可以被修改或变化。此外,这些操作的时间可能会很大地改变,并且亦然实现本公开所教导的结果。上述可操作流程是出于示例和讨论的目的被提供。系统提供了很大的灵活性,由于在不脱离所讨论概念的教导的情况下,可以提供任何合适的布置、时序、配置和定时机制。
尽管已经参考特定的布置和配置详细描述了本公开,但是在不脱离本公开的范围的情况下,这些示例的配置和布置可以被显著地改变。例如,尽管已经参考涉及某些网络接入、格式和协议的特定通信交换来描述本公开,但是系统110可以适用于其他交换、格式或路由协议。此外,尽管已经参考辅助通信过程的特定元件和操作示出了系统110,但是这些元件和操作可以由实现系统110的预期功能的任何合适的架构或过程替代。
实现本文描述的全部或部分功能的计算机程序逻辑以各种形式被实施,包括但不限于源代码形式、计算机可执行形式、和各种中间形式(例如,由汇编器、编译器、链路器或定位器生成的形式)。在示例中,源代码包括以各种编程语言实现的一系列计算机程序指令,诸如用于以各种操作系统或操作环境的使用的对象代码、汇编语言、或诸如OpenCL、Fortran、C、C++、JAVA或HTML之类的高级语言。源代码可以定义和使用各种数据结构和通信消息。源代码可以是(例如,通过解析器)计算机可执行形式,或者源代码可以(例如,通过转换器、汇编器或编译器)被转换为计算机可执行形式。
在一个示例的实施例中,可以在相关联的电子设备的板上实现附图的任何数量的电子线路。板可以是能够容纳电子设备的内部电子系统的各种组件的通用电路板,并且还可以为其它外部设备提供连接器。更具体地,板可以提供电连接,系统的其它组件可以通过该电连接进行电通信。基于特定配置需求、处理要求、计算机设计等等,任何合适的处理器(包括数字信号处理器、微处理器、支持芯片组等)、存储器元件等可以合适地耦接到板上。诸如外部存储设备、附加传感器、用于音频/视频显示的控制器和外部设备之类的其他组件可以作为插件卡通过线缆被附接到板上,或者被集成到路自身中。另一示例的实施例中,附图的电子线路可以被实现为独立模块(例如,具有被配置为执行具体应用或功能的相关组件和电路的设备)或被实现为到电子设备的应用专用硬件中的插件模块。
应当注意,通过本文提供的大量示例,可以根据两个、三个、四个、或更多电气组件来描述交互。然而,这仅仅是出于清晰和示例的目的而实现。应当理解,系统可以以任何合适的方式来加固。按照类似的设计替代,附图所示的任何的组件、模块和元件可以被组合为各种可能的配置,所有这些构造都明确地在本说明书的宽泛的范围内。在某些情况下,可能更容易的是,仅通过参考有限数量的电气元件来描述一组给定的流的一个或多个功能。应当理解,附图的电子线路和其教导是易于扩展的,并且可以容纳大量的组件和更复杂/繁杂的布置和配置。因此,所提供的示例不应该限制电子线路的范围或抑制其广泛教导,该电子线路潜在地被应用于无数的其他架构。
通过非限制性示例,公开了用于在交换机内提供本地负载平衡的网络装置,包括:可操作地通信地耦接到第一网络的第一网络接口;可操作以通信地耦接到第二网络的多个第二网络接口;包括可操作以提供网络交换的交换引擎的一个或多个逻辑元件;以及包括负载平衡引擎的一个或多个逻辑元件,所述负载平衡引擎可操作用于:通过第一网络接收输入的网络流量;以及将传入流量分配给与第二网络相关联的流量桶;其中交换引擎和负载平衡引擎被配置为被提供在与彼此以及与第一网络接口和多个第二网络接口相同的硬件上。
在一个示例中公开了用于在交换机内提供本地负载平衡的网络设备,包括:可操作为可通信地耦接到第一网络的第一网络接口;可操作为可通信地耦接到第二网络的多个第二网络接口,第二网络包括服务节点的服务池;包括可操作以提供网络交换的交换引擎的一个或多个逻辑元件;包括负载平衡引擎的一个或多个逻辑元件,所述负载平衡引擎可操作用于:根据负载平衡配置通过本地硬件对到服务池的传入网络流量进行负载平衡;检测添加到服务池的新的服务节点;并且调整负载平衡配置以考虑新的服务节点;其中交换引擎和负载平衡引擎被配置为被提供在与彼此和与第一网络接口和多个第二网络接口相同的硬件上。
还公开了示例,其中,网络设备是交换机。
还公开了示例,其中,交换机是脊-叶架构中的叶交换机。
还公开了示例,其中,调整负载平衡配置包括确定配置数据未被缓存,并且向网络管理器装置查询配置数据。
还公开了示例,其中,调整负载平衡配置还包括缓存配置数据。
还公开了示例,其中,调整负载平衡配置包括确定配置数据被缓存,并且使用缓存的配置数据。
还公开了示例,其中,本地硬件包括三态内容可寻址存储器(TCAM)。
在示例中还公开了,一种在交换机内提供本地负载平衡的方法,包括:通过第一网络接口可通信地耦接到第一网络;通过多个第二网络接口可通信地耦接到第二网络,第二网络包括服务节点的服务池;提供网络交换;提供负载平衡,包括:根据负载平衡配置,通过本地硬件将传入网络流量负载平衡到所述服务池;检测添加到服务池的新服务节点;并且调整负载平衡配置以考虑新的服务节点。
还公开了示例,其中,提供网络交换包括在脊-叶结构中提供叶交换功能。
还公开了示例,其中,调整负载平衡配置包括确定配置数据未被缓存,并且向网络管理器装置查询配置数据。
还公开了示例,其中,调整负载平衡配置还包括缓存配置数据。
还公开了示例,其中,调整负载平衡配置包括确定配置数据被缓存,并且使用缓存的配置数据。
还公开了示例,其中,对传入网络流量进行负载平衡包括查询设备上的三态内容可寻址存储器(TCAM)。
在示例中还公开了,一种或多种有形非暂态计算机可读存储介质,其上存储有可执行指令,该指令用于指示处理器:通过第一网络接口可通信地耦接到第一网络;通过多个第二网络接口可通信地耦接到第二网络,第二网络包括服务节点的服务池;提供网络交换;提供负载平衡,包括:根据负载平衡配置,通过本地硬件将传入网络流量负载平衡到服务池;检测添加到服务池的新的服务节点;并且调整负载平衡配置以考虑新的服务节点。
还公开了示例,其中,提供网络交换包括在脊-叶架构中提供叶交换功能。
还公开了示例,其中,调整负载平衡配置包括确定配置数据未被缓存,并且向网络管理器装置查询配置数据。
还公开了示例,其中,调整负载平衡配置还包括缓存配置数据。
还公开了示例,其中,调整负载平衡配置包括确定配置数据被缓存,并且使用缓存的配置数据。
还公开了示例,其中,将传入网络流量进行负载平衡包括查询设备上的三态内容可寻址存储器(TCAM)。
还公开了示例,其中,介质包括网络交换机的本地介质。
还公开了一种方法的示例,方法包括执行任一前述示例中公开的操作。
还公开了一种或多种非瞬态计算机可读介质的示例,其上存储有可执行指令用于执行任一前述示例的方法或操作。
还公开了示例,其包括用于执行该方法或操作任何前述示例的计算机可读介质的装置。
还公开了示例,其中装置包括处理器和存储器。
本领域技术人员可以确定许多其它变化、置换、变更、改变和修改,并且其指的是,本公开涵盖了落入所附权利要求书范围内的所有这些变化、置换、变更、改变和修改。为了辅助美国专利商标局(USPTO)并且辅助对本申请所发表的任何专利的任何读者理解所附权利要求书,申请人希望强调的是,申请人:(a)由于该申请在提交之日存在,不意在所附权利要求涉及35U.S.C第112条的第六(6)段,除非在特定权利要求中具体使用“用于…的装置”或“用于…的步骤”等词语;以及(b)并不意在通过本说明书中的任何陈述,以未以其他方式反映在所附权利要求中的任何方式来限制本公开。

Claims (20)

1.一种用于在交换机内提供本地负载平衡的网络装置,包括:
第一网络接口,可操作用于可通信地耦接到第一网络;
多个第二网络接口,可操作用于可通信地耦接到与第2层分段标识符相关联的第二网络,所述第二网络包括服务节点的服务池;
交换引擎,包括可操作用于提供网络交换的可编程硬件;以及
负载平衡引擎,包括可操作用于以下操作的可编程硬件:
根据负载平衡配置,通过本地硬件,将传入网络流量负载平衡到所述服务池,其中所述本地硬件使得所述负载平衡引擎能够对所述网络流量中的分组进行负载平衡,而不需要通过重写所述分组的第2层头部将所述分组传递到网络栈的更高层;
检测所述第二网络上的新的服务节点;
以与所述第二网络相关联的所述第2层分段标识符查询网络管理器;
接收来自所述网络管理器的响应,所述响应包括针对所述新的服务节点的网络配置数据;
基于所述网络配置数据确定所述新的服务节点在所述服务池中;以及
调整所述负载平衡配置以考虑所述新的服务节点;
其中,所述交换引擎和负载平衡引擎被提供在与所述第一网络接口和多个第二网络接口相同的可编程硬件上。
2.根据权利要求1所述的网络装置,其中,所述网络装置是交换机。
3.根据权利要求2所述的网络装置,其中,所述交换机是在脊-叶架构中的叶交换机。
4.根据权利要求2所述的网络装置,其中,调整所述负载平衡配置包括确定配置数据未被缓存,并且针对配置数据询问网络管理器。
5.根据权利要求4所述的网络装置,其中,调整所述负载平衡配置还包括缓存所述配置数据。
6.根据权利要求2所述的网络装置,其中,调整所述负载平衡配置包括确定所述配置数据被缓存,并且使用所述缓存的配置数据。
7.根据权利要求1-6中的任一项所述的网络装置,其中,所述本地硬件包括三态内容可寻址存储器TCAM。
8.一种在交换机内提供本地负载平衡的方法,包括:
通过第一网络接口可通信地耦接到第一网络;
通过多个第二网络接口,可通信地耦接到第二网络,所述第二网络包括服务节点的服务池;
提供网络交换;
提供负载平衡,包括:
根据负载平衡配置,通过本地硬件,将传入网络流量负载平衡到所述服务池,其中所述本地硬件使得负载平衡引擎能够对所述网络流量中的分组进行负载平衡,而不需要通过重写所述分组的第2层头部将所述分组传递到网络栈的更高层;
检测所述第二网络上的新的服务节点;
以与所述第二网络相关联的所述第2层分段标识符查询网络管理器;
接收来自所述网络管理器的响应,所述响应包括针对所述新的服务节点的网络配置数据;
基于所述网络配置数据确定所述新的服务节点在所述服务池中;以及调整所述负载平衡配置以考虑所述新的服务节点。
9.根据权利要求8所述的方法,其中,提供网络交换包括提供在脊-叶架构中的叶交换机功能。
10.根据权利要求8所述的方法,其中,调整所述负载平衡配置包括确定配置数据未被缓存,并且针对配置数据询问网络管理器。
11.根据权利要求10所述的方法,其中,调整所述负载平衡配置还包括缓存所述配置数据。
12.根据权利要求8所述的方法,其中,调整所述负载平衡配置包括确定配置数据被缓存,并且使用所述缓存的配置数据。
13.根据权利要求8-12中的任一项所述的方法,其中,对传入网络流量进行负载平衡包括询问设备上的三态内容可寻址存储器TCAM。
14.一个或多个有形非暂态计算机可读存储介质,具有存储在其上的可执行指令,所述指令用于指示处理器:
通过第一网络接口可通信地耦接到第一网络;
通过多个第二网络接口可通信地耦接到第二网络,所述第二网络包括服务节点的服务池;
提供网络交换;
提供负载平衡,包括:
根据负载平衡配置,通过本地硬件,将传入网络流量负载平衡到所述服务池,其中所述本地硬件使得负载平衡引擎能够对所述网络流量中的分组进行负载平衡,而不需要通过重写所述分组的第2层头部将所述分组传递到网络栈的更高层;
检测所述第二网络上的新的服务节点;
以与所述第二网络相关联的所述第2层分段标识符查询网络管理器;
接收来自所述网络管理器的响应,所述响应包括针对所述新的服务节点的网络配置数据;
基于所述网络配置数据确定所述新的服务节点在所述服务池中;以及
调整所述负载平衡配置以考虑所述新的服务节点。
15.根据权利要求14所述的一个或多个有形非暂态计算机可读存储 介质,其中,提供网络交换包括提供在脊-叶架构中的叶交换机功能。
16.根据权利要求14所述的一个或多个有形非暂态计算机可读存储 介质,其中,调整所述负载平衡配置包括确定配置数据未被缓存,并且针对配置数据询问网络管理器。
17.根据权利要求16所述的一个或多个有形非暂态计算机可读存储 介质,其中,调整所述负载平衡配置还包括缓存所述配置数据。
18.根据权利要求14所述的一个或多个有形非暂态计算机可读存储 介质,其中,调整所述负载平衡配置包括确定所述配置数据被缓存,并且使用所述缓存的配置数据。
19.根据权利要求14-18中的任一项所述的一个或多个有形非暂态计算机可读存储 介质,其中,对传入网络流量进行负载平衡包括询问设备上的三态内容可寻址存储器TCAM。
20.根据权利要求14-18中的任一项所述的一个或多个有形非暂态计算机可读存储 介质,其中,所述介质包括网络交换机的本地介质。
CN201680007521.7A 2015-04-23 2016-04-12 自适应负载平衡 Active CN107409096B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562152022P 2015-04-23 2015-04-23
US62/152,022 2015-04-23
US15/095,037 2016-04-09
US15/095,037 US10412157B2 (en) 2015-04-23 2016-04-09 Adaptive load balancing
PCT/US2016/027123 WO2016171957A1 (en) 2015-04-23 2016-04-12 Adaptive load balancing

Publications (2)

Publication Number Publication Date
CN107409096A CN107409096A (zh) 2017-11-28
CN107409096B true CN107409096B (zh) 2021-06-22

Family

ID=55809229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680007521.7A Active CN107409096B (zh) 2015-04-23 2016-04-12 自适应负载平衡

Country Status (4)

Country Link
US (1) US10412157B2 (zh)
EP (1) EP3286903B1 (zh)
CN (1) CN107409096B (zh)
WO (1) WO2016171957A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8776207B2 (en) * 2011-02-16 2014-07-08 Fortinet, Inc. Load balancing in a network with session information
US11533255B2 (en) 2014-11-14 2022-12-20 Nicira, Inc. Stateful services on stateless clustered edge
US10075377B1 (en) * 2015-04-23 2018-09-11 Cisco Technology, Inc. Statistical collection in a network switch natively configured as a load balancer
US9807051B1 (en) * 2015-06-23 2017-10-31 Cisco Technology, Inc. Systems and methods for detecting and resolving split-controller or split-stack conditions in port-extended networks
US10536398B2 (en) * 2016-05-12 2020-01-14 Cisco Technology, Inc. Plug and play in a controller based network
US10491522B2 (en) 2016-05-13 2019-11-26 Cisco Technology, Inc. Data plane integration
US10848432B2 (en) * 2016-12-18 2020-11-24 Cisco Technology, Inc. Switch fabric based load balancing
US20180241802A1 (en) * 2017-02-21 2018-08-23 Intel Corporation Technologies for network switch based load balancing
US10505813B2 (en) * 2017-05-18 2019-12-10 Datera, Inc. System and method for an improved placement of storage nodes in network
US10547509B2 (en) 2017-06-19 2020-01-28 Cisco Technology, Inc. Validation of a virtual port channel (VPC) endpoint in the network fabric
US11296984B2 (en) 2017-07-31 2022-04-05 Nicira, Inc. Use of hypervisor for active-active stateful network service cluster
US10951584B2 (en) 2017-07-31 2021-03-16 Nicira, Inc. Methods for active-active stateful network service cluster
US11570092B2 (en) * 2017-07-31 2023-01-31 Nicira, Inc. Methods for active-active stateful network service cluster
US10965596B2 (en) 2017-10-04 2021-03-30 Cisco Technology, Inc. Hybrid services insertion
US11019028B2 (en) * 2018-01-12 2021-05-25 Extreme Networks, Inc. Use of DHCP to automatically assign nicknames in a SPBM network
US11153122B2 (en) 2018-02-19 2021-10-19 Nicira, Inc. Providing stateful services deployed in redundant gateways connected to asymmetric network
US11245753B2 (en) * 2018-08-17 2022-02-08 Fastly, Inc. User space redirect of packet traffic
US11075985B2 (en) 2018-11-09 2021-07-27 Cisco Technology, Inc. Early action on deploying and executing functions in a serverless environment
US10805258B2 (en) 2018-11-28 2020-10-13 International Business Machines Corporation Multiple link layer address resolution protocol (ARP)
US11245750B2 (en) * 2019-02-16 2022-02-08 International Business Machines Corporation File server load balancing
US11146490B2 (en) * 2019-05-07 2021-10-12 Cisco Technology, Inc. Distributed load balancer health management using data center network manager
US10812576B1 (en) * 2019-05-31 2020-10-20 Microsoft Technology Licensing, Llc Hardware load balancer gateway on commodity switch hardware
CN112437023B (zh) * 2020-10-12 2022-11-29 北京天融信网络安全技术有限公司 虚拟化安全网元数据处理方法、系统、介质和云平台
CN112491747B (zh) * 2020-11-25 2022-06-14 湖南麒麟信安科技股份有限公司 一种高可用的数据交换集群的应用方法
CN114024746B (zh) * 2021-11-04 2023-11-28 北京天融信网络安全技术有限公司 网络报文的处理方法、虚拟交换机以及处理系统
US11799761B2 (en) 2022-01-07 2023-10-24 Vmware, Inc. Scaling edge services with minimal disruption
US11962564B2 (en) 2022-02-15 2024-04-16 VMware LLC Anycast address for network address translation at edge
US11824916B1 (en) 2022-12-01 2023-11-21 Bank Of America Corporation Accessing and interacting with requested web content using a modified web farm framework
US11943307B1 (en) 2022-12-01 2024-03-26 Bank Of America Corporation Generating a modified web farm framework for routing web traffic based on similarities between web traffic requests

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731295A (zh) * 2012-10-11 2014-04-16 国际商业机器公司 用于运行虚拟整合设备的方法和系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8005913B1 (en) 2005-01-20 2011-08-23 Network Protection Sciences, LLC Controlling, filtering, and monitoring of mobile device access to the internet, data, voice, and applications
US8756298B2 (en) * 2005-12-21 2014-06-17 Cisco Technology, Inc. System for automatic configuration of computers in a server farm
US8042148B2 (en) * 2006-02-07 2011-10-18 Cisco Technology, Inc. System and method for enforcing policy in a communication network
US8549146B2 (en) 2010-01-28 2013-10-01 Telefonaktiebolaget L M Ericsson (Publ) Stateless forwarding of load balanced packets
US8743888B2 (en) 2010-07-06 2014-06-03 Nicira, Inc. Network control apparatus and method
US20120102226A1 (en) * 2010-10-20 2012-04-26 Microsoft Corporation Application specific web request routing
US8467294B2 (en) * 2011-02-11 2013-06-18 Cisco Technology, Inc. Dynamic load balancing for port groups
US9245626B2 (en) * 2012-10-26 2016-01-26 Cisco Technology, Inc. System and method for packet classification and internet protocol lookup in a network environment
US9477500B2 (en) 2013-03-15 2016-10-25 Avi Networks Managing and controlling a distributed network service platform
US9025459B2 (en) 2013-04-13 2015-05-05 Hei Tao Fung Network traffic load balancing
US9118571B2 (en) * 2013-07-08 2015-08-25 Telefonaktiebolaget L M Ericsson (Publ) Methods of operating load balancing switches and controllers using matching patterns with unrestricted characters
US9300528B2 (en) * 2013-12-13 2016-03-29 International Business Machines Corporation Trill network with multipath redundancy
US9548896B2 (en) * 2013-12-27 2017-01-17 Big Switch Networks, Inc. Systems and methods for performing network service insertion
US9503374B2 (en) * 2014-01-22 2016-11-22 Futurewei Technologies, Inc. Apparatus for hybrid routing in SDN networks to avoid congestion and achieve good load balancing under fluctuating traffic load

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731295A (zh) * 2012-10-11 2014-04-16 国际商业机器公司 用于运行虚拟整合设备的方法和系统

Also Published As

Publication number Publication date
WO2016171957A1 (en) 2016-10-27
EP3286903A1 (en) 2018-02-28
CN107409096A (zh) 2017-11-28
US10412157B2 (en) 2019-09-10
EP3286903B1 (en) 2020-02-19
US20160315814A1 (en) 2016-10-27

Similar Documents

Publication Publication Date Title
CN107409096B (zh) 自适应负载平衡
CN107409097B (zh) 用于负载平衡移动性的装置、介质和方法
US10749805B2 (en) Statistical collection in a network switch natively configured as a load balancer
US10171362B1 (en) System and method for minimizing disruption from failed service nodes
US10348838B2 (en) Scaling service discovery in a micro-service environment
US10091112B1 (en) Highly-scalable virtual IP addresses in a load balancing switch
US10491522B2 (en) Data plane integration
US10284473B1 (en) Multifunctional network switch
US11343190B2 (en) TCAM-based load balancing on a switch
US10110668B1 (en) System and method for monitoring service nodes
US10511514B1 (en) Node-specific probes in a native load balancer
EP3456002B1 (en) Plug and play in a controller based network
US12107776B2 (en) Adjustable bit mask for high-speed native load balancing on a switch
US11838376B2 (en) Scaling service discovery in a micro-service environment
US20180063085A1 (en) Automatic firewall configuration based on aggregated cloud managed information
US10171361B1 (en) Service-specific probes in a native load balancer
US10567222B2 (en) Recommending configurations for client networking environment based on aggregated cloud managed information
US9985894B1 (en) Exclude filter for load balancing switch
US10230642B1 (en) Intelligent data paths for a native load balancer
US20240356869A1 (en) Adjustable bit mask for high-speed native load balancing on a switch

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant