Load balancing system, method and device

By setting up node managers and kernel-state programs in the computing nodes and using mapping tables to perform load balancing processing, the problems of high cost and poor flexibility of computing nodes in the existing technology are solved, and an efficient and flexible load balancing solution is achieved.

CN113886072BActive Publication Date: 2025-05-02HANGZHOU ALICLOUD FEITIAN INFORMATION TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111101891.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-09-18
Publication Date
2025-05-02
Estimated Expiration
2041-09-18

AI Technical Summary

Technical Problem

In the prior art, when load balancing computing nodes is carried out, there is a problem of high cost and poor flexibility.

Method used

By setting up a node manager and kernel-state program in multiple computing nodes, the mapping table records the relationship between node identification, resource occupancy and balanced dimension identification, and load balancing processing of RRU to BBU preamble messages is realized.

Benefits of technology

The load balancing between multiple computing nodes is realized through software, saving the cost of purchasing specially customized load balancer equipment, improving flexibility, and fast balancing speed and low delay.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113886072B_ABST
    Figure CN113886072B_ABST
Patent Text Reader

Abstract

The embodiment of the present application provides a load balancing system, method and device. The load balancing system includes a management node and multiple computing nodes for carrying BBU instances, the first computing node among the multiple computing nodes is used to connect to the RRU, a first kernel state program runs on the first computing node, the first kernel state program has a mapping table, the node manager is used to update the mapping table according to the resource occupancy rate of the multiple computing nodes, the first kernel state program is used to intercept the message entering from the network card of the first computing node, filter out the forward message from the RRU to the BBU from the message, determine the balance dimension identifier of the forward message, and perform load balancing processing according to the balance dimension identifier of the forward message and the mapping table, so as to determine the target computing node for processing the forward message from the multiple computing nodes. The load balancing system can save costs and has high flexibility.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a load balancing system, method and device. Background Art

[0002] Cloud RAN virtualizes LTE, 5G and other software protocol stacks and runs them on general-purpose servers. It uses the elasticity of cloud computing to dynamically scale in / out protocol stack software instances based on load conditions, thereby maximizing resource utilization. Cloud RAN can include cloud-based BBU and RRU, and the eCPRI protocol can be used between cloud-based BBU and RRU.

[0003] At present, when the computing power of a single computing node cannot meet the requirements, it is necessary to disperse multiple instances that provide BBU functions to multiple computing nodes, so fronthaul load balancing from RRU to computing nodes is required. Usually, a specially customized load balancer device that supports the eCPRI protocol is set between the RRU and the computing node to balance the load of the computing node. However, this method has the problems of high cost and poor flexibility. Summary of the invention

[0004] The embodiments of the present application provide a load balancing system, method and device to solve the problems of high cost and poor flexibility when performing load balancing on computing nodes in the prior art.

[0005] In a first aspect, an embodiment of the present application provides a load balancing system, including: a node manager and multiple computing nodes, the multiple computing nodes are used to carry BBU instances, a first computing node among the multiple computing nodes is used to connect to an RRU, a first kernel state program is running on the first computing node, the first kernel state program has a mapping table, and the mapping table records a mapping relationship between a node identifier, a node resource occupancy rate, and a balancing dimension identifier;

[0006] The node manager is used to update the mapping table according to the resource occupancy rates of the multiple computing nodes;

[0007] The first kernel state program is used to intercept messages entering from the network card of the first computing node, filter out the forward transmission messages from the RRU to the BBU from the messages, and determine the balancing dimension identifier of the forward transmission messages;

[0008] The first kernel state program is further used to perform load balancing processing according to the balancing dimension identifier of the forward message and the mapping table, so as to determine a target computing node for processing the forward message from the multiple computing nodes.

[0009] In a second aspect, an embodiment of the present application provides a load balancing method, applied to a first computing node, comprising:

[0010] Intercepting messages entering from the network card of the first computing node, filtering out forward transmission messages from the RRU to the BBU from the messages, and determining a balancing dimension identifier of the forward transmission message;

[0011] Load balancing is performed according to the balancing dimension identifier of the forward message and a mapping table to determine a target computing node for processing the forward message from the multiple computing nodes, wherein the mapping table records a mapping relationship between the node identifier, the node resource occupancy rate and the balancing dimension identifier.

[0012] In a third aspect, an embodiment of the present application provides a load balancing device, applied to a first computing node, including:

[0013] An interception and filtering module, configured to intercept messages entering from the network card of the first computing node, filter out the forward transmission messages from the RRU to the BBU from the messages, and determine the balancing dimension identifier of the forward transmission messages;

[0014] A load balancing module is used to perform load balancing processing according to the balancing dimension identifier and mapping table of the forward message to determine the target computing node for processing the forward message from the multiple computing nodes, and the mapping table records the mapping relationship between the node identifier, the node resource occupancy rate and the balancing dimension identifier.

[0015] In a fourth aspect, an embodiment of the present application provides a computer device, comprising: a memory and a processor; wherein the memory is used to store one or more computer instructions, wherein the one or more computer instructions, when executed by the processor, implement a method as described in any one of the second aspects.

[0016] In a fifth aspect, an embodiment of the present application provides a computer program, comprising computer program instructions, which, when executed by a processor, implement a method as described in any one of the second aspects.

[0017] In a sixth aspect, an embodiment of the present application provides a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed, the method as described in any one of the second aspects is implemented.

