Equipment allocation method, device and system, computer equipment, readable storage medium and program product
By determining the target pUP based on the idle load of each pUP in the metropolitan area network in the idle load of each pUP in the pUP pool, the problem of idle pUP resources in traditional technology is solved, and the load resource utilization and load balancing are improved.
Patent Information
- Application Number
- CN202510439248.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-09
- Publication Date
- 2025-05-13
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
In metropolitan area networks, the resources between the preset load threshold and the load upper limit of pUP in traditional technology are idle, resulting in a low load resource utilization rate.
The main CP receives the access request of the newly launched terminal device, and based on the idle load of each pUP in the pUP pool, the target pUP with the most idle load is determined from the available pUP, and the access request is sent to the target pUP, so that it can connect to the terminal device.
The load resource utilization rate of pUP is improved, and the resource idleness between the preset load threshold and the load upper limit is avoided, thereby achieving more balanced and efficient load allocation.
Smart Images

Figure CN119996342A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of metropolitan area networks, and in particular to a device allocation method, apparatus, system, computer equipment, computer-readable storage medium, and computer program product. Background Art
[0002] In a metropolitan area network, various terminal devices need to access the network. Moreover, in the access process of terminal devices (such as user equipment), pUP (Physical User Plane) plays a very critical role.
[0003] In traditional technology, when allocating a newly-launched terminal device to a pUP, a preset load threshold of the pUP is usually set in advance. For example, the preset load threshold of a single pUP is 70% of the load upper limit of the pUP. Then, the terminal device is allocated to the pUP that has not reached the preset load threshold. However, the resources between the preset load threshold of the pUP and the load upper limit of the pUP are always idle, that is, the load resources of the pUP cannot be used to the maximum extent, resulting in a low utilization rate of the load resources of the pUP. Summary of the invention
[0004] Based on this, it is necessary to provide a device allocation method, apparatus, system, computer equipment, computer-readable storage medium and computer program product that can improve the load resource utilization of pUP in response to the above technical problems.
[0005] In a first aspect, the present application provides a device allocation method, which is applied to a primary CP, comprising:
[0006] Receive access requests from newly online terminal devices;
[0007] According to the access request, a target pUP with the largest idle load is determined from the available pUPs in the pUP pool; the available pUP is used to indicate that the corresponding pUP state is an available pUP;
[0008] The access request is sent to the target pUP, so that the target pUP connects to the terminal device based on the access request.
[0009] In one embodiment, determining the target pUP with the most idle load from the available pUPs in the pUP pool according to the access request includes:
[0010] According to the access request, obtaining the idle load of the available pUP in the pUP pool from the stored pUP pool idle load;
[0011] According to the idle loads of the available pUPs, a pUP with the largest idle load is determined from the available pUPs as the target pUP.
[0012] In one embodiment, before receiving an access request from a newly online terminal device, the method further includes:
[0013] Receiving the idle load reported by each pUP in the pUP pool;
[0014] Summarizing the idle loads of the pUPs to obtain the pUP pool idle load;
[0015] The pUP pool idle load is stored.
[0016] In one of the embodiments, after sending the access request to the target pUP, the method further comprises:
[0017] In the case where it is detected that the target pUP is unavailable, determining a first pUP with the largest idle load from the available pUPs other than the target pUP in the pUP pool;
[0018] The access request is sent to the first pUP, so that the first pUP connects to the terminal device based on the access request.
[0019] In one of the embodiments, when it is detected that the target pUP is unavailable, before determining the first pUP with the largest idle load from the available pUPs other than the target pUP in the pUP pool, the method further includes:
[0020] Upon receiving a notification message returned by the target pUP based on the access request, and the notification message indicates that the target pUP cannot connect to the terminal device, confirming that the target pUP is unavailable;
[0021] or,
[0022] If, after a preset time period, no notification message returned by the target pUP based on the access request is received, it is determined that the target pUP is unavailable.
[0023] In one embodiment, the method further comprises:
[0024] When a terminal device connected to a pUP in the pUP pool is offline, obtaining a difference between idle loads of each pUP in the pUP pool;
[0025] In the case where it is determined to reallocate the online terminal devices connected to the pUPs in the pUP pool according to the difference, a second pUP with the least idle load and a third pUP with the most idle load are determined from the pUP pool according to the idle load of each pUP in the pUP pool;
[0026] The online terminal device to be migrated in the second pUP is migrated to the third pUP, so that the third pUP is connected to the online terminal device to be migrated.
[0027] In one of the embodiments, after obtaining the difference between the idle loads of the pUPs in the pUP pool, the method further includes:
[0028] When the difference satisfies the first preset condition, obtaining the change of the idle load of each pUP in the current time period;
[0029] When the change situation satisfies the second preset condition, it is determined to reallocate the terminal devices connected to the pUPs in the pUP pool.
[0030] In one embodiment, the method further comprises:
[0031] In the case where there is a faulty pUP in the pUP pool, online terminal devices connected to the faulty pUP are migrated to the remaining available pUPs in the pUP pool, and new online terminal devices are allocated to the remaining available pUPs in the pUP pool.
[0032] In one embodiment, the method further comprises:
[0033] Synchronize the idle load of each pUP in the pUP pool to the backup CP associated with the main CP;
[0034] In the case that the main CP fails, it is requested to switch the standby CP to a new main CP, and to switch the main CP to a new standby CP.
[0035] In one embodiment, the method further comprises:
[0036] Storing the backup information of the idle load of each pUP in the pUP pool in the idle load backup middleware;
[0037] When the main CP and the backup CP associated with the main CP fail and restart, the backup information of the idle load of each pUP is obtained from the idle load backup middleware; the backup CP is also used to obtain the backup information of the idle load of each pUP from the idle load backup middleware.
[0038] In a second aspect, the present application further provides a device allocation apparatus, applied to a primary CP, comprising:
[0039] A request receiving module, used to receive access requests from newly online terminal devices;
[0040] A pUP determination module is used to determine the target pUP with the most idle load from the available pUPs in the pUP pool according to the access request; the available pUP is used to indicate that the corresponding pUP state is an available pUP;
[0041] The request sending module is used to send the access request to the target pUP, so that the target pUP connects to the terminal device based on the access request.
[0042] In a third aspect, the present application further provides a device allocation system, including: a pUP pool, a main CP, a backup CP, and an idle load backup middleware; the main CP is used to execute the method described in any embodiment of the first aspect;
[0043] The pUP pool includes a plurality of pUPs, each of which includes a pUP idle load calculation module, a pUP idle load reporting request module, a pUP idle load query receiving module, a user allocation receiving module and a user migration receiving module;
[0044] The master CP includes a pUP idle load reporting receiving module, a pUP idle load querying request module, a pUP pool idle load summary calculation module, a pUP pool idle load storage module, a pUP pool idle load backup request module, a pUP pool idle load backup request module, a pUP pool idle load backup receiving module, a user access request receiving module, a user distribution module, a user migration calculation module, a user migration module, and a synchronization pUP pool idle load module;
[0045] The standby CP includes a pUP idle load reporting receiving module, a pUP idle load querying request module, a pUP pool idle load summary calculation module, a pUP pool idle load storage module, a pUP pool idle load backup request module, a pUP pool idle load backup request module, a pUP pool idle load backup receiving module, a user access request receiving module, a user distribution module, a user migration calculation module, a user migration module and a synchronization pUP pool idle load receiving module;
[0046] The idle load backup middleware includes a pUP pool idle load backup receiving module, a pUP pool idle load backup storage module, a pUP pool idle load backup sending module and a pUP pool idle load backup receiving module for restoring.
[0047] In a fourth aspect, the present application further provides a computer device, comprising a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the following steps are implemented:
[0048] Receive access requests from newly online terminal devices;
[0049] According to the access request, a target pUP with the largest idle load is determined from the available pUPs in the pUP pool; the available pUP is used to indicate that the corresponding pUP state is an available pUP;
[0050] The access request is sent to the target pUP, so that the target pUP connects to the terminal device based on the access request.
[0051] In a fifth aspect, the present application further provides a computer-readable storage medium having a computer program stored thereon, wherein when the computer program is executed by a processor, the following steps are implemented:
[0052] Receive access requests from newly online terminal devices;
[0053] According to the access request, a target pUP with the largest idle load is determined from the available pUPs in the pUP pool; the available pUP is used to indicate that the corresponding pUP state is an available pUP;
[0054] The access request is sent to the target pUP, so that the target pUP connects to the terminal device based on the access request.
[0055] In a sixth aspect, the present application further provides a computer program product, including a computer program, which implements the following steps when executed by a processor:
[0056] Receive access requests from newly online terminal devices;
[0057] According to the access request, a target pUP with the largest idle load is determined from the available pUPs in the pUP pool; the available pUP is used to indicate that the corresponding pUP state is an available pUP;
[0058] The access request is sent to the target pUP, so that the target pUP connects to the terminal device based on the access request.
[0059] The above-mentioned device allocation method, apparatus, system, computer device, computer-readable storage medium and computer program product receive the access request of the newly online terminal device through the main CP, then determine the target pUP with the most idle load from the available pUPs in the pUP pool according to the access request, and finally send the access request to the target pUP, so that the target pUP connects to the terminal device based on the access request. In this way, when allocating the newly online terminal device to the pUP, the main CP sends the access request of the newly online terminal device to the target pUP with the most idle load determined from the available pUPs in the pUP pool according to the idle load of each pUP in the pUP pool, so as to connect the newly online terminal device through the target pUP. Since each pUP in the pUP pool does not set a preset load threshold, it can ensure that each pUP will try its best to serve, and there will be no redundant load capacity, which is conducive to maximizing the use of the load resources of each pUP, thereby improving the load resource utilization of the pUP, and at the same time avoids the problem that the load resources between the preset load threshold of the pUP and the load upper limit of the pUP are always idle, and the load resources of the pUP cannot be maximized, resulting in a low load resource utilization of the pUP. BRIEF DESCRIPTION OF THE DRAWINGS
[0060] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the drawings required for use in the embodiments of the present application or related technical descriptions 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 related drawings can be obtained based on these drawings without paying creative work.
[0061] Figure 1 An application environment diagram of a device allocation method in an embodiment;
[0062] Figure 2 A schematic diagram of a flow chart of a device allocation method in one embodiment;
[0063] Figure 3 A schematic diagram of achieving more balanced load balancing for newly online terminal devices in one embodiment;
[0064] Figure 4 A schematic diagram of maximizing the use of load resources in a pUP pool in one embodiment;
[0065] Figure 5 A schematic diagram of implementing re-load balancing when a portion of terminal devices are offline resulting in an unbalanced load on online terminal devices in one embodiment;
[0066] Figure 6 A schematic diagram of implementing load balancing between newly online terminal devices and online terminal devices when a pUP fails in one embodiment;
[0067] Figure 7 A schematic diagram of ensuring load balancing between newly online terminal devices and online terminal devices when a main CP fails in one embodiment;
[0068] Figure 8 A schematic diagram of ensuring rapid recovery of load balancing of newly online terminal devices and online terminal devices when both the main CP and the backup CP fail and are restarted in one embodiment;
[0069] Fig. 9 A schematic flow chart of a device allocation method in another embodiment;
[0070] Fig.10 It is a structural block diagram of a device for balancing user load in a pUP pool of a vBRAS in one embodiment;
[0071] Fig.11 It is a structural block diagram of an apparatus for balancing user load in a pUP pool of a vBRAS in another embodiment;
[0072] Fig.12 It is a structural block diagram of a device allocation apparatus in one embodiment;
[0073] Fig.13 FIG. 4 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION
[0074] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0075] In the conventional technology, when allocating PPP resources, a preset threshold of the load of the BRAS device is generally set in advance, which will result in all available virtual BRASs being allowed to establish PPPoE sessions with user devices before the preset threshold is reached, thereby causing load imbalance; at the same time, the resources between the preset threshold and the upper limit of the network device load are always idle, and the load resources of the network device cannot be used to the maximum extent. Based on this, the present application proposes a device allocation method that can maximize the use of the load resources of the PPP pool, thereby improving the load resource utilization of the PPP.
[0076] In order to more clearly explain the device allocation method provided in the embodiment of the present application, some terms are explained as follows:
[0077] BRAS (Broadband Remote Access Server): Mainly responsible for user management and billing.
[0078] vBRAS (Virtualized Broadband Remote Access Server) is a network device based on virtualization technology, used to provide broadband access services. Compared with traditional physical BRAS, vBRAS achieves higher flexibility, scalability and resource utilization through software-defined networking (SDN) and network function virtualization (NFV) technologies.
[0079] CP (Control Plane): Responsible for processing signaling, user management, session management, policy control and other functions. The control plane mainly handles tasks related to network management and control, such as user authentication, authorization, billing, routing selection, etc. Usually, the active-standby CP architecture is adopted to ensure the high availability and fault recovery capability of the system.
[0080] UP (User Plane): Responsible for handling data forwarding and transmission tasks. The user plane mainly handles the forwarding of user data packets to ensure efficient transmission of data in the network. The user plane usually requires high-performance processing capabilities to support large-scale data traffic. The user plane is usually divided into pUP and vUP (Virtual User Plane).
[0081] pUP (Physical User Plane): The physical user plane refers to the user plane function deployed on the physical BRAS device; the physical device plays the UP role. pUP has the characteristics of strong forwarding performance and can be used to handle services with high traffic requirements such as broadband Internet access and IPTV (Internet Protocol Television); it is suitable for data processing scenarios that require high performance and low latency.
[0082] pUP pool (Physical User Plane Pool): is a collection of pUPs used to manage and allocate physical user plane resources. The pUP pool can manage multiple pUPs more flexibly to ensure efficient processing and forwarding of user data traffic. The pUP pool can dynamically allocate pUP resources according to network requirements to ensure that each user device has an available pUP. The pUP pool can quickly migrate users between pUPs. When a user device goes offline, the pUP pool will recycle the pUP resources so that they can be used by other user devices. By reasonably allocating pUP resources, traffic load balancing can be achieved and the overall performance and stability of the network can be improved. If a pUP fails, the pUP pool can quickly switch to other available pUPs to reduce the impact on users.
[0083] CU channel (Tunnel Of Control Plane And User Plane, CU channel): The communication channel between the control plane and the forwarding plane. There are three types of communication channels: Management channel, using NETCONF (Network Configuration Protocol) connection as the management channel between CP and UP, to enable CP to query data from UP, issue configurations, and other functions. For example, create sub-interfaces, issue BRAS service configurations, etc. Control channel, using CUSP (Control- / User-plane Separation Protocol) channel as the control channel between CP and UP, to implement service entry issuance, query, and interface resource information reporting functions. Protocol channel, using GPE (Generic Protocol Extension) type VXLAN (Virtual Extensible Local Area Network) tunnel as the protocol channel between CP and UP, to implement protocol message interaction such as DHCP (Dynamic Host Configuration Protocol), ARP (Address Resolution Protocol), PPPoE (Point-to-Point Protocol over Ethernet). A VXLAN GPE (VXLAN General Protocol Extension) tunnel is an extended VXLAN tunnel that can carry more abundant information in the VXLAN header, such as port type, port number, and VLAN (Virtual Local Area Network) information, so that the CP can complete tasks such as user legitimacy verification and IP (Internet Protocol) address allocation based on this information.
[0084] Primary Control Plane (CP): The primary CP is the main node responsible for handling all control plane tasks. It has functions such as management signaling, user management, session management, and policy control. Under normal operation, all control plane requests and operations are handled by the primary CP. The primary CP usually performs heartbeat detection and status synchronization with the standby CP to ensure that the standby CP can quickly take over when the primary CP fails.
[0085] Backup CP (Backup Control Plane): The backup CP is the backup node of the main CP and is used to take over its functions when the main CP fails. Under normal operation, the backup CP is on standby and does not handle actual control plane tasks, but it will continuously monitor the status of the main CP and keep data synchronized with the main CP. Regarding failover, when the main CP fails or its performance degrades, the backup CP will automatically take over the functions of the main CP to ensure service continuity and stability.
[0086] PPPoE (Point-to-Point Protocol over Ethernet): It works at the link layer and provides functions such as access of multiple remote user hosts and data transmission billing.
[0087] PADI (PPPoE Active Discovery Initiation): This message contains information about the type of service the user wants to obtain.
[0088] PADO (PPPoE Active Discovery Offer): After receiving this initialization message, all PPPoE servers in the Ethernet compare the requested service with the services they can provide. The PPPoE server that can provide this service to the PPPoE Client will respond to this message.
[0089] PADR (PPPoE Active Discovery Request): The PPPoE Client encapsulates the required service information in the PADR message.
[0090] PADS (PPPoE Active Discovery Session-confirmation): After receiving the PADR message, the selected PPPoE Server will generate a unique session identifier to identify the PPPoE session between it and the PPPoE Client, and include this specific session identifier in this message to respond to the PPPoE Client.
[0091] The device allocation method provided in the embodiment of the present application can be applied to Figure 1In the application environment shown. The main CP 101 is connected to the idle load backup middleware 102, the standby CP 103, the terminal device 105 and each pUP in the pUP pool 104 respectively, and the terminal device 105 is also connected to the pUP in the pUP pool 104; the pUP pool includes multiple pUPs, such as pUP1, pUP2...pUPn. Specifically, refer to Figure 1 , the newly online terminal device 105 sends an access request to the main CP 101; the main CP 101 determines the target pUP with the most idle load from the available pUPs in the pUP pool 104 according to the access request, and sends the access request to the target pUP; the target pUP connects to the terminal device 105 based on the access request. In addition, when the main CP 101 fails, the main CP 101 can switch to the standby CP 103; when the main CP 101 and the standby CP 103 fail and are restarted, the main CP 101 obtains the backup information of the idle load of each pUP from the idle load backup middleware 102, or the standby CP 103 obtains the backup information of the idle load of each pUP from the idle load backup middleware 102.
[0092] Among them, the main CP101 is the main node responsible for processing all control plane tasks, and has functions such as management signaling, user management, session management, and policy control. The idle load backup middleware 102 refers to the middleware that stores the backup information of the idle load of each pUP in the pUP pool 104. The backup CP103 is the backup node of the main CP101, which is used to take over its function when the main CP101 fails. pUP refers to the user plane function deployed on the physical BRAS device, and the physical device plays the UP role. The terminal device 105 can be, but is not limited to, various personal computers, laptops, smart phones, tablet computers, etc.
[0093] In an exemplary embodiment, Figure 2 As shown, a device allocation method is provided, which is applied to Figure 1 Taking the main CP in the example as an example, the method includes the following steps S201 to S203. Among them:
[0094] Step S201: receiving an access request from a newly online terminal device.
[0095] Among them, the newly online terminal device is used to represent the newly online user equipment; the newly online terminal device needs to be connected to the pUP so as to provide the newly online terminal device with processing services for large traffic demand services such as broadband Internet access and IPTV through the pUP.
[0096] The access request refers to a PADI message.
[0097] Exemplarily, each newly online terminal device sends an access request to the main CP, and the main CP receives the access request of each newly online terminal device.
[0098] Step S202: According to the access request, a target pUP with the largest idle load is determined from the available pUPs in the pUP pool.
[0099] The pUP pool includes multiple pUPs, such as pUP1, pUP2, ..., pUPn.
[0100] The idle load includes whether the pUP state is normal and available, whether the pUP is reachable from the main CP, the idle bandwidth capacity of the pUP link, the latency of the pUP link, the idle capacity of the number of access users of the pUP, the number of idle CPU cores of the pUP, the idle CPU usage rate of the pUP, the idle capacity of the pUP memory, the idle usage rate of the pUP memory, the idle capacity of the pUP disk, the idle usage rate of the pUP disk, etc. In actual scenarios, the idle load can also refer to the idle load capacity.
[0101] The target pUP refers to the pUP with the largest idle load among the available pUPs in the pUP pool, specifically, the pUP with the largest idle load capacity among the available pUPs in the pUP pool.
[0102] Exemplarily, the main CP determines the pUP with the largest idle load (eg, idle load capacity) from the available pUPs in the pUP pool according to the access request of the newly online terminal device as the target pUP.
[0103] Step S203: Send the access request to the target pUP, so that the target pUP connects to the terminal device based on the access request.
[0104] It should be noted that in traditional technology, when allocating newly-launched terminal devices to pUPs, a preset load threshold of the pUP is usually set in advance. For example, the preset load threshold of a single pUP (such as 1000) is 70% of the load upper limit of the pUP (such as 1428). Then, based on whether the preset load threshold is reached, available pUPs and unavailable pUPs are distinguished. Finally, the terminal device is allocated to an available pUP that has not reached the preset load threshold. In other words, each time a newly-launched terminal device is allocated, it is allocated to the currently available pUP, which only ensures that the pUP that has reached the preset load threshold can no longer participate in the allocation of newly-launched terminal devices, so there is a load imbalance. When a high load exceeding the preset load threshold occurs, the pUP will not be able to load users exceeding the preset load threshold; at the same time, because the preset load threshold will not be set to 100% of the pUP's load upper limit, otherwise the pUP with a large load and the pUP with a small load will be equally determined as available pUPs, which will cause their loads to be more unbalanced. For example, the pUP with a load of 90% and the pUP with a load of 9% will both be determined as available pUPs, and the load will continue to be equally distributed to the two, but it will obviously be unbalanced, so the resources between the preset load threshold and the pUP's load upper limit are always idle, that is, the pUP's load resources cannot be used to the maximum extent. In this application, the main CP sends the connection request of each newly online terminal device to the target pUP with the most idle load in the pUP pool, so that the target pUP connects to the newly online terminal device based on the access request. Since the preset load threshold is not set for each pUP in the pUP pool, it can be guaranteed that each pUP will do its best to serve, and there will be no redundant load capacity, which is conducive to maximizing the use of each pUP's load resources, thereby improving the pUP's load resource utilization.
[0105] It should be noted that the main CP sends the connection request of each newly online terminal device to the target pUP with the most idle load in the pUP pool in a cycle; for example, after step S203, the main CP updates the idle load of each pUP in the pUP pool and jumps to step S201; in this way, not only can the load resources of each pUP in the pUP pool be used to the maximum extent, but also the load of the terminal devices connected to each pUP in the pUP pool can be balanced.
[0106] Exemplarily, the main CP sends the access request (i.e., PADI message) of the newly online terminal device to the target pUP; the target pUP receives the PADI message of the terminal device, sends a PADO message to the terminal device, and reports a notification message to the main CP to notify the main CP that the target pUP has accepted the allocation of access to the terminal device. Then, the terminal device receives the PADO message from the target pUP and sends a PADR message to the target pUP. The target pUP receives the PADR message from the terminal device and sends a PADS message to the terminal device. Finally, the terminal device and the target pUP enter the PPP (Point-to-Point Protocol) session phase and complete the terminal device online, that is, the user goes online.
[0107] For example, see Fig.10 When allocating each new online user to the pUP, the main CP calls the user access request receiving module and receives the PADI message of the user equipment (i.e., the terminal device); the main CP calls the pUP pool idle load storage module to find the pUP with the most idle load; the main CP calls the allocated user sending module to forward the PADI message of the user equipment to the pUP. The pUP calls the allocated user receiving module, receives the PADI message of the user equipment, and sends a PADO message to the user equipment. At the same time, the pUP can also report a notification message to the main CP to inform the main CP that the pUP has accepted the allocation of access to the user equipment, or cannot accept the allocation of access to the user equipment. The user equipment sends a PADR message to the pUP. The pUP sends a PADS message to the user equipment. The user equipment and the pUP enter the PPP session stage, and then complete the user online.
[0108] refer to Figure 3 At time point t1, the number of online terminal devices connected to pUP1, pUP2 and pUP3 is 70, 80 and 90 respectively; when the number of newly online terminal devices is 300, the newly online terminal devices are first allocated to pUP1, and when the number of online terminal devices connected to pUP1 reaches 80, the newly online terminal devices are allocated to any one of pUP1 and pUP2, such as pUP2, and so on. At time point t2, the number of online terminal devices connected to pUP1, pUP2 and pUP3 is 180, 180 and 180 respectively. In this way, each time a newly online terminal device is allocated, it is allocated to the pUP with the largest current idle load, so a more balanced load balancing of the newly online terminal devices can be achieved.
[0109] refer to Figure 4, assuming that the load limit of a single pUP (such as pUP1, pUP2 and pUP3) is 1428; at time point t1, the number of online terminal devices connected to pUP1, pUP2 and pUP3 is 70, 80 and 90 respectively; when the number of newly online terminal devices is 4284, the newly online terminal devices are first allocated to pUP1, and when the number of online terminal devices connected to pUP1 reaches 80, the newly online terminal devices are allocated to any one of pUP1 and pUP2, such as pUP2, and so on. At time point t2, the number of online terminal devices connected to pUP1, pUP2 and pUP3 is 1428, 1428 and 1428 respectively. In this way, there is no preset pUP load limit, but the availability of pUP is determined based on the idle load reported by pUP itself and the communication status between the main CP and pUP, so the load resources of each pUP can be maximized, that is, the load resources of the pUP pool can be maximized.
[0110] In the above device allocation method, the main CP receives the access request of the newly online terminal device, and then determines the target pUP with the most idle load from the available pUPs in the pUP pool according to the access request, and finally sends the access request to the target pUP, so that the target pUP connects to the terminal device based on the access request. In this way, when allocating the newly online terminal device to the pUP, the main CP sends the access request of the newly online terminal device to the target pUP with the most idle load determined from the available pUPs in the pUP pool according to the idle load of each pUP in the pUP pool, so as to connect the newly online terminal device through the target pUP. Since each pUP in the pUP pool does not set a preset load threshold, it can be ensured that each pUP will try its best to serve, and there will be no redundant load capacity, which is conducive to maximizing the use of the load resources of each pUP, thereby improving the load resource utilization of the pUP, and at the same time avoids the problem that the load resources between the preset load threshold of the pUP and the load upper limit of the pUP are always idle, and the load resources of the pUP cannot be used to the maximum extent, resulting in a low load resource utilization of the pUP.
[0111] In an exemplary embodiment, the above step S202, based on the access request, determines the target pUP with the most idle load from the available pUPs in the pUP pool, and specifically includes the following contents: based on the access request, obtains the idle load of the available pUPs in the pUP pool from the stored idle load of the pUP pool; the available pUP is used to indicate that the corresponding pUP state is an available pUP; based on the idle load of the available pUPs, determines the pUP with the most idle load from the available pUPs as the target pUP.
[0112] The pUP pool idle load includes the idle load of each pUP in the pUP pool.
[0113] The available pUP refers to a pUP whose corresponding pUP status is normally available.
[0114] The target pUP refers to the pUP with the largest idle load among the available pUPs, specifically, the pUP with the largest idle load capacity among the available pUPs.
[0115] Exemplarily, the main CP obtains the idle load of each pUP in the pUP pool from the stored idle load of the pUP pool according to the access request, and selects the pUP with the corresponding pUP status as normal and available from each pUP according to the pUP status in the idle load of each pUP, as the available pUP, and finally determines the pUP with the largest idle load (such as idle load capacity) from the available pUPs according to the idle load of the available pUPs as the target pUP.
[0116] For example, see Fig.10 The main CP calls the user access request receiving module and receives the PADI message from the user equipment (ie, the terminal equipment); the main CP calls the pUP pool idle load storage module and determines the pUP with the most idle load from the available pUPs in the pUP pool as the target pUP.
[0117] In this embodiment, based on the access request, the idle load of the available pUPs in the pUP pool is obtained from the stored idle load of the pUP pool, and then based on the idle load of the available pUPs, the target pUP with the largest idle load is determined from the available pUPs, so as to facilitate the subsequent allocation of the newly online terminal devices to the target pUP. This can ensure that each pUP in the pUP pool will do its best to serve, and there will be no redundant load capacity, which is conducive to maximizing the use of the load resources of each pUP, thereby improving the load resource utilization of the pUP.
[0118] In an exemplary embodiment, the above step S201, before receiving the access request of the newly online terminal device, also includes the following contents: receiving the idle load reported by each pUP in the pUP pool; aggregating the idle load of each pUP to obtain the pUP pool idle load; storing the pUP pool idle load.
[0119] Among them, the pUP pool idle load can be stored using an ordered list, and the arrangement is based on the pUP idle load (such as idle load capacity). The main CP only needs to directly access the first or last item in the ordered list to find the pUP with the most idle load, which helps the main CP to quickly find the pUP with the most idle load. In addition, the pUP pool idle load can also be stored in memory, which helps the main CP to quickly find the pUP with the most idle load.
[0120] Exemplarily, each pUP in the pUP pool actively reports the idle load calculated by it to the main CP, or the main CP sends an idle load query request to each pUP in the pUP pool, and each pUP reports the idle load calculated by it to the main CP according to the idle load query request. The main CP receives the idle load reported by each pUP in the pUP pool, summarizes the idle load of each pUP, obtains the idle load of the pUP pool, and finally stores the idle load of the pUP pool, such as storing it in an ordered list, or storing it in memory.
[0121] For example, see Fig.10 , based on a certain time interval or at any time point, pUP calls the pUP idle load calculation module to obtain the pUP idle load, and then calls the pUP idle load reporting request module to request that the pUP idle load be reported to the main CP. Alternatively, the main CP calls the pUP idle load query request module based on a certain time interval or at any time point, and sends it to the pUP idle load query receiving module of the pUP. pUP calls the pUP idle load calculation module to obtain the pUP idle load, and calls the pUP idle load reporting request module to request that the pUP idle load be reported to the main CP. Then, the main CP calls the pUP idle load reporting receiving module to receive the pUP idle load of each pUP. The main CP calls the pUP pool idle load calculation module to calculate the pUP pool idle load. The main CP calls the pUP pool idle load storage module to complete the pUP pool idle load storage.
[0122] In this embodiment, the idle load reported by each pUP in the pUP pool is first received, and then the idle load of each pUP is summarized to obtain the idle load of the pUP pool, and finally the idle load of the pUP pool is stored, which is beneficial for the subsequent main CP to quickly find the target pUP with the most idle load from the pUP pool according to the idle load of the pUP pool.
[0123] In an exemplary embodiment, the above step S203, after sending the access request to the target pUP, also includes the following content: when it is detected that the target pUP is unavailable, determine the first pUP with the largest idle load from the available pUPs in the pUP pool except the target pUP; send the access request to the first pUP, so that the first pUP connects to the terminal device based on the access request.
[0124] Among them, the target pUP is unavailable means that the main CP receives a notification message returned by the target pUP based on the access request, and the notification message indicates that the target pUP cannot connect to the terminal device, or, after a preset time period, the main CP does not receive a notification message returned by the target pUP based on the access request.
[0125] The first pUP refers to the pUP with the largest idle load (eg, idle load capacity) among the available pUPs other than the target pUP in the pUP pool.
[0126] Exemplarily, after sending the access request to the target pUP, the main CP may also detect whether the target pUP is available. If it is detected that the target pUP is unavailable, the main CP determines the pUP with the largest idle load (such as idle load capacity) from the available pUPs in the pUP pool other than the target pUP as the first pUP, and sends the access request to the first pUP, so that the first pUP connects to the newly online terminal device based on the access request.
[0127] In this embodiment, when it is detected that the target pUP is unavailable, the first pUP with the largest idle load is determined from the available pUPs other than the target pUP in the pUP pool, and an access request is sent to the first pUP, so that the first pUP connects to the terminal device based on the access request, thereby ensuring that the terminal device can successfully connect to the available pUP when the target pUP is unavailable.
[0128] In an exemplary embodiment, when it is detected that the target pUP is unavailable, before determining the first pUP with the largest idle load from the available pUPs other than the target pUP in the pUP pool, it also includes the following contents: when a notification message returned by the target pUP based on the access request is received, and the notification message indicates that the target pUP cannot connect to the terminal device, confirming that the target pUP is unavailable; or, when no notification message returned by the target pUP based on the access request is received after a preset time period, confirming that the target pUP is unavailable.
[0129] Among them, the notification message refers to the message returned by the target pUP to the main CP based on the access request, which is used to indicate that the target pUP has accepted the allocation of access to the terminal device, or cannot accept the allocation of access to the terminal device; the notification message carries the idle load of the target pUP.
[0130] Among them, the preset time period can be adjusted according to actual conditions and is not limited in this application.
[0131] Exemplarily, the main CP receives a notification message returned by the target pUP based on the access request, and recognizes that the notification message indicates that the target pUP cannot connect to the terminal device, and then confirms that the target pUP is unavailable. Alternatively, the main CP does not receive a notification message returned by the target pUP based on the access request after a preset time period, and then confirms that the target pUP is unavailable.
[0132] For example, see Fig.10If the notification message reported by the target pUP informs the main CP that the pUP cannot accept the allocation of access to the user equipment, or the main CP does not receive the notification message of the pUP after a certain time limit, then the main CP calls the module for summarizing and calculating the pUP pool idle load, marks the "whether the pUP status is normal and available" in the pUP idle load of the pUP as unavailable, and then returns to the step of "the main CP calls the pUP pool idle load storage module, finds the pUP with the most idle load, calls the user allocation sending module, and forwards the PADI message of the user equipment to the pUP".
[0133] In this embodiment, when a notification message returned by the target pUP based on the access request is received and the notification message indicates that the target pUP cannot connect to the terminal device, the target pUP is confirmed to be unavailable; or, after a preset time period, when no notification message returned by the target pUP based on the access request is received, the target pUP is confirmed to be unavailable; in this way, the notification message is helpful to accurately determine whether the target pUP is available, so that when the target pUP is unavailable, the newly online terminal device can be allocated to the re-determined target pUP with the most idle load.
[0134] In an exemplary embodiment, the device allocation method provided by the present application also includes a processing step when a terminal device connected to a pUP in a pUP pool goes offline, specifically including the following contents: when a terminal device connected to a pUP in a pUP pool goes offline, obtaining the difference between the idle loads of each pUP in the pUP pool; when determining to reallocate the online terminal devices connected to the pUP in the pUP pool based on the difference, determining a second pUP with the least idle load and a third pUP with the most idle load from the pUP pool based on the idle loads of each pUP in the pUP pool; migrating the online terminal devices to be migrated in the second pUP to the third pUP, so that the third pUP is connected to the online terminal devices to be migrated.
[0135] Among them, if the difference between the idle loads of each pUP in the pUP pool is small, there is no need to reallocate the online terminal devices connected to the pUPs in the pUP pool. If the difference is large, the online terminal devices connected to the pUPs in the pUP pool need to be reallocated.
[0136] The second pUP refers to the pUP with the least idle load (such as idle load capacity) in the pUP pool; the third pUP refers to the pUP with the most idle load (such as idle load capacity) in the pUP pool.
[0137] The online terminal device to be migrated in the second pUP refers to the online terminal device that needs to be migrated out of the second pUP.
[0138] Exemplarily, when some of the terminal devices connected to the pUP in the pUP pool go offline, the main CP obtains the difference between the idle loads of each pUP in the pUP pool; based on the difference, it determines whether it is necessary to reallocate the online terminal devices connected to the pUP in the pUP pool; if so, based on the idle load of each pUP in the pUP pool, the second pUP with the least idle load and the third pUP with the most idle load are determined from the pUP pool; finally, the online terminal devices to be migrated in the second pUP are migrated to the third pUP, so that the third pUP is connected to the online terminal devices to be migrated.
[0139] For example, when some users go offline, resulting in an unbalanced load of online users, the main CP calls the pUP pool idle load storage module to obtain the pUP pool idle load. The main CP calls the user migration calculation module to determine whether it is necessary to re-balance the load of online users. If so, the main CP calls the user migration calculation module to calculate the pUP with less pUP idle load as the pUP that needs to migrate out online users; the pUP with more pUP idle load is calculated as the pUP that needs to migrate in online users. The main CP uses the existing user session management capabilities of the vBRAS to obtain the online users to be migrated in the pUP that needs to migrate out online users; the main CP calls the user migration calculation module to calculate the pUP that receives the online users to be migrated. The main CP calls the user migration delivery module, which uses the existing vBRAS capability to quickly migrate users between pUPs in the pUP pool. The pUP that needs to migrate in online users calls the user migration receiving module, which uses the existing vBRAS capability to quickly migrate users between pUPs in the pUP pool, and then completes the migration of online users to this pUP.
[0140] refer to Figure 5 At time point t1, the number of online terminal devices connected to pUP1, pUP2 and pUP3 is 300, 300 and 300 respectively; at time point t2, 100, 150 and 200 online terminal devices connected to pUP1, pUP2 and pUP3 are offline respectively, that is, at time point t2, the number of online terminal devices connected to pUP1, pUP2 and pUP3 is 200, 150 and 100 respectively. At this time, some online terminal devices connected to pUP1 (for example, 50) will be migrated to pUP3, then at time point t3, the number of online terminal devices connected to pUP1, pUP2 and pUP3 is 150, 150 and 150 respectively. In this way, the effect of re-load balancing is achieved when some users go offline, resulting in an unbalanced load of online users.
[0141] In this embodiment, when a terminal device connected to a pUP in a pUP pool goes offline, and according to the difference between the idle loads of each pUP in the pUP pool, it is determined to reallocate the online terminal devices connected to the pUP in the pUP pool, the second pUP with the least idle load and the third pUP with the most idle load are determined from the pUP pool according to the idle loads of each pUP in the pUP pool, and the online terminal devices to be migrated in the second pUP are migrated to the third pUP, so that the third pUP is connected to the online terminal devices to be migrated. In this way, the effect of re-load balancing is achieved when the terminal devices connected to the pUP in the pUP pool go offline, resulting in load imbalance.
[0142] In an exemplary embodiment, after obtaining the difference between the idle loads of each pUP in the pUP pool, it also includes the following contents: when the difference meets the first preset condition, obtaining the change of the idle load of each pUP in the current time period; when the change meets the second preset condition, determining to reallocate the terminal devices connected to the pUP in the pUP pool.
[0143] The difference situation satisfies the first preset condition, which means that the difference situation is greater than the first preset threshold, specifically, the difference situation is relatively large.
[0144] The change situation satisfies the second preset condition, which means that the change situation is less than the second preset threshold, specifically, the change situation is small.
[0145] Exemplarily, the main CP determines whether the difference situation satisfies a first preset condition, and if the difference situation satisfies the first preset condition, obtains the change of the idle load of each pUP in the current time period, and determines whether the change situation satisfies a second preset condition, and if the change situation satisfies the second preset condition, determines to reallocate the terminal devices connected to the pUPs in the pUP pool. In addition, if the change situation does not satisfy the second preset condition, it is determined that the terminal devices connected to the pUPs in the pUP pool do not need to be reallocated.
[0146] For example, see Fig.10, the main CP calls the user migration calculation module based on a certain time interval or at any time point, and calculates the difference in the pUP idle load of each pUP. If the difference is small, it is determined that there is no need to re-load balance the online users, and this disposal process is terminated; if the difference is large, it is determined that it is necessary to re-load balance the online users, and the subsequent steps of this disposal process are continued. Then, the main CP calls the user migration calculation module based on a certain time interval or at any time point, and calculates the change in the idle load of the pUP pool within a certain period. If the change in the idle load of the pUP pool is large, it means that the user load of the pUP pool is in a state of continuous change, and it is determined that there is no need to re-load balance the online users, and this disposal process is terminated; if the change in the idle load of the pUP pool is small, it means that the user load of the pUP pool is in a state of basically no change, and it is determined that it is necessary to re-load balance the online users, and the subsequent steps of this disposal process are continued.
[0147] In this embodiment, when determining whether to reallocate the terminal devices connected to the pUPs in the pUP pool, the differences between the idle loads of the pUPs in the pUP pool and the changes in the idle loads of the pUPs in the current time period are comprehensively considered, which is beneficial to improving the accuracy of determining the reallocation of the terminal devices connected to the pUPs in the pUP pool.
[0148] In an exemplary embodiment, the device allocation method provided in the present application also includes a processing step when there is a faulty pUP in the pUP pool, specifically including the following contents: when there is a faulty pUP in the pUP pool, the online terminal devices connected to the faulty pUP are migrated to the remaining available pUPs in the pUP pool, and the newly online terminal devices are allocated to the remaining available pUPs in the pUP pool.
[0149] If any of the following situations occurs, it is determined that the pUP is faulty: (1) The main CP calls the pUP idle load receiving module to report the pUP idle load, receives the pUP idle load, and the value of "whether the pUP status is normal and available" of the pUP idle load is unavailable. (2) The main CP does not receive the pUP idle load reported by a certain pUP after several cycles based on a certain time interval. (3) The main CP can determine that the pUP is faulty based on the status of the CU channel, etc.
[0150] Among them, the two processes of migrating the online terminal devices connected to the failed pUP to the remaining available pUPs in the pUP pool and allocating the newly online terminal devices to the remaining available pUPs in the pUP pool are independent of each other and do not affect each other.
[0151] Exemplarily, the main CP determines whether there is a faulty pUP in the pUP pool. If there is a faulty pUP in the pUP pool, it obtains the online terminal devices connected to the faulty pUP, migrates the online terminal devices connected to the faulty pUP to the remaining available pUPs in the pUP pool, and allocates the newly online terminal devices to the remaining available pUPs in the pUP pool.
[0152] For example, see Fig.10 ,When a pUP fails, the processing steps are as follows: (1) Determine whether the pUP fails. (2) The main CP calls the module for summarizing and calculating the idle load of the pUP pool, and marks the "Is the pUP status normal and available" in the pUP idle load of the failed pUP as unavailable. (3) The sub-process of allocating new online users to the remaining available pUPs includes the following steps: When the main CP calls the module for allocating users, the pUP marked as unavailable in "Is the pUP status normal and available" does not participate in allocating users. (4) The sub-process of migrating online users of the failed pUP to the remaining available pUPs includes the following steps: the main CP calls the pUP pool idle load storage module, uses the existing user session management capability of the vBRAS, and calls the user migration calculation module to obtain the online users of the failed pUP and the remaining available pUPs; the main CP calls the user migration delivery module, which uses the existing capability of the vBRAS to quickly migrate users between pUPs in the pUP pool; the remaining available pUPs call the user migration receiving module, which uses the existing capability of the vBRAS to quickly migrate users between pUPs in the pUP pool, and then completes the migration of online users to the current pUP.
[0153] refer to Figure 6 At time point t1, the number of online terminal devices connected to pUP1, pUP2 and pUP3 are 300, 300 and 300 respectively; when pUP1 fails and the number of newly online terminal devices is 900, the online terminal devices connected to pUP1 will be migrated to the remaining available pUPs (such as pUP2 and pUP3), and the newly online terminal devices will be allocated to the remaining available pUPs (such as pUP2 and pUP3), then at time point t2, the number of online terminal devices connected to pUP2 and pUP3 is 900 and 900 respectively. In this way, the load balancing effect of protecting newly online users and online users is achieved when pUP fails.
[0154] In this embodiment, when there is a faulty pUP in the pUP pool, the online terminal devices connected to the faulty pUP are migrated to the remaining available pUPs in the pUP pool, and the newly online terminal devices are allocated to the remaining available pUPs in the pUP pool; in this way, the effect of ensuring load balancing between the newly online terminal devices and the online terminal devices is achieved when there is a faulty pUP in the pUP pool.
[0155] In an exemplary embodiment, the device allocation method provided in the present application also includes processing steps when a main CP fails, specifically including the following contents: synchronizing the idle load of each pUP in the pUP pool to the backup CP associated with the main CP; in the event of a failure of the main CP, requesting to switch the backup CP to a new main CP, and switching the main CP to a new backup CP.
[0156] In the case where the main CP fails, the standby CP becomes the new main CP and the main CP becomes the new standby CP.
[0157] Exemplarily, the main CP synchronizes the idle load of each pUP in the pUP pool to the standby CP associated with the main CP in real time, and monitors whether the main CP fails; in the event of a failure in the main CP, it requests to switch the standby CP to a new main CP, and to switch the main CP to a new standby CP.
[0158] For example, see Fig.10 The processing flow of the master CP synchronizing the idle load of the pUP pool to the standby CP includes the following steps: the master CP calls the synchronization pUP pool idle load sending module based on a certain time interval or at any time point to request synchronization of the idle load of the pUP pool to the standby CP. The standby CP calls the synchronization pUP pool idle load receiving module to receive the idle load of the pUP pool. The standby CP calls the pUP pool idle load storage module to complete the storage of the idle load of the pUP pool.
[0159] When the main CP fails, the handling process includes the following steps: using the existing CP master-slave switching capability of the vBRAS, the original standby CP is switched to the new main CP, and the original main CP is switched to the new standby CP. Because the "handling process of the main CP synchronizing the pUP pool idle load to the standby CP" of the present application, the pUP pool idle load storage module of the new main CP has stored the latest pUP pool idle load, so the original main CP can be replaced smoothly and quickly.
[0160] refer to Figure 7 At time point t1, the number of online terminal devices connected to pUP1, pUP2 and pUP3 is 300, 300 and 300 respectively; when the main CP fails and the number of new online terminal devices is 900, the standby CP switches to the new main CP and distributes the new online terminal devices to pUP1, pUP2 and pUP3 through the new main CP; then, at time point t2, the number of online terminal devices connected to pUP1, pUP2 and pUP3 is 600, 600 and 600 respectively. In this way, the load balancing effect of protecting new online users and online users is achieved when the main CP fails.
[0161] In this embodiment, the idle load of each pUP in the pUP pool is synchronized to the backup CP associated with the main CP; in the event of a failure in the main CP, a request is made to switch the backup CP to a new main CP, and the main CP is switched to a new backup CP, thereby achieving a load balancing effect for newly online terminal devices and online terminal devices when the main CP fails.
[0162] In an exemplary embodiment, the device allocation method provided in the present application also includes processing steps when the main CP and the backup CP associated with the main CP fail and re-operate, specifically including the following contents: storing the backup information of the idle load of each pUP in the pUP pool in the idle load backup middleware; when the main CP and the backup CP associated with the main CP fail and re-operate, obtaining the backup information of the idle load of each pUP from the idle load backup middleware; the backup CP is also used to obtain the backup information of the idle load of each pUP from the idle load backup middleware.
[0163] The idle load backup middleware is used to store the backup information of the idle load of each pUP in the pUP pool.
[0164] Exemplarily, the main CP stores the backup information of the idle load of each pUP in the pUP pool in real time to the idle load backup middleware, so as to store the backup information of the idle load of each pUP in the pUP pool through the idle load backup middleware; it is determined whether the main CP and the backup CP associated with the main CP fail. When the main CP and the backup CP associated with the main CP fail and are restarted, the main CP obtains the backup information of the idle load of each pUP from the idle load backup middleware; in addition, the backup CP is also used to obtain the backup information of the idle load of each pUP from the idle load backup middleware.
[0165] For example, see Fig.10 The process of the master CP storing the idle load backup of the pUP pool to the idle load backup middleware includes the following steps: the master CP calls the pUP pool idle load backup request module based on a certain time interval or at any time point to request that the idle load backup of the pUP pool be stored in the idle load backup middleware. The idle load backup middleware calls the pUP pool idle load backup receiving module to receive the idle load backup of the pUP pool. The idle load backup middleware calls the pUP pool idle load backup storage module to complete the storage of the idle load backup of the pUP pool.
[0166] The handling process when both the main CP and the backup CP fail and are restarted includes the following steps: executing the "handling process of the main CP restoring the pUP pool idle load backup from the idle load backup middleware" of the present application. Optionally, the "handling process of the backup CP restoring the pUP pool idle load backup from the idle load backup middleware" of the present application can also be executed. Because of the "handling process of the main CP storing the pUP pool idle load backup to the idle load backup middleware" and "handling process of the main CP restoring the pUP pool idle load backup from the idle load backup middleware" of the present application, the pUP pool idle load storage module of the restarted main CP has stored the latest pUP pool idle load, so the pUP pool idle load can be quickly restored.
[0167] Among them, the disposal process of the main CP restoring the idle load backup of the pUP pool from the idle load backup middleware includes the following steps: the main CP calls the pUP pool idle load backup recovery request module at any time point to request to obtain the pUP pool idle load backup. The idle load backup middleware calls the pUP pool idle load backup recovery receiving module and receives the pUP pool idle load backup recovery request. The idle load backup middleware calls the pUP pool idle load backup storage module to obtain the pUP pool idle load backup. The idle load backup middleware calls the pUP pool idle load backup sending module to request to send the pUP pool idle load backup to the main CP. The main CP calls the pUP pool idle load backup receiving module to receive the pUP pool idle load backup. The main CP calls the pUP pool idle load storage module and uses the pUP pool idle load backup to complete the pUP pool idle load storage.
[0168] Among them, the handling process of the standby CP restoring the idle load backup of the pUP pool from the idle load backup middleware includes the following steps: the standby CP calls the pUP pool idle load backup restoration request module at any time point to request to obtain the pUP pool idle load backup. The idle load backup middleware calls the pUP pool idle load backup restoration receiving module to receive the request to restore the pUP pool idle load backup. The idle load backup middleware calls the pUP pool idle load backup storage module to obtain the pUP pool idle load backup. The idle load backup middleware calls the pUP pool idle load backup sending module to request to send the pUP pool idle load backup to the standby CP. The standby CP calls the pUP pool idle load backup receiving module to receive the pUP pool idle load backup. The standby CP calls the pUP pool idle load storage module to complete the pUP pool idle load storage using the pUP pool idle load backup.
[0169] refer to Figure 8At time point t1, the number of online terminal devices connected to pUP1, pUP2 and pUP3 are 200, 200 and 200 respectively; when both the main CP and the backup CP fail and restart, the number of new online terminal devices is 600, and the main CP or the backup CP obtains the idle load backup of the pUP pool from the idle load backup middleware, and allocates the new online terminal devices to the remaining available pUPs; then, at time point t2, the number of online terminal devices connected to pUP1, pUP2 and pUP3 are 400, 400 and 400 respectively. In this way, when both the main CP and the backup CP fail and restart, the load balance of new online users and online users can be quickly restored.
[0170] In this embodiment, the backup information of the idle load of each pUP in the pUP pool is stored in the idle load backup middleware; when the main CP and the backup CP associated with the main CP fail and are restarted, the backup information of the idle load of each pUP is obtained from the idle load backup middleware; in this way, a rapid recovery effect of ensuring load balancing of newly online terminal devices and online terminal devices is achieved when both the main CP and the backup CP fail and are restarted.
[0171] In an exemplary embodiment, Fig. 9 As shown, another device allocation method is provided, which is described by taking the method applied to the main CP as an example, and includes the following steps S901 to S913. Among them:
[0172] Step S901, receiving the idle load reported by each pUP in the pUP pool; summarizing the idle load of each pUP to obtain the pUP pool idle load; and storing the pUP pool idle load.
[0173] Step S902: receiving an access request from a newly online terminal device.
[0174] Step S903: According to the access request, the idle load of the available pUP in the pUP pool is obtained from the stored idle load of the pUP pool; the available pUP is used to indicate that the corresponding pUP state is an available pUP.
[0175] Step S904: According to the idle loads of the available pUPs, a pUP with the largest idle load is determined from the available pUPs as a target pUP.
[0176] Step S905: Send the access request to the target pUP, so that the target pUP connects to the terminal device based on the access request.
[0177] Among them, after step S905, there are 5 step branches, namely step S906 to step S907, step S908 to step S910, step S911, step S912, and step S913.
[0178] Step S906, when a notification message is received from the target pUP based on the access request, and the notification message indicates that the target pUP cannot connect to the terminal device, or when no notification message is received from the target pUP based on the access request after a preset time period, it is confirmed that the target pUP is unavailable.
[0179] Step S907: determine a first pUP with the largest idle load from available pUPs other than the target pUP in the pUP pool; send an access request to the first pUP, so that the first pUP connects to the terminal device based on the access request.
[0180] Step S908: when the terminal device connected to the pUP in the pUP pool is offline, the difference between the idle loads of the pUPs in the pUP pool is obtained.
[0181] Step S909, when the difference meets the first preset condition, obtain the change of the idle load of each pUP in the current time period; when the change meets the second preset condition, determine to reallocate the terminal devices connected to the pUPs in the pUP pool.
[0182] Step S910, according to the idle load of each pUP in the pUP pool, determine the second pUP with the least idle load and the third pUP with the most idle load from the pUP pool; migrate the online terminal device to be migrated in the second pUP to the third pUP, so that the third pUP is connected to the online terminal device to be migrated.
[0183] Step S911, when there is a faulty pUP in the pUP pool, online terminal devices connected to the faulty pUP are migrated to the remaining available pUPs in the pUP pool, and newly online terminal devices are allocated to the remaining available pUPs in the pUP pool.
[0184] Step S912, synchronizing the idle load of each pUP in the pUP pool to the standby CP associated with the main CP; in case of failure of the main CP, requesting to switch the standby CP to a new main CP, and switching the main CP to a new standby CP.
[0185] Step S913, the backup information of the idle load of each pUP in the pUP pool is stored in the idle load backup middleware; when the main CP and the backup CP associated with the main CP fail and restart, the backup information of the idle load of each pUP is obtained from the idle load backup middleware.
[0186] The standby CP is also used to obtain the backup information of the idle load of each pUP from the idle load backup middleware.
[0187] In the above-mentioned device allocation method, when allocating a newly-online terminal device to a pUP, the main CP sends the access request of the newly-online terminal device to the target pUP with the largest idle load determined from the available pUPs in the pUP pool according to the idle load of each pUP in the pUP pool, so as to connect the newly-online terminal device through the target pUP. Since no preset load threshold is set for each pUP in the pUP pool, it can be ensured that each pUP will do its best to serve, and there will be no redundant load capacity, which is conducive to maximizing the use of the load resources of each pUP, thereby improving the load resource utilization of the pUP, and at the same time avoiding the defect that the load resources between the preset load threshold of the pUP and the load upper limit of the pUP are always idle, and the load resources of the pUP cannot be used to the maximum extent, resulting in a low load resource utilization of the pUP.
[0188] In order to more clearly explain the device allocation method provided by the embodiment of the present application, the device allocation method is specifically described below with a specific embodiment. In an exemplary embodiment, the present application also provides a method for balancing user loads in a pUP pool of a vBRAS, where the main CP forwards the PADI message of the user device to the pUP with the most idle load based on the idle load of each pUP, rather than distinguishing between available pUPs and unavailable pUPs based on whether a preset load threshold is reached. In addition, reference Fig.10 The present application also provides a device for balancing user load in a pUP pool of a vBRAS, specifically, in the following Fig.11 Another example of adding components to the device for user load balancing within the pUP pool of the vBRAS is shown; compared to Fig.11 Another device for balancing user load in the pUP pool of a vBRAS is shown. This device not only adds an idle load backup middleware, but also provides a specific structure of the pUP, the main CP, the backup CP and the idle load backup middleware. It should be noted that Fig.11 The device shown includes user equipment, OLT (Optical Line Terminal), A device (access equipment of mobile bearer network), A-Leaf (Access-leaf), Spine (metropolitan spine equipment), S-Leaf (Service-leaf), Super-Spine (super spine equipment), backbone network, main CP, backup CP and pUP pool.
[0189] refer to Fig.10 The specific contents of the device for balancing user load in the pUP pool of the vBRAS provided in this application are as follows:
[0190] (1) In each pUP in the pUP pool, a pUP idle load calculation module, a pUP idle load reporting request module, a pUP idle load query receiving module, a user allocation receiving module, and a user migration receiving module are added.
[0191] Among them, an applicable technology stack can be selected according to the hardware and software architecture of the used vBRAS to implement the addition of the module in step (1).
[0192] (2) In the main CP, add a pUP idle load reporting receiving module, a pUP idle load querying request module, a pUP pool idle load summary calculation module, a pUP pool idle load storage module, a pUP pool idle load backup request module, a pUP pool idle load backup request module, a pUP pool idle load backup receiving module, a user access request receiving module, a user allocation sending module, a user migration calculation module, a user migration sending module, and a pUP pool idle load synchronization sending module.
[0193] Among them, an applicable technology stack can be selected according to the hardware and software architecture of the used vBRAS to implement the addition of the module in step (2).
[0194] (3) In the standby CP, add a pUP idle load reporting receiving module, a pUP idle load querying request module, a pUP pool idle load summary calculation module, a pUP pool idle load storage module, a pUP pool idle load backup request module, a pUP pool idle load backup request module, a pUP pool idle load backup receiving module, a user access request receiving module, a user allocation sending module, a user migration calculation module, a user migration sending module, and a pUP pool idle load synchronization receiving module.
[0195] Among them, an applicable technology stack can be selected according to the hardware and software architecture of the used vBRAS to implement the addition of the module in step (3).
[0196] (4) Add idle load backup middleware to the virtualized resource pool. The idle load backup middleware includes a pUP pool idle load backup receiving module, a pUP pool idle load backup storage module, a pUP pool idle load backup sending module, and a pUP pool idle load backup receiving module. Optionally, the idle load backup middleware can also be deployed outside the virtualized resource pool.
[0197] Among them, an applicable technology stack can be selected according to the hardware and software architecture of the used vBRAS to implement the addition of the module in step (4).
[0198] (5) Based on a certain time interval or at any time point, pUP calls the pUP idle load calculation module to obtain the pUP idle load, calls the pUP idle load reporting request module, and requests to report the pUP idle load to the main CP. The pUP idle load includes whether the pUP status is normal and available, whether the pUP is reachable from the main CP, the idle bandwidth capacity of the pUP link, the latency of the pUP link, the idle capacity of the number of access users of the pUP, the number of idle CPU cores of the pUP, the idle CPU utilization rate of the pUP, the idle capacity of the pUP memory, the idle utilization rate of the pUP memory, the idle capacity of the pUP disk, the idle utilization rate of the pUP disk, and other information. Optionally, the main CP can call the pUP idle load query request module based on a certain time interval or at any time point and send it to the pUP idle load query receiving module of the pUP. pUP calls the pUP idle load calculation module to obtain the pUP idle load, calls the pUP idle load reporting request module, and requests to report the pUP idle load to the main CP.
[0199] Among them, the idle load can be transmitted between CP and pUP using CU channel, SNMP protocol (Simple Network Management Protocol), Openflow protocol (Open Flow Protocol), HTTP (HyperText Transfer Protocol, Hypertext Transfer Protocol), HTTPS (Hypertext Transfer Protocol over Secure Socket Layer) and other methods.
[0200] (6) The main CP calls the pUP idle load receiving module to receive the pUP idle load of each pUP.
[0201] Among them, the idle load can be transmitted between CP and pUP using CU channel, SNMP protocol, Openflow protocol, HTTP, HTTPS and other methods.
[0202] (7) The main CP calls the module for summarizing and calculating the idle load of the pUP pool to calculate the idle load of the pUP pool.
[0203] Among them, an applicable technology stack can be selected according to the hardware and software architecture of the used vBRAS to implement this step (7).
[0204] (8) The main CP calls the pUP pool idle load storage module to complete the storage of the pUP pool idle load. Optionally, the pUP pool idle load can be stored in an ordered list, and the arrangement is based on the pUP idle load. The main CP only needs to directly access the first or last item in the ordered list to find the pUP with the most idle load, which helps the main CP to quickly find the pUP with the most idle load. Optionally, the pUP pool idle load can be stored in memory, which helps the main CP to quickly find the pUP with the most idle load.
[0205] Among them, an applicable technology stack can be selected according to the hardware and software architecture of the used vBRAS to implement this step (8).
[0206] Among them, the storage of the pUP idle load of each pUP can adopt the preset format struct pup_pool_load_sorted_list{char pup_serial_number
[256] ;struct *pup_idle_load;int pup_idle_load_capacity; int rank;}; among them, pup_pool_load_sorted_list is an ordered list of the idle loads of all pUPs in the pUP pool, that is, the pUP pool idle load; pup_serial_number is the serial number of the pUP; *pup_idle_load is a pointer (reference) to the idle load; pup_idle_load_capacity is the idle load capacity of the pUP calculated based on the idle load *pup_idle_load, and the idle load of each pUP is sorted according to the idle load capacity pup_idle_load_capacity to obtain the ranking rank.
[0207] (9) The process of assigning each new user to pUP includes the following steps:
[0208] ① The main CP calls the user access request receiving module and receives the PADI message from the user equipment.
[0209] ② The main CP calls the pUP pool idle load storage module to find the pUP with the most idle load.
[0210] ③ The main CP calls the allocated user delivery module and forwards the PADI message of the user equipment to the pUP.
[0211] ④ The pUP calls the allocated user receiving module, receives the PADI message of the user equipment, and sends the PADO message to the user equipment.
[0212] Optionally, the pUP that receives the PADI message of the user equipment may also report a notification message to the main CP, notifying the main CP that the pUP has accepted the allocation of access to the user equipment or cannot accept the allocation of access to the user equipment. If the notification message reported by the pUP notifies the main CP that the pUP cannot accept the allocation of access to the user equipment, or the main CP does not receive the notification message of the pUP after a certain time limit, then the main CP calls the module for summarizing and calculating the pUP pool idle load to mark the "whether the pUP status is normal and available" in the pUP idle load of the pUP as unavailable, and then returns to the step of "the main CP calls the pUP pool idle load storage module to find the pUP with the most idle load, calls the allocation user sending module, and forwards the PADI message of the user equipment to the pUP".
[0213] Optionally, the notification message may include the pUP idle load of the pUP.
[0214] ⑤The user equipment sends a PADR message to the pUP.
[0215] ⑥The pUP sends a PADS message to the user device.
[0216] ⑦The user equipment and the pUP enter the PPP session phase, and then the user goes online.
[0217] Among them, the access of user equipment uses the PPPoE protocol.
[0218] Among them, an applicable technology stack can be selected according to the hardware and software architecture of the used vBRAS to implement this step (9).
[0219] (10) When some users go offline, resulting in an unbalanced load among online users, the handling process includes the following steps:
[0220] ① The main CP calls the pUP pool idle load storage module to obtain the pUP pool idle load.
[0221] ② The main CP calls the user migration calculation module to determine whether it is necessary to re-load balance the online users.
[0222] 1) The main CP calls the user migration calculation module based on a certain time interval or at any time point to calculate the difference in the pUP idle load of each pUP. If the difference is small, it is determined that there is no need to re-balance the online users, and this handling process is terminated; if the difference is large, it is determined that there is a need to re-balance the online users, and the subsequent steps of this handling process are continued.
[0223] 2) The main CP calls the user migration calculation module based on a certain time interval or at any time point to calculate the change of the idle load of the pUP pool in the latest period. If the change of the idle load of the pUP pool is large, it means that the user load of the pUP pool is in a state of continuous change, and it is judged that there is no need to re-load balance the online users, and this disposal process is terminated; if the change of the idle load of the pUP pool is small, it means that the user load of the pUP pool is in a state of basically unchanged, and it is judged that it is necessary to re-load balance the online users, and continue with the subsequent steps of this disposal process.
[0224] ③ The main CP calls the user migration calculation module to calculate the pUP with less idle load as the pUP that needs to migrate out the online users; the pUP with more idle load is calculated as the pUP that needs to migrate in the online users.
[0225] ④ The main CP uses the existing user session management capability of the vBRAS to obtain the online users to be migrated in the pUP of the online users to be migrated; the main CP calls the user migration calculation module to calculate and obtain the pUP receiving the online users to be migrated.
[0226] ⑤ The main CP calls the user migration delivery module, which uses the existing capability of the vBRAS to quickly migrate users between pUPs in the pUP pool.
[0227] ⑥ The pUP that needs to migrate online users calls the user migration receiving module, which uses the existing capability of vBRAS to quickly migrate users between pUPs in the pUP pool, and then completes the migration of online users to this pUP.
[0228] Among them, an applicable technology stack can be selected according to the hardware and software architecture of the used vBRAS to implement this step (10).
[0229] (11) The process of the master CP synchronizing the idle load of the pUP pool to the standby CP includes the following steps:
[0230] ① The main CP calls the synchronization pUP pool idle load delivery module based on a certain time interval or at any time point, and requests to synchronize the pUP pool idle load to the standby CP.
[0231] ② The standby CP calls the synchronous pUP pool idle load receiving module and receives the pUP pool idle load.
[0232] ③ The standby CP calls the pUP pool idle load storage module to complete the pUP pool idle load storage.
[0233] Among them, an applicable technology stack can be selected according to the hardware and software architecture of the used vBRAS to implement this step (11).
[0234] Among them, the NETCONF protocol, SNMP protocol, Openflow protocol, HTTP, HTTPS and other methods can be used between the active CP and the standby UP to realize the transmission of the idle load of the UP pool.
[0235] (12) The process of the master CP storing the idle load backup of the pUP pool to the idle load backup middleware includes the following steps:
[0236] ① Based on a certain time interval or at any time point, the main CP calls and sends the pUP pool idle load backup request module to request that the pUP pool idle load backup be stored in the idle load backup middleware.
[0237] ② The idle load backup middleware calls and sends the pUP pool idle load backup receiving module, and receives the pUP pool idle load backup.
[0238] ③ The idle load backup middleware calls the pUP pool idle load backup storage module to complete the pUP pool idle load backup storage.
[0239] Among them, an applicable technology stack can be selected according to the hardware and software architecture of the used vBRAS, mainly involving data persistence, to implement this step (12).
[0240] Among them, the NETCONF protocol, SNMP protocol, Openflow protocol, HTTP, HTTPS and other methods can be used between the main CP and the idle load backup middleware to realize the transmission of the idle load of the pUP pool.
[0241] (13) The process of the master CP restoring the idle load backup of the pUP pool from the idle load backup middleware includes the following steps:
[0242] ① The main CP calls the pUP pool idle load backup recovery request module at any time point to request the pUP pool idle load backup.
[0243] ② The idle load backup middleware calls the pUP pool idle load backup recovery receiving module and receives the pUP pool idle load backup recovery request.
[0244] ③ The idle load backup middleware calls the pUP pool idle load backup storage module to obtain the pUP pool idle load backup.
[0245] ④ The idle load backup middleware calls the pUP pool idle load backup sending module and requests to send the pUP pool idle load backup to the main CP.
[0246] ⑤ The main CP calls the pUP pool idle load backup receiving module and receives the pUP pool idle load backup.
[0247] ⑥ The main CP calls the pUP pool idle load storage module and uses the pUP pool idle load backup to complete the pUP pool idle load storage.
[0248] Among them, the applicable technology stack can be selected according to the hardware and software architecture of the used vBRAS, mainly involving data persistence, to implement this step (13).
[0249] Among them, the NETCONF protocol, SNMP protocol, Openflow protocol, HTTP, HTTPS and other methods can be used between the main CP and the idle load backup middleware to realize the transmission of the idle load of the pUP pool.
[0250] (14) Optionally, the process of the standby CP restoring the idle load backup of the pUP pool from the idle load backup middleware includes the following steps:
[0251] ① The standby CP calls the pUP pool idle load backup request module at any time point to request the pUP pool idle load backup.
[0252] ② The idle load backup middleware calls the pUP pool idle load backup recovery receiving module and receives the pUP pool idle load backup recovery request.
[0253] ③ The idle load backup middleware calls the pUP pool idle load backup storage module to obtain the pUP pool idle load backup.
[0254] ④ The idle load backup middleware calls the pUP pool idle load backup sending module and requests to send the pUP pool idle load backup to the standby CP.
[0255] ⑤ The standby CP calls the pUP pool idle load backup receiving module and receives the pUP pool idle load backup.
[0256] ⑥ The standby CP calls the pUP pool idle load storage module and uses the pUP pool idle load backup to complete the pUP pool idle load storage.
[0257] Among them, the applicable technology stack can be selected according to the hardware and software architecture of the used vBRAS, mainly involving data persistence, to implement this step (14).
[0258] Among them, the standby CP and the idle load backup middleware can use NETCONF protocol, SNMP protocol, Openflow protocol, HTTP, HTTPS and other methods to realize the transmission of the idle load of the pUP pool.
[0259] (15) The handling process when pUP fails includes the following steps.
[0260] ① If any of the following situations occurs, it is determined that pUP is faulty.
[0261] 1) The main CP calls the pUP idle load receiving module to report the pUP idle load, and receives the pUP idle load. The value of "whether the pUP status is normal and available" of the pUP idle load is unavailable.
[0262] 2) Based on a certain time interval, the main CP does not receive the pUP idle load reported by a certain pUP after a certain period of time.
[0263] 3) Optionally, the master CP may determine that the pUP is faulty based on the status of the CU channel.
[0264] ② The main CP calls the module for summarizing and calculating the idle load of the pUP pool, and marks the "whether the pUP status is normal and available" in the pUP idle load of the failed pUP as unavailable.
[0265] ③ The sub-process of allocating new online users to the remaining available pUPs includes the following steps:
[0266] 1) When the master CP calls the module for allocating users, the pUP whose "Is the pUP status normal and available" is marked as unavailable does not participate in allocating users.
[0267] ④ The sub-process of migrating online users of the failed pUP to the remaining available pUPs includes the following steps:
[0268] 1) The main CP calls the idle load storage module of the pUP pool, uses the existing user session management capability of the vBRAS, and calls the user migration calculation module to obtain the online users of the failed pUP and the remaining available pUPs.
[0269] 2) The master CP calls the user migration delivery module, which uses the existing capability of the vBRAS to quickly migrate users between pUPs in the pUP pool.
[0270] 3) The remaining available pUP calls the user migration receiving module, which uses the existing capability of the vBRAS to quickly migrate users between pUPs in the pUP pool, and then completes the migration of online users to the current pUP.
[0271] Among them, an applicable technology stack can be selected according to the hardware and software architecture of the used vBRAS to implement this step (15).
[0272] (16) The handling process when the main CP fails includes the following steps:
[0273] ① Use the existing CP master-slave switching capability of the vBRAS to switch the original backup CP to the new primary CP, and switch the original primary CP to the new backup CP.
[0274] ② Because of the "process of the main CP synchronizing the idle load of the pUP pool to the standby CP" of the present application, the pUP pool idle load storage module of the new main CP has stored the latest pUP pool idle load, so it can smoothly and quickly replace the original main CP.
[0275] Among them, an applicable technology stack can be selected according to the hardware and software architecture of the used vBRAS to implement this step (16).
[0276] (17) When both the primary CP and the backup CP fail and need to be restarted, the following steps are required:
[0277] ① Execute the "process for the master CP to restore the idle load backup of the pUP pool from the idle load backup middleware" of this application.
[0278] 1) Optionally, the “process for restoring the idle load backup of the pUP pool by the standby CP from the idle load backup middleware” of this application may also be executed.
[0279] ② Because of the "process of the main CP storing the pUP pool idle load backup to the idle load backup middleware" and "process of the main CP restoring the pUP pool idle load backup from the idle load backup middleware" of this application, the pUP pool idle load storage module of the re-run main CP has stored the latest pUP pool idle load, so the rapid recovery of the pUP pool idle load can be achieved.
[0280] Among them, an applicable technology stack can be selected according to the hardware and software architecture of the used vBRAS to implement this step (17).
[0281] Among them, the NETCONF protocol, SNMP protocol, Openflow protocol, HTTP, HTTPS and other methods can be used between the main CP and the idle load backup middleware, and between the standby CP and the idle load backup middleware to realize the transmission of the idle load of the pUP pool.
[0282] The above embodiments can achieve the following technical effects:
[0283] (1) The following technical effects can be achieved in each pUP pool of vBRAS: ① Achieve more balanced load balancing for newly online users; ② Maximize the use of load resources in the pUP pool; ③ Re-balance the load when some users go offline, resulting in an unbalanced load for online users; ④ Ensure load balancing for newly online users and online users when a pUP fails; ⑤ Ensure load balancing for newly online users and online users when the main CP fails; ⑥ Ensure rapid recovery of load balancing for newly online users and online users when both the main CP and the backup CP fail and are restarted.
[0284] (2) It can provide more balanced user load sharing for vBRAS. When an emergency occurs, resulting in a sharp decrease in the number of available pUPs or a sharp increase in the number of users, the present application can ensure that each remaining available pUP serves its best efforts based on the technical effect of maximizing the use of the load resources of the pUP pool. Because the existing network is usually planned in advance and has redundant load capacity, the practicality of the technical effect of the present application here mainly focuses on emergencies. When some users go offline, resulting in an unbalanced load on online users, the present application can achieve re-load balancing for online users. When a pUP failure or a main CP failure occurs, the present application can ensure smooth and balanced user load sharing. When both the main CP and the backup CP fail and are restarted, the present application can ensure that the main CP and the backup CP quickly restore the user load sharing before the failure.
[0285] (3) Allocating new online users to the pUP processing process can achieve more balanced load balancing for new online users and maximize the use of the load resources of the pUP pool.
[0286] (4) The handling process when some users go offline, resulting in an unbalanced load on online users, can achieve re-load balancing when some users go offline, resulting in an unbalanced load on online users.
[0287] (5) The handling process when pUP fails can ensure load balancing between new online users and online users when pUP fails.
[0288] (6) The handling process when the main CP fails can ensure load balancing for new online users and online users when the main CP fails.
[0289] (7) The handling process when both the primary CP and the backup CP fail and are restarted can ensure the rapid recovery of load balancing for new online users and online users when both the primary CP and the backup CP fail and are restarted.
[0290] (8) In each pUP in the pUP pool, a pUP idle load calculation module, a pUP idle load reporting request module, a pUP idle load query receiving module, a user allocation receiving module, and a user migration receiving module are added to achieve more balanced load balancing for newly online users, maximize the use of the load resources of the pUP pool, achieve re-load balancing when some users go offline resulting in an unbalanced load of online users, achieve load balancing for newly online users and online users when a pUP fails, achieve load balancing for newly online users and online users when the main CP fails, and achieve rapid recovery of load balancing for newly online users and online users when both the main CP and the backup CP fail and are restarted.
[0291] (9) In the main CP, add a pUP idle load reporting receiving module, a pUP idle load querying request module, a pUP pool idle load summary calculation module, a pUP pool idle load storage module, a pUP pool idle load backup request module, a pUP pool idle load backup request module, a pUP pool idle load backup receiving module, a user access request receiving module, a user allocation sending module, a user migration calculation module, a user migration sending module, and a pUP pool idle load synchronization sending module, which can achieve more balanced load balancing for newly online users, maximize the use of pUP pool load resources, achieve re-load balancing when some users go offline and cause an unbalanced load on online users, achieve load balancing for newly online users and online users when pUP fails, achieve load balancing for newly online users and online users when the main CP fails, and achieve rapid recovery of load balancing for newly online users and online users when both the main CP and the backup CP fail and are restarted.
[0292] (10) In the standby CP, a pUP idle load reporting receiving module, a pUP idle load querying request module, a pUP pool idle load summary calculation module, a pUP pool idle load storage module, a pUP pool idle load backup request module, a pUP pool idle load backup request module, a pUP pool idle load backup receiving module, a user access request receiving module, a user allocation sending module, a user migration calculation module, a user migration sending module, and a pUP pool idle load synchronization receiving module are added. This can ensure load balancing for newly online users and online users when the main CP fails, and ensure rapid recovery of load balancing for newly online users and online users when both the main CP and the standby CP fail and are restarted.
[0293] (11) Add idle load backup middleware to the virtualized resource pool. The idle load backup middleware includes a pUP pool idle load backup receiving module, a pUP pool idle load backup storage module, a pUP pool idle load backup sending module, and a pUP pool idle load backup receiving module. It can ensure the rapid recovery of load balancing for new online users and online users when both the main CP and the backup CP fail and are restarted.
[0294] (12) The main CP calls the module for summarizing and calculating the idle load of the pUP pool to calculate the idle load of the pUP pool, which can achieve more balanced load balancing for newly online users, maximize the use of the load resources of the pUP pool, achieve re-load balancing when some users go offline and cause an unbalanced load on online users, achieve load balancing for newly online users and online users when the pUP fails, achieve load balancing for newly online users and online users when the main CP fails, and achieve rapid recovery of load balancing for newly online users and online users when both the main CP and the backup CP fail and are restarted.
[0295] (13) The main CP calls the pUP pool idle load storage module to complete the pUP pool idle load storage, which can achieve more balanced load balancing for newly online users, maximize the use of the pUP pool's load resources, achieve re-load balancing when some users go offline and cause an unbalanced load on online users, and ensure load balancing for newly online users and online users when pUP fails. It can also ensure load balancing for newly online users and online users when the main CP fails, and ensure rapid recovery of load balancing for new online users and online users when both the main CP and the backup CP fail and are restarted.
[0296] (14) The main CP synchronizes the idle load of the pUP pool to the handling process of the backup CP, which can ensure the load balancing of new online users and online users when the main CP fails, and realize the rapid recovery of the load balancing of new online users and online users when both the main CP and the backup CP fail and are restarted.
[0297] (15) The main CP stores the idle load backup of the pUP pool in the idle load backup middleware, which can ensure the rapid recovery of load balancing for new online users and online users when both the main CP and the backup CP fail and restart.
[0298] (16) The main CP recovers the idle load backup of the pUP pool from the idle load backup middleware, which can ensure the rapid recovery of load balancing for new online users and online users when both the main CP and the backup CP fail and are restarted.
[0299] (17) Based on a certain time interval or at any time point, pUP calls the pUP idle load calculation module to obtain the pUP idle load, and calls the pUP idle load reporting request module to request that the pUP idle load be reported to the main CP. The pUP idle load includes information such as whether the pUP status is normal and available, whether the pUP is reachable from the main CP, the idle bandwidth capacity of the pUP link, the latency of the pUP link, the idle capacity of the number of access users of the pUP, the number of idle CPU cores of the pUP, the idle CPU usage rate of the pUP, the idle capacity of the pUP memory, the idle memory usage rate of the pUP, the idle capacity of the pUP disk, and the idle disk usage rate of the pUP. It can achieve more balanced load balancing for newly online users, maximize the use of load resources in the pUP pool, achieve re-load balancing when some users go offline and cause an unbalanced load on online users, achieve load balancing for newly online users and online users when the pUP fails, achieve load balancing for newly online users and online users when the main CP fails, and achieve rapid recovery of load balancing for newly online users and online users when both the main CP and the backup CP fail and are re-run.
[0300] (18) The main CP calls the pUP idle load receiving module to receive the pUP idle load of each pUP, so as to achieve more balanced load balancing for newly online users, maximize the use of the load resources of the pUP pool, achieve re-load balancing when some users go offline and cause an unbalanced load on online users, achieve load balancing for newly online users and online users when the pUP fails, achieve load balancing for newly online users and online users when the main CP fails, and achieve rapid recovery of load balancing for newly online users and online users when both the main CP and the backup CP fail and are restarted.
[0301] (19) The standby CP recovers the idle load backup of the pUP pool from the idle load backup middleware, which can ensure the rapid recovery of load balancing for new online users and online users when both the main CP and the standby CP fail and are restarted.
[0302] It should be understood that, although the various steps in the flowcharts involved in the above-mentioned embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps does not have a strict order restriction, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-mentioned embodiments can include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.
[0303] Based on the same inventive concept, the embodiment of the present application also provides a device allocation apparatus for implementing the device allocation method involved above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the above method, so the specific limitations in one or more device allocation apparatus embodiments provided below can refer to the limitations on the device allocation method above, and will not be repeated here.
[0304] In an exemplary embodiment, Fig.12 As shown, a device allocation apparatus is provided, which is applied to a main CP, and includes: a request receiving module 1210, a pUP determining module 1220 and a request sending module 1230, wherein:
[0305] The request receiving module 1210 is used to receive an access request from a newly online terminal device.
[0306] The pUP determination module 1220 is used to determine the target pUP with the most idle load from the available pUPs in the pUP pool according to the access request; the available pUP is used to indicate that the corresponding pUP state is an available pUP.
[0307] The request sending module 1230 is used to send an access request to a target pUP, so that the target pUP connects to the terminal device based on the access request.
[0308] In an exemplary embodiment, the pUP determination module 1220 is also used to obtain the idle load of the available pUPs in the pUP pool from the stored pUP pool idle load according to the access request; and determine the pUP with the largest idle load from the available pUPs according to the idle load of the available pUPs as the target pUP.
[0309] In an exemplary embodiment, the device allocation apparatus further includes an information storage module for receiving the idle load reported by each pUP in the pUP pool; summarizing the idle load of each pUP to obtain the pUP pool idle load; and storing the pUP pool idle load.
[0310] In an exemplary embodiment, the device allocation apparatus further includes a resending module for determining, when it is detected that the target pUP is unavailable, a first pUP with the largest idle load from the available pUPs other than the target pUP in the pUP pool; and sending an access request to the first pUP so that the first pUP connects to the terminal device based on the access request.
[0311] In an exemplary embodiment, the resending module is also used to confirm that the target pUP is unavailable when a notification message returned by the target pUP based on an access request is received and the notification message indicates that the target pUP cannot connect to the terminal device; or, when no notification message returned by the target pUP based on the access request is received after a preset time period, confirm that the target pUP is unavailable.
[0312] In an exemplary embodiment, the device allocation device includes a device migration module, which is used to obtain the difference between the idle loads of each pUP in the pUP pool when the terminal device connected to the pUP in the pUP pool goes offline; when it is determined to redistribute the online terminal devices connected to the pUP in the pUP pool based on the difference, determine the second pUP with the least idle load and the third pUP with the most idle load from the pUP pool based on the idle load of each pUP in the pUP pool; migrate the online terminal devices to be migrated in the second pUP to the third pUP, so that the third pUP is connected to the online terminal devices to be migrated.
[0313] In an exemplary embodiment, the device migration module is also used to obtain the change of the idle load of each pUP in the current time period when the difference situation meets the first preset condition; and determine to reallocate the terminal devices connected to the pUP in the pUP pool when the change situation meets the second preset condition.
[0314] In an exemplary embodiment, the device allocation apparatus further includes a migration allocation module for migrating online terminal devices connected to a faulty pUP to the remaining available pUPs in the pUP pool when there is a faulty pUP in the pUP pool, and allocating newly online terminal devices to the remaining available pUPs in the pUP pool.
[0315] In an exemplary embodiment, the equipment allocation device also includes a CP switching module, which is used to synchronize the idle load of each pUP in the pUP pool to the backup CP associated with the main CP; in the event of a failure of the main CP, request to switch the backup CP to a new main CP, and switch the main CP to a new backup CP.
[0316] In an exemplary embodiment, the equipment allocation device also includes a backup acquisition module, which is used to store the backup information of the idle load of each pUP in the pUP pool to the idle load backup middleware; when the main CP and the backup CP associated with the main CP fail and are restarted, the backup information of the idle load of each pUP is obtained from the idle load backup middleware; the backup CP is also used to obtain the backup information of the idle load of each pUP from the idle load backup middleware.
[0317] Each module in the above-mentioned device allocation apparatus can be implemented in whole or in part by software, hardware or a combination thereof. Each module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute operations corresponding to each module.
[0318] In an exemplary embodiment, Figure 1 As shown, a device allocation system is provided, including: a main CP 101, an idle load backup middleware 102, a backup CP 103 and a pUP pool 104, the main CP 101 is used to execute the device allocation method; wherein:
[0319] The pUP pool 104 includes a plurality of pUPs, each of which includes a pUP idle load calculation module, a pUP idle load reporting request module, a pUP idle load query receiving module, a user allocation receiving module and a user migration receiving module;
[0320] The main CP101 includes a pUP idle load reporting receiving module, a pUP idle load querying request module, a pUP pool idle load summary calculation module, a pUP pool idle load storage module, a pUP pool idle load backup request module, a pUP pool idle load backup request module, a pUP pool idle load backup receiving module, a user access request receiving module, a user distribution module, a user migration calculation module, a user migration module, and a synchronization pUP pool idle load module.
[0321] The standby CP103 includes a pUP idle load reporting receiving module, a pUP idle load querying request module, a pUP pool idle load summary calculation module, a pUP pool idle load storage module, a pUP pool idle load backup request module, a pUP pool idle load backup request module, a pUP pool idle load backup receiving module, a user access request receiving module, a user distribution sending module, a user migration calculation module, a user migration sending module and a synchronization pUP pool idle load receiving module;
[0322] The idle load backup middleware 102 includes a pUP pool idle load backup receiving module, a pUP pool idle load backup storage module, a pUP pool idle load backup sending module and a pUP pool idle load backup receiving module for restoring.
[0323] When the master CP 101 executes the device allocation method, reference may be made to the relevant embodiments of the device allocation method, which will not be described in detail herein.
[0324] The specific structures of the main CP 101, the idle load backup middleware 102, the standby CP 103 and the pUP in the pUP pool 104 can be referred to. Fig.10 And its related embodiments are not described in detail here.
[0325] In the above-mentioned device allocation system, when allocating a newly-online terminal device to a pUP, the main CP sends the access request of the newly-online terminal device to the target pUP with the largest idle load determined from the pUP pool according to the idle load of each pUP in the pUP pool, so as to connect the newly-online terminal device through the target pUP. Since no preset load threshold is set for each pUP in the pUP pool, it can be ensured that each pUP will do its best to serve, and there will be no redundant load capacity, which is conducive to maximizing the use of the load resources of each pUP, thereby improving the load resource utilization of the pUP, and at the same time avoiding the defect that the load resources between the preset load threshold of the pUP and the load upper limit of the pUP are always idle, and the load resources of the pUP cannot be used to the maximum extent, resulting in a low load resource utilization of the pUP.
[0326] In an exemplary embodiment, a computer device is provided. The computer device may be a server, and its internal structure diagram may be as shown in FIG. Fig.13As shown. The computer device includes a processor, a memory, an input / output interface (Input / Output, referred to as I / O) and a communication interface. Among them, the processor, the memory and the input / output interface are connected through a system bus, and the communication interface is connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store data such as the idle load of each pUP in the pUP pool. The input / output interface of the computer device is used to exchange information between the processor and an external device. The communication interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, a device allocation method is implemented.
[0327] Those skilled in the art will understand that Fig.13 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.
[0328] In one embodiment, a computer device is further provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor implements the steps in the above method embodiments when executing the computer program.
[0329] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps in the above-mentioned method embodiments are implemented.
[0330] In one embodiment, a computer program product is provided, including a computer program, which implements the steps in the above method embodiments when executed by a processor.
[0331] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant regulations.
[0332] A person of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiment method can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, an artificial intelligence (AI) processor, etc., but are not limited to this.
[0333] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this application.
[0334] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.
Claims
1. A device allocation method, characterized in that: Applied to the main CP, the method comprises: Receive access requests from newly online terminal devices; According to the access request, a target pUP with the largest idle load is determined from the available pUPs in the pUP pool; the available pUP is used to indicate that the corresponding pUP state is an available pUP; The access request is sent to the target pUP, so that the target pUP connects to the terminal device based on the access request.
2. The method according to claim 1, characterized in that The step of determining, according to the access request, a target pUP with the largest idle load from available pUPs in a pUP pool comprises: According to the access request, obtaining the idle load of the available pUP in the pUP pool from the stored pUP pool idle load; According to the idle loads of the available pUPs, a pUP with the largest idle load is determined from the available pUPs as the target pUP.
3. The method according to claim 2, characterized in that Before receiving the access request of the newly online terminal device, the following steps are also included: Receiving the idle load reported by each pUP in the pUP pool; Summarizing the idle loads of the pUPs to obtain the pUP pool idle load; The pUP pool idle load is stored.
4. The method according to claim 1, characterized in that: After sending the access request to the target pUP, the method further comprises: In the case where it is detected that the target pUP is unavailable, determining a first pUP with the largest idle load from the available pUPs other than the target pUP in the pUP pool; The access request is sent to the first pUP, so that the first pUP connects to the terminal device based on the access request.
5. The method according to claim 4, characterized in that In the case where it is detected that the target pUP is unavailable, before determining the first pUP with the largest idle load from the available pUPs other than the target pUP in the pUP pool, the method further includes: Upon receiving a notification message returned by the target pUP based on the access request, and the notification message indicates that the target pUP cannot connect to the terminal device, confirming that the target pUP is unavailable; or, If, after a preset time period, no notification message returned by the target pUP based on the access request is received, it is determined that the target pUP is unavailable.
6. The method according to any one of claims 1 to 5, characterized in that: The method further comprises: When a terminal device connected to a pUP in the pUP pool is offline, obtaining a difference between idle loads of each pUP in the pUP pool; In the case where it is determined to reallocate the online terminal devices connected to the pUPs in the pUP pool according to the difference, a second pUP with the least idle load and a third pUP with the most idle load are determined from the pUP pool according to the idle load of each pUP in the pUP pool; The online terminal device to be migrated in the second pUP is migrated to the third pUP, so that the third pUP is connected to the online terminal device to be migrated.
7. The method according to claim 6, characterized in that After obtaining the difference between the idle loads of the pUPs in the pUP pool, the method further includes: When the difference satisfies the first preset condition, obtaining the change of the idle load of each pUP in the current time period; When the change situation satisfies the second preset condition, it is determined to reallocate the terminal devices connected to the pUPs in the pUP pool.
8. The method according to any one of claims 1 to 5, characterized in that: The method further comprises: In the case where there is a faulty pUP in the pUP pool, online terminal devices connected to the faulty pUP are migrated to the remaining available pUPs in the pUP pool, and new online terminal devices are allocated to the remaining available pUPs in the pUP pool.
9. The method according to any one of claims 1 to 5, characterized in that: The method further comprises: Synchronize the idle load of each pUP in the pUP pool to the backup CP associated with the main CP; In the case that the main CP fails, it is requested to switch the standby CP to a new main CP, and to switch the main CP to a new standby CP.
10. The method according to any one of claims 1 to 5, characterized in that: The method further comprises: Storing the backup information of the idle load of each pUP in the pUP pool in the idle load backup middleware; When the main CP and the backup CP associated with the main CP fail and restart, the backup information of the idle load of each pUP is obtained from the idle load backup middleware; the backup CP is also used to obtain the backup information of the idle load of each pUP from the idle load backup middleware.
11. A device allocation apparatus, characterized in that: Applied to the main CP, the device comprises: A request receiving module, used to receive access requests from newly online terminal devices; A pUP determination module is used to determine the target pUP with the most idle load from the available pUPs in the pUP pool according to the access request; the available pUP is used to indicate that the corresponding pUP state is an available pUP; The request sending module is used to send the access request to the target pUP, so that the target pUP connects to the terminal device based on the access request.
12. A device allocation system, characterized in that: The system comprises: a pUP pool, a main CP, a backup CP and an idle load backup middleware; the main CP is used to execute the method according to any one of claims 1 to 10; The pUP pool includes a plurality of pUPs, each of which includes a pUP idle load calculation module, a pUP idle load reporting request module, a pUP idle load query receiving module, a user allocation receiving module and a user migration receiving module; The master CP includes a pUP idle load reporting receiving module, a pUP idle load querying request module, a pUP pool idle load summary calculation module, a pUP pool idle load storage module, a pUP pool idle load backup request module, a pUP pool idle load backup request module, a pUP pool idle load backup receiving module, a user access request receiving module, a user distribution module, a user migration calculation module, a user migration module, and a synchronization pUP pool idle load module; The standby CP includes a pUP idle load reporting receiving module, a pUP idle load querying request module, a pUP pool idle load summary calculation module, a pUP pool idle load storage module, a pUP pool idle load backup request module, a pUP pool idle load backup request module, a pUP pool idle load backup receiving module, a user access request receiving module, a user distribution module, a user migration calculation module, a user migration module and a synchronization pUP pool idle load receiving module; The idle load backup middleware includes a pUP pool idle load backup receiving module, a pUP pool idle load backup storage module, a pUP pool idle load backup sending module and a pUP pool idle load backup receiving module for restoring.
13. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 10 are implemented.
14. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 10 are implemented.
15. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 10 are implemented.
Citation Information
Patent Citations
Method and device for accessing gateway
CN114143835A
Access processing method and related equipment thereof
CN114301734A
User backup method, device, system, equipment, medium and program product
CN116915586A
Data backup method and device, computer equipment, readable storage medium and program product
CN119292823A
Method for accessing gateway and apparatus
US20230209404A1