Distributed Load Balancer Health Management with Data Center Network Manager
By introducing controllers in distributed data centers and using health monitoring metrics to manage server status, the problem of excessive control traffic in distributed data centers is solved, and load balancing management efficiency and available capacity are improved.
Patent Information
- Application Number
- CN202080034013.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-05-07
- Filing Date
- 2020-04-24
- Publication Date
- 2024-12-31
- Estimated Expiration
- 2040-04-24
AI Technical Summary
In a distributed data center, servers and virtual machines are distributed throughout the architecture, resulting in each leaf switch having to detect the state of all servers, resulting in a large amount of control traffic entering the architecture, occupies bandwidth and increases packet loss rate.
Introduce controllers to monitor and manage server status by subscribing to health monitoring metrics provided by leaf switches without probing each server, only probing on local servers, reducing control traffic, and modifying network architecture through load balancing devices Configure in response to failures.
Reduces traffic in the data center, increases available capacity and reduces packet loss rate, and achieves more efficient load balancing management.
Smart Images

Figure CN113796048B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of and priority to U.S. non-provisional patent application No. 16 / 405,561, filed on May 7, 2019, entitled “DISTRIBUTED LOAD BALANCER HEALTHMANAGEMENT USING DATA CENTER NETWORK MANAGER,” the entire contents of which are expressly incorporated herein by reference. Technical Field
[0003] The subject matter of the present disclosure relates generally to the field of data center networks, and more particularly to load balancing within a distributed data center network. Background Art
[0004] A typical data center network contains numerous network elements, including servers, load balancers, routers, switches, etc. Load balancing devices can be used to distribute workloads among multiple nodes. Load balancing devices can include health monitoring applications to determine the status associated with a node, such as the availability of the node to receive workloads. Load balancing devices can determine the status by periodically probing the nodes.
[0005] In a distributed data center, servers and virtual machines (VMs) can be distributed throughout the fabric and attached to different leaf switches. Distributed load balancing enables load balancing of servers distributed across the fabric. Each leaf switch must probe the server to understand the status of each server connected to all other leaf switches, which results in a large amount of control traffic being injected into the fabric. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] In order to describe the manner in which the above and other advantages and features of the present disclosure can be obtained, a more detailed description of the principles briefly described above will be presented with reference to the specific embodiments shown in the accompanying drawings. It should be understood that these drawings only depict embodiments of the present disclosure and should not be considered as limiting its scope. By using these drawings, the principles herein are described and illustrated in more specific detail, in which:
[0007] Figure 1 is a simplified schematic diagram illustrating an exemplary data center network in which the systems and / or methods described herein may be implemented;
[0008] Figure 2 is a simplified schematic diagram illustrating a controller in a data center network according to various aspects of the subject technology;
[0009] Figure 3 is a simplified schematic diagram illustrating a controller in a data center network configured with a standby node according to various aspects of the subject technology;
[0010] Figure 4 is a simplified schematic diagram showing a controller in a data center network without a standby node configured according to various aspects of the subject technology;
[0011] Figure 5 A TCAM (ternary content addressable memory) table and its SRAM (static random access memory) table in each leaf switch are shown according to various aspects of the subject technology;
[0012] Figure 6 is a flow chart of a method performed by a controller according to various aspects of the subject technology; and
[0013] Fig. 7A and Figure 7B Examples of systems are shown in accordance with various aspects of the subject technology. DETAILED DESCRIPTION
[0014] The detailed description set forth below is intended as a description of various configurations of embodiments, and is not intended to represent the only configuration in which the subject matter of the present disclosure may be implemented. The accompanying drawings are incorporated herein and constitute a part of the detailed description. In order to more thoroughly understand the subject matter of the present disclosure, the detailed description includes specific details. However, it is apparent that the subject matter of the present disclosure is not limited to the specific details set forth herein, and may be implemented without these details. In some cases, structures and components are shown in the form of block diagrams to avoid obscuring the concept of the subject matter of the present disclosure.
[0015] Overview
[0016] In an example of a known computing system, a workload server cluster may be provided as a physical server or a virtual machine to provide desired features to an end user or client. Load balancing is required to implement the above functions in an independent switching architecture. The technology of the present disclosure addresses the need in the art for a more efficient way to manage a distributed load balancer, where client requests are distributed across multiple application servers. The technology of the present disclosure allows a controller to probe each leaf switch, while each leaf switch only probes one or more of its local servers. The controller monitors, tracks, and reports the health of the servers.
[0017] Various embodiments of the subject technology solve these and other technical problems by providing a controller that performs load balancing by subscribing to health monitoring metrics provided by leaf switches. The controller works through an application running on a server. The controller can communicate with the switching fabric through a management network within a larger network framework.
[0018] Detailed Description
[0019] Various embodiments of the present disclosure are discussed in detail below. Although specific implementations are discussed, it should be understood that this is for illustrative purposes only. Those skilled in the relevant art will recognize that other components and configurations may be employed without departing from the spirit and scope of the present disclosure.
[0020] The requirement is to be able to monitor the health of servers or applications connected to another leaf switch in the fabric without probing each server. When each leaf switch in the fabric probes all servers in the fabric, whether they are connected to the fabric or not, a large amount of control traffic will be injected into the fabric, resulting in a large amount of bandwidth consumption.
[0021] Various embodiments are directed to a load balancing device configured to detect, monitor, track, and report the health of a server or an application running on the server. The load balancing device receives health monitoring metrics, determines that a server has failed, and modifies a load balancing configuration on a network architecture. The health monitoring metrics are obtained by a controller probing each leaf switch in the architecture. Each leaf switch in the architecture only probes the servers connected to it.
[0022] By including load balancing capabilities in the controller, this reduces the amount of traffic in the access layer of the architecture, thereby increasing available capacity and reducing packet loss within the data center.
[0023] Figure 1 1 is a simplified schematic diagram illustrating an exemplary data center network 100 in which the systems and / or methods described herein may be implemented. Figure 1 As shown, an exemplary data center network 100 may include leaf switches 110 connected to one or more host servers 120, each of which may run a collection of virtual machines 130. The host servers 120 communicate over a specific subnet, which results in the subnet being installed in the leaf switch 110 to which it is attached.
[0024] Virtual Extensible Local Area Network (VXLAN) or other encapsulation may be used to implement overlay network 140. In some embodiments, data packets are delivered from one end device to another end device over data center network 100. Figure 1The network in has leaf switches 110 and spine switches 140 and service nodes (e.g., host servers 120, VMs, containers, microservices, application units, etc.). Each spine switch 160 is connected to all leaf switches 110. Host servers 120 are connected to leaf switches 110.
[0025] Figure 1 The data center network 100 shown can include a mapping so that the spine switch 160 knows which leaf switch 110 the host server 120 is attached to. It should be understood that the leaf switch 110 and the spine switch 160 can have switching or routing capabilities. In one example, the spine switch 160 is considered a route reflector in the network architecture of the data center network 100.
[0026] The distributed Internet Protocol (IP) anycast gateway can be at the leaf layer or the access layer. The architecture is based on a leaf-spine topology. There are border leaf switches 150 that connect the architecture to the external network. Spine switches 160 with border functions can also be used.
[0027] Tables are maintained in the leaf switches 110 in the forwarding logic. In some embodiments, these are similar to forwarding tables maintained in traditional networks. Encapsulation allows network administrators to move host servers 120 from one leaf switch 110 to another leaf switch 110. In various embodiments, only the table of the leaf switch 110 knows the identity details of the host server 120.
[0028] The border leaf switches 150 can connect different data centers to the IP backbone, allowing Layer 2 traffic to be sent and received between one data center and another. To this end, within a data center, the leaf routers each act as a VxLAN tunnel endpoint (VTEP). The VTEPs create and terminate VXLAN segments, where each VTEP maps a host server 120 to a VXLAN segment and performs VXLAN encapsulation and decapsulation.
[0029] exist Figure 1 In order to support overlay network 140, leaf switch 110 is configured as a VTEP that creates and terminates a VXLAN segment that defines overlay network 140. For example, leaf switch 110 performs VXLAN encapsulation and decapsulation and maps host server 120 to a VXLAN segment. Typically, a subnet is a layer 3 construct, while a VXLAN segment is a layer 2 construct.
[0030] The host servers 120 may communicate on different subnets and may be assigned network addresses on the different subnets. The larger network may be any type of architecture (such as a switching architecture) that uses the Border Gateway Protocol (BGP) as a control plane to advertise IP reachability within the larger network. The architecture may achieve optimal Layer 2 and Layer 3 forwarding by distributing IP reachability information on the control plane, which implements a distributed IP anycast gateway at the leaf or access layer.
[0031] As used herein, the term "subnet" is a logical grouping of connected network elements that share a range of consecutive IP addresses. A "host server" 120 is any terminal device in a data center network. In the data center network, a host can be a server, a client, or both. On the other hand, a client is a computer with software that enables it to send requests for specific services to a server 120.
[0032] Figure 2 2 is a simplified schematic diagram showing a controller 200 in a data center network according to various aspects of the subject technology. The controller 200 can be implemented with an application 210 on a server, a separate machine, a service hosted outside the data center network, or using some other configuration. The application 210 manages the independent components of the network within a larger network management framework and performs several key functions. The application 210 on the controller 200 identifies, configures, monitors, updates, and troubleshoots routers, switches, and other network components by collecting health metrics. The health metrics can include the number of service connections, the number of packets sent to or by the service, the response time for the service to respond to requests, and the service's use of network bandwidth.
[0033] In some embodiments, the health metric can be an indication of whether a service node has failed. The controller 200 can obtain the health metric of the service nodes in the architecture by using the service to probe each leaf switch in the data center. In the service, a publisher application creates a message and sends it to a topic. The publisher application is each leaf switch 110 in multiple leaf switches, and the subscriber is the controller 200 on which the application 210 runs. The subscriber application creates a subscription to the topic to receive messages from the topic. The communication can be from one controller to multiple leaf switches. The publisher application creates a topic in the service and sends a message to the topic. The message contains a payload and optional attributes that describe the content of the payload. The service forwards messages from the topic to which the controller subscribes to messages. The service receives the messages and either pushes them to the endpoint selected by the subscriber or extracts them from the service by the subscriber. In some embodiments, the controller 200 can send a request to the leaf switch 110 and receive the requested data without subscribing to the metrics published by the leaf switch 110.
[0034] The mapping of buckets to service nodes may be maintained by one or more switches in the architecture. For example, the spine switches 160 and leaf switches 110 in the architecture may include software that defines a mapping of service or hash buckets to service nodes. When a service node for a data flow fails, the software on the switch can direct the data flow to an available active node. The mapping of buckets to service nodes may also be coordinated between the service nodes and the architecture, including one or more switches in the architecture. In some embodiments, the leaf switch 110 may be configured to direct or redirect traffic based on the mapping of buckets to service nodes, which creates a packet path for traffic forwarding for each bucket. This may include a one-to-one mapping of traffic buckets to service nodes, or a many-to-one mapping of traffic buckets to service nodes. The mapping may be contained in a ternary content addressable memory (TCAM) table 500 associated with a static random access memory (SRAM) table 510, which will be stored in a ternary content addressable memory (TCAM) table 500. Figure 5 Further discussion in.
[0035] When a leaf switch 110 receives an incoming request, the controller 200 operates to execute an appropriate algorithm (e.g., a round-robin algorithm, a least connection algorithm, a least traffic algorithm, a source IP algorithm, etc.) to assign the incoming request to a server 120. The controller 200 delivers the assignment by broadcasting information to multiple leaf switches 110. After assigning a server 120, the controller 200 modifies the load balancing configuration by modifying the hardware programming on all leaf switches 110 to reflect the available active server that replaced the failed server.
[0036] When the user has not configured the servers 120, the controller 200 can use different load balancing algorithms to modify the load balancing configuration in the network architecture. One algorithm assigns the service request to the next server in the sequence. Alternatively, an algorithm measures the load on each server to determine which server has the most available resources to service the request and sends new requests to the server with the least current client connections. In another algorithm, the client's IP address is used to determine which server receives the request.
[0037] Figure 3 1 is a simplified schematic diagram of a controller 200 in a data center network 100 configured with a standby node according to various aspects of the subject technology. In this example, the border leaf switch 150L4 is configured to the host server 120S5. When any other host server 120 connected to any other leaf switch 110 fails, the controller 200 configures the host server 120S5 to receive incoming traffic. The controller 200 sends a message with the address of the failed server to all leaf switches 110 in the architecture and indicates the previously configured available active server.
[0038] Figure 4 2 is a simplified schematic diagram of a controller 200 in a data center network 100 without a backup node configured according to various aspects of the subject technology. In this example, the border leaf switch 150L4 is not configured to any host server 120. When any other host server 120 connected to any other leaf switch 110 fails, the controller 2000 configures the host server 120S0 to receive the incoming traffic. The host server can be selected by various load balancing algorithms described above.
[0039] Figure 5 A ternary content addressable memory (TCAM) table 500 and a static random access memory (SRAM) table 510 in each leaf switch 110 are shown according to various aspects of the subject technology. The controller 200 can be communicatively coupled to a plurality of leaf switches 110, which are communicatively coupled to the TCAM 500 and the SRAM 510. The TCAM 500 and the SRAM 510 can be configured to provide high-speed searches disclosed herein. The TCAM 500 and the SRAM 510 are configured to perform load balancing techniques under the direction of the controller 200.
[0040] Most top-of-rack (ToR) switches that perform forwarding and policing functions in data center networks utilize dedicated content-addressable memory to store rules. This memory is housed within the switch ASIC (application-specific integrated circuit), which enables hardware-based packet forwarding.
[0041] The CPU or processor receives a configuration request from the controller 200 to program the TCAM 500 and the SRAM 510. Based on the contents of the TCAM 500 and the SRAM 510, the ASIC directs a data packet input at one interface to the other interface.
[0042] The TCAM 500 consists of many entries, and when it is given an input string, it compares the string to all the entries and reports the first entry that matches the input. The TCAM is a fully associative memory in which the input can be searched not only for binary "1" or "0", but also for ternary "X" (never mind). For example, searching for the tag "110X" matches "1101" and "1100". Given a request, a TCAM 500 lookup is performed, and then a secondary SRAM 510 lookup is used to retrieve all matching results.
[0043] By loading the forwarding table prefixes into the TCAM 500 in order of decreasing prefix length, the TCAM 500 index of the longest matching prefix for any destination address can be determined in one TCAM 500 cycle. With this index, a word of the SRAM 510 can be accessed where the next hop associated with the matching prefix is stored and the forwarding task is completed. The TCAM 500 solution for packet forwarding requires one TCAM 500 search and one SRAM 510 access to forward a packet.
[0044] The provided TCAM 500 is capable of running at speeds approaching that of programmable hardware itself. The TCAM 500 compares the search input with a table of stored data. The TCAM 500 looks up IP addresses that appear in the data stream. The controller 200 assigns each data stream to a service node, such as a host server. The TCAM 500 may include a table that maps traffic buckets to servers. The controller 200 rewrites the L2 header for incoming packets to direct them to the leaf switch 110. The controller 200 acts as a switch by switching or routing packets to the leaf switch provided by its new L2 header.
[0045] In this example, TCAM 500 stores data describing the attributes of packets to be matched, while SRAM 510 stores data describing the actions to be taken when a corresponding match occurs in SRAM 510. If the IP address of the packet is within the range indicated by the TCAM 500 entry, then the action to be taken is to direct the packet to the server listed in the SRAM 510 entry corresponding to the TCAM 500 entry. For example, if the IP address of the packet is within the range indicated by XX00X, then the traffic is directed to S0. The load balancing function is implemented by configuring the entries stored in TCAM 500 and SRAM 510 to direct packets to specific available active servers as needed.
[0046] Figure 6 6 is a flow chart of a method 600 performed by a controller 200 according to various aspects of the subject technology. It should be understood that for any method discussed herein, unless otherwise stated, additional, fewer, or alternative steps may be performed in a similar or alternative order or in parallel within the scope of various embodiments. The method 600 may be performed by a controller 200, such as a data center network manager (DCNM) or similar system.
[0047] In step 602, the controller 200 may receive health status metrics from multiple leaf switches 110 in the network architecture. The health status monitoring metrics received from each leaf switch 110 are associated with the local server 120 managed by the particular leaf switch 110. Any particular leaf switch 110 in the network architecture can detect the service node (server 120, VM, container, application, service, process, or any other processing / computing unit) to which the particular leaf switch 110 is connected. In some embodiments, the leaf switch 110 may not need to prove that the server 120 is not installed to the leaf switch. The detection mechanism can be in the form of an Internet Control Message Protocol (ICMP) request (e.g., ping and traceroute) and an ICMP response.
[0048] At step 604, the controller 200 will determine that one or more servers 120 in the network fabric have failed. This may be communicated to the controller 200 by the particular leaf switch 110 that is managing the failed server. The controller 200 subscribes to messages published by multiple leaf switches 110 in the network fabric. Each leaf switch 110 constantly or continuously publishes health monitoring metrics for the one or more servers 120 that they are managing.
[0049] At step 606, the controller 200 may modify the load balancing configuration of the network fabric after determining that a server has failed. For example, the controller 200 may propagate information received by a particular leaf switch 110 about a failed server 120 to all other leaf switches 110 in the network fabric. When a server 120 fails, the hardware programming on all leaf switches 110 is modified to reflect the available active server that replaced the failed server.
[0050] At operation 608, the controller 200 sends the modified load balancing configuration to each of the plurality of leaf switches 110 in the network fabric. The leaf switch 110 then updates the SRAM 510 entry corresponding to the TCAM 500 entry of the failed server. The TCAM 500 and SRAM 510 tables are located in each leaf switch 110 in the network fabric. All tables belonging to the leaf switches 110 in the network fabric will be modified. The TCAM 500 table will determine if there is a match in the address and will send the packet to a specific available active server instead of the failed server by modifying the SRAM 510 entry corresponding to the address.
[0051] Fig. 7A and Figure 7B Systems according to various embodiments are shown. When implementing the various embodiments, more suitable systems will be apparent to those of ordinary skill in the art. Those of ordinary skill in the art will also readily recognize that other systems are possible.
[0052] Fig. 7AAn exemplary architecture of a conventional bus computing system 700 is shown, wherein the components of the system communicate electrically with each other using a bus 705. The computing system 700 may include a processing unit (CPU or processor) 710 and a system bus 705, which may couple various system components including a system memory 715 (such as a read-only memory (ROM) and a random access memory (RAM) 725 in a storage device 720) to the processor 710. The computing system 700 may include a cache 712 of high-speed memory, which is directly connected to the processor 710, adjacent to the processor, or integrated as a part of the processor. The computing system 700 may copy data from the memory 715 and / or the storage device 730 to the cache 712 for quick access by the processor 710. In this way, the cache 712 may achieve performance improvements, which avoids processor delays when waiting for data. These and other modules may control or be configured to control the processor 710 to perform various actions. Other system memories 715 may also be available. The memory 715 may include a variety of different types of memory with different performance characteristics. The processor 710 may include any general purpose processor and hardware modules or software modules configured to control the processor 710 (such as module 1 732, module 2 734, and module 3 736 stored in the storage device 730) and a dedicated processor, where the software instructions are incorporated into the actual processor design. The processor 710 may essentially be a completely independent computing system, including multiple cores or processors, buses, memory controllers, caches, etc. Multi-core processors may be symmetric or asymmetric.
[0053] In order to enable the user to interact with the computing system 700, the input device 745 can represent any number of input mechanisms, such as a microphone for voice, a touch-protected screen for gesture or graphic input, a keyboard, a mouse, motion input, voice, etc. The output device 735 can also be one or more of a plurality of output mechanisms known to those skilled in the art. In some cases, a multi-mode system can enable a user to provide multiple types of input to communicate with the computing system 700. The communication interface 740 can control and manage user input and system output. There may be no limitation on operating on any particular hardware configuration, so the basic features here can be easily replaced by the improved hardware or firmware configuration developed.
[0054] The storage device 730 may be a non-volatile memory and may be a hard disk or other type of computer-readable medium capable of storing computer-accessible data, such as a magnetic tape cassette, a flash memory card, a solid-state storage device, a digital versatile disk, a cassette tape, RAM 725, a read-only memory (ROM) 720, and combinations thereof.
[0055] The storage device 730 may include software modules 732, 734, 736 for controlling the processor 710. Other hardware or software modules are contemplated. The storage device 730 may be connected to the system bus 705. In one aspect, a hardware module that performs a particular function may include a software component stored in a computer-readable medium connected to the necessary hardware components (such as the processor 710, bus 705, output device 735, etc.) to perform the function.
[0056] Figure 7B An exemplary architecture of a conventional chipset computing system 750 that can be used according to one embodiment is shown. The computing system 750 may include a processor 755, representing any number of physically and / or logically distinct resources capable of executing software, firmware, and hardware configured to perform the identified calculations. The processor 755 may communicate with a chipset 760, which may control the input and output of the processor 755. In this example, the chipset 760 may output information to an output device 765 (such as a display), and may read and write information to a storage device 770, which may include, for example, magnetic media and solid-state media. The chipset 760 may also read data from and write data to a RAM 775. A bridge 780 for engaging with various user interface components 785 may be provided for engaging with the chipset 760. The user interface components 785 may include a keyboard, a microphone, touch detection and processing circuits, an indicating device (such as a mouse), etc. The input to the computing system 750 may come from any of a variety of sources (machine-generated sources and / or human-generated sources).
[0057] Chipset 760 may also interface with one or more communication interfaces 790, which may have different physical interfaces. Communication interface 790 may include interfaces for wired and wireless local area networks (LANs), broadband wireless networks, and personal area networks. Some applications of the methods disclosed herein for generating, displaying, and using a graphical user interface (GUI) may include receiving an ordered data set through a physical interface, or may be generated by the machine itself by analyzing data stored in storage device 770 or RAM 775 by processor 755. In addition, computing system 700 may receive input from a user via user interface component 785, and perform appropriate functions (such as browsing functions) by using processor 755 to interpret these inputs.
[0058] It should be appreciated that computing systems 700 and 750 may have more than one processor 710 and 755, respectively, or may be part of a group or cluster of computing devices networked together to provide greater processing power.
[0059] The methods according to the above examples can be implemented using computer executable instructions stored in or otherwise available from a computer readable medium. These instructions may include, for example, instructions and data that cause or otherwise configure a general-purpose computer, a special-purpose computer, or a special-purpose processing device to perform a specific function or a set of functions. Portions of the computer resources used may be accessed via a network. Computer executable instructions may be, for example, binary instructions, intermediate format instructions (such as assembly language), firmware, or source code. Examples of computer readable media that can be used to store instructions, information used, and / or information created during the method process according to the examples include disks or optical disks, flash memory, USB devices equipped with non-volatile memory, network storage devices, and the like. Devices implementing the methods disclosed herein may include hardware, firmware, and / or software, and may be implemented in any of a variety of form factors. Typical examples of such form factors include laptops, smart phones, small personal computers, personal digital assistants, rack-mounted devices, stand-alone devices, and the like. The functions described herein may also be embodied in peripheral devices or expansion cards. As another example, such functions may also be implemented in different chips on a circuit board or in different processes executed in a single device.
[0060] Instructions, media for transmitting these instructions, computing resources for executing these instructions, and other structures for supporting these computing resources are the means for providing the functions described in these disclosures.
[0061] Although various examples and other information are used to illustrate various aspects within the scope of the appended claims, limitations on the claims should not be implied based on the specific features or configurations in these examples, because ordinary technicians will be able to use these examples to derive a variety of implementations. In addition, although some topics may have been described in language for examples of structural features and / or method steps, it should be understood that the subject matter defined in the appended claims is not necessarily limited to these described features or actions. For example, such functionality may be distributed in different ways or performed in components other than the components identified herein. Instead, the described features and steps are disclosed as examples of components of systems and methods within the scope of the appended claims.
Claims
1. A method for a data center network, comprising: Requesting a subscription to a topic by a controller running a subscriber application, the subscriber application being configured to receive messages on the topic from the publisher application; receiving, at the controller, a message about the topic, the message including at least a health monitoring metric from a plurality of load balancer leaf switches in a network architecture, each of the plurality of load balancer leaf switches running the publisher application configured to continuously publish messages about the topic, each of the plurality of load balancer leaf switches managing one or more local servers of a plurality of local servers, each leaf switch probing only the one or more local servers it manages, and in response to the probing, each of the plurality of local servers providing the health monitoring metric only to its corresponding managed leaf switch; determining, at the controller, based on the health monitoring metric, that a local server among the plurality of local servers in the network architecture has failed; modifying the load balancing configuration of the network architecture by the controller; as well as The load balancing configuration is sent to the plurality of load balancer leaf switches by the controller, wherein The load balancing configuration includes instructions for each leaf switch of the plurality of load balancer leaf switches to replace a reference to a local server of the plurality of local servers in the network fabric that has failed in a static random access memory (SRAM) associated with a ternary content addressable memory (TCAM), The TCAM includes forwarding table prefixes, and the SRAM includes a corresponding action taken for each of the prefixes.
2. The method according to claim 1, wherein: A specific load balancer leaf switch only detects one or more local servers to which the specific load balancer leaf switch is connected.
3. The method according to claim 1, further comprising: In each load balancer leaf switch, an entry in a static random access memory (SRAM) table corresponding to a ternary content addressable memory (TCAM) table of a server in the network architecture that has failed is updated.
4. The method according to claim 3, wherein: Updating the static random access memory (SRAM) table in each load balancer leaf switch results in load balancing of client traffic across available active servers.
5. The method according to claim 4, wherein: The available active server can be placed in a standby state through user configuration.
6. The method according to any one of claims 1 to 5, wherein: The health monitoring metrics include health monitoring metrics of services hosted on the local server.
7. The method according to any one of claims 1 to 5, wherein: The controller is an application installed on a server, which communicates with the leaf switch through a management network.
8. The method according to claim 7, wherein: The management network tracks the performance of the entire external network.
9. A controller for a data center network, the controller running a subscriber application, the subscriber application configured to receive messages about a topic from a publisher application, the controller comprising: one or more processors; as well as A computer-readable storage medium having instructions stored therein, which, when executed by the one or more processors, cause the one or more processors to perform operations, the operations comprising: Request a subscription to the topic; receiving a message on the topic, the message including at least a health status monitoring metric from a plurality of load balancer leaf switches in a network architecture, each of the plurality of load balancer leaf switches running the publisher application configured to continuously publish messages on the topic, each of the plurality of load balancer leaf switches managing one or more local servers of a plurality of local servers, each leaf switch probing only the one or more local servers it manages, and in response to the probing, each of the plurality of local servers providing the health status monitoring metric only to its corresponding managed leaf switch; determining, based on the health status monitoring metric, that a local server among the plurality of local servers in the network architecture has failed; Modifying the load balancing configuration of the network architecture; and Sending the load balancing configuration to each of the plurality of load balancer leaf switches in the network architecture, wherein The load balancing configuration includes instructions for each leaf switch of the plurality of load balancer leaf switches to replace a reference to a local server of the plurality of local servers in the network fabric that has failed in a static random access memory (SRAM) associated with a ternary content addressable memory (TCAM), The TCAM includes forwarding table prefixes, and the SRAM includes a corresponding action taken for each of the prefixes.
10. The controller according to claim 9, wherein: The controller is an application installed on a server, which communicates with the leaf switch through a management network.
11. The controller according to claim 10, wherein: The management network tracks the performance of the entire external network.
12. The controller according to any one of claims 9 to 11, wherein: A load balancer leaf switch connected to a local server in the network architecture that has failed sends a notification to the controller.
13. The controller according to claim 12, wherein: The controller sends a message to each of the multiple load balancer leaf switches to modify the SRAM entry of a local server that has failed in the network architecture in a static random access memory (SRAM) table corresponding to a ternary content addressable memory (TCAM) table.
14. The controller of claim 9, further comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising: An instruction is sent to each load balancer leaf switch to update an entry in a static random access memory (SRAM) table corresponding to a ternary content addressable memory (TCAM) table of a server that has failed in the network architecture.
15. The controller according to claim 9, wherein: Updating the static random access memory (SRAM) table in each load balancer leaf switch results in load balancing of client traffic across available active servers.
16. A computer readable medium carrying one or more sequences of instructions which, when executed by one or more processors of a controller running a subscriber application, wherein the subscriber application is configured to receive a message about a topic from a publisher application, causes the one or more processors to perform the following steps: Request a subscription to the topic; receiving a message on the topic, the message including at least a health status monitoring metric from a plurality of load balancer leaf switches in a network architecture, each of the plurality of load balancer leaf switches running the publisher application configured to continuously publish messages on the topic, each of the plurality of load balancer leaf switches managing one or more service nodes of a plurality of service nodes, each leaf switch probing only the one or more service nodes it manages, and in response to the probing, each of the plurality of service nodes providing the health status monitoring metric only to its corresponding managed leaf switch; Determining, based on the health status monitoring metric, that one or more service nodes in the network architecture have failed; modifying a load balancing configuration of the one or more service nodes in the network architecture based on the health monitoring metric; sending the load balancing configuration to each leaf switch of the plurality of load balancer leaf switches in the network architecture; as well as updating a static random access memory (SRAM) table of each leaf switch, the SRAM table corresponding to a ternary content addressable memory (TCAM) table of the one or more service nodes in the network architecture that have failed, to replace references to the one or more service nodes in the network architecture, The TCAM includes forwarding table prefixes, and the SRAM includes a corresponding action taken for each of the prefixes.
17. The computer-readable medium of claim 16, wherein: A specific load balancer leaf switch only detects one or more local service nodes to which the specific load balancer leaf switch is connected.
18. The computer readable medium according to claim 16 or 17, wherein: Updating the ternary content addressable memory (TCAM) table and the static random access memory (SRAM) table in each load balancer leaf switch results in load balancing of client traffic across available active service nodes.
19. The computer readable medium of claim 16 or 17, wherein: The controller is an application installed on a server, which communicates with the leaf switch through a management network.
20. The computer-readable medium of claim 19, wherein: The management network tracks the performance of the entire external network.
Citation Information
Patent Citations
Distributed load balancer health management using data center network manager
US20200358702A1
Load balancing system, controller and method
CN105282191A
Switch-based load balancer
CN106105162A
Adaptive load balancing
CN107409096A
Load balancing system and method in IPV4 over IPV6 tunnel scene
CN108200199A