[0018] In an embodiment of the present application, a first computing node among multiple computing nodes is used to connect to the RRU, and other computing nodes are not used to connect to the RRU. The load balancing of the computing nodes is performed by a first kernel-mode program running on the first computing node, thereby achieving load balancing between multiple computing nodes by the newly added software on the first computing node among the multiple computing nodes. This saves costs by eliminating the overhead of purchasing a specially customized load balancer device. The software on the computing node is more flexible to change than customized equipment, so it is more flexible. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, a brief introduction will be given below to the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0020] Figure 1 A schematic diagram of the architecture of Cloud RAN provided in an embodiment of the present application;

[0021] Figure 2 A schematic diagram of the architecture for implementing load balancing in Cloud RAN using the technology related to this application;

[0022] Figure 3 A schematic diagram of the structure of a load balancing system provided in one embodiment of the present application;

[0023] Figure 4 A schematic diagram of a first kernel state program forwarding a pretransmission message provided in an embodiment of the present application;

[0024] Figure 5 A schematic diagram of an architecture for implementing load balancing in Cloud RAN provided in an embodiment of the present application;

[0025] Figure 6 A flow chart of a load balancing method provided in one embodiment of the present application;

[0026] Figure 7 A schematic diagram of the structure of a load balancing device provided in one embodiment of the present application;

[0027] Figure 8 A schematic diagram of the structure of a computer device provided in one embodiment of the present application. DETAILED DESCRIPTION

[0028] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0029] The terms used in the embodiments of the present application are only for the purpose of describing specific embodiments, and are not intended to limit the present application. The singular forms of "a", "said", and "the" used in the embodiments of the present application and the appended claims are also intended to include plural forms, unless the context clearly indicates other meanings, and "multiple" generally includes at least two, but does not exclude the inclusion of at least one.

[0030] It should be understood that the term "and / or" used in this article is only a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this article generally indicates that the associated objects before and after are in an "or" relationship.

[0031] As used herein, the words "if" and "if" may be interpreted as "at the time of" or "when" or "in response to determining" or "in response to detecting", depending on the context. Similarly, the phrases "if it is determined" or "if (stated condition or event) is detected" may be interpreted as "when it is determined" or "in response to determining" or "when detecting (stated condition or event)" or "in response to detecting (stated condition or event)", depending on the context.

[0032] It should also be noted that the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a product or system including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such a product or system. In the absence of more restrictions, the elements defined by the sentence "comprises a ..." do not exclude the existence of other identical elements in the product or system including the elements.

[0033] In addition, the step sequence in the following method embodiments is only an example and not a strict limitation.

[0034] In order to facilitate those skilled in the art to understand the technical solution provided by the embodiments of the present application, the technical environment in which the technical solution is implemented is described below.

[0035] In a wireless communication system, a terminal may communicate with one or more core networks (CN) via a radio access network (RAN), and the radio access network may include base stations.

[0036] Among them, the terminal may also be called user equipment (UE), mobile station (MS), mobile terminal, access terminal, terminal equipment, user unit, user station, mobile station, mobile station, remote station, remote terminal, mobile device, user terminal, wireless communication equipment, user agent or user device, etc. The terminal may be a cellular phone, a cordless phone, a Session Initiation Protocol (SIP) phone, a Wireless Local Loop (WLL) station, a Personal Digital Assistant (PDA), a handheld device with wireless communication function, a computer device or a vehicle-mounted device, a wearable device, and a terminal device in the future 5G network, etc.

[0037] Base station, or public mobile communication base station, refers to a radio transceiver station that transmits information between a mobile communication exchange center and a terminal in a certain radio coverage area. The baseband part and the radio frequency part of the base station can be separated. What is transmitted between the two is the baseband signal. At the remote end, the baseband optical signal is converted into a radio frequency signal, amplified and transmitted. Among them, the baseband part can be called a baseband processing unit (BBU for short), and the radio frequency part can be called a remote radio unit (RRU for short). The baseband processing unit and the remote radio unit can be connected by optical fiber, and one baseband processing unit can support multiple remote radio units. The remote radio unit transmits baseband signals to the baseband processing unit. The baseband processing unit can send the baseband signal to the remote radio unit. The remote radio unit can convert the baseband signal into a radio frequency signal and transmit it through the antenna. The remote radio unit can also receive the radio frequency signal through the antenna, convert the received radio frequency signal into a baseband signal and send the baseband signal to the baseband processing unit.

[0038] It should be understood that in different communication systems, the specific way of dividing the base station into baseband processing units and radio frequency remote units may be different. For example, in the 5th Generation (5G) communication system, the base station can be divided into a central unit (CU), a distributed unit (DU) and a radio frequency unit (RU), wherein the central unit + distributed unit can be understood as a baseband processing unit, and the radio frequency unit can be understood as a radio frequency remote unit.

[0039] In Cloud RAN, the BBU can be cloudified to obtain a cloud-based BBU. Figure 1 As shown, in the wireless communication system, the clouded BBU 11 can be connected to the RRU 12 in the downlink direction, and the clouded BBU 11 can be connected to the core network 13 in the uplink direction, wherein the RRU can communicate with the terminal 14 through a radio frequency signal. In the embodiment of the present application, the message from the RRU to the BBU can be understood as a fronthaul message. In one embodiment, the communication interface between the RRU and the BBU can be specifically an enhanced Common Public Radio Interface (eCPRI) protocol, and the fronthaul message can be specifically an eCPRI message.

