Data center network load balancing method and device
By obtaining computing node information in the data center network and determining its forwarding path, the problem of static ECMP load balancing failure in AI cluster training scenarios is solved, and the data flow is uniformly distributed and efficiently transmitted.
Patent Information
- Application Number
- CN202311293576.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-08
- Publication Date
- 2025-04-08
AI Technical Summary
In AI cluster training scenarios, static ECMP load balancing technology fails, resulting in link conflicts and congestion, which in turn affects the transmission efficiency of the data center network.
By acquiring the information of multiple computing nodes, they determine their corresponding forwarding paths, so that the forwarding paths corresponding to multiple computing nodes are equivalent forwarding paths and are different, thereby achieving uniform distribution of data flows in the data center network.
This method ensures the uniform distribution of data streams in the data center network, avoids messy messages, improves transmission efficiency, and makes them close to the optimal.
Smart Images

Figure CN119788608A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of network technology, and in particular to a data center network load balancing method and device. Background Art
[0002] At present, data center networks usually use Ethernet transmission links to carry Remote Direct Memory Access (RDMA) for communication, that is, RDMA (RDMA over Converged Ethernet, RoCE) technology is allowed to be used through Ethernet networks. This technology requires Ethernet to support lossless transmission. Traditional load balancing technology is based on the five-tuple of the flow to perform hash routing, and randomly selects one of the multiple equal-cost paths of the link for forwarding, commonly known as static equal-cost multipath routing (ECMP). For general computing scenarios with dense and randomly distributed large and small flows, the load balancing effect of static ECMP is still relatively ideal.
[0003] Artificial Intelligence (AI) cluster training requires a large amount of distributed parallel computing. Graphics Processing Unit (GPU) servers need to communicate across hosts through a switching network. Model training of AI servers relies on RDMA for network communication. Unlike general computing scenarios, in AI scenarios, most RDMA communication traffic has the characteristics of large single-stream bandwidth, and AI training tasks are highly concurrent and coordinated. Static ECMP load balancing will fail, resulting in link conflicts and congestion. When congestion is too long, the switch cache will be overloaded, and the next new data packet received will be discarded. Summary of the invention
[0004] The present application provides a data center network load balancing method and device to solve the problem of static ECMP load balancing failure in AI cluster training scenarios.
[0005] In a first aspect, the present application provides a data center network load balancing method, which is applied to a switch in a data center network, comprising the following steps:
[0006] Get information about multiple computing nodes;
[0007] Determine forwarding paths corresponding to the plurality of computing nodes respectively according to the information of the plurality of computing nodes, the forwarding paths corresponding to the plurality of computing nodes respectively are equivalent forwarding paths, and the forwarding paths corresponding to the plurality of computing nodes respectively are different;
[0008] When a data flow is received, the data flow is forwarded according to a forwarding path corresponding to a target computing node of the data flow.
[0009] The data center network load balancing method provided by the present application, the leaf switches in the data center network number the computing nodes according to the connection order of the computing nodes, and do not need to be manually configured one by one. The adjacent switches in the data center network synchronize the information of multiple computing nodes with each other to realize the autonomous transmission of computing node information, which can adapt to the transformation of the network architecture, and determine the forwarding paths corresponding to the multiple computing nodes according to the information of the multiple computing nodes. The forwarding paths corresponding to the multiple computing nodes are equivalent forwarding paths, and the forwarding paths corresponding to the multiple computing nodes are different, which ensures the uniform distribution of data flows in the data center network. When a data flow is received, the data flow is forwarded according to the forwarding path corresponding to the target computing node of the data flow, and message disorder will not occur, so that the transmission efficiency is close to the optimal.
[0010] In one possible design, the information of each computing node includes a number of the computing node;
[0011] Determining forwarding paths corresponding to the plurality of computing nodes respectively according to the information of the plurality of computing nodes includes:
[0012] Calculate the remainder of the quotient of the number of each computing node and the number of multiple equal-cost forwarding paths;
[0013] A forwarding path corresponding to the computing node is determined from the multiple equal-cost paths according to the remainder.
[0014] By adopting the above method, since the numbers of computing nodes are different, the remainders of the quotients of the numbers of computing nodes and the number of equivalent forwarding paths are different, and thus the determined forwarding paths are different, thereby achieving uniform binding of the numbers of computing nodes and multiple equivalent forwarding paths.
[0015] In a possible design, the number of each computing node is expressed through an extended attribute of a Border Gateway Protocol (BGP) route.
[0016] In one possible design, it also includes:
[0017] The connected computing nodes are numbered in sequence according to the number of connected computing nodes.
[0018] In one possible design, the information of each computing node also includes an IP address of the computing node;
[0019] After determining the forwarding paths respectively corresponding to the plurality of computing nodes according to the information of the plurality of computing nodes, the method further includes:
[0020] A forwarding table entry corresponding to each computing node is generated, wherein the forwarding table entry corresponding to each computing node indicates a corresponding relationship between a forwarding path corresponding to the computing node and an IP address of the computing node.
[0021] In a possible design, before forwarding the data flow according to the forwarding path corresponding to the target computing node of the data flow, the method further includes:
[0022] The forwarding table entry is queried according to the IP address of the target computing node to determine a forwarding path corresponding to the target computing node.
[0023] In a possible design, the computing node is a single computing unit with a server as an individual, or multiple computing units with multiple display chips GPUs on the server as individuals.
[0024] In one possible design, the data center network is a networking architecture of spine switches and leaf switches, or a networking architecture of super spine switches, spine switches, and leaf switches.
[0025] In a second aspect, the present application further provides a data center network load balancing system, which is applied to a switch in a data center network, and the system includes:
[0026] The leaf switches in the data center network number the connected computing nodes;
[0027] Each adjacent switch in the data center network synchronizes multiple computing node information with each other;
[0028] The first switch determines forwarding paths corresponding to the plurality of computing nodes respectively according to information of the plurality of computing nodes, the forwarding paths corresponding to the plurality of computing nodes respectively are equivalent forwarding paths, and the forwarding paths corresponding to the plurality of computing nodes respectively are different; the first switch is one of the adjacent switches in the data center network;
[0029] When the first switch receives the data flow, it forwards the data flow according to the forwarding path corresponding to the target computing node of the data flow.
[0030] In a possible design, the first switch determines, according to the information of the multiple computing nodes, forwarding paths corresponding to the multiple computing nodes respectively, including:
[0031] Calculating the remainder of the quotient of the number of each computing node and the number of the multiple equal-cost forwarding paths;
[0032] A forwarding path corresponding to the computing node is determined from the multiple equal-cost paths according to the remainder.
[0033] In a third aspect, the present application further provides a data center network load balancing device, the device comprising:
[0034] A receiving unit, used for obtaining information of multiple computing nodes;
[0035] A processing unit, configured to determine forwarding paths respectively corresponding to the plurality of computing nodes according to information of the plurality of computing nodes, wherein the forwarding paths respectively corresponding to the plurality of computing nodes are equivalent forwarding paths, and the forwarding paths respectively corresponding to the plurality of computing nodes are different;
[0036] The sending unit is used to forward the data flow according to the forwarding path corresponding to the target computing node of the data flow when receiving the data flow.
[0037] In one possible design, the information of each computing node includes a number of the computing node;
[0038] The processing unit is used to calculate the remainder of the quotient of the number of each computing node and the number of multiple equivalent forwarding paths when determining the forwarding paths corresponding to the multiple computing nodes respectively according to the information of the multiple computing nodes; and determine the forwarding path corresponding to the computing node from the multiple equivalent paths according to the remainder.
[0039] In a fourth aspect, the present application also provides a communication device, comprising: one or more processors and one or more memories; wherein the one or more memories store one or more programs, and when the programs are executed by the one or more processors, the device executes the method described in any one of the first or second aspects above.
[0040] In a fifth aspect, the present application also provides a computer-readable storage medium, wherein the computer-readable storage medium stores computer-executable instructions, and when the computer-executable instructions are executed by a processor, they are used to implement the method described in any one of the first aspect or the second aspect above.
[0041] In a sixth aspect, the present application also provides a computer program product, including a computer program, which, when executed by a processor, implements the method described in any one of the first or second aspects above. BRIEF DESCRIPTION OF THE DRAWINGS
[0042] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0043] Figure 1A schematic diagram of a data center network architecture provided in an embodiment of the present application;
[0044] Figure 2 A schematic diagram of the connection rules between computing nodes and leaf switches in the data center network load balancing method provided in an embodiment of the present application;
[0045] Figure 3 A schematic diagram of the connection rules between leaf switches and spine switches in the data center network load balancing method provided in an embodiment of the present application;
[0046] Figure 4 A schematic diagram of connection rules of spine switches and super spine switches in a data center network load balancing method provided in an embodiment of the present application;
[0047] Figure 5 A flow chart of a data center network load balancing method provided in an embodiment of the present application;
[0048] Figure 6 A schematic diagram of path forwarding in a data center network load balancing method in a same-number GPU communication scenario provided in an embodiment of the present application;
[0049] Figure 7 A schematic diagram of path forwarding in a data center network load balancing method in a communication scenario with different-numbered GPUs provided in an embodiment of the present application;
[0050] Figure 8 A schematic diagram of the flow of a data center network load balancing system provided in an embodiment of the present application;
[0051] Fig. 9 A schematic diagram of the structure of a data center network load balancing device provided in an embodiment of the present application Figure 1 ;
[0052] Fig.10 A schematic diagram of the structure of a data center network load balancing device provided in an embodiment of the present application Figure 2 . DETAILED DESCRIPTION
[0053] In order to make the purpose, technical solutions and advantages of the present application clearer, the present application will be further described in detail below in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present application.
[0054] The application scenarios described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided by the embodiments of the present application. It is known to those skilled in the art that with the emergence of new application scenarios, the technical solutions provided by the embodiments of the present application are also applicable to similar technical problems. In the description of the present application, unless otherwise specified, the meaning of "multiple" is two or more.
[0055] Traditional load balancing technologies mainly include network-based balanced packet switching technology, network interface card (NIC)-based balanced packet switching technology and static ECMP.
[0056] The principle of network-based balanced packet switching technology is that the switch breaks up the messages in the elephant flow into smaller data packets or network slices. The so-called elephant flow means that the single flow has a large bandwidth, and evenly forwards the smaller data packets or network slices to multiple equal-cost path exits of the switch, and reassembles the smaller data packets or network slices at the switch exit. Network-based balanced packet switching technology can make the data flow evenly distributed to the greatest extent, thereby avoiding link congestion, but there may be a disorder of the message order, and the data flow delivered to the destination address cannot be guaranteed to arrive in order.
[0057] The principle of NIC-based balanced packet switching technology is similar to that of network-based balanced packet switching technology. The difference is that NIC-based balanced packet switching technology reassembles packets on the server network card instead of at the switch outlet. However, packet disorder may also occur.
[0058] Static ECMP performs hash routing based on the five-tuple of the flow, and randomly selects one of multiple equal-cost paths for forwarding. For general computing scenarios with dense and randomly distributed large and small flows, the load balancing effect of static ECMP is still relatively ideal. However, in AI cluster training scenarios, most of the traffic in RDMA communication is elephant flow. When the inlet traffic of the switch is greater than the bandwidth of the outlet traffic, it will cause network congestion in the switch. The switch cache can handle temporary congestion, but when the congestion is too long, the switch cache will cause network overload, and the next new data packet received by the switch will be discarded.
[0059] Explicit Congestion Notification (ECN) and Priority-based Flow Control (PFC) are both passive responses to the above switch network overload. ECN determines the congestion through the switch and displays the congestion mark. The host sending the data stream finds the congestion through the congestion-marked packets returned from the network. It reduces the data stream sent to the switch with the congestion mark or sends a single-stream data stream with a smaller bandwidth, which can reduce the occurrence of packet loss. The main principle of PFC is that if the switch detects congestion, it will actively send a message to the upstream device of the switch, requiring the upstream device to suspend the sending of the data stream and wait for a certain period of time before continuing to send the data stream, so as to achieve the requirement of no packet loss.
[0060] The data center network used in the embodiment of the present application adopts the CLOS architecture interconnection, which was proposed by Charles Clos of Bell Labs, so it is named CLOS architecture. The CLOS architecture relies on RDMA for network communication and can provide a non-blocking network. Commonly used are two-layer CLOS architecture and three-layer CLOS architecture. The two-layer CLOS architecture includes leaf switches and spine switches. The three-layer CLOS architecture is as follows: Figure 1 As shown, it includes leaf switches, spine switches and super spine switches, among which the leaf switch can be abbreviated as LE, the spine switch can be abbreviated as SP, and the super spine switch can be abbreviated as SSP.
[0061] Exemplarily, the data center network of the present application is a spine switch and leaf switch networking architecture, or a super spine switch, spine switch and leaf switch networking architecture. With the development of network technology, the data center network architecture of the present application may be expanded to a four-layer CLOS architecture, a five-layer CLOS architecture..., and this application will not elaborate on this.
[0062] Exemplarily, a leaf switch has 128 interfaces. Similarly, a spine switch and a super spine switch each have 128 interfaces, wherein the leaf switch has 64 interfaces for downlink and computing node connections, and the remaining 64 interfaces are used for uplink and spine switch connections; the spine switch has 64 interfaces for downlink and leaf switch connections, and the remaining 64 interfaces are used for uplink and super spine switch connections; all 128 interfaces of the super spine switch are used for downlink and spine switch connections.
[0063] The connection rules between computer nodes, leaf switches, spine switches, and super spine switches are as follows:
[0064] (1) The connection rule between computing nodes and leaf switches is: the jth GPU port in computing node group i can only be connected to the jth leaf switch in leaf switch group i, where i and j are both positive integers. Figure 2 As shown, there are two groups of computing nodes, each group has 64 computing nodes, numbered 1 to 64, and each computing node has 8 GPU ports, numbered 1 to 8. GPU port 1 of each computing node in computing node 1 to computing node 64 in computing node group 1 can only be connected to LE1 in leaf switch group 1, GPU port 2 of each computing node in computing node 1 to computing node 64 in computing node group 1 can only be connected to LE2 in leaf switch group 1, ..., GPU port 8 of each computing node in computing node 1 to computing node 64 in computing node group 1 can only be connected to LE8 in leaf switch group 1. Similarly, GPU port No. 1 of each computing node in computing node 1 to computing node 64 in computing node group 2 can only be connected to LE1 in leaf switch group 2, GPU port No. 2 of each computing node in computing node 1 to computing node 64 in computing node group 2 can only be connected to LE2 in leaf switch group 2, ..., GPU port No. 8 of each computing node in computing node 1 to computing node 64 in computing node group 2 can only be connected to LE8 in leaf switch group 2.
[0065] (2) The connection rule between leaf switches and spine switches is: the pth switch in a leaf switch group can only be connected to any spine switch in spine switch group p, where p is a positive integer. Figure 3 As shown, there are two groups of leaf switches, each with 8 leaf switches numbered 1 to 8, and 8 groups of spine switches, each with 64 spine switches numbered 1 to 64. LE1 in leaf switch group 1 can only be connected to any spine switch from SP1 to SP64 of spine switch group 1, LE2 in leaf switch group 1 can only be connected to any spine switch from SP1 to SP64 of spine switch group 2, ..., LE8 in leaf switch group 1 can only be connected to any spine switch from SP1 to SP64 of spine switch group 8. Similarly, LE1 in leaf switch group 2 can only be connected to any spine switch from SP1 to SP64 of spine switch group 1, LE2 in leaf switch group 2 can only be connected to any spine switch from SP1 to SP64 of spine switch group 2, ..., LE8 in leaf switch group 2 can only be connected to any spine switch from SP1 to SP64 of spine switch group 8.
[0066] (3) The connection rule between spine switches and super-spine switches is: the t-th spine switch in the spine switch group can only be connected to any super-spine switch in super-spine switch group t, where t is a positive integer. Figure 4 As shown, there are 2 groups of spine switches, each with 64 spine switches numbered 1 to 64; there are 64 groups of super spine switches, each with 4 super spine switches numbered 1 to 4. SP1 in spine switch group 1 can only be connected to any super spine switch among SSP1 to SSP4 in super spine switch group 1, SP2 in spine switch group 1 can only be connected to any super spine switch among SSP1 to SSP4 in super spine switch group 2, ..., SP64 in spine switch group 1 can only be connected to any super spine switch among SSP1 to SSP4 in super spine switch group 64. Similarly, SP1 in spine switch group 2 can only be connected to any super-ridge switch among SSP1~SSP4 of super-ridge switch group 1, SP2 in spine switch group 2 can only be connected to any super-ridge switch among SSP1~SSP4 of super-ridge switch group 2,..., SP64 in spine switch group 2 can only be connected to any super-ridge switch among SSP1~SSP4 of super-ridge switch group 64.
[0067] Based on the above-mentioned problem of static ECMP failure in AI cluster training scenarios and data center networks, this application proposes a data center network load balancing method to achieve uniform distribution of data flows on the entire path. It can be understood that the execution subject of the following method can be any switch in the data center network, for example, Figure 1 A leaf switch, a spine switch, or a super spine switch in a network.
[0068] like Figure 5 As shown, the method comprises the following steps:
[0069] Step 500: Obtain information of multiple computing nodes.
[0070] Exemplarily, the information of each computing node includes the number of the computing node. Each leaf switch in the data center network numbers the connected computing nodes in sequence according to the number of computing nodes connected to the leaf switch, wherein the computing node is a single computing unit with a server as an individual, or multiple computing units with multiple GPUs on a server as individuals. As described above, there are a maximum of 64 interfaces connecting a leaf switch and a computing node, so a leaf switch can connect to a maximum of 64 computing nodes.
[0071] For example, Figure 6The 64 computing nodes in the computing node group 1 connected to the LE1 pair in the leaf node group 1 shown are numbered as follows: computing node 1 in computing node group 1 is numbered 1, computing node 2 in computing node group 1 is numbered 2, ..., computing node 64 in computing node group 1 is numbered 64; or, computing node 1 in computing node group 1 is numbered 0, computing node 2 in computing node group 1 is numbered 1, ..., computing node 64 in computing node group 1 is numbered 63, which is not limited in the present application.
[0072] Similarly, LE1 in leaf node group 2 numbers the 64 computing nodes in computing node group 2 connected to it as follows: computing node 1 in computing node group 2 is numbered 1, computing node 2 in computing node group 2 is numbered 2, ..., computing node 64 in computing node group 2 is numbered 64.
[0073] Exemplarily, each adjacent switch in the data center network obtains information about multiple computing nodes through BGP routing announcements. The number of each computing node is expressed through an extended attribute of the BGP route. The extended attribute of the BGP route can be represented by a tag, and the tag value is the number corresponding to the above computing node.
[0074] For example, leaf switch 1 has information about multiple computing nodes, namely computing node ①, computing node ②, and computing node ③, and spine switch 1 connected to leaf switch 1 has information about multiple computing nodes, namely computing node ④, computing node ⑤, and computing node ⑥. Each adjacent switch obtains information about multiple computing nodes through BGP routing announcements, that is, leaf switch 1 will synchronize computing node information ①, ②, ③ to spine switch 1 through BGP routing announcements, and spine switch 1 will also synchronize computing node information ④, ⑤, ⑥ to leaf switch 1 through BGP routing announcements. Similarly, adjacent spine switches and super-spine switches will also synchronize information about multiple computing nodes with each other through BGP routing announcements. From the above-mentioned spine switch and super-spine switch connection rules, it can be seen that: a spine switch is connected to at most 4 super-spine switches, then the spine switch will synchronize information about multiple computing nodes to the connected 4 super-spine switches through BGP routing announcements, and each super-spine switch will also synchronize information about multiple computing nodes to the spine switch.
[0075] Exemplarily, the information of each computing node also includes the IP address of the computing node. Each node in the network has a unique IP address. The IP address consists of a 32-bit binary number, usually represented as 4 decimal numbers. Each decimal number ranges from 0 to 255, and each decimal number is separated by ".". For example, 128.1.1.4 and 100.2.1.3 are both the same IP address.
[0076] Exemplarily, an IP address consists of two parts: a network segment address and a host address. 128.1.1.4 / 24 means that the first 24 bits are the network segment address and the last 8 bits are the host address. 128.1.1.4 / 8 means that the first 8 bits are the network segment address and the last 24 bits are the host address. The number after the " / " is called the subnet mask. In this application, the subnet mask is 24.
[0077] Step 510: Determine forwarding paths corresponding to the multiple computing nodes respectively according to information of the multiple computing nodes, the forwarding paths corresponding to the multiple computing nodes respectively are equivalent forwarding paths, and the forwarding paths corresponding to the multiple computing nodes respectively are different.
[0078] Exemplarily, the equal-cost forwarding path is an equal-cost multi-path routing ECMP, where the equal-cost multi-path routing ECMP is a path from switch to switch with the same next-hop switch cost.
[0079] The following description is made by taking the current switch as the first switch and the next-hop switch of the switch as the second switch as an example.
[0080] like Figure 6 As shown in the figure, it is assumed that the first switch is LE1 in leaf switch group 1, the second switch belongs to the spine layer, and the number of interfaces M that a spine switch can connect to a leaf switch is 64; there are 64 groups of leaf switches, each group has an LE1, and the Leaf layer has a total of 64 LE1s, and N is 64; from the above connection rules of leaf switches and spine switches, it can be seen that LE1 in leaf switch group 1 can be connected to any spine switch from SP1 to SP64 of spine switch group 1, that is, the number of switches K that can be connected to the first switch in the layer to which the second switch belongs is 64, so the first The number of equivalent forwarding paths determined by switch LE1 is M / N*K=64 / 64*64=64, which are path 1: LE1 in leaf switch group 1->SP1 in spine switch group 1, path 2: LE1 in leaf switch group 1->SP2 in spine switch group 1, path 3: LE1 in leaf switch group 1->SP3 in spine switch group 1, ..., path 64: LE1 in leaf switch group 1->SP64 in spine switch group 1. The cost of LE1 selecting any one of the above 64 equivalent forwarding paths to reach the second switch is the same.
[0081] In a possible implementation, when forwarding paths corresponding to multiple computing nodes are determined according to information of multiple computing nodes, the remainder of the quotient of the number of each computing node and the number of equivalent forwarding paths is calculated, and the forwarding path corresponding to the computing node is determined from multiple equivalent forwarding paths according to the remainder. Because the numbers of the computing nodes included in the information of the computing nodes are different, the remainders of the quotient of the number of the computing nodes and the number of equivalent forwarding paths are different, and then the forwarding paths determined according to the remainders are different, thereby achieving uniform binding of the numbers of the computing nodes and the forwarding paths.
[0082] Example 1: The first switch directly determines the forwarding path corresponding to the computing node from the equivalent forwarding path according to the remainder. For example, assuming that the number of equivalent forwarding paths is 10, the forwarding path is determined according to the remainder of the quotient of the number of each computing node and the number of equivalent forwarding paths. If the remainder is 0, it indicates that the first path in the equivalent forwarding path is determined as the forwarding path; if the remainder is 1, it indicates that the second path in the equivalent forwarding path is determined as the forwarding path; ...; if the remainder is 9, it indicates that the tenth path in the equivalent forwarding path is determined as the forwarding path.
[0083] Example 2: The first switch determines a forwarding path corresponding to the computing node from a plurality of equal-cost paths according to the sum of the remainder and a preset value.
[0084] For example, assuming that the number of equal-cost forwarding paths is 10 and the preset value is 2, if the remainder is 0, the sum of the remainder and the preset value is 2, indicating that the first path among the multiple equal-cost forwarding paths is determined as the forwarding path; if the remainder is 1, the sum of the remainder and the preset value is 3, indicating that the second path among the multiple equal-cost forwarding paths is determined as the forwarding path; ...; if the remainder is 9, the sum of the remainder and the preset value is 11, indicating that the tenth path among the multiple equal-cost forwarding paths is determined as the forwarding path.
[0085] Example 3: The first switch determines a forwarding path corresponding to the computing node from a plurality of equal-cost paths according to a difference between a total number of the plurality of equal-cost forwarding paths and a remainder.
[0086] For example, assuming that the number of equal-cost forwarding paths is 10, if the remainder is 0, the difference between the total number of equal-cost forwarding paths and the remainder is 10, indicating that the tenth path among the multiple equal-cost forwarding paths is determined as the forwarding path; if the remainder is 1, the difference between the total number of equal-cost forwarding paths and the remainder is 9, indicating that the ninth path among the multiple equal-cost forwarding paths is determined as the forwarding path; ...; if the remainder is 9, the difference between the total number of equal-cost forwarding paths and the remainder is 1, indicating that the first path among the equal-cost forwarding paths is determined as the forwarding path.
[0087] It is understandable that the above examples 1 to 3 are merely examples and are not limited to this application.
[0088] Further exemplarily, after determining the forwarding paths corresponding to the multiple computing nodes respectively according to the information of the multiple computing nodes, a forwarding table entry corresponding to each computing node is generated, and the forwarding table entry corresponding to each computing node indicates the correspondence between the forwarding path corresponding to the computing node and the IP address of the computing node.
[0089] Example 1: Assume that the first switch is Figure 6 LE1 in leaf switch group 1. As can be seen from the above text, the number of equivalent forwarding paths determined by LE1 in leaf switch group 1 is 64, namely: Path 1: LE1 in leaf switch group 1->SP1 in spine switch group 1; Path 2: LE1 in leaf switch group 1->SP2 in spine switch group 1; Path 3: LE1 in leaf switch group 1->SP3 in spine switch group 1; ...; Path 64: LE1 in leaf switch group 1->SP64 in spine switch group 1. LE1 in leaf switch group 1 determines that its forwarding path is path 2, that is, LE1 in leaf switch group 1->SP2 in spine switch group 1, based on the tag value of 1 in computing node information ① and the remainder of the quotient of the number of equivalent forwarding paths 64 being 1. A forwarding table entry is generated, including: 100.1.1.0 / 24tag=1SP2 in spine switch group 1; similarly, according to the tag value of 2 in computing node information ②, its forwarding path is determined to be path 3, that is, LE1 in leaf switch group 1->SP3 in spine switch group 1, and a forwarding table entry is generated, including: 100.1.2.0 / 24tag=2SP3 in spine switch group 1; according to the tag value of 3 in computing node information ③, its forwarding path is determined to be path 4, that is, LE1 in leaf switch group 1->SP4 in spine switch group 1, and a forwarding table entry is generated, including: 100.1.3.0 / 24tag=3SP4 in spine switch group 1... and so on. LE1 in leaf switch group 1 can generate a forwarding table entry corresponding to each computing node.
[0090] Example 2: Assume that the first switch is Figure 6LE2 in leaf switch group 1. As can be seen from the above, the number of equivalent forwarding paths determined by LE2 in leaf switch group 1 is 64, namely: Path 1: LE2 in leaf switch group 1->SP1 in spine switch group 1; Path 2: LE2 in leaf switch group 1->SP2 in spine switch group 1; Path 3: LE2 in leaf switch group 1->SP3 in spine switch group 1; ...; Path 64: LE2 in leaf switch group 1->SP64 in spine switch group 1. LE2 in leaf switch group 1 generates a forwarding table entry based on computing node information ①, including: 100.1.1.0 / 24tag=1 SP2 in spine switch group 1; similarly, a forwarding table entry is generated based on computing node information ②, including: 100.1.2.0 / 24tag=2 SP3 in spine switch group 1; a forwarding table entry is generated based on computing node information ③, including: 100.1.3.0 / 24tag=3 SP4 in spine switch group 1... and so on. LE2 in leaf switch group 1 can generate forwarding table entries corresponding to each computing node.
[0091] Example 3: Assume that the first switch is Figure 7 SP4 in the spine switch group 1, as can be seen from the above: the number of equivalent forwarding paths determined by SP4 in spine switch group 1 is 64, namely: Path 1: SP4 in spine switch group 1->interface 1 of SSP1 in super spine switch group 4; Path 2: SP4 in spine switch group 1->interface 2 of SSP1 in super spine switch group 4; ...; Path 17: SP4 in spine switch group 1->interface 1 of SSP2 in super spine switch group 4; Path 18: SP4 in spine switch group 1->interface 2 of SSP2 in super spine switch group 4; ...; Path 64: SP4 in spine switch group 1->interface 16 of SSP4 in super spine switch group 4. SP4 in spine switch group 1 generates a forwarding table entry based on computing node information ①, including: 100.1.1.0 / 24tag=1 SSP1 in super spine switch group 4; generates a forwarding table entry based on computing node information ②, including: 100.1.2.0 / 24tag=2 SSP1 in super spine switch group 4; generates a forwarding table entry based on computing node information ③, including: 100.1.3.0 / 24tag=3 SSP1 in super spine switch group 4; ...; based on computing node information Generate a forwarding table entry, including: 100.1.17.0 / 24tag=1 SSP2 in super spine switch group 4... and so on, SP4 in spine switch group 1 can generate a forwarding table entry corresponding to each computing node.
[0092] Step 520: When a data flow is received, the data flow is forwarded according to a forwarding path corresponding to a target computing node of the data flow.
[0093] Exemplarily, before forwarding the data flow according to the forwarding path corresponding to the target computing node of the data flow, the forwarding path corresponding to the target computing node is determined by querying the forwarding table entry according to the IP address of the target computing node, and the data flow is forwarded according to the forwarding path corresponding to the IP address of the target computing node.
[0094] Example 1: Figure 6 Taking data flow 1 represented by the solid line as an example, GPU port 2 of computing node 1 in computing node group 1 transmits data to GPU port 2 of computing node 1 in computing node group 2. The starting computing node is computing node 1 in computing node group 1, and the target computing node is computing node 1 in computing node group 2, where the IP address of computing node 1 in computing node group 2 is 100.2.1.2.
[0095] According to the connection rules of the computing nodes and leaf switches, the GPU port No. 2 of the computing node 1 in the computing node group 1 can only forward data flow to the LE2 in the leaf switch group 1. When the LE2 in the leaf switch group 1 receives the data flow sent from the GPU port No. 2 of the computing node 1 in the computing node group 1, the LE2 in the leaf switch group 1 queries the forwarding table entry according to the IP address 100.2.1.2 of the target computing node, and the matching forwarding table entry is: 100.2.1.0 / 24tag=1SP2 in the spine switch group 1, so the forwarding path determined is: LE2 in the leaf switch group 1->SP2 in the spine switch group 1, that is, LE2 in the leaf switch group 1 forwards the data flow to SP2 in the spine switch group 1. According to the rules of the computing nodes and leaf switches, it can be seen that the GPU port No. 2 of the computing node 1 in the computing node group 2 can only be connected to the LE2 in the leaf switch group 2, so the SP2 in the spine switch group 1 forwards the data flow 1 to the LE2 in the leaf switch group 2, and the LE2 in the leaf switch group 2 then forwards the data flow to the destination computing node. therefore, Figure 6 The complete forwarding path of data flow 1 represented by the solid line is: GPU port No. 2 of compute node 1 in compute node group 1 -> LE2 in leaf switch group 1 -> SP2 in spine switch group 1 -> LE2 in leaf switch group 2 -> GPU port No. 2 of compute node 1 in compute node group 2.
[0096] Example 2: Figure 6Taking data flow 2 represented by the dotted line as an example, GPU port 1 of computing node 2 in computing node group 1 transmits data to GPU port 1 of computing node 3 in computing node group 2. The starting computing node is computing node 2 in computing node group 1, and the target computing node is computing node 3 in computing node group 2, where the IP address of computing node 3 in computing node group 2 is 100.2.3.2.
[0097] According to the connection rules of the computing nodes and leaf switches, the GPU port No. 1 of the computing node 2 in the computing node group 1 can only forward data flow to the LE1 in the leaf switch group 1. When the LE1 in the leaf switch group 1 receives the data flow sent from the GPU port No. 1 of the computing node 2 in the computing node group 1, the LE1 in the leaf switch group 1 queries the forwarding table entry according to the IP address 100.2.3.2 of the target computing node, and the matching forwarding table entry is: 100.2.3.2 / 24tag=3 SP4 in the spine switch group 1, so the forwarding path determined is: LE1 in the leaf switch group 1->SP4 in the spine switch group 1, that is, LE1 in the leaf switch group 1 forwards the data flow to SP4 in the spine switch group 1. According to the rules of the computing nodes and leaf switches, it can be seen that the GPU port No. 1 of the computing node 3 in the computing node group 2 can only be connected to the LE1 in the leaf switch group 2, so the SP4 in the spine switch group 1 forwards the data flow 2 to the LE1 in the leaf switch group 2, and the LE1 in the leaf switch group 2 then forwards the data flow 2 to the destination computing node. therefore, Figure 6 The complete forwarding path of data flow 2 represented by the dotted line is: GPU port No. 1 of compute node 2 in compute node group 1 -> LE1 in leaf switch group 1 -> SP4 in spine switch group 1 -> LE1 in leaf switch group 2 -> GPU port No. 1 of compute node 3 in compute node group 2.
[0098] Example 3: Figure 7 Taking the data flow represented as an example, GPU port 1 of computing node 2 in computing node group 1 transmits data to GPU port 2 of computing node 3 in computing node group 2. The starting computing node is computing node 2 in computing node group 1, and the target computing node is computing node 3 in computing node group 2, where the IP address of computing node 3 in computing node group 2 is 100.2.3.2.
[0099] After LE1 in leaf switch group 1 forwards the data flow to SP4 in spine switch group 1, SP4 in spine switch group 1 queries the forwarding table entry according to the IP address 100.2.3.2 of the target computing node, and the matching forwarding table entry is: 100.2.3.2 / 24tag=3 SSP1 in super spine switch group 4, so the forwarding path determined is: SP4 in spine switch group 1->SSP1 in super spine switch group 4, that is, SP4 in spine switch group 1 forwards the data flow to SSP1 in super spine switch group 4. According to the above connection rules of computing nodes and leaf switches, it can be known that: GPU port No. 2 of computing node 3 in computing node group 2 can only communicate with LE2 in leaf switch group 2, so the next forwarding node of SSP1 in super spine switch group 4 can only belong to spine switch group 2, and because SSP1 in super spine switch group 4 can only communicate with SP4 of the SP layer, it is determined that the next forwarding node is SP4 in spine switch group 2, so SSP1 in super spine switch group 4 forwards the data flow to SP4 in spine switch group 2. According to the connection rules between the above computing nodes and leaf switches, it can be seen that: GPU port No. 2 of computing node 3 in computing node group 2 can only be connected to LE2 in leaf switch group 2, so SP4 in spine switch group 2 forwards the data flow to LE2 in leaf switch group 2, and finally, LE2 in leaf switch group 2 forwards the data flow to the target computing node.
[0100] therefore, Figure 7 The complete forwarding path of the represented data flow is: GPU port No. 1 of compute node 2 in compute node group 1 -> LE1 in leaf switch group 1 -> SP4 in spine switch group 1 -> SSP1 in super spine switch group 4 -> SP4 in spine switch group 2 -> LE2 in leaf switch group 2 -> GPU port No. 2 of compute node 3 in compute node group 2.
[0101] It is understandable that after determining the corresponding forwarding path according to the target computing node of the data flow, if it is determined that the forwarding path has a link failure, another forwarding path can be randomly re-determined from multiple equal-cost forwarding paths, and the data flow is forwarded according to the re-determined forwarding path. Among them, the re-determined forwarding path is different from the forwarding path corresponding to the target computing node, and the re-determined forwarding path does not have a link failure. Exemplarily, a static ECMP method can be used to randomly re-determine another forwarding path from multiple equal-cost forwarding paths.
[0102] Exemplarily, whether a link failure occurs can be detected by a bidirectional forwarding detection protocol (Bidirectional Forwarding Detection, BFD), in which a forwarding node sends a BFD detection message to another forwarding node, and if the BFD message sent by the other party is not received within a preset time, it is determined that a link failure occurs between the two forwarding nodes.
[0103] Exemplarily, the link failure includes an uplink failure, a downlink failure, and a leaf switch downlink failure, etc. In addition, if it is determined that a leaf switch downlink failure occurs, the data flow may be discarded.
[0104] Example 1: Figure 6 Taking data flow 1 represented by the solid line as an example, GPU port 2 of computing node 1 in computing node group 1 transmits data to GPU port 2 of computing node 1 in computing node group 2. It can be seen from the above step 520 that there are 64 equivalent forwarding paths for LE1 in leaf switch group 1, and the determined forwarding path is path 2. If path 2 fails, which is called an uplink failure, LE1 in leaf switch group 1 uses static ECMP to randomly determine a forwarding path from the remaining 63 equivalent forwarding paths.
[0105] Example 2: Figure 7 Taking the data flow represented as an example, GPU port No. 1 of computing node 2 in computing node group 1 transmits data to GPU port No. 2 of computing node 3 in computing node group 2. It can be seen from the above step 520 that the forwarding path determined by SSP1 in super spine switch group 4 when forwarding the data flow to the SP layer is: SSP1 in super spine switch group 4->SP4 in spine switch group 2. If this path fails, it is called a downlink failure. Similar to the uplink failure, SSP1 in super spine switch group 4 uses static ECMP to randomly determine a forwarding path from the remaining multiple equivalent forwarding paths.
[0106] Example 3, still with Figure 6 Taking data flow 1 represented by the solid line as an example, GPU port 2 of computing node 1 in computing node group 1 transmits data to GPU port 2 of computing node 1 in computing node group 2. When LE2 in leaf switch group 2 forwards the data flow to GPU port 2 of computing node 1 in computing node group 2, there is only one equivalent forwarding path, so the equivalent forwarding path is determined to be the forwarding path. If the forwarding path fails, it is called a leaf switch downlink failure. Since there is only one forwarding path at this time and no other equivalent forwarding path is selected, LE2 in leaf switch group 2 can discard the data flow.
[0107] The data center network load balancing method provided by the present application adopts pre-planned global path planning for load balancing, which is very suitable for scenarios where traffic has significant regularities and characteristics, such as AI cluster training scenarios, where most of the traffic has the characteristics of large single-stream bandwidth and highly concurrent and coordinated training tasks. The method provided by the present application uses BGP's routing announcements and extended routing attributes to achieve autonomous routing transmission, which can adapt to network topology changes and does not require manual configuration one by one; in addition, in the method provided by the present application, all traffic is transmitted in order, and there is no need for network cards or switches to reorder messages, so there will be no problem of message disorder; finally, the method provided by the present application does not require real-time collection of link loads, does not require global topology awareness, and does not require real-time calculation and re-routing to achieve even distribution of traffic on the entire path, while having good stability and robustness.
[0108] This application also proposes a data center network load balancing system to achieve uniform distribution of data flows on the entire path. It can be understood that the system includes Figure 1 The leaf switch, spine switch, or super spine switch in the process diagram is as follows Figure 8 As shown:
[0109] Step 800: The leaf switches in the data center network number the connected computing nodes.
[0110] Exemplarily, each leaf switch in the data center network numbers the connected computing nodes in sequence according to the number of computing nodes connected to the leaf switch, where a computing node is a single computing unit with a server as an individual, or multiple computing units with multiple GPUs on a server as individuals. As described above, there are a maximum of 64 interfaces connecting a leaf switch and a computing node, so a leaf switch can connect to a maximum of 64 computing nodes.
[0111] Step 810: Each adjacent switch in the data center network synchronizes multiple computing node information with each other.
[0112] Exemplarily, each adjacent switch in the data center network synchronizes multiple computing node information with each other through BGP routing announcements. The information of each computing node includes the number of the computing node and the IP address of the computing node. The number of each computing node is expressed through an extended attribute of the BGP route. The extended attribute of the BGP route can be represented by a tag, and the tag value is the number corresponding to the computing node in step 800.
[0113] Step 820: The first switch determines forwarding paths corresponding to the multiple computing nodes respectively based on the information of the multiple computing nodes, the forwarding paths corresponding to the multiple computing nodes respectively are equivalent forwarding paths, and the forwarding paths corresponding to the multiple computing nodes respectively are different; the first switch is one of the adjacent switches in the data center network.
[0114] Exemplarily, the equivalent forwarding path is ECMP, which is a path with the same cost from the switch to the next hop switch of the switch. When the first switch determines the forwarding paths corresponding to the multiple computing nodes respectively according to the information of the multiple computing nodes, the remainder of the quotient of the number of each computing node and the number of equivalent forwarding paths is calculated, and the forwarding path corresponding to the computing node is determined from the multiple equivalent forwarding paths according to the remainder. Because the numbers of the computing nodes contained in the information of the computing nodes are different, the remainders of the quotient of the number of the computing nodes and the number of equivalent forwarding paths are different, and then the forwarding paths determined according to the remainders are different, so that the numbers of the computing nodes and the forwarding paths are uniformly bound.
[0115] Exemplarily, after determining the forwarding paths corresponding to the multiple computing nodes respectively according to the information of the multiple computing nodes, the first switch generates a forwarding table entry corresponding to each computing node, and the forwarding table entry corresponding to each computing node indicates the correspondence between the forwarding path corresponding to the computing node and the IP address of the computing node.
[0116] For details, please refer to the above step 510.
[0117] Step 830: When the first switch receives the data flow, it forwards the data flow according to the forwarding path corresponding to the target computing node of the data flow.
[0118] Exemplarily, before forwarding the data flow according to the forwarding path corresponding to the target computing node of the data flow, the first switch queries the forwarding table entry according to the IP address of the target computing node to determine the forwarding path corresponding to the target computing node, and forwards the data flow according to the forwarding path corresponding to the IP address of the target computing node.
[0119] For details, please refer to the above step 520.
[0120] For more detailed description or examples of the above steps 800, 810, 820 and 830, please refer to Figure 5 The relevant description in the method embodiment shown is directly obtained and will not be repeated here.
[0121] It is understandable that in order to implement the functions in the above embodiments, the host includes hardware structures and / or software modules corresponding to the execution of each function. Those skilled in the art should easily realize that, in combination with the units and method steps of each example described in the embodiments disclosed in this application, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application scenario and design constraints of the technical solution.
[0122] Fig. 9 and Fig.10 The schematic diagram of the structure of a possible data center network load balancing device provided by the embodiment of the present application. These data center network load balancing devices can be used to implement the functions of the switch in the above method embodiment, and thus can also achieve the beneficial effects possessed by the above method embodiment.
[0123] like Fig. 9 As shown, the data center network load balancing device 900 includes a receiving unit 910, a processing unit 920 and a sending unit 930. The data center network load balancing device 900 is used to implement the above Figure 5 The functions of the switch in the method embodiment are shown.
[0124] The data center network load balancing device 900 is used to implement the above Figure 5 The functions of the switch in the method embodiment shown are:
[0125] The receiving unit 910 is used to obtain information of multiple computing nodes;
[0126] The processing unit 920 is used to determine forwarding paths corresponding to the multiple computing nodes respectively according to the information of the multiple computing nodes, the forwarding paths corresponding to the multiple computing nodes respectively are equivalent forwarding paths, and the forwarding paths corresponding to the multiple computing nodes respectively are different;
[0127] The sending unit 930 is configured to forward the data flow according to a forwarding path corresponding to a target computing node of the data flow when receiving the data flow.
[0128] In a possible design, the receiving unit 910 is used to obtain the information of the multiple computing nodes by using a routing advertisement of BGP:
[0129] In one possible design, the information of each computing node includes a number of the computing node;
[0130] The processing unit 920 is used to calculate the remainder of the quotient of the number of each computing node and the number of multiple equivalent forwarding paths when determining the forwarding paths corresponding to the multiple computing nodes respectively according to the information of the multiple computing nodes; and determine the forwarding path corresponding to the computing node from the multiple equivalent paths according to the remainder.
[0131] In one possible design, the multiple equal-cost forwarding paths are ECMPs, where the ECMPs are paths with the same cost from the switch to the next-hop switch of the switch.
[0132] In one possible design, the processing unit 920 is used to number the connected computing nodes in sequence according to the number of the connected computing nodes.
[0133] In one possible design, the information of each computing node also includes an IP address of the computing node;
[0134] The processing unit 920 is used to generate a forwarding table entry corresponding to each computing node after determining the forwarding paths corresponding to the multiple computing nodes respectively according to the information of the multiple computing nodes, and the forwarding table entry corresponding to each computing node indicates the correspondence between the forwarding path corresponding to the computing node and the IP address of the computing node.
[0135] In one possible design, the processing unit 920 is used to query the forwarding table entry according to the IP address of the target computing node to determine the forwarding path corresponding to the target computing node before forwarding the data flow according to the forwarding path corresponding to the target computing node of the data flow.
[0136] For more detailed description of the receiving unit 910, the processing unit 920 and the sending unit 930, please refer to Figure 5 The relevant description in the method embodiment shown is directly obtained and will not be repeated here.
[0137] like Fig.10 As shown, the data center network load balancing device 1000 includes a processor 1010 and an interface circuit 1020, and the processor 1010 and the interface circuit 1020 are coupled to each other. It can be understood that the interface circuit 1020 can be a transceiver or an input and output interface. Optionally, the data center network load balancing device 1000 can also include a memory 1030 for storing instructions executed by the processor 1010 or storing input data required by the processor 1010 to run the instructions or storing data generated after the processor 1010 runs the instructions.
[0138] When the data center network load balancing device 1000 is used to implement Figure 5When the method is shown, the processor 1010 is used to implement the functions of the above-mentioned processing unit 920, and the interface circuit 1020 is used to implement the functions of the above-mentioned receiving unit 910 and the sending unit 930.
[0139] The division of units in the embodiments of the present application is schematic and is only a logical function division. There may be other division methods in actual implementation. In addition, each functional unit in each embodiment of the present application may be integrated into a processor, or may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.
[0140] Although the preferred embodiments of the present application have been described, those skilled in the art may make other changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications falling within the scope of the present application.
[0141] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.
Claims
1. A data center network load balancing method, characterized in that: The switch used in the data center network includes the following steps: Get information about multiple computing nodes; Determine forwarding paths corresponding to the plurality of computing nodes respectively according to information of the plurality of computing nodes, wherein the forwarding paths corresponding to the plurality of computing nodes respectively are equivalent forwarding paths, and the forwarding paths corresponding to the plurality of computing nodes respectively are different; When a data flow is received, the data flow is forwarded according to a forwarding path corresponding to a target computing node of the data flow.
2. The method according to claim 1, characterized in that The information of each computing node includes the number of the computing node; Determining forwarding paths corresponding to the plurality of computing nodes respectively according to the information of the plurality of computing nodes includes: Calculate the remainder of the quotient of the number of each computing node and the number of multiple equal-cost forwarding paths; A forwarding path corresponding to the computing node is determined from the multiple equal-cost paths according to the remainder.
3. The method according to claim 2, characterized in that The number of each computing node is expressed through the extended attributes of the BGP route.
4. The method according to claim 2, characterized in that Also includes: The connected computing nodes are numbered in sequence according to the number of connected computing nodes.
5. The method according to claim 1, characterized in that The information of each computing node also includes the IP address of the computing node; After determining the forwarding paths respectively corresponding to the plurality of computing nodes according to the information of the plurality of computing nodes, the method further includes: A forwarding table entry corresponding to each computing node is generated, wherein the forwarding table entry corresponding to each computing node indicates a corresponding relationship between a forwarding path corresponding to the computing node and an IP address of the computing node.
6. The method according to claim 5, characterized in that Before forwarding the data flow according to the forwarding path corresponding to the target computing node of the data flow, the method further includes: The forwarding table entry is queried according to the IP address of the target computing node to determine a forwarding path corresponding to the target computing node.
7. The method according to claim 1, characterized in that The computing node is a single computing unit with a server as an individual, or multiple computing units with multiple display chips GPU on the server as individuals.
8. The method according to any one of claims 1 to 7, characterized in that: The data center network is a networking architecture of spine switches and leaf switches, or a networking architecture of super spine switches, spine switches and leaf switches.
9. A data center network load balancing system, characterized in that: A switch used in a data center network, the system comprising: The leaf switches in the data center network number the connected computing nodes; Each adjacent switch in the data center network synchronizes multiple computing node information with each other; The first switch determines forwarding paths corresponding to the plurality of computing nodes respectively according to information of the plurality of computing nodes, the forwarding paths corresponding to the plurality of computing nodes respectively are equivalent forwarding paths, and the forwarding paths corresponding to the plurality of computing nodes respectively are different; the first switch is one of the adjacent switches in the data center network; When the first switch receives the data flow, it forwards the data flow according to the forwarding path corresponding to the target computing node of the data flow.
10. The system according to claim 9, characterized in that The first switch determines, according to the information of the plurality of computing nodes, forwarding paths respectively corresponding to the plurality of computing nodes, including: Calculating the remainder of the quotient of the number of each computing node and the number of the multiple equal-cost forwarding paths; A forwarding path corresponding to the computing node is determined from the multiple equal-cost paths according to the remainder.
11. A data center network load balancing device, characterized in that: The device includes: A receiving unit, used for obtaining information of multiple computing nodes; A processing unit, configured to determine forwarding paths respectively corresponding to the plurality of computing nodes according to information of the plurality of computing nodes, wherein the forwarding paths respectively corresponding to the plurality of computing nodes are equivalent forwarding paths, and the forwarding paths respectively corresponding to the plurality of computing nodes are different; The sending unit is used to forward the data flow according to the forwarding path corresponding to the target computing node of the data flow when receiving the data flow.
12. The device according to claim 11, characterized in that The information of each computing node includes the number of the computing node; The processing unit is used to calculate the remainder of the quotient of the number of each computing node and the number of multiple equivalent forwarding paths when determining the forwarding paths corresponding to the multiple computing nodes respectively according to the information of the multiple computing nodes; and determine the forwarding path corresponding to the computing node from the multiple equivalent paths according to the remainder.
13. A communication device, characterized in that: include: One or more processors and one or more memories; wherein the one or more memories store one or more programs, and when the programs are executed by the one or more processors, the device executes the method as described in any one of claims 1-8.
14. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer-executable instructions, which are used to implement the method according to any one of claims 1 to 8 when executed by a processor.
15. A computer program product, characterized in that The invention comprises a computer program, which implements the method according to any one of claims 1 to 8 when being executed by a processor.
Citation Information
Cited By
Data forwarding method, intelligent computing center, node of intelligent computing center, medium and product
CN120567753A
Data forwarding method, intelligent computing center and node thereof, medium and product
CN120567753B