Cooperative operation method of multiple substrate management controllers and electronic equipment
By dynamically allocating functional modules based on the load conditions of the master and slave controllers, the collaborative operation of multiple baseboard management controllers is achieved, which solves the problems of hardware design complexity and high failure risk and improves the stability and reliability of the multi-node server system.
Patent Information
- Application Number
- CN202511254343.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-09-03
- Publication Date
- 2025-09-30
AI Technical Summary
In the prior art, the increased functionality of the baseboard management controller (BMC) in a multi-node server system leads to increased hardware design complexity and cost, and a higher risk of system failure, affecting system stability and reliability.
By judging the load conditions of the master controller and the slave controller, the functional modules are dynamically allocated to achieve the collaborative operation of multiple baseboard management controllers. The function-to-be-transferred-in controller is used to replace the function-to-be-transferred-out controller to form an efficient communication network and reduce the complexity and cost of hardware design.
It achieves efficient collaboration between multiple controllers, reduces the risk of system failure, improves system stability and reliability, and reduces cost investment.
Smart Images

Figure FT_1 
Figure FT_2 
Figure FT_3
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of computer server management, and in particular to a collaborative operation method of a multi-baseboard management controller and electronic equipment. Background Art
[0002] Multi-node server systems can distribute tasks across multiple independent server nodes, executing computing or storage operations in parallel, improving overall performance and scalability. Each node is equipped with a processor, memory, storage, network interfaces, and a baseboard management controller (BMC) for remote management and hardware status monitoring. The BMC is independent of the server's CPU (Central Processing Unit), memory, and operating system, communicating with hardware sensors via a bus to monitor the server's operating status. However, as server configurations become increasingly complex, BMC functionality increases, and load increases, slow responses or system crashes may occur, impacting system stability and reliability. Some systems incorporate a centralized management controller (CMC) to centrally manage the hardware status of multi-node servers. The CMC connects to each node's BMC and shared hardware components within the chassis (such as power supplies, fans, and temperature sensors) via an I2C (Inter-Integrated Circuit) link, collecting relevant information and issuing real-time alerts. However, this approach increases the complexity and cost of hardware design and the risk of system failure. As a single management point, a failure of the CMC could impact the management functionality of the entire system, requiring urgent resolution. Summary of the Invention
[0003] The present invention provides a collaborative operation method and electronic device for a multi-baseboard management controller to at least solve the problems of hardware design complexity and high cost, as well as high risk of system failure in the prior art, thereby reducing cost investment and improving system stability and reliability.
[0004] The present invention provides a method for cooperative operation of multiple substrate management controllers, comprising the following steps: Obtaining a load condition of a master controller and a load condition of at least one slave controller; Based on the load condition of the master controller and the load condition of at least one slave controller, determining whether the target server meets the preset cooperative operation condition; When the target server meets the preset collaborative operation conditions, based on the load conditions of the main controller and the load conditions of at least one of the slave controllers, the function-to-be-transferred-out controller and the function-to-be-transferred-in controller are determined from the main controller and at least one of the slave controllers, and based on a pre-constructed address table, at least one preset function of the function-to-be-transferred-out controller is allocated to the function-to-be-transferred-in controller, and the function-to-be-transferred-in controller is used to replace running at least one of the preset functions.
[0005] The present invention provides an electronic device, comprising: a memory for storing a computer program; and a processor for implementing the steps of any of the above-mentioned methods for cooperative operation of a multi-substrate management controller when executing the computer program.
[0006] The present invention, based on the load conditions of the master controller and at least one slave controller, determines the controller to be transferred out and the controller to be transferred in from the master controller and at least one slave controller, if the target server meets the preset collaborative operation conditions. Furthermore, based on a pre-built address table, at least one function of the controller to be transferred out is allocated to the controller to be transferred in for replacement operation. Thus, the master controller centrally manages the entire system, dynamically allocates functions based on load conditions, and achieves efficient collaboration between multiple controllers. This solves the problems of hardware design complexity and high cost, as well as the high risk of system failure, in the prior art. This reduces cost investment while improving system stability and reliability. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] In order to more clearly illustrate the embodiments of the present invention, the following is a brief introduction to the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0008] Figure 1 A flowchart of a collaborative operation method of a multi-baseboard management controller provided by an embodiment of the present invention; Figure 2 A block diagram of a cooperative operation device of a multi-baseboard management controller provided by an embodiment of the present invention; Figure 3 A schematic structural diagram of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0009] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of them. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making any creative efforts shall fall within the scope of protection of the present invention.
[0010] It should be noted that, in the description of the present invention, the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, article, or apparatus comprising a series of elements includes not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, article, or apparatus. The terms "first," "second," etc., in the present invention are used to distinguish similar objects, and are not used to describe a particular order or precedence.
[0011] In order to enable those skilled in the art to better understand the solutions of the present invention, the present invention is further described in detail below with reference to the accompanying drawings and specific implementation methods.
[0012] An embodiment of the present invention provides a method for cooperative operation of multiple substrate management controllers. The method is described in detail in conjunction with the execution flow of the method.
[0013] Figure 1 The flowchart of the cooperative operation method of multiple baseboard management controllers according to one embodiment of the present invention.
[0014] For example, Figure 1 As shown, the collaborative operation method of the multi-substrate management controller includes the following steps: In step S101 , the load condition of the master controller and the load condition of at least one slave controller are obtained.
[0015] It is understandable that both the master controller and the slave controller are baseboard management controllers (BMCs). Specifically, in an embodiment of the present invention, the BMC of each node in a multi-node server can be connected to each node in the entire system and various sensors in the chassis system via I3C (Improved Inter-Integrated Circuit) link A, ensuring that each node can monitor and manage the environmental status inside the chassis in real time, including key parameters such as temperature, humidity, and power status. At the same time, the BMCs of each node can also be interconnected via I3C link B to form an efficient communication network. This design allows the BMCs of each node to exchange information and work together, thereby improving the management efficiency and fault response speed of the entire server system.
[0016] To further achieve efficient system management, in this embodiment of the present invention, multiple controller BMCs can be divided into a master BMC (i.e., master controller BMC_Node1) and multiple slave BMCs (i.e., slave controllers BMC_Node2 through BMC_Node n). The master BMC serves as the central coordinator of the entire multi-node server, centrally managing and monitoring the load of the entire system via I3C link B. Specifically, each slave BMC manages the hardware devices and functions of its own node and transmits its own load status to the master BMC via I3C link B. Similarly, the master BMC manages the hardware devices and functions of its own node. This centralized management through the master BMC simplifies system management complexity and improves system maintainability and scalability.
[0017] In step S102, based on the load condition of the master controller and the load condition of at least one slave controller, it is determined whether the target server meets the preset cooperative operation condition.
[0018] It's understandable that the pre-set collaborative operation condition refers to whether a heavily loaded BMC controller exists on the target server (i.e., a multi-node server). If the BMC is overloaded, its processing capacity approaches its limit, potentially leading to slow responses or even system crashes.
[0019] Specifically, in the embodiment of the present invention, based on the load condition of the master controller and the load condition of each slave controller, it can be determined whether there is a high-load controller BMC in the target server, so that corresponding load balancing measures can be taken subsequently.
[0020] For ease of understanding, the following describes in detail how to determine whether a target server meets preset cooperative operation conditions based on the load condition of the master controller and the load condition of at least one slave controller.
[0021] As a possible implementation method, in some embodiments, based on the load conditions of the main controller and the load conditions of at least one slave controller, it is determined whether the target server meets the preset collaborative operation conditions, including: determining whether the load condition of the main controller is greater than or equal to a first preset load threshold, and whether the load conditions of at least some of the slave controllers are less than the first preset load threshold; if the load condition of the main controller is greater than or equal to the first preset load threshold, and the load conditions of at least some of the slave controllers are less than the first preset load threshold, then it is determined that the target server meets the preset collaborative operation conditions.
[0022] The first preset load threshold may be a value pre-set by a person skilled in the art, a value obtained through a limited number of experiments, or a value obtained through a limited number of computer simulations, and is not specifically limited here. Preferably, in an embodiment of the present invention, the first preset load threshold may be 85%.
[0023] Specifically, after obtaining the load status of each controller BMC (i.e., the load status of the master controller and the load status of each slave controller), the master BMC can determine whether the target server meets the preset collaborative operation conditions, that is, whether the load status of the master controller is greater than or equal to a first preset load threshold (e.g., 85%), and whether the load status of at least some of the slave controllers is less than the first preset load threshold (85%). If the load status of the master controller is greater than or equal to 85%, and the load status of at least some of the slave controllers is less than 85% (i.e., the load status of all slave controllers is less than 85%, or the load status of at least one slave controller is less than 85%), then the target server is determined to meet the preset collaborative operation conditions.
[0024] Therefore, through the preset collaborative operation condition judgment mechanism, load balancing and resource optimization can be achieved, avoiding system instability or crash caused by excessive load on a controller, thereby improving the system's operating efficiency and enhancing the system's fault tolerance.
[0025] As a possible implementation method, in other embodiments, based on the load condition of the main controller and the load condition of at least one slave controller, it is determined whether the target server meets the preset collaborative operation conditions, including: determining whether the load condition of the main controller is less than a first preset load threshold, and whether the load condition of any slave controller is greater than or equal to the first preset load threshold; if the load condition of the main controller is less than the first preset load threshold, and the load condition of any slave controller is greater than or equal to the first preset load threshold, then it is determined that the target server meets the preset collaborative operation conditions.
[0026] Specifically, after determining whether the load condition of the main controller is greater than or equal to the first preset load threshold, and whether the load condition of at least some of the slave controllers is less than the first preset load threshold, if it is found that the load condition of the main controller is less than the first preset load threshold (85%), and there is at least one slave controller whose load condition is greater than or equal to the first preset load threshold (85%), then the target server can also meet the preset collaborative operation conditions.
[0027] Therefore, through the preset collaborative operation condition judgment mechanism, load balancing and resource optimization can be achieved, avoiding system instability or crash caused by excessive load on a controller, thereby improving the system's operating efficiency and enhancing the system's fault tolerance.
[0028] In step S103, when the target server meets the preset collaborative operation conditions, the function-to-be-transferred-out controller and the function-to-be-transferred-in controller are determined from the main controller and the at least one slave controller based on the load conditions of the main controller and the load conditions of at least one slave controller, and based on a pre-constructed address table, at least one preset function of the function-to-be-transferred-out controller is allocated to the function-to-be-transferred-in controller, and the function-to-be-transferred-in controller is used to run at least one preset function instead.
[0029] In some embodiments, the preset functions include at least one of sensor data collection, abnormal alarm, remote control, security management, asset information and out-of-band communication.
[0030] It is understandable that in order to further improve the flexibility and reliability of the entire system, the embodiments of the present invention can divide the functions of each BMC into multiple independent functional modules, such as sensor data acquisition, abnormal alarm, remote control, security management, asset information and out-of-band communication functions, etc. Each functional module can run independently without interfering with each other.
[0031] Specifically, when the target server meets the preset collaborative operation conditions, in order to avoid the continuous increase in the load of a certain (certain) controller BMC and cause the BMC to crash, the transfer of the functional module (i.e., the preset function) can be triggered. Based on the load situation of the main controller and the load situation of each slave controller, the function-to-be-transferred-out controller (i.e., the controller BMC with too high a load, such as a load value ≥ 85%) and the function-to-be-transferred-in controller (i.e., the controller BMC with a lower load, such as a load value < 70%) can be determined. Based on the pre-constructed address table, at least one preset function (such as sensor data acquisition, abnormal alarm, etc.) of the function-to-be-transferred-out controller is assigned to the function-to-be-transferred-in controller through the I3C link B. The function-to-be-transferred-in controller to which the preset function is assigned uses the I3C link A to replace the function-to-be-transferred-out controller to run the transferred preset function. At the same time, the function-to-be-transferred-out controller is suspended from running the transferred preset function, so as to share the load pressure of the function-to-be-transferred-out controller, thereby ensuring the stable operation of the system.
[0032] The number of preset functions to be transferred from the function-to-be-transferred-out controller and the number of assigned function-to-be-transferred-in controllers can be selected based on actual conditions. For example, the function-to-be-transferred-out controller can select a controller BMC with the lowest current load value from a pre-built address table as the function-to-be-transferred-in controller, and assign one or more preset functions of the function-to-be-transferred-out controller to the function-to-be-transferred-in controller. This solution is suitable for situations where the current load value of the function-to-be-transferred-in controller is low. Alternatively, the function-to-be-transferred-out controller can select multiple controller BMCs with lower current load values from a pre-built address table as the function-to-be-transferred-in controller, and distribute the multiple preset functions of the function-to-be-transferred-out controller to multiple function-to-be-transferred-in controllers, with each function-to-be-transferred-in controller assuming a portion of the preset functions. Alternatively, a priority is assigned to each preset function based on the importance and resource requirements of the preset function. The function-to-be-transferred-out controller selects multiple controller BMCs with lower current load values from a pre-built address table as the function-to-be-transferred-in controller, and based on the priority of the preset functions, assigns high-priority preset functions to the function-to-be-transferred-in controller with the lowest current load, and assigns low-priority preset functions to other function-to-be-transferred-in controllers, etc.
[0033] For example, in the case where the main controller is the controller to be transferred out, in order to avoid the main controller's load from continuously increasing and causing it to crash, the function transfer process can be started to assign one or more preset functions of the main controller to other slave controllers. That is, based on a pre-built address table, one or more slave controllers with lower loads (such as load values <70%) are selected as controllers to be transferred in, and then at least one preset function of the main controller is assigned to the controller to be transferred in through the I3C link B, and at the same time, the main controller is suspended from running the transferred preset functions.
[0034] In the case where at least one slave controller is a controller to be transferred out of a function, the master controller may also immediately initiate the function transfer process and assign one or more preset functions of each controller to be transferred out of a function to other controllers (including the master controller and the slave controller). That is, the master controller may select one or more controllers that meet the requirements of lower load (i.e., load value <70%) as controllers to be transferred into a function based on a pre-constructed address table, and then assign the selected at least one preset function from the slave controller (i.e., the controller to be transferred out of a function) that is currently overloaded (i.e., ≥85%) to at least one controller to be transferred into a function via I3C link B. The controller to be transferred into a function to which the preset function is assigned may replace the slave controller that is currently overloaded (i.e., ≥85%) to run the preset function transferred from it via I3C link A, and at the same time suspend the operation of the preset function transferred by the slave controller that is currently overloaded (i.e., ≥85%).
[0035] The number of preset functions to be transferred from each overloaded (i.e., ≥85%) slave controller and the number of assigned functions to be transferred to can also be selected based on actual circumstances. For example, the master controller can select a slave controller with the lowest current load value from a pre-established address table as the function transfer controller, and assign one or more preset functions from each overloaded (i.e., ≥85%) slave controller to this function transfer controller. Alternatively, the master controller can select multiple slave controllers with lower current load values from a pre-established address table as function transfer controllers, and distribute one or more preset functions from each overloaded (i.e., ≥85%) slave controller to multiple function transfer controllers, with each function transfer controller assuming a portion of the preset functions. Alternatively, the master controller can select multiple slave controllers with lower current load values from a pre-established address table as target function transfer controllers, analyze the dependencies between the preset functions, and assign preset functions with strong dependencies to the same function transfer controller.
[0036] Therefore, through this flexible function allocation strategy, the load balancing between the controller BMCs of each node in the multi-node server can be ensured, and the overload operation of a single controller BMC can be avoided, thereby improving the stability and reliability of the entire multi-node server.
[0037] Furthermore, when both the master and slave controllers are being used as controllers for function transfer, the master controller, as the central coordinator of the target server system, typically has higher priority. Therefore, the master controller's preset function transfer is prioritized. After processing the master controller's preset function transfer, the overloaded slave controllers are sorted by load, with the most loaded slave controller being prioritized. This ensures that even if both the master and slave controllers are highly loaded, the target server system can efficiently and orderly transfer preset functions, preventing crashes of the target server system due to excessive load and improving the stability and reliability of the server system.
[0038] The following describes in detail how to determine the controller to be transferred out and the controller to be transferred into.
[0039] As a possible implementation method, in some embodiments, based on the load condition of the main controller and the load condition of at least one slave controller, a controller to be transferred out of the function and a controller to be transferred into the function are determined from the main controller and at least one slave controller, including: when the load condition of the main controller is greater than or equal to a first preset load threshold, the main controller is used as the controller to be transferred out of the function; and the controller to be transferred into is determined from at least some slave controllers whose load conditions are less than the first preset load threshold.
[0040] Specifically, when the load of the master controller (master BMC) is greater than or equal to the first preset load threshold (85%), and the load of at least some slave controllers (slave BMCs) is less than the first preset load threshold (85%), the master controller is carrying too many functions or tasks, resulting in a high load, which may affect the overall operating efficiency and stability of the target server system. Therefore, the master controller can be identified as a controller to be transferred out of, and consideration can be given to transferring some or all of its preset functions to other controllers with lower loads. At this point, based on the load of each slave controller, find those slave controllers whose load is lower than the first preset load threshold (85%). These slave controllers can be considered as controllers to be transferred in of functions.
[0041] Therefore, in this way, the target server can dynamically adjust the load of each controller BMC, achieve optimal allocation of resources, and improve the operating efficiency and stability of the electronic device.
[0042] As a possible implementation method, in other embodiments, based on the load condition of the main controller and the load condition of at least one slave controller, the function-to-be-transferred-out controller and the function-to-be-transferred-in controller are determined from the main controller and at least one slave controller, including: taking the slave controller whose load condition is greater than or equal to a first preset load threshold as the function-to-be-transferred-out controller; and taking the main controller and / or the slave controller whose load condition is less than the first preset load threshold as the function-to-be-transferred-in controller.
[0043] Specifically, when the load of the master controller (master BMC) is less than a first preset load threshold, and the load of any slave controller (slave BMC) is greater than or equal to the first preset load threshold, similarly, the slave controller with a higher load (i.e., a slave controller with a load greater than or equal to the first preset load threshold) can be identified as a controller to be transferred out of, and consideration can be given to transferring some or all of its preset functions to the master controller with a lower load or other slave controllers (i.e., controllers with a load less than the first preset load threshold). At this time, the master controller and those slave controllers with loads less than the first preset load threshold can both be considered controllers to be transferred in of their functions.
[0044] Therefore, in this way, not only can flexible scheduling and optimal configuration of resources be achieved, but also load balancing can be carried out in a timely and effective manner when the load on any controller is too high, thereby maintaining the overall operating efficiency and stability of the target server system at a high level.
[0045] Furthermore, in some embodiments, after allocating at least one preset function of the function-to-be-transferred-out controller to the function-to-be-transferred-in controller, and using the function-to-be-transferred-in controller to replace running at least one preset function, it also includes: obtaining the running result of at least one preset function; and returning the running result to the main controller through the function-to-be-transferred-in controller.
[0046] Specifically, after using the function-to-be-transferred controller to replace the operation of at least one preset function, the function-to-be-transferred controller can return the substitute operation result to the local, i.e., the main controller, through I3C link B. That is to say, except for the main controller, other slave controllers will not receive the substitute operation result of the transferred function after the preset function is transferred. The substitute operation result of the transferred function can be returned to the main controller by the function-to-be-transferred controller.
[0047] It's important to note that if the primary controller's load falls below 70%, it can also be a transferee. This means that the functions are transferred to the controller, receiving the preset functions transferred from other controllers' BMCs. Once the preset functions are transferred to the primary controller, no further transmission of the corresponding preset function execution results is required. As the central coordinator of the server system, the primary controller can better manage the functional modules and load of the entire target server system. Transmitting the execution results back to the primary controller ensures a unified management point for the system, facilitating dynamic adjustments and optimization.
[0048] Furthermore, when the target baseboard management controller is used to replace the at least one preset function, the method further includes: monitoring the current operation state of the target baseboard management controller; and reallocating the at least one preset function when the current operation state meets a preset abnormal condition.
[0049] That is to say, during the process of the controller to be transferred to take over and run the preset function transferred to it, the main controller can continuously monitor the operating status of the controller to be transferred to, which includes but is not limited to: load conditions, performance indicators (such as CPU usage, memory usage, etc.), errors and alarms, communication status, etc. Preset abnormal conditions refer to certain specific operating conditions (such as excessive load, performance degradation, errors or alarms, communication failures, etc.). When the operating status of the controller to be transferred to meets these preset abnormal conditions, the main controller may believe that the controller to be transferred to may not be able to operate the preset function assigned to it normally, and the preset function needs to be reallocated and transferred. In this way, it can be ensured that the preset function can run on the appropriate controller BMC, avoiding the abnormal state of the controller to be transferred to cause the preset function to fail to operate normally, and further improving the overall stability and reliability of the target server system.
[0050] Next, we explain in detail how to obtain the pre-built address table.
[0051] As a possible implementation method, in some embodiments, before allocating at least one preset function of the function-to-be-transferred-out controller to the function-to-be-transferred-in controller based on a pre-constructed address table, and using the function-to-be-transferred-in controller to replace running at least one preset function, it also includes: determining whether the load condition of the main controller is greater than or equal to a second preset load threshold; when the load condition of the main controller is greater than or equal to the second preset load threshold, sending a preset broadcast command, and obtaining the device identifier of the function-to-be-transferred-in controller based on the preset broadcast command; based on the device identifier of the function-to-be-transferred-in controller, using a preset communication protocol to allocate a corresponding first dynamic address to the function-to-be-transferred-in controller, and storing the first dynamic address and the device identifier of the function-to-be-transferred-in controller in pairs in a preset storage space to obtain a pre-constructed address table.
[0052] The second preset load threshold may be a value pre-set by a person skilled in the art, a value obtained through a limited number of experiments, or a value obtained through a limited number of computer simulations, and is not specifically limited here. Preferably, in an embodiment of the present invention, the second preset load threshold may be 70%.
[0053] Specifically, during the initial operation of the controller BMC, based on the current load status of multiple controller BMCs (i.e., the load status of the master controller and the load status of each slave controller), it is possible to determine whether the current load value of the master controller is greater than or equal to a second preset threshold (e.g., 70%). If the current load value of the master controller is greater than or equal to the second preset threshold (70%) (at this time, the current load values of all slave controllers are less than 85%), to ensure the stable operation of the target server system and the proper allocation of resources, the master controller can periodically issue preset broadcast commands via I3C link B. Upon receiving the preset broadcast commands, each slave controller can immediately respond to monitor and evaluate its own workload in real time. If a slave controller detects that its current load value is less than 70%, it will proactively send a device identifier to the master controller (i.e., obtain the device identifier of the controller to which the function is to be transferred (load value <70%)). This device identifier uniquely identifies each controller and allows the master controller to identify and distinguish between different slave controllers. After collecting the device identifiers of all controllers to be transferred, the main controller uses this information and, using the pre-defined communication protocol (i.e., I3C), assigns each controller an I3C dynamic address (i.e., a first dynamic address). This dynamic address assignment ensures the uniqueness and identifiability of each controller within the server system. After completing address assignment, the main controller stores this address information and its corresponding device identifier in a local cache (i.e., a pre-defined storage space), forming a pre-built address table to facilitate subsequent communication and function allocation.
[0054] As can be appreciated, the advantage of periodically issuing pre-set broadcast commands over I3C link B is that, due to the high bandwidth characteristics of the I3C protocol, the overhead required to send these pre-set broadcast commands is relatively low. This means that the load on the controller's BMC is minimal, placing no additional burden on its normal operation. Furthermore, the most recently pre-built address table information is stored in a local cache. This allows for swift address switching when the controller's BMC's pre-set function needs to be transferred, significantly improving switchover efficiency. This efficient address switching mechanism also helps reduce the risk of failure of the current master controller during the pre-set function transfer process, thereby ensuring system stability and reliability. Overall, issuing broadcast commands over the I3C link not only improves communication efficiency but also optimizes system resource utilization, further enhancing overall system performance and security. For other slave controllers, an additional conditional setting for returning a device identifier when the load falls below 70% is added. This is intended to effectively prevent a controller with a relatively high load from being mistakenly selected as the target for pre-set function transfer (i.e., the controller to which the function is to be transferred). This preventative measure ensures that during the preset function transfer process, the pre-shifted preset function is prevented from triggering another pre-shift due to a rapid increase in load exceeding 85% within a short period of time. By setting this condition, the system can operate more stably and efficiently, reducing unnecessary frequent pre-shifts, thereby improving overall work efficiency and system stability.
[0055] Through this mechanism, the master controller can not only effectively monitor and manage the workload of the entire server system, but also ensure coordination and cooperation between the slave controllers, thereby improving the overall performance and reliability of the system. At the same time, this dynamic address allocation method also facilitates system expansion and upgrades, making the system more flexible and maintainable.
[0056] As a possible implementation method, in other embodiments, before allocating at least one preset function of the controller to be transferred out of the function to be transferred into the controller based on a pre-constructed address table, and using the controller to be transferred into to replace running at least one preset function, it also includes: obtaining a device identifier of a slave controller whose load condition is less than a second preset load threshold, based on the device identifier of the slave controller whose load condition is less than the second preset load threshold, using a preset communication protocol to allocate a corresponding second dynamic address for the function to be transferred into, and storing the second dynamic address and the device identifier of the slave controller whose load condition is less than the second preset load threshold in pairs in a preset storage space to obtain a pre-constructed address table.
[0057] Specifically, when the current load value of the master controller is less than 70%, the master controller monitors the load status of each controller's BMC. When it finds that the current load of at least one slave controller is greater than or equal to 85% (at this time, the current load value of the master controller is still less than 70%), each overloaded slave controller can actively report its high load status to the master controller through I3C link B (i.e., send a high load signal to the master controller). After receiving the high load signal, the master controller can issue a preset broadcast instruction through I3C link B. Each slave controller can respond immediately after receiving the preset broadcast instruction to monitor and evaluate its own workload in real time. If a slave controller detects that its current load value is less than 70%, it will actively send a device identifier to the master controller (obtain the device identifier of the controller to be transferred (load value < 70%)). After collecting the device identifiers of all controllers to be transferred, the master controller can use the preset communication protocol (i.e., I3C) to assign an I3C dynamic address (i.e., the second dynamic address) to each controller to be transferred based on this information. After completing the address allocation, the master controller can store these address information and the corresponding device identifiers in the local cache (i.e., the preset storage space) to form a pre-built address table to facilitate subsequent communication and function allocation.
[0058] In this way, the collaborative operation between multiple controller BMCs becomes more intelligent and efficient, providing multi-node servers with powerful processing capabilities and flexible resource scheduling mechanisms.
[0059] It should be noted that the pre-built address table is a dynamically updated address table. That is, the master controller can continuously monitor the load of itself and each slave controller and dynamically adjust the allocation of preset functions based on the load. When the current load value of a slave controller in the pre-built address table is greater than or equal to 70%, it will stop sending device identifier responses to the master controller. This means that the slave controller is no longer considered as a potential function to be transferred to the controller, and will not be assigned preset functions from other controllers' BMCs. The slave controller will also be deleted from the pre-built address table.
[0060] According to the collaborative operation method of multiple baseboard management controllers proposed in an embodiment of the present invention, based on the load conditions of the master controller and the load conditions of at least one slave controller, when it is determined that the target server meets the preset collaborative operation conditions, the master controller and at least one slave controller determine the controller to be transferred out and the controller to be transferred in. Based on a pre-built address table, at least one function of the controller to be transferred out is allocated to the controller to be transferred in for replacement operation. As a result, the master controller centrally manages the entire system, dynamically allocates functions based on load conditions, and achieves efficient collaboration between multiple controllers. This solves the problems of hardware design complexity and high cost, as well as the high risk of system failure in the prior art, reduces cost investment, and improves system stability and reliability.
[0061] Through the description of the above implementation methods, those skilled in the art can clearly understand that the system according to the above embodiment can be implemented by means of software plus the necessary general hardware platform, and of course it can also be implemented by hardware, but in many cases the former is a better implementation method.
[0062] Secondly, an embodiment of the present invention further provides a cooperative operation device of multiple baseboard management controllers.
[0063] Figure 2 It is a block diagram of a cooperative operation device of multiple baseboard management controllers according to an embodiment of the present invention.
[0064] like Figure 2 As shown, the cooperative operation device 10 of the multi-substrate management controller includes: an acquisition module 100 , a judgment module 200 and an allocation module 300 .
[0065] The acquisition module 100 is configured to acquire the load condition of the master controller and the load condition of at least one slave controller; A determination module 200 is configured to determine whether a target server meets a preset cooperative operation condition based on a load condition of the master controller and a load condition of at least one slave controller; The allocation module 300 is used to determine the function-to-be-transferred-out controller and the function-to-be-transferred-in controller from the main controller and the at least one slave controller based on the load conditions of the main controller and the load conditions of at least one slave controller when the target server meets the preset collaborative operation conditions, and based on a pre-constructed address table, allocate at least one preset function of the function-to-be-transferred-out controller to the function-to-be-transferred-in controller, and use the function-to-be-transferred-in controller to replace running at least one preset function.
[0066] Optionally, in some embodiments, the determination module 200 is specifically configured to: Determining whether the load condition of the master controller is greater than or equal to a first preset load threshold, and whether the load conditions of at least some of the slave controllers are less than the first preset load threshold; If the load condition of the master controller is greater than or equal to a first preset load threshold, and the load conditions of at least some slave controllers are less than the first preset load threshold, it is determined that the target server meets the preset collaborative operation condition.
[0067] Optionally, in some embodiments, the allocation module 300 is specifically configured to: When the load condition of the main controller is greater than or equal to a first preset load threshold, the main controller is used as a controller to be transferred out of the function; It is determined from at least the portion of the controllers where the load condition is less than a first preset load threshold that the function is to be transferred to the controller.
[0068] Optionally, in some embodiments, before allocating at least one preset function of the controller to be transferred out to the controller to be transferred in based on a pre-built address table and using the controller to be transferred in to replace the at least one preset function, the allocating module 300 is further configured to: Determining whether the load condition of the main controller is greater than or equal to a second preset load threshold; When the load of the main controller is greater than or equal to a second preset load threshold, sending a preset broadcast command, and obtaining a device identifier of the controller to which the function is to be transferred based on the preset broadcast command; Based on the device identifier of the controller to which the function is to be transferred, a corresponding first dynamic address is assigned to the controller to which the function is to be transferred using a preset communication protocol, and the first dynamic address and the device identifier of the controller to which the function is to be transferred are stored in pairs in a preset storage space to obtain a pre-constructed address table.
[0069] Optionally, in some embodiments, the determination module 200 is specifically configured to: Determine whether the load condition of the master controller is less than a first preset load threshold, and whether the load condition of any slave controller is greater than or equal to the first preset load threshold; If the load condition of the master controller is less than a first preset load threshold, and the load condition of any slave controller is greater than or equal to the first preset load threshold, it is determined that the target server meets the preset collaborative operation condition.
[0070] Optionally, in some embodiments, the allocation module 300 is specifically configured to: The slave controller whose load condition is greater than or equal to the first preset load threshold is used as the controller to be transferred out of the function; The master controller and / or the slave controller whose load condition is less than the first preset load threshold are used as the controller to be transferred to.
[0071] Optionally, in some embodiments, before allocating at least one preset function of the controller to be transferred out to the controller to be transferred in based on a pre-built address table and using the controller to be transferred in to replace the at least one preset function, the allocating module 300 is further configured to: Obtaining a device identifier of a slave controller whose load condition is less than a second preset load threshold, Based on the device identifier of the slave controller whose load condition is less than the second preset load threshold, a corresponding second dynamic address is assigned to the function to be transferred using the preset communication protocol, and the second dynamic address and the device identifier of the slave controller whose load condition is less than the second preset load threshold are stored in pairs in the preset storage space to obtain a pre-constructed address table.
[0072] Optionally, in some embodiments, after allocating at least one preset function of the controller to be transferred out to the controller to be transferred in, and using the controller to be transferred in to replace running the at least one preset function, the allocating module 300 is further configured to: Obtain the running result of at least one preset function; The function to be transferred to the controller returns the running results to the main controller.
[0073] Optionally, in some embodiments, the preset functions include at least one of sensor data collection, abnormal alarm, remote control, security management, asset information and out-of-band communication.
[0074] According to the collaborative operation device of the multi-baseboard management controller proposed in the embodiment of the present invention, based on the load conditions of the main controller and the load conditions of at least one slave controller, when it is determined that the target server meets the preset collaborative operation conditions, the function-to-be-transferred-out controller and the function-to-be-transferred-in controller are determined from the main controller and at least one slave controller, and based on the pre-built address table, at least one function of the function-to-be-transferred-out controller is allocated to the function-to-be-transferred-in controller for replacement operation. In this way, the entire system is centrally managed by the main controller, and functions are dynamically allocated according to the load conditions, thereby achieving efficient collaboration between multiple controllers, solving the problems of the complexity and high cost of hardware design and the high risk of system failure in the prior art, reducing cost investment while improving the stability and reliability of the system. Figure 3 This is a schematic diagram of the structure of an electronic device provided by an embodiment of the present invention. The electronic device may include: Memory 301 , processor 302 , and computer programs stored in the memory 301 and executable on the processor 302 .
[0075] When the processor 302 executes the program, the steps in any of the above-mentioned embodiments of the method for cooperative operation of multiple baseboard management controllers are implemented.
[0076] Furthermore, the electronic device further includes: The communication interface 303 is used for communication between the memory 301 and the processor 302 .
[0077] The memory 301 is used to store computer programs that can be run on the processor 302 .
[0078] The memory 301 may include a high-speed RAM (Random Access Memory) memory, and may also include a non-volatile memory, such as at least one disk memory.
[0079] If the memory 301, processor 302, and communication interface 303 are implemented independently, the communication interface 303, memory 301, and processor 302 can be connected to each other via a bus and communicate with each other. The bus can be an ISA (Industry Standard Architecture) bus, a PCI (Peripheral Component Interconnect) bus, or an EISA (Extended Industry Standard Architecture) bus. Buses can be divided into address buses, data buses, control buses, etc. For ease of representation, Figure 3 Only one thick line is used in the diagram, but this does not mean that there is only one bus or one type of bus.
[0080] Optionally, in a specific implementation, if the memory 301, the processor 302 and the communication interface 303 are integrated on a chip, the memory 301, the processor 302 and the communication interface 303 can communicate with each other through an internal interface.
[0081] The processor 302 may be a CPU (Central Processing Unit), or an ASIC (Application Specific Integrated Circuit), or one or more integrated circuits configured to implement the embodiments of the present invention.
[0082] An embodiment of the present invention also provides a non-volatile computer-readable storage medium, which stores a computer program, wherein the computer program is configured to execute the steps of any of the above-mentioned collaborative operation method embodiments of the multi-substrate management controller when running.
[0083] In an exemplary embodiment, the non-volatile computer-readable storage medium may include, but is not limited to, various media that can store computer programs, such as a USB flash drive, a read-only memory (ROM), a random access memory, a mobile hard disk, a magnetic disk, or an optical disk.
[0084] An embodiment of the present invention further provides a computer program product, which includes a computer program. When the computer program is executed by a processor, the steps of any of the above-mentioned embodiments of the method for cooperative operation of a multi-baseboard management controller are implemented.
[0085] An embodiment of the present invention also provides another computer program product, including a non-volatile computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, it implements the steps in any of the above-mentioned embodiments of the collaborative operation method of the multi-baseboard management controller.
[0086] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the above description has generally described the components and steps of each example according to their functions. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the present invention.
[0087] The above is a detailed introduction to the collaborative operation method of a multi-baseboard management controller provided by the present invention. This article uses specific examples to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only suitable for helping to understand the method of the present invention and its core ideas. It should be pointed out that for ordinary technicians in this technical field, without departing from the principles of the present invention, the present invention can also be improved and modified in several ways, and these improvements and modifications also fall within the scope of protection of the claims of the present invention.
Claims
1. A method for cooperative operation of multiple baseboard management controllers, characterized in that: The following steps are involved: Obtaining a load condition of a master controller and a load condition of at least one slave controller; Based on the load condition of the master controller and the load condition of at least one slave controller, determining whether the target server meets the preset cooperative operation condition; When the target server meets the preset collaborative operation conditions, based on the load conditions of the main controller and the load conditions of at least one of the slave controllers, the function-to-be-transferred-out controller and the function-to-be-transferred-in controller are determined from the main controller and at least one of the slave controllers, and based on a pre-constructed address table, at least one preset function of the function-to-be-transferred-out controller is allocated to the function-to-be-transferred-in controller, and the function-to-be-transferred-in controller is used to replace running at least one of the preset functions.
2. The collaborative operation method of multiple substrate management controllers according to claim 1, characterized in that: The determining whether the target server meets the preset cooperative operation condition based on the load condition of the master controller and the load condition of at least one slave controller includes: Determining whether the load condition of the master controller is greater than or equal to a first preset load threshold, and whether the load conditions of at least some of the slave controllers are less than the first preset load threshold; If the load condition of the master controller is greater than or equal to the first preset load threshold, and the load condition of at least some of the slave controllers is less than the first preset load threshold, it is determined that the target server meets the preset collaborative operation condition.
3. The collaborative operation method of multiple substrate management controllers according to claim 2, characterized in that: The determining, based on the load condition of the master controller and the load condition of at least one of the slave controllers, a controller to be transferred out of a function and a controller to be transferred into a function from the master controller and the at least one of the slave controllers, comprises: When the load of the main controller is greater than or equal to the first preset load threshold, the main controller is used as the controller to be transferred out of the function; The function to be transferred to the controller is determined from at least part of the slave controllers whose load conditions are less than the first preset load threshold.
4. The cooperative operation method of multiple substrate management controllers according to claim 3, characterized in that: Before allocating at least one preset function of the controller to be transferred out to the controller to be transferred in based on the pre-built address table, and using the controller to be transferred in to replace the at least one preset function, the method further includes: Determining whether the load condition of the main controller is greater than or equal to a second preset load threshold; When the load of the main controller is greater than or equal to the second preset load threshold, sending a preset broadcast command, and obtaining a device identifier of the controller to which the function is to be transferred based on the preset broadcast command; Based on the device identifier of the controller to which the function is to be transferred, a corresponding first dynamic address is assigned to the controller to which the function is to be transferred using a preset communication protocol, and the first dynamic address and the device identifier of the controller to which the function is to be transferred are stored in pairs in a preset storage space to obtain the pre-constructed address table.
5. The cooperative operation method of multiple substrate management controllers according to claim 1, characterized in that: The determining whether the target server meets the preset cooperative operation condition based on the load condition of the master controller and the load condition of at least one slave controller includes: Determining whether the load condition of the master controller is less than a first preset load threshold, and whether the load condition of any of the slave controllers is greater than or equal to the first preset load threshold; If the load condition of the master controller is less than the first preset load threshold, and the load condition of any slave controller is greater than or equal to the first preset load threshold, it is determined that the target server meets the preset collaborative operation condition.
6. The cooperative operation method of multiple substrate management controllers according to claim 5, characterized in that: The determining, based on the load condition of the master controller and the load condition of at least one of the slave controllers, a controller to be transferred out of a function and a controller to be transferred into a function from the master controller and the at least one of the slave controllers, comprises: The slave controller whose load condition is greater than or equal to the first preset load threshold is used as the controller to be transferred out of the function; The master controller and / or the slave controller whose load condition is less than the first preset load threshold is used as the controller to be transferred to the function.
7. The cooperative operation method of multiple substrate management controllers according to claim 6, characterized in that: Before allocating at least one preset function of the controller to be transferred out to the controller to be transferred in based on the pre-built address table, and using the controller to be transferred in to replace the at least one preset function, the method further includes: Obtaining a device identifier of a slave controller whose load condition is less than a second preset load threshold, Based on the device identifier of the slave controller whose load condition is less than the second preset load threshold, a corresponding second dynamic address is assigned to the function to be transferred using a preset communication protocol, and the second dynamic address and the device identifier of the slave controller whose load condition is less than the second preset load threshold are stored in pairs in a preset storage space to obtain the pre-constructed address table.
8. The cooperative operation method of multiple substrate management controllers according to claim 1, characterized in that: After allocating at least one preset function of the function-to-be-transferred-out controller to the function-to-be-transferred-in controller and using the function-to-be-transferred-in controller to replace running at least one preset function, the method further includes: Obtaining an operation result of at least one of the preset functions; The function to be transferred to the controller returns the operation result to the main controller.
9. The cooperative operation method of multiple substrate management controllers according to claim 1, characterized in that: The preset functions include at least one of sensor data collection, abnormal alarm, remote control, security management, asset information and out-of-band communication.
10. An electronic device, characterized in that: include: memory for storing computer programs; A processor is configured to implement the steps of the method for cooperative operation of a multi-baseboard management controller as claimed in any one of claims 1 to 9 when executing the computer program.
Citation Information
Patent Citations
Load optimization method and device, equipment, medium and vehicle
CN119917248A
Security monitoring system based on master-slave controller mode
CN120475032A
Cooperative control method and device, server and storage medium
CN120492232A
Method and apparatus for distributed state-based load balancing between task queues
US7665092B1