[0040] In the cloud BBU 11, the BBU function can be provided by an instance hosted on a computing node. Such an instance can be called a BBU instance, and the computing node hosting the BBU instance can be considered as a BBU server. Figure 1 A rectangular box in the figure can represent a BBU instance. In order to maximize the utilization of resources, the BBU instance can also be dynamically expanded or reduced. For example, Figure 1 In the case of low load, the number of BBU instances can be reduced from 3 to 2.

[0041] In practical applications, when the computing power of a single computing node cannot meet the requirements, the BBU instances can be distributed to multiple computing nodes. Moreover, when multiple BBU instances providing the same function are distributed to multiple computing nodes, load balancing of multiple computing nodes can be performed.

[0042] Usually, you can use Figure 2The method shown in the figure is used to achieve load balancing. Specifically, a specially customized load balancer device 15 supporting the eCPRI protocol is set between the computing nodes in the RRU 12 and the cloud BBU 11, and the load balancer device 15 performs load balancing of the computing nodes. However, the method of setting a specially customized load balancer device requires the purchase of additional equipment, so there is a problem of high cost, and because the change cycle of the customized method is long, it is not convenient to adjust the balancing method in time, so there is also a problem of poor flexibility. It should be noted that Figure 2 A rectangular box directly above a computing node may represent a BBU instance carried on the computing node, and the three ovals extending outward from the RRU 12 may represent three sectors, and the terminal 14 may be located in any one of the sectors.

[0043] In order to solve the technical problems of high cost and poor flexibility when load balancing computing nodes, in an embodiment of the present application, a first computing node among multiple computing nodes is used to connect to the RRU, and other computing nodes are not used to connect to the RRU. Load balancing of the computing nodes is performed by a first kernel-mode program running on the first computing node, thereby achieving load balancing among multiple computing nodes by the newly added software on the first computing node among the multiple computing nodes. Since the overhead of purchasing a specially customized load balancer device is saved, costs can be saved. Since the software on the computing node is more flexible to change than customized equipment, it is more flexible.

[0044] It should be noted that, since the processing speed of the kernel state program is very fast, the load balancing among multiple computing nodes can be performed very quickly through the first kernel state program, and the delay caused by the load balancing can be very small.

[0045] In conjunction with the accompanying drawings, some embodiments of the present application are described in detail below. In the absence of conflict, the following embodiments and features in the embodiments can be combined with each other.

[0046] Figure 3 A schematic diagram of the structure of a load balancing system provided in an embodiment of the present application is shown in FIG. Figure 3 As shown, the load balancing system may include: a node manager 31 and multiple computing nodes 32, the multiple computing nodes 32 are used to carry BBU instances, the first computing node 321 among the multiple computing nodes 32 is used to connect to the radio remote unit x, and the first computing node 321 runs a first kernel state program, and the first kernel state program has a mapping table, which records the mapping relationship between the node identifier, the node resource occupancy rate and the balancing dimension identifier. It should be noted that Figure 3The number of the radio remote units x is only an example, and the node manager 31 may run on any one of the multiple computing nodes 32 , or may run on any other node outside the multiple computing nodes 32 .

[0047] The node identifier is the identifier of the computing node, and the identifier of the computing node can be, for example, the IP address of the computing node. The node resource occupancy rate is the resource occupancy rate of the computing node. The resource occupancy rate of a computing node can indicate the load of the computing node. The higher the resource occupancy rate, the higher the load. The balancing dimension identifier is the identifier of the dimension based on which load balancing is performed. The selection of the balancing dimension identifier can be flexibly implemented according to the balancing requirements.

[0048] Exemplarily, when the fronthaul messages from RRU to BBU of the same cell need to be processed by the same computing node, and the fronthaul messages of different cells can be dispersed in different computing nodes for processing, the balancing dimension can be the cell dimension, and the balancing dimension identifier can be the cell identifier. Exemplarily, when the fronthaul messages of the same sector need to be processed by the same computing node, and the fronthaul messages of different sectors can be dispersed in different computing nodes for processing, the balancing dimension can be the sector dimension, and the balancing dimension identifier can be the sector identifier. Exemplarily, when the fronthaul messages of the same carrier need to be processed by the same computing node, and the fronthaul messages of different carriers can be dispersed in different computing nodes for processing, the balancing dimension can be the carrier dimension, and the balancing dimension identifier can be the carrier identifier.

[0049] Taking the equalization dimension identifier as the sector identifier as an example, the mapping table at a certain moment may be as shown in the following Table 1.

[0050] Table 1

[0051] Node ID Node resource usage Sector ID IP address of compute node 1 *** Sector 1 IP address of compute node 2 *** Sector 1 IP address of compute node 3 *** Sector 1

[0052] It should be noted that the number of sector identifiers in Table 1 is 1 for example only, and in other embodiments, the sector identifier may also include other identifiers. The computing nodes corresponding to the other identifiers may include any one or more computing nodes from computing node 1 to computing node 3, and / or computing nodes other than computing node 1 to computing node 3.

[0053] In the embodiment of the present application, the node manager 31 may be used to update the mapping table according to the resource occupancy rates of the plurality of computing nodes 32. Exemplarily, the node manager 31 may obtain the resource occupancy rates from the plurality of computing nodes respectively, and update the obtained resource occupancy rates into the mapping table.

[0054] Optionally, the node manager 31 can also be used to dynamically scale the BBU instance carried on the computing node 32. In this case, the node manager can be specifically understood as an elastic manager. It should be understood that when dynamically scaling the BBU instance, if the result of the dynamic scaling requires adding a computing node or releasing a computing node, the mapping table needs to be updated accordingly. For the implementation method of the node manager for dynamically scaling the BBU instance, please refer to the specific description in the relevant technology, which will not be repeated here.

[0055] For example, assuming that the resource occupancy rate of computing node 3 in the mapping relationship shown in Table 1 is lower than the threshold TH_min, the node manager can further evaluate whether computing node 1 and computing node 2 can share the load of computing node 3. If so, the node manager can release the BBU instance carried on computing node 3 to release the resources of the computing node. At the same time, the node manager can also update the mapping table accordingly. The updated mapping table can be shown in Table 2 below.

[0056] Table 2

[0057] Node ID Node resource usage Sector ID IP address of compute node 1 *** Sector 1 IP address of compute node 2 *** Sector 1

[0058] For another example, assuming that the resource occupancy rate of computing node 1 in the mapping relationship shown in Table 2 is higher than the threshold TH_max, the node manager can further evaluate whether it is necessary to create a new BBU instance. If so and there is not much carrier margin on computing node 2 to carry the new BBU instance, a new computing node can be added and a new BBU instance can be created on the newly added computing node. Taking the newly added computing node as computing node 3 as an example, the updated mapping table can be as shown in the aforementioned Table 1.

[0059] In the embodiment of the present application, the mapping table can be used for load balancing of the first kernel state program. The first kernel state program is a program located in the operating system kernel (Kernel) of the first computing node 321, and the first kernel state program is used to provide a load balancing function for the computing node 32. The load balancing function can be understood as a function added by the user to the operating system kernel of the first computing node 321. Depending on the specific technology used by the user to add functions to the kernel, the type of the first kernel state program can be different accordingly. Taking the addition of functions to the kernel through the eBPF technology as an example, the first kernel state program can include an eBPF program.

[0060] like Figure 3As shown, the first kernel state program can be used to intercept messages coming in from the network card of the first computing node 321. It should be understood that since the first computing node 321 is connected to the radio remote unit x, the messages coming in from the network card of the first computing node 321 may include the forward message from the radio remote unit x to the BBU, so the forward message from the radio remote unit x to the BBU can be obtained by intercepting the messages coming in from the network card of the first computing node 321. For example, the message coming in from the network card of the first computing node 321 can be intercepted by hooking a specific event.

[0061] Since the messages coming in from the network card of the first computing node 321 may include other types of messages such as synchronization messages in addition to the forwarding messages, after intercepting the messages coming in from the network card of the first computing node 321, such as Figure 3 As shown, the first kernel state program can also filter out the forward transmission message from the intercepted message. For example, the forward transmission message can be filtered out from the intercepted message according to the message header structure of the eCPRI protocol.

[0062] After filtering out the forward messages, Figure 3 As shown, the first kernel state program can also determine the balancing dimension identifier of the fronthaul message. Exemplarily, the balancing dimension identifier of the fronthaul message can be determined based on the information carried in the fronthaul message. For example, assuming that the balancing dimension identifier is a carrier identifier, and the fronthaul message is an eCPRI message, since the eCPRI message carries the CC_ID subfield, the content of the CC_ID subfield carried in the eCPRI can be used as the carrier identifier.

[0063] In the embodiment of the present application, after the first kernel state program determines the balance dimension identifier of the forward message, Figure 3 The first kernel-mode program shown may also perform load balancing processing according to the balancing dimension identifier of the forward message and the mapping table, so as to determine a target computing node for processing the forward message from the plurality of computing nodes 32 .

[0064] Optionally, the first kernel state program may adopt a method of first determining candidate computing nodes and then selecting a target computing node from the candidate computing nodes. Based on this, in one embodiment, the first kernel state program may determine at least two candidate computing nodes that can process the forward message from multiple computing nodes based on the balancing dimension identifier of the forward message and the mapping relationship between the node identifier and the balancing dimension identifier in the mapping table, and perform load balancing processing based on the mapping relationship between the node identifier and the node resource occupancy rate in the mapping table to select the target computing node for processing the forward message from at least two candidate computing nodes. The load balancing strategy adopted by the first kernel state program when performing load balancing processing can be flexibly implemented according to demand, and this application does not limit this.

[0065] For example, assuming that the balancing dimension identifier of the forward message is sector 1, and the mapping table is shown in Table 1 above, the first kernel state program can determine that the candidate computing nodes that can process the forward message are computing node 1, computing node 2, and computing node 3 based on the balancing dimension identifier of the forward message and the mapping relationship between the node identifier and the balancing dimension identifier in the mapping table. Further assuming that the load balancing strategy is a round-robin strategy, the polling order is computing node 1→computing node 2→computing node 3, and computing node 2 was polled last time, then computing node 3 can be selected to process the forward message this time, that is, computing node 3 can be selected as the target computing node for processing the forward message.

[0066] Optionally, the load balancing strategy may be set by the node manager 31. Based on this, in one embodiment, the node manager 31 may also be used to set the load balancing strategy adopted by the first kernel state program when performing load balancing.

[0067] It should be understood that when the number of candidate computing nodes capable of processing the forward message is one, load balancing may not be performed, and the forward message may be processed by the candidate computing node.

[0068] In an embodiment of the present application, after the first kernel state program determines the target computing node, the first kernel state program can also forward the forward message. Based on this, in one embodiment, the first kernel state program can also be used to forward the forward message to the target computing node according to the identifier of the target computing node in the mapping table when the target computing node is a node other than the first computing node, so that the BBU instance carried on the target computing node processes the forward message; and when the target computing node is the first computing node, forward the forward message to the BBU instance carried on the first computing node, so that the BBU instance carried on the first computing node processes the forward message.

[0069] It should be understood that the program corresponding to the BBU instance carried on the computing node is a user-state program, which is located in the user space (User Space) outside the operating system kernel of the first computing node 321. The user-state program corresponding to the BBU instance carried on the first computing node can be recorded as the first user-state program.

[0070] Assuming the first computing node is computing node 1 in Table 1 above, then Figure 4As shown, if the target computing node selected by the first kernel-state program in the operating system kernel of computing node 1 for processing the forward transmission message is computing node 1, the forward transmission message can be forwarded to the first user-state program of computing node 1 through path 1; if the target computing node selected by the first kernel-state program for processing the forward transmission message is computing node 2, the forward transmission message can be forwarded to computing node 2 through path 2, so that the forward transmission message can be processed by the BBU instance carried on computing node 2; if the target computing node selected by the first kernel-state program for processing the forward transmission message is computing node 3, the forward transmission message can be forwarded to computing node 3 through path 3, so that the forward transmission message can be processed by the BBU instance deployed on computing node 3.

[0071] In an embodiment of the present application, the number of BBU instances carried on the same computing node may be multiple, and the balancing dimension identifiers corresponding to the multiple BBU instances may be the same or different. When the balancing dimension identifiers corresponding to the multiple BBU instances are the same, the forwarding of the front transmission message may not consider the correspondence between the balancing dimension identifier and the BBU instance. When the balancing dimension identifiers corresponding to the multiple BBU instances are different, the forwarding of the front transmission message may consider the correspondence between the balancing dimension identifier and the BBU instance.

[0072] Optionally, information for distinguishing the correspondence between the balancing dimension identifier and the BBU instance can be recorded in the mapping table. Based on this, in one embodiment, for the case where the same computing node carries multiple BBU instances corresponding to different balancing dimension identifiers, the mapping table can also record the mapping relationship between instance-related identifiers. The instance-related identifier can specifically be any type of identifier that can be used to forward the forwarding message to the BBU instance corresponding to its balancing dimension identifier. Exemplarily, the instance-related identifier includes a port number or a virtual network card address.

[0073] The first kernel-state program forwards the forward message to the target computing node according to the identifier of the target computing node in the mapping table, which may specifically include: forwarding the forward message to the target computing node according to the identifier of the target computing node and the target instance-related identifier in the mapping table, so that the forward message is processed by the BBU instance corresponding to the target instance-related identifier carried on the target computing node, and the target instance-related identifier is an instance-related identifier corresponding to the identifier of the target computing node and the balancing dimension identifier of the forward message.

[0074] Taking the example that the instance-related identifier is the port number and computing node 3 among computing nodes 1 to 3 carries multiple BBUs corresponding to different balancing dimension identifiers, the mapping table may be as shown in Table 3 below.

[0075] Table 3

[0076] Node ID Node resource usage Sector ID Port Number IP address of compute node 1 *** Sector 1 20 IP address of compute node 2 *** Sector 1 20 IP address of compute node 3 *** Sector 1 20 IP address of compute node 3 *** Sector 2 30

[0077] For example, assuming that the sector identifier of the forward transmission message is sector 1, and the target computing node selected by the first kernel-state program for the forward transmission message from computing node 1 to computing node 3 is computing node 3, then the first kernel-state program can forward the forward transmission message to computing node 3 based on the IP address of computing node 3 and port number 20, so that the forward transmission message can be processed by the BBU instance corresponding to sector 1 carried on computing node 3.

[0078] Taking the first kernel state program as eBPF, the number of computing nodes as 3, and load balancing from the sector dimension as an example, the architecture of load balancing in Cloud RAN using the load balancing system provided in the embodiment of the present application can be as follows: Figure 5 shown. Figure 5 In the example, the node manager 31 can obtain the node occupancy rates of computing node 1, computing node 2, and computing node 3, and update the mapping table according to the node occupancy rates. The rectangular boxes directly above computing node 1, computing node 2, and computing node 3 represent the BBU instances carried thereon.

[0079] Computing node 1 is connected to an RRUx. RRUx can correspond to three sectors, namely sector 1, sector 2 and sector 3. The terminal can be located in any sector. The eCPRI traffic from RRUx to BBU can be sent to computing node 1 through the connection between RRUx and computing node 1. The eBPF program running in computing node 1 can intercept messages from the network card, filter out eCPRI messages from the intercepted messages, and select the target computing node for processing the eCPRI messages. It should be understood that before scaling down computing node 3, the target computing node can be computing node 1, computing node 2 or computing node 3; after scaling down computing node 3, the target computing node can be computing node 1 or computing node 2.

[0080] Computing node 1 may also be connected to computing node 2 and computing node 3, respectively, so that when the target computing node selected for the eCPRI message is computing node 2 or computing node 3, the eBPF program may forward the eCPRI message through the connection with the computing node. It should be understood that before computing node 3 is reduced in capacity, the path from the eBPF program to computing node 3 exists, and after computing node 3 is reduced in capacity, the path from the eBPF program to computing node 3 does not exist.

[0081] The load balancing system provided in this embodiment includes a management node and multiple computing nodes for carrying BBU instances. The first computing node among the multiple computing nodes is used to connect to the radio frequency remote unit. A first kernel-state program runs on the first computing node. The first kernel-state program has a mapping table. The node manager is used to update the mapping table according to the resource occupancy rates of the multiple computing nodes. The first kernel-state program is used to intercept messages entering from the network card of the first computing node, filter out front-end messages from the messages, determine the balancing dimension identifier of the front-end messages, and perform load balancing processing according to the balancing dimension identifier of the front-end messages and the mapping table, so as to determine the target computing node for processing the front-end messages from the multiple computing nodes, thereby realizing load balancing among the multiple computing nodes by the newly added software on the first computing node among the multiple computing nodes. Since the overhead caused by the need to purchase a specially customized load balancer device is saved, cost can be saved. In addition, since the software on the computing node is more flexible to change than customized equipment, the flexibility is higher.

[0082] Figure 6 FIG. 1 is a flow chart of a load balancing method provided in an embodiment of the present application. The load balancing method can be applied to the load balancing system described in the aforementioned embodiment, and can be specifically applied to the first computing node in the load balancing system, such as Figure 6 As shown, the method provided in this embodiment may include:

[0083] Step 61, intercepting messages entering from the network card of the first computing node, filtering out the forward transmission messages from the RRU to the BBU from the messages, and determining the balancing dimension identifier of the forward transmission messages;

[0084] Step 62, load balancing processing is performed according to the balancing dimension identifier and mapping table of the forward message to determine the target computing node for processing the forward message from multiple computing nodes, and the mapping table records the mapping relationship between the node identifier, node resource occupancy rate and balancing dimension identifier.

[0085] Optionally, determining, from the multiple computing nodes, a target computing node for processing the forward message according to the balance dimension identifier and the mapping table of the forward message may specifically include:

[0086] According to the balancing dimension identifier of the forward transmission message and the mapping relationship between the node identifier and the balancing dimension identifier in the mapping table, at least two candidate computing nodes capable of processing the forward transmission message are determined from the multiple computing nodes, and load balancing processing is performed according to the mapping relationship between the node identifier and the node resource occupancy rate in the mapping table to select a target computing node for processing the forward transmission message from the at least two candidate computing nodes.

[0087] Optionally, the method provided by the embodiment of the present application may also include: when the target computing node is a node other than the first computing node, forwarding the forward transmission message to the target computing node according to the identifier of the target computing node in the mapping table, so that the forward transmission message is processed by the BBU instance carried on the target computing node; and, when the target computing node is the first computing node, forwarding the forward transmission message to the BBU instance carried on the first computing node, so that the forward transmission message is processed by the BBU instance.

[0088] Optionally, the same computing node carries multiple BBU instances corresponding to different balancing dimension identifiers, and the mapping table also records the mapping relationship between the instance-related identifiers; in step 62, the forward transmission message is forwarded to the target computing node according to the identifier of the target computing node in the mapping table, which may specifically include: forwarding the forward transmission message to the target computing node according to the identifier of the target computing node in the mapping table and the target instance-related identifier, so that the forward transmission message is processed by the BBU instance corresponding to the target instance-related identifier carried on the target computing node, and the target instance-related identifier is an instance-related identifier corresponding to the identifier of the target computing node and the balancing dimension identifier of the forward transmission message.

[0089] Optionally, the instance-related identifier includes a port number or a virtual network card address.

[0090] Optionally, the equalization dimension identifier includes a cell identifier, a sector identifier or a carrier identifier.

[0091] It should be noted that for the specific method of load balancing of the first computing node, please refer to Figure 3 The relevant description in the illustrated embodiment will not be repeated here.

[0092] The load balancing method provided in the embodiment of the present application intercepts the message entering from the network card of the first computing node, filters out the forward message from the message and determines the balancing dimension identifier of the forward message, performs load balancing processing according to the balancing dimension identifier of the forward message and a mapping table, so as to determine the target computing node for processing the forward message from multiple computing nodes, thereby realizing load balancing among multiple computing nodes by the newly added software on the first computing node, without the need to purchase specially customized load balancer equipment, thereby being able to reduce the cost of load balancing and having high flexibility.

[0093] Figure 7 A schematic diagram of the structure of a load balancing device provided in an embodiment of the present application; Figure 7As shown, this embodiment provides a load balancing device, which can perform the above Figure 6 The load balancing method shown, specifically, the device may include:

[0094] An interception and filtering module 71 is used to intercept messages entering from the network card of the first computing node, filter out the forward transmission messages from the RRU to the BBU from the messages, and determine the balancing dimension identifier of the forward transmission messages;

[0095] The load balancing module 72 is used to perform load balancing processing according to the balancing dimension identifier and mapping table of the forward message to determine the target computing node for processing the forward message from multiple computing nodes. The mapping table records the mapping relationship between the node identifier, the node resource occupancy rate and the balancing dimension identifier.

[0096] Optionally, the load balancing module 72 can be specifically used to: determine at least two candidate computing nodes that can process the forward transmission message from the multiple computing nodes according to the balancing dimension identifier of the forward transmission message and the mapping relationship between the node identifier and the balancing dimension identifier in the mapping table, and perform load balancing processing according to the mapping relationship between the node identifier and the node resource occupancy rate in the mapping table to select a target computing node for processing the forward transmission message from the at least two candidate computing nodes.

[0097] Optionally, the load balancing module 72 can also be used for: when the target computing node is a node other than the first computing node, forwarding the forward transmission message to the target computing node according to the identifier of the target computing node in the mapping table, so that the forward transmission message is processed by the BBU instance carried on the target computing node; and, when the target computing node is the first computing node, forwarding the forward transmission message to the BBU instance carried on the first computing node, so that the forward transmission message is processed by the BBU instance.

[0098] Optionally, the same computing node carries multiple BBU instances corresponding to different balancing dimension identifiers, and the mapping table also records the mapping relationship between the instance-related identifiers; the load balancing module 72 is used to forward the forward message to the target computing node according to the identifier of the target computing node in the mapping table, which may specifically include: forwarding the forward message to the target computing node according to the identifier of the target computing node in the mapping table and the target instance-related identifier, so that the forward message is processed by the BBU instance corresponding to the target instance-related identifier carried on the target computing node, and the target instance-related identifier is an instance-related identifier corresponding to the identifier of the target computing node and the balancing dimension identifier of the forward message.

[0099] Optionally, the instance-related identifier includes a port number or a virtual network card address.

[0100] Optionally, the equalization dimension identifier includes a cell identifier, a sector identifier or a carrier identifier.

[0101] Figure 7 The device shown can perform Figure 6 For the method of the embodiment shown in the figure, the part not described in detail in this embodiment can be referred to Figure 6 The implementation process and technical effects of this technical solution refer to Figure 6 The description in the illustrated embodiment will not be repeated here.

[0102] In one possible implementation, Figure 7 The structure of the device shown can be implemented as a computer device. Figure 8 As shown, the computer device may include: a processor 81 and a memory 82. The memory 82 is used to store information that supports the computer device to execute the above Figure 6 In the illustrated embodiment, a program of the method is provided, and the processor 81 is configured to execute the program stored in the memory 82 .

[0103] The program includes one or more computer instructions, wherein when the one or more computer instructions are executed by the processor 81, the following steps can be implemented:

[0104] Intercepting messages entering from the network card of the first computing node, filtering out forward transmission messages from the RRU to the BBU from the messages, and determining a balancing dimension identifier of the forward transmission message;

[0105] Load balancing is performed according to the balancing dimension identifier of the forward message and a mapping table to determine a target computing node for processing the forward message from multiple computing nodes, wherein the mapping table records a mapping relationship between a node identifier, a node resource occupancy rate, and a balancing dimension identifier.

[0106] Optionally, the processor 81 is also used to execute the aforementioned Figure 6 All or part of the steps in the illustrated embodiments.

[0107] The structure of the computer device may also include a communication interface 83 for the computer device to communicate with other devices or a communication network.

[0108] In addition, the embodiment of the present application further provides a computer program, including computer program instructions, which, when executed by a processor, implement the following Figure 6 The method provided by the illustrated embodiment.

[0109] The present application also provides a computer-readable storage medium having a computer program stored thereon. When the computer program is executed, Figure 6 The method provided by the illustrated embodiment.

[0110] The device embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of this embodiment. Those of ordinary skill in the art may understand and implement it without creative labor.

[0111] Through the description of the above embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by adding a necessary general hardware platform, and of course can also be implemented by combining hardware and software. Based on such an understanding, the above technical solution is essentially or the part that contributes to the prior art can be embodied in the form of a computer product, and the present application can be in the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.

[0112] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable device to generate a machine, so that the instructions executed by the processor of the computer or other programmable device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0113] These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable device to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0114] These computer program instructions may also be loaded onto a computer or other programmable device so that a series of operational steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for executing on the computer or other programmable device to implement the process. Figure 1 A process or multiple processes and / or boxes Figure 1 A step that specifies a function in one or more boxes.

[0115] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.

[0116] The memory may include non-permanent storage in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. The memory is an example of a computer-readable medium.

[0117] Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer readable instructions, linked lists, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include temporary computer readable media (transitory media), such as modulated data signals and carrier waves.

[0118] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit it. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some or all of the technical features therein with equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.

Claims

1. A load balancing system, characterized in that: include: A node manager and multiple computing nodes, wherein the multiple computing nodes are used to carry BBU instances, a first computing node among the multiple computing nodes is used to connect to the RRU, a first kernel state program is running on the first computing node, the first kernel state program has a mapping table, and the mapping table records a mapping relationship between a node identifier, a node resource occupancy rate, and a balancing dimension identifier; The node manager is used to update the mapping table according to the resource occupancy rates of the multiple computing nodes; The first kernel state program is used to intercept messages entering from the network card of the first computing node, filter out the forward transmission messages from the RRU to the BBU from the messages, and determine the balancing dimension identifier of the forward transmission messages; The first kernel state program is also used to perform load balancing processing in the computing node whose balancing dimension identifier in the mapping table is the balancing dimension identifier of the forward transmission message according to the balancing dimension identifier of the forward transmission message and the mapping table, so as to determine the target computing node for processing the forward transmission message.

2. The system according to claim 1, characterized in that The first kernel state program is used to perform load balancing processing in a computing node whose balancing dimension identifier in the mapping table is the balancing dimension identifier of the forward message according to the balancing dimension identifier of the forward message and the mapping table, so as to determine a target computing node for processing the forward message, specifically including: According to the balancing dimension identifier of the forward transmission message and the mapping relationship between the node identifier and the balancing dimension identifier in the mapping table, at least two candidate computing nodes capable of processing the forward transmission message are determined from the multiple computing nodes, and load balancing processing is performed according to the mapping relationship between the node identifier and the node resource occupancy rate in the mapping table to select a target computing node for processing the forward transmission message from the at least two candidate computing nodes.

3. The system according to claim 1, characterized in that The first kernel state program is also used for: When the target computing node is a node other than the first computing node, forwarding the forward message to the target computing node according to the identifier of the target computing node in the mapping table, so that the BBU instance carried by the target computing node processes the forward message; When the target computing node is the first computing node, the forwarding message is forwarded to the BBU instance carried on the first computing node, so that the BBU instance processes the forwarding message.

4. The system according to claim 3, characterized in that The same computing node carries a plurality of BBU instances corresponding to different balancing dimension identifiers, and the mapping table also records a mapping relationship between instance-related identifiers; The first kernel state program forwards the forward transmission message to the target computing node according to the identifier of the target computing node in the mapping table, specifically including: forwarding the forward transmission message to the target computing node according to the identifier of the target computing node and the target instance related identifier in the mapping table, so that the forward transmission message is processed by the BBU instance corresponding to the target instance related identifier carried on the target computing node, and the target instance related identifier is an instance related identifier corresponding to the identifier of the target computing node and the balancing dimension identifier of the forward transmission message.

5. The system according to any one of claims 1 to 4, characterized in that: The node manager is also used to set the load balancing strategy adopted by the first kernel state program when performing load balancing.

6. The system according to any one of claims 1 to 4, characterized in that: The equalization dimension identifier includes a cell identifier, a sector identifier or a carrier identifier.

7. A load balancing method, characterized in that: The method is applied to a load balancing system, wherein the load balancing system includes a plurality of computing nodes, the plurality of computing nodes are used to carry BBU instances, a first computing node among the plurality of computing nodes is used to connect to an RRU, a first kernel state program is run on the first computing node, a mapping table exists in the first kernel state program, a mapping relationship between a node identifier, a node resource occupancy rate, and a balancing dimension identifier is recorded in the mapping table, and the method is executed by the first computing node, including: Intercepting messages entering from the network card of the first computing node, filtering out forward transmission messages from the RRU to the BBU from the messages, and determining a balancing dimension identifier of the forward transmission message; According to the balancing dimension identifier of the forward transmission message and the mapping table, load balancing processing is performed in the computing node whose balancing dimension identifier in the mapping table is the balancing dimension identifier of the forward transmission message to determine the target computing node for processing the forward transmission message.

8. The method according to claim 7, characterized in that The step of performing load balancing processing in a computing node whose balancing dimension identifier in the mapping table is the balancing dimension identifier of the forward message according to the balancing dimension identifier of the forward message to determine a target computing node for processing the forward message includes: According to the balancing dimension identifier of the forward transmission message and the mapping relationship between the node identifier and the balancing dimension identifier in the mapping table, at least two candidate computing nodes capable of processing the forward transmission message are determined from the multiple computing nodes, and load balancing processing is performed according to the mapping relationship between the node identifier and the node resource occupancy rate in the mapping table to select a target computing node for processing the forward transmission message from the at least two candidate computing nodes.

9. The method according to claim 7, characterized in that: The method further comprises: When the target computing node is a node other than the first computing node, forwarding the forward message to the target computing node according to the identifier of the target computing node in the mapping table, so that the BBU instance carried by the target computing node processes the forward message; When the target computing node is the first computing node, the forwarding message is forwarded to the BBU instance carried by the first computing node, so that the BBU instance processes the forwarding message.

10. The method according to claim 9, characterized in that The same computing node carries a plurality of BBU instances corresponding to different balancing dimension identifiers, and the mapping table also records a mapping relationship between instance-related identifiers; The forwarding of the forward message to the target computing node according to the identifier of the target computing node in the mapping table includes: forwarding the forward message to the target computing node according to the identifier of the target computing node and the target instance-related identifier in the mapping table, so that the forward message is processed by the BBU instance corresponding to the target instance-related identifier carried on the target computing node, and the target instance-related identifier is an instance-related identifier corresponding to the identifier of the target computing node and the balancing dimension identifier of the forward message.

11. The method according to any one of claims 7 to 10, characterized in that: The equalization dimension identifier includes a cell identifier, a sector identifier or a carrier identifier.

12. A computer device, characterized in that: include: A memory, a processor; wherein the memory is used to store one or more computer instructions, wherein the one or more computer instructions, when executed by the processor, implement the method as described in any one of claims 7 to 11.

13. A computer program product, characterized in that The method comprises computer program instructions which, when executed by a processor, implement the method according to any one of claims 7 to 11.

14. A computer-readable storage medium, characterized in that: A computer program is stored thereon, and when the computer program is executed, the method according to any one of claims 7 to 11 is implemented.

Citation Information

Patent Citations

  • Load balance equipment, distributed base station system and communication method thereof

    CN101505500A

  • Systems, methods, and devices for handling stickiness of UE-specific ran-CN association

    WO2018085784A1