A Multi-Unit Server Parallel Configuration Management Method and System Based on Hardware and Software Co-design

By employing a collaborative design of CPLD switching logic components and SMC monitoring and management software in multi-unit servers, efficient parallel configuration management is achieved under in-band and out-of-band network isolation conditions. This solves the problems of low configuration management efficiency and security risks in existing technologies, improving management efficiency and ensuring security.

CN120723334BActive Publication Date: 2025-12-02NAT UNIV OF DEFENSE TECH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511167075.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-08-20
Publication Date
2025-12-02
Estimated Expiration
2045-08-20

AI Technical Summary

Technical Problem

When existing multi-unit servers are isolated from or unable to access the in-band service access network and the out-of-band monitoring and management network, configuration management efficiency is low and security risks exist, making it impossible to achieve efficient parallel configuration management.

Method used

A hardware and software co-design is adopted, utilizing the CPLD switching logic component in the monitoring and management blade and the monitoring and management software SMC. The half-duplex parallel configuration management of the serial port transmission and reception channels is realized through master multiplexers and slave multiplexers. An asynchronous serial communication protocol is designed to separate command transmission and result feedback.

Benefits of technology

An independent serial port transmission and reception switching channel is designed in the hardware, and an asynchronous serial communication protocol is designed in the software to realize efficient configuration management of each blade unit by monitoring and managing the blades. This improves configuration management efficiency, ensures security isolation, and avoids blocking problems caused by serial execution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120723334B_ABST
    Figure CN120723334B_ABST
Patent Text Reader

Abstract

This invention discloses a hardware-software co-designed method and system for parallel configuration management of multi-unit servers. The invention utilizes a CPLD switching logic component within the monitoring and management blade and monitoring and management software (SMC) running on the CPU to perform parallel configuration management on each blade unit. The CPLD switching logic component includes two multiplexers: a master multiplexer and a slave multiplexer. The master multiplexer controls the serial port transmission channel, and the slave multiplexer controls the serial port reception channel. The master and slave multiplexers have independent switching control signals to achieve half-duplex parallel configuration of the serial port channels between the monitoring and management blade and the blade units. This invention aims to address the blocking problem caused by request execution time in situations where in-band service access networks and out-of-band monitoring and management networks are physically isolated, by using monitoring and management software (SMC) deployed on the monitoring and management unit to perform efficient configuration management on each unit server, thus resolving the blocking problem caused by request execution time.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to server configuration technology in the field of high-performance computers, specifically to a multi-unit server parallel configuration management method and system with hardware and software co-design. Background Technology

[0002] Management of high-density multi-unit servers is divided into two modes: out-of-band (OOB) and in-band (IB). Out-of-band management refers to monitoring the basic status of devices on the monitoring and management network and controlling their power on / off, without going through the business access network, but rather through an independent management channel (usually called the monitoring and management network). In-band management, on the other hand, is performed through the business access network, such as by accessing devices via SSH or SNMP, thereby enabling status monitoring and control management of devices on the network.

[0003] In practice, multi-unit server designs for different application scenarios employ different architectures. Some, for security reasons, completely physically isolate the in-band service access network from the out-of-band monitoring and management network. Others, for the convenience of unified management, connect the system-level monitoring and management module to both the in-band monitoring and management network and the out-of-band service access network to achieve unified management of in-band and out-of-band monitoring information.

[0004] In a multi-unit server where the business access network and the monitoring and management network are completely isolated, each blade unit is equipped with a Base Management Controller (BMC), which is connected to the general-purpose microprocessor (CPU) of the monitoring and management blade (on which the system management software SMC is deployed). The CPUs of each blade unit are connected to the business access network to achieve interconnection and communication. Since the monitoring and management unit is not connected to the business access network, the SMC deployed on the monitoring and management blade cannot access the in-band management information of each blade unit, and cannot perform in-band management operations, such as configuring the network address of the blade unit, querying the running status of each software, and restarting the operating system.

[0005] In multi-unit servers where the business access network and monitoring and management network are not completely isolated, the monitoring and management unit connects to both the out-of-band and in-band networks. This facilitates unified management and complementary cooperation between the two, such as using the in-band network as a backup when the out-of-band network fails. However, in this multi-unit server architecture, in-band management operations may be affected by business network traffic or failures, making automation impossible. For example, in the event of a business network failure or incorrect configuration of the blade service network address, operations such as blade unit network address configuration, operating system and software status monitoring, and operating system restart cannot be performed. To enable these in-band management operations, such as network address configuration and operating system and software status monitoring, the multi-unit server needs to provide alternative methods to support these operations even when business network access fails, ensuring the availability of the multi-unit server.

[0006] The implementation methods for the above-mentioned network address configuration, operating system and software running status monitoring configuration management operations are mainly divided into three categories: one is to manually log in to each blade unit to realize the configuration management operation of each blade; the second is to realize the configuration management operation of each blade unit through the BMC of each blade unit; the third is to realize the configuration management operation by monitoring and managing the blade and establishing a serial port path with each blade unit. (1) To manually log in to each blade unit to configure and manage each blade: To manually log in to each blade unit to configure and manage each blade, users need to be able to access the business network or provide external service interfaces (such as serial ports) provided by each blade to log in to each blade to perform configuration management operations. This is time-consuming and laborious. Errors are easy to occur during manual configuration management (such as configuring various network addresses of multiple network interfaces). The technical requirements for operation and maintenance personnel are also high. When each blade unit in the multi-unit server does not provide external service interfaces and cannot access the business network, users cannot log in to the operating system of each blade unit and cannot perform blade configuration management. (2) Configuration management is achieved by establishing a communication path between the blade unit's BMC and each blade: Maintenance personnel can send configuration management request commands to the corresponding blade unit's BMC via the monitoring and management network through the monitoring and management SMC. After receiving the request command information, the BMC completes the transmission of the request command information by establishing a communication path between the blade's BMC and the CPU. This type of method mainly provides a communication path through hardware, and there are two main types: one is to connect a serial communication path between the BMC and the CPU on the blade unit's motherboard. The BMC sends the network address configuration management request command to the CPU via the serial port, and the software deployed on the CPU completes the configuration management operation; the other is to connect a GPIO path between the BMC and the CPU on the blade unit's motherboard. The BMC writes the configuration management request command to a certain storage space and sends a GPIO signal to the CPU. After receiving the signal, the CPU retrieves the configuration management request command information from the storage space and completes the configuration management operation through the software deployed on the CPU. Because these two methods establish a path between the BMC and the CPU, the CPU can be controlled through the out-of-band management module BMC, making the blade unit nodes vulnerable to attacks and facing serious security issues. (3) Configuration management is achieved by establishing a serial port path between the monitoring and management blade and each blade: This method requires establishing a serial port path between the monitoring and management blade CPU and each blade CPU. The monitoring and management software SMC on the monitoring and management blade sends the blade configuration management commands and information to each blade through the serial port protocol. Each blade performs configuration processing after receiving the command.There are several main approaches to implementing this method: First, establish serial port paths between the CPU of the monitoring and management blade and the CPU of each blade unit. However, due to limited serial port resources on the monitoring and management blade CPU, it's impossible to establish an independent serial port channel with each blade unit CPU. One solution is to select a microprocessor with multiple serial ports, which, besides limiting microprocessor selection, also increases cost. Another approach is to use a serial port multiplexing chip on the monitoring and management blade to address the insufficient number of serial ports on the microprocessor, leading to increased cost. A third approach is to use serial port time-division multiplexing to communicate with multiple serial devices using a single serial port. Time-division multiplexing is low-cost, but as the number of devices using multiplexed serial ports increases or the amount of data communicated via serial ports becomes larger, the logic implementation of serial port multiplexing becomes more complex and the real-time performance decreases.

[0007] In general, the existing multi-unit server configuration management for each blade unit has the following disadvantages in terms of implementation technology architecture: (1) Manual configuration management of each blade unit by manually logging into each blade unit requires each blade unit to provide an external access interface. Manual configuration management is time-consuming and laborious. Compared with automatic configuration, manual configuration has a higher error rate. (2) Automatic configuration management is achieved by establishing a communication path between the blade unit's BMC and each blade. This method requires establishing a communication path between the BMC and the CPU on the blade unit. This makes it possible for attackers to control the CPU by intruding into the BMC in the out-of-band management network. Each blade unit is easily attacked. (3) Automatic configuration management is achieved by establishing a temporary serial port path between the monitoring and management blade and each blade unit. Compared with the above two methods, this method abandons the path between the BMC and the CPU and adopts the construction of a temporary serial port channel. It has high security and meets the requirements of the Level Protection 2.0 for management channel isolation. However, in practical applications, the microprocessor's serial port resources on the monitoring and management blade are limited, making it impossible to establish multiple serial port channels between the monitoring and management blade and each blade unit. Therefore, the serial port of the monitoring and management blade needs to be reused to complete the configuration management of each blade unit. Methods that use temporary serial port channels to achieve configuration management of each blade unit typically employ a single multiplexer or simple polling optimization to construct temporary serial port channels between the monitoring and management blade and the blade units.

[0008] The current multi-unit server architecture is the mainstream architecture for implementing serial port channel multiplexing. The CPLD / switching switch is key to achieving time-sharing switching of the multiplexed serial ports. When the SMC issues control commands in batches, the CPU sequentially establishes serial port channels for monitoring and managing the blades and each blade via the CPLD / switching switch. Control and management commands are sent to the blade's agent plugins via the serial protocol. The agent plugins execute the corresponding control commands, and after execution, they feed the results back to the SMC via the serial port channel. The execution of control commands by each blade is essentially serial. If the agent plugin takes a long time to execute a certain control command, there is no data transmission in the serial port channel, but the SMC cannot issue control commands to other blades. Other blade agent plugins must wait for the previous blade to complete its control command before receiving their own. In cases where control and management commands take a long time to execute and a large number of blades are involved in control management, the serial use of the serial port channel fails to fully utilize the channel, resulting in low control and management efficiency for the multi-unit server. Summary of the Invention

[0009] The technical problem this invention aims to solve is as follows: Addressing the aforementioned problems in existing technologies, this invention provides a multi-unit server parallel configuration management method and system with hardware and software co-design. Specifically, it addresses situations where in-band service access networks and out-of-band monitoring and management networks are physically isolated, or where in-band service access networks are inaccessible. This is achieved by designing independent serial port transmission and reception switching channels between the monitoring and management unit and the unit servers on the hardware side, and by designing an asynchronous serial port communication protocol on the software side. This implements a multi-unit server parallel configuration management method that separates instruction transmission and result feedback. It enables efficient configuration management of each unit server through the monitoring and management software (SMC) deployed on the monitoring and management unit, resolving the blocking problem caused by request execution time.

[0010] To solve the above-mentioned technical problems, the technical solution adopted by the present invention is as follows:

[0011] A hardware-software co-designed method for parallel configuration management of multi-unit servers includes the following steps: Parallel configuration management of each blade unit is performed using a CPLD switching logic component in the monitoring and management blade and monitoring and management software SMC running on the CPU. The CPLD switching logic component includes two multiplexers: a master multiplexer and a slave multiplexer. The master multiplexer controls the serial port transmission channel, responsible for transmitting configuration management instruction data frames sent from the monitoring and management blade to the multiple blade units. The slave multiplexer controls the serial port reception channel, responsible for transmitting data frames returning execution results from the multiple blade units to the monitoring and management blade. The CPU of the monitoring and management blade and the CPU of the blade unit are respectively connected to the CPLD switching logic component via a serial port, and GPIO signals are output and connected to the GPIO pins of the CPLD switching logic component to control the channel switching of the master and slave multiplexers. The master and slave multiplexers have independent switching control signals to achieve half-duplex parallel configuration of the serial port channels between the monitoring and management blade and the blade units.

[0012] Optionally, when the monitoring and management software SMC receives a monitoring and management request from an upper-layer application, and the monitoring and management request is a configuration management operation that requires establishing a serial port channel with a certain blade unit, the monitoring and management software SMC sends a GPIO signal. After receiving the GPIO signal, the CPLD switching logic component switches the serial port transmission channel through the master multiplexer to connect the transmitting serial port TX of the monitoring and management blade to the receiving serial port RX of the target blade unit, thereby realizing serial communication between the monitoring and management blade and the blade unit. After the monitoring and management software SMC sends a control command to the blade unit that has established a serial port transmission channel, it does not need to wait for the command execution result, but immediately controls the master multiplexer to switch to establish a serial port channel between the monitoring and management blade and the next computing blade, and completes the sending of the next control command.

[0013] Optionally, each blade unit's CPU outputs a serial port and two GPIO signals, which are connected to the CPLD switching logic component of the monitoring and management blade via a backplane. The CPU runs the operating system, business applications, and agent plugins. The agent plugins are responsible for listening to the serial port transmission channel, receiving configuration management instructions and data parameters issued from the monitoring and management blade, and executing corresponding configuration management operations. Upon successful instruction reception or instruction execution, the multiplexer switches the serial port reception channel by sending GPIO signals to connect the blade unit's transmit serial port TX and the monitoring and management blade's receive serial port RX, thereby enabling the "instruction received" or instruction execution result information to be sent to the monitoring and management software SMC.

[0014] Optionally, the monitoring and management software SMC maintains a queue of pending configuration management instructions and an instruction completion queue. The configuration management instruction queue is managed according to instruction priority. Each instruction has two status bits: "00" indicates that the instruction is pending; "01" indicates that the instruction has been sent; "10" indicates that the instruction has been received by the target blade unit; and "11" indicates that the instruction has been executed. When the monitoring and management software SMC receives a configuration management instruction from the upper-layer application, it puts it into the queue of pending configuration management instructions and sets the corresponding instruction status to "00". After the monitoring and management software SMC sends the configuration management instruction to the blade unit according to the priority policy, it sets the corresponding instruction status to "01". When the monitoring and management software SMC receives the "instruction received" information from the blade unit, it updates the corresponding instruction status to "10". When it receives the instruction execution result from the blade unit, it updates the corresponding instruction status to "11" and moves the instruction into the instruction completion queue.

[0015] Optionally, the main multiplexer internally manages the serial port transmission channel through an internal control signal completion flag (done_flag0), a switching logic module, a status detection module, and a status register (status_reg0). The completion flag (done_flag0) indicates whether the serial port switching is complete. During initialization, the completion flag (done_flag0) is set to low, and after the switching operation is completed, it is set to high. The status register (status_reg0) records the information of the currently connected serial port devices. Each bit in the status register (status_reg0) represents a serial port device, and the corresponding bit for the currently connected device is set to 1. After the switching is completed, the status register (status_reg0) is updated to indicate the new connection status. The monitoring and management blade host can determine whether the currently connected serial port device is a serial port device by reading the status register (status_reg0). Target device; if the status register status_reg0 shows that the target device is connected, the monitoring and management blade host can start communication; the status detection module is used to detect the status of the current serial port transmission channel, which is divided into two states: idle and busy; the switching logic module is used to receive the switching command and execute the switching operation; after the CPLD switching switch logic component receives the switching command sent by the host through GPIO, the switching logic module parses the target serial port device, waits for the current serial port channel status to be idle, configures the internal multiplexer switch, so that the serial port of the monitoring and management blade is connected to the serial port of the target blade unit; after the switching is completed, the completed flag bit done_flag0 is updated to a high level, and the corresponding bit of the connected device in the status register status_reg0 is updated to indicate that the switching is complete; at the same time, after the switching is completed, the GPIO pin of the CPLD switching switch logic component is set to a high level and held for a preset time so that the monitoring and management blade host can detect the "switching complete" signal.

[0016] Optionally, the multiplexer includes dual GPIO signal lines. Each blade unit is connected to two types of pins, INT_ACK[i] and INT_RESULT[i], of the CPLD switching logic component via two independent GPIO signal lines, where i∈[0,N-1] and N is the number of blade units. Pin INT_ACK[i] is triggered immediately after the blade unit receives a control command and verifies it successfully. It is active high, indicating "acknowledgment received" and has a higher priority. Pin INT_RESULT[i] is triggered after the blade unit's control command execution is completed or times out. It is active high, indicating "execution result ready" and has a normal priority. When the agent plugin receives a configuration management command... The proxy plugin checks the integrity of the received configuration management instructions. By controlling GPIO signals, it controls the multiplexer to switch the serial port receive channel to connect the blade unit's transmit serial port TX and the monitoring and management blade's receive serial port RX. Upon receiving a switch confirmation signal, it sends a "received instruction" confirmation message to the monitoring and management software SMC via the serial communication protocol. When the proxy plugin completes the execution of the configuration management instructions or times out, it controls the multiplexer to switch the serial port receive channel to connect the blade unit's transmit serial port TX and the monitoring and management blade's receive serial port RX by controlling GPIO signals. Upon receiving a switch confirmation signal, it sends the instruction execution result information to the monitoring and management software SMC via the serial communication protocol. The multiplexer internally... The serial port receive channel management is implemented using an internal control signal completion flag (done_flag1), a switching logic module, a status detection module, and a status register (status_reg1). The internal control signal completion flag (done_flag1) indicates whether the serial port switching is complete; during initialization, the completion flag (done_flag1) is set low; after the switching operation is completed, the completion flag (done_flag1) is set high. The status register (status_reg1) records the information of the currently connected serial port devices; each bit in the status register (status_reg1) represents a serial port device, with the bit corresponding to the currently connected device set to 1. During switching... After completion, the status register status_reg1 is updated to indicate the new connection status; the status detection module is used to detect the current status of the serial port receive channel; a state machine is designed inside the CPLD switching logic component to track the transmission status of data frames, which are divided into idle and busy states; the status detection module can identify the start bit and stop bit of the data frame; initially, the state machine is in the idle state, when the status detection module detects the start bit of the data frame, the state machine is set to busy; when the status detection module detects the stop bit of the data frame, the state machine is set to idle; each bit of the receive instruction register ack_reg represents a serial port device, and the corresponding bit of the blade unit requesting feedback of the receive instruction is set to 1;Each bit in the execution result register `result_reg` represents a serial port device, and the bit corresponding to the blade unit requesting feedback on the execution instruction result is set to 1. The GPIO signal processing module is used to monitor the response signals of each blade unit in real time, that is, to scan the status of all pins `INT_ACK[i]` and `INT_RESULT[i]` in real time. Once a blade unit sends an "acknowledgment received" or "execution result ready" signal, indicating that the blade unit has successfully received the instruction or completed the instruction execution, the corresponding blade unit number's receive instruction register `ack_reg` or execution result register `result_reg` is immediately set to 1, triggering the switching logic module to switch the serial port receive channel to avoid blocking caused by synchronous waiting. The switching logic module is responsible for detecting the receive instruction register `ack_reg` and the execution result register `result_reg`, and prioritizes the receive instruction register `ack_reg`. The process retrieves the blade unit number to be connected in register g. If the receive instruction register ack_reg is all zeros, the blade unit number to be connected is retrieved from the execution result list result_list in the execution result register result_reg. When establishing a serial port channel between a blade unit and the monitoring and management blade, the process waits for the current serial port channel to be idle, then configures the internal multiplexing switch to connect the blade unit's transmit serial port TX to the monitoring and management blade's receive serial port RX. After the switchover is complete, the completion flag (done_flag1) is updated to a high level, and the corresponding bit in the status register status_reg1 is updated to indicate that the switchover is complete. Simultaneously, after the switchover is complete, the corresponding GPIO pin of the blade unit is set to a high level and held for a preset time so that the blade unit host can detect the "switchover complete" signal.

[0017] Optionally, the monitoring and management software SMC deployed on the monitoring and management blade sends control command packets to the blade unit via a serial communication protocol. The agent plugin on the blade unit sends response packets to the monitoring and management blade in response to the control command packets. The frame format of the control command packet consists of 7 parts: frame header sign, target node ID node_ID, command type cmd_Type, command data field length cmd_DataLen, command data cmd_Data, timeout timeout_ms, and checksum crc_16. The frame format of the response packet consists of 8 parts: frame header sign, source node ID node_ID, command type cmd_Type, execution status status, execution result field length result_DataLen, execution result result_data, execution time timestamp, and checksum crc_16.

[0018] Optionally, it also includes the step of the monitoring and management software SMC issuing configuration management commands:

[0019] S101, the monitoring and management software SMC maintains a queue of configuration management instructions to be executed and an instruction completion queue. After receiving the monitoring and management command provided by the upper layer application, it parses the instruction to form a set of configuration management instructions for each blade unit. The initial priority value of the configuration management instruction is provided by the upper layer application. The monitoring and management software SMC adds the configuration management instruction to the queue of configuration management instructions to be executed according to the instruction priority and sets the status bit of the corresponding instruction to "00".

[0020] S102, determine whether the queue of configuration management instructions to be executed by the monitoring and management software SMC is empty. If it is not empty, take the instruction with the highest priority from the queue of configuration management instructions to be executed according to the priority, parse the node_ID of the blade unit target node of the configuration management instruction, and jump to step S103; otherwise, jump to step S102 to continue the judgment.

[0021] S103, the monitoring and management software SMC reads the status register status_reg0 of the master multiplexer to determine whether the currently connected serial port device is the target blade unit. If the status register status_reg0 of the master multiplexer shows that the target blade unit has been connected, the monitoring and management blade starts communication and sends configuration management instructions. The status of the instructions in the queue of configuration management instructions to be executed is updated to "01".

[0022] S104, The monitoring and management software SMC obtains the status information of the blade unit through the baseboard management controller (BMC) of the corresponding blade unit and determines whether the blade unit is working normally: If the blade unit is working normally, the monitoring and management software SMC sends a GPIO signal to the CPLD switching logic component to request the establishment of a serial port transmission channel from the monitoring and management blade to the blade unit, and jumps to step S105; If the blade unit is not working normally, the monitoring and management software SMC lowers the priority of the configuration management instruction in the queue of pending configuration management instructions, and jumps to step S102.

[0023] S105, after the CPLD switching logic component receives the GPIO signal, the main multiplexer, based on the target blade unit identified by the GPIO signal, completes the serial port channel switching between the CPU of the switching management blade and the CPU of the target blade unit, establishes a serial port transmission path for configuration management commands, and sends back information indicating that the serial port transmission path has been successfully established.

[0024] S106 After receiving the confirmation signal that the serial port transmission path has been successfully established, the monitoring and management software SMC sends a configuration management command, and the command status in the queue of pending configuration management commands is updated to "01".

[0025] Optionally, it also includes the step of the agent plugin in the blade unit executing configuration management instructions:

[0026] S201, The agent plugin listens to serial port information. When it receives a configuration management command, it jumps to step S202.

[0027] S202: The integrity of the received configuration management command is checked via CRC verification. If the received configuration management command is complete, the corresponding configuration management command is executed, and the execution is awaited. Simultaneously, a GPIO signal is sent to request switching the blade unit to the serial port receiving channel of the monitoring and management blade. The response frame is set with a header of "0x01" and a status of 0. After receiving the switching confirmation signal, a "command received" response frame is sent to the monitoring and management software SMC via the serial communication protocol. If the received configuration management command is incomplete, a GPIO signal is sent to request switching the blade unit to the serial port receiving channel of the monitoring and management blade. The response frame is set with a header of "0x01" and a non-zero error code. After receiving the switching confirmation signal, a "command received" response frame is sent to the monitoring and management software SMC via the serial communication protocol. Finally, after the configuration management command is executed, the process jumps to step S203.

[0028] S203, the agent plugin sends GPIO signals to control and request the switching of the blade unit to the serial port receiving channel of the monitoring and management blade; sets the frame header to "0x02", and sets the content of other fields in the response packet according to the execution status of the configuration management command; after receiving the switching confirmation signal, it sends an "execution completed" response packet frame to the monitoring and management software SMC through the serial communication protocol;

[0029] S204. After receiving the response information from the agent plugin, the monitoring and management software SMC will process it according to the category of the response information: If the received response packet header is "Instruction Received": Based on the status information of the response packet, if the status is 0, it means that the instruction received by the agent plugin is consistent with the instruction sent, and the status of the instruction in the queue of pending configuration management instructions is updated to "10"; if the status is non-zero, the agent plugin failed to receive the instruction, and the instruction execution priority is increased, and the status of the instruction in the queue of pending configuration management instructions is updated to "00"; If the received response packet type is "Execution Completed": Based on the status information of the response packet, if the status is 0, it means that the instruction was executed successfully, and the status of the instruction in the queue of pending configuration management instructions is updated to "11", the instruction is added to the instruction completion queue, and the corresponding execution result is parsed and fed back to the upper layer application; if the status is non-zero, it means that the instruction execution failed, and the instruction execution priority is reduced, and the status of the instruction in the queue of pending configuration management instructions is updated to "00".

[0030] Furthermore, the present invention also provides a multi-unit server parallel configuration management system designed with hardware and software co-design, including interconnected monitoring and management blades and blade units, wherein the monitoring and management blades and blade units are programmed or configured to execute the multi-unit server parallel configuration management method designed with hardware and software co-design.

[0031] Compared with existing technologies, the present invention mainly achieves the following beneficial effects: The present invention utilizes the monitoring and management software SMC running on the CPU of the CPLD switching logic component in the monitoring and management blade to perform parallel configuration management on each blade unit. The CPLD switching logic component includes two multiplexers: a master multiplexer and a slave multiplexer. The master multiplexer controls the serial port transmission channel, and the slave multiplexer controls the serial port reception channel. The master and slave multiplexers have independent switching control signals to realize half-duplex parallel configuration of the serial port channel between the monitoring and management blade and the blade unit. The present invention enables the monitoring and management software SMC deployed on the monitoring and management unit to perform efficient configuration management on each blade unit, such as service network address configuration, even when the in-band service access network and the out-of-band monitoring and management network are physically isolated or the in-band service access network cannot be accessed. This invention implements a parallel configuration management method for multiple blade units, separating command transmission and result feedback. By designing independent serial port transmission and reception switching channels in hardware and an asynchronous serial communication protocol in software, the method allows the monitoring and management blade to send configuration management commands to the blade units without waiting for the blade units to complete the execution of the configuration management commands and return result information before switching the serial port channel to send the next configuration management command. Simultaneously, by dynamically establishing temporary serial port channels between the monitoring and management blade and the target blade, and immediately disconnecting them after configuration, potential attack paths are cut off. This eliminates the need to establish access channels between the BMC and CPU on the blade units, enabling the monitoring and management software SMC deployed on the monitoring and management blade to perform parallel configuration management of each blade unit. This achieves physical-level security isolation and improves the efficiency of parallel configuration management. Attached Figure Description

[0032] Figure 1 This is a schematic diagram illustrating the basic principle of the method in an embodiment of the present invention.

[0033] Figure 2 This is a flowchart illustrating the execution of configuration management commands by the monitoring and management software SMC in an embodiment of the present invention.

[0034] Figure 3 This is a flowchart illustrating the execution of configuration management instructions by the proxy plugin in an embodiment of the present invention. Detailed Implementation

[0035] To improve the service access performance of multi-unit servers and reduce the competition for network bandwidth between service access data and monitoring and management data, multi-unit servers are typically designed with an in-band service access network and an out-of-band monitoring and management network. These two networks are physically isolated, ensuring service access performance while improving the effectiveness and maintainability of the monitoring and management system. In high-density multi-unit server environments, a monitoring and management unit is usually designed, responsible for status monitoring and configuration management of each blade unit through the out-of-band monitoring and management network. Some configuration management operations for each blade unit, such as service network address configuration, firmware updates, network address queries, and online status checks, need to be configured, queried, and managed within the operating system of each blade unit. However, the monitoring and management unit cannot directly access each blade unit and perform these configuration management operations through the out-of-band monitoring and management network. This invention aims to address the problem of blocking caused by request execution time in situations where the in-band service access network and the out-of-band monitoring and management network are physically isolated or inaccessible to the in-band service access network. It enables efficient configuration management of each blade unit through monitoring and management software (SMC) deployed on the monitoring and management unit, resolving the blocking problem caused by request execution time. To enable those skilled in the art to better understand the technical solutions of the present invention, the technical solutions of the present invention will be further described in detail below with reference to the accompanying drawings in the embodiments of the present invention.

[0036] like Figure 1 As shown, the multi-unit server parallel configuration management method of this embodiment, designed with hardware and software co-design, includes the following steps: Parallel configuration management of each blade unit is performed using the CPLD switching logic component in the monitoring and management blade and the monitoring and management software SMC running on the CPU. The CPLD switching logic component includes two multiplexers: a master multiplexer and a slave multiplexer. The master multiplexer controls the serial port transmission channel and is responsible for transmitting configuration management instruction data frames sent from the monitoring and management blade to the multiple blade units. The slave multiplexer controls the serial port reception channel and is responsible for transmitting data frames returning execution results from the multiple blade units to the monitoring and management blade. The CPU of the monitoring and management blade and the CPU of the blade unit are respectively connected to the CPLD switching logic component via a serial port, and GPIO signals are output and connected to the GPIO pins of the CPLD switching logic component to control the channel switching of the master and slave multiplexers. The master and slave multiplexers have independent switching control signals to realize half-duplex parallel configuration of the serial port channel between the monitoring and management blade and the blade unit.

[0037] The server system (multi-unit server) in this embodiment includes one monitoring and management blade and multiple blade units. The monitoring and management network connects the Baseboard Management Controller (BMC) of all blade units to the monitoring and management blade, transmitting only out-of-band management data (such as status monitoring). The service network connects to the service ports of each blade unit for service data transmission and is physically isolated from the monitoring and management network. The serial port channel is separately wired through the backplane and is used only for configuration command transmission, not for service or management data transmission. Addressing the characteristics of diverse control and management commands and long execution times in multi-unit servers, this invention designs a mechanism that separates control command transmission from control command execution result feedback. This allows control commands to be quickly and efficiently issued to each blade unit, and each blade unit, after executing the control command, sequentially feeds back to the monitoring and management blade, improving control and management efficiency. Especially when control and management commands are frequently issued, making the serial port transmission channel from the monitoring and management blade to the blade units heavy, the control and management time can be optimized from a linear level (where the control and management execution completion time increases linearly with the number of blades) to an approximately constant level (where all blades execute control and management commands in approximately parallel).

[0038] In this embodiment, the monitoring and management blade includes a CPU, a CPLD switching logic component, and monitoring and management software (SMC) deployed and running on the CPU. The CPU runs the monitoring and management software SMC, which is responsible for issuing configuration management commands and managing the process. The CPLD switching logic component implements two multiplexers (MUX), a master and a slave, to switch the serial port transmit and receive channels respectively. The master multiplexer controls the serial port transmit channel, responsible for transmitting configuration management command data frames sent by the monitoring and management blade to the blade unit; the slave multiplexer controls the serial port receive channel, responsible for transmitting data frames of execution results returned by the blade unit to the monitoring and management blade. Through the separate switching control of the master and slave multiplexers, half-duplex parallelism of the serial port channel between the monitoring and management blade and the blade unit is achieved, breaking the blocking bottleneck of "request-response" under the traditional single MUX "serial synchronization" mechanism. The CPU of the monitoring and management blade is connected to the CPLD switching logic component via a serial port, and GPIO signals are brought out and connected to the GPIO pins of the CPLD switching logic component. When the monitoring and management software SMC receives a monitoring and management request from the upper-layer application, and the monitoring and management request is a configuration management operation that requires establishing a serial port channel with a certain blade unit, the monitoring and management software SMC sends a GPIO signal. After receiving the GPIO signal, the CPLD switching logic component switches the serial port transmission channel through the master multiplexer to connect the transmitting serial port TX of the monitoring and management blade to the receiving serial port RX of the target blade unit, thereby realizing serial communication between the monitoring and management blade and the blade unit. After the monitoring and management software SMC sends a control command to the blade unit that has established a serial port transmission channel, it does not need to wait for the command execution result, but immediately controls the master multiplexer to switch to establish a serial port channel between the monitoring and management blade and the next blade unit, and completes the sending of the next control command.

[0039] This embodiment also includes the following: when the monitoring and management software SMC receives a monitoring and management request from the upper-layer application, and the monitoring and management request is a configuration management operation that requires establishing a serial port channel with a certain blade unit, the monitoring and management software SMC sends a GPIO signal. After receiving the GPIO signal, the CPLD switching logic component switches the serial port transmission channel through the main multiplexer to connect the transmitting serial port TX of the monitoring and management blade to the receiving serial port RX of the target blade unit, thereby realizing serial communication between the monitoring and management blade and the blade unit. After the monitoring and management software SMC sends a control command to the blade unit that has established a serial port transmission channel, it does not need to wait for the command execution result, but immediately controls the main multiplexer to switch to establish a serial port channel between the monitoring and management blade and the next blade unit, and completes the sending of the next control command.

[0040] In this embodiment, the CPU of each blade unit outputs a serial port and two GPIO signals, which are connected to the CPLD switching logic component of the monitoring and management blade through the backplane. The CPU runs the operating system, business applications, and agent plugins. The agent plugins are responsible for listening to the serial port transmission channel, receiving configuration management instructions and data parameters issued from the monitoring and management blade, and executing the corresponding configuration management operations. If the instruction is successfully received or the instruction is executed, the multiplexer will be switched to the serial port reception channel by sending GPIO signals to connect the transmission serial port TX of the blade unit and the reception serial port RX of the monitoring and management blade, thereby realizing the transmission of "instruction received" or instruction execution result information to the monitoring and management software SMC.

[0041] In this embodiment, the monitoring and management software SMC maintains a queue of configuration management instructions to be executed and an instruction completion queue. The configuration management instruction queue is managed according to instruction priority. Each instruction has two status bits: "00" indicates that the instruction is pending; "01" indicates that the instruction has been sent; "10" indicates that the instruction has been received by the target blade unit; and "11" indicates that the instruction has been executed. When the monitoring and management software SMC receives a configuration management instruction from the upper-layer application, it puts it into the queue of configuration management instructions to be executed and sets the corresponding instruction status to "00". After the monitoring and management software SMC sends the configuration management instruction to the blade unit according to the priority strategy, it sets the corresponding instruction status to "01". When the monitoring and management software SMC receives the "instruction received" information from the blade unit, it updates the corresponding instruction status to "10". When it receives the instruction execution result from the blade unit, it updates the corresponding instruction status to "11" and moves the instruction into the instruction completion queue.

[0042] To ensure reliable serial port switching and communication by the master multiplexer, this embodiment uses an internal control signal completion flag (done_flag0), a switching logic module, a status detection module, and a status register (status_reg0) to manage the serial port transmission channel. The completed flag (done_flag0) indicates whether the serial port switching is complete. During initialization, the completed flag (done_flag0) is set low, and after the switching operation is completed, it is set high. The status register (status_reg0) records the information of the currently connected serial port devices. Each bit in the status register (status_reg0) represents a serial port device, with the bit corresponding to the currently connected device set to 1. After switching, the status register (status_reg0) is updated to indicate the new connection status. The monitoring and management blade host can determine the current connection status by reading the status register (status_reg0). The system checks whether the connected serial port device is the target device. If the status register `status_reg0` shows that the target device is connected, the monitoring and management blade host can start communication. The status detection module detects the current status of the serial port transmission channel, which is divided into idle and busy states. The switching logic module receives the switching command and executes the switching operation. After receiving the switching command sent by the host via GPIO, the CPLD switching logic component parses the target serial port device, waits for the current serial port channel to be idle, configures the internal multiplexer switch, and connects the serial port of the monitoring and management blade to the serial port of the target blade unit. After the switching is completed, the completed flag bit `done_flag0` is updated to a high level, and the corresponding bit of the connected device in the status register `status_reg0` is updated to indicate that the switching is complete. At the same time, after the switching is completed, the GPIO pin of the CPLD switching logic component is set to a high level and held for a preset time so that the monitoring and management blade host can detect the "switching complete" signal.

[0043] In this embodiment, the feedback channel is controlled by the multiplexer, and the blade unit sends GPIO signals to control the switching of the blade unit to the serial port receiving channel of the monitoring and management blade. This helps the blade unit send the reception status and execution result information of the control commands to the monitoring and management node. The receiving channel adopts event-driven reception. The CPLD detects the response signals of each blade unit through polling and switches the receiving channel accordingly. In this embodiment, the multiplexer includes dual GPIO signal lines. Each blade unit is connected to two types of pins INT_ACK[i] and INT_RESULT[i] of the CPLD switching logic component through two independent GPIO signal lines, where i∈[0,N-1], and N is the number of blade units. The pin INT_ACK[i] is triggered immediately after the blade unit receives the control command and verifies it successfully. It is active high and indicates "acknowledgment received" and has a higher priority. The pin INT_RESULT[i] is triggered after the blade unit's control command execution is completed or timeout. It is active high and indicates "execution result ready" and has a normal priority. When the proxy plug-in receives the configuration... When a management command is received, the agent plugin checks the integrity of the received configuration management command. By controlling GPIO signals, it controls the multiplexer to switch the serial port receive channel to connect the blade unit's transmit serial port TX and the monitoring and management blade's receive serial port RX. After receiving the switch confirmation signal, it sends a "command received" confirmation message to the monitoring and management software SMC via the serial communication protocol. When the agent plugin completes the execution of the configuration management command or the execution times out, it controls the multiplexer to switch the serial port receive channel to connect the blade unit's transmit serial port TX and the monitoring and management blade's receive serial port RX by controlling GPIO signals. After receiving the switch confirmation signal, it sends the command execution result information to the monitoring and management software SMC via the serial communication protocol.

[0044] In this embodiment, serial port receive channel management is implemented internally by the multiplexer through an internal control signal completion flag (done_flag1), a switching logic module, a status detection module, and a status register (status_reg1). The completion flag (done_flag1) of the internal control signal indicates whether the serial port switching is complete. During initialization, the completion flag (done_flag1) is set to a low level; after the switching operation is completed, the completion flag (done_flag1) is set to a high level. The status register (status_reg1) records the information of the currently connected serial port devices. Each bit of the status register (status_reg1) represents a serial port device, and the bit corresponding to the currently connected device is set to 1. After the switching is completed, the status register (status_reg1) is updated to indicate the new connection status. The status detection module is used to detect the current status of the serial port receive channel. The CPLD switching logic component internally includes... A state machine is designed to track the transmission status of data frames, divided into idle and busy states. The state detection module can identify the start bit and stop bit of the data frame. Initially, the state machine is in the idle state. When the state detection module detects the start bit of the data frame, it sets the state machine to busy. When the state detection module detects the stop bit of the data frame, it sets the state machine to idle. Each bit of the receive instruction register ack_reg represents a serial port device, and the corresponding bit of the blade unit requesting feedback of the receive instruction is set to 1. Each bit of the execution result register result_reg represents a serial port device, and the corresponding bit of the blade unit requesting feedback of the execution instruction result is set to 1. The GPIO signal processing module is used to monitor the response signals of each blade unit in real time, that is, to scan the status of all pins INT_ACK[i] and INT_RESULT[i] in real time. Once it is detected that a blade unit sends "acknowledgment of receipt" (INT_ACK) or "execution result ready" (INT_RESULT), the GPIO signal processing module will detect the start bit and stop bit. The INT_RESULT signal indicates that the blade unit has successfully received the instruction or completed instruction execution. Immediately, the corresponding blade unit number's receive instruction register ack_reg or execution result register result_reg is set to 1, triggering the switching logic module to switch the serial port receive channel and avoid blocking caused by synchronization waiting. The switching logic module is responsible for detecting the receive instruction register ack_reg and the execution result register result_reg. It first obtains the blade unit number to be connected from the receive instruction register ack_reg. Only if the receive instruction register ack_reg is all 0s will it obtain the blade unit number to be connected from the execution result list result_list in the execution result register result_reg.When a serial port channel needs to be established between a blade unit and the monitoring and management blade, the internal multiplexing switch is configured to connect the blade unit's transmitting serial port TX to the monitoring and management blade's receiving serial port RX when the current serial port channel is idle. After the switchover is complete, the completed flag bit (done_flag1) is updated to a high level, and the corresponding bit in the status register (status_reg1) is updated to indicate that the switchover is complete. Simultaneously, after the switchover is complete, the corresponding GPIO pin of the blade unit is set to a high level and held for a preset time so that the blade unit host can detect the "switchover complete" signal.

[0045] In this embodiment, the monitoring and management software SMC deployed on the monitoring and management blade sends control command packets to the blade unit through a serial communication protocol, and the agent plugin on the blade unit sends response packets to the monitoring and management blade in response to the control command packets of the monitoring and management blade.

[0046] In this embodiment, the frame format of the control instruction packet consists of seven parts: frame header (sign), target node ID (node_ID), instruction type (cmd_Type), instruction data field length (cmd_DataLen), instruction data (cmd_Data), timeout (timeout_ms), and checksum (crc_16), as shown in Table 1.

[0047]

[0048] Table 1 provides the definitions of frame header sign, target node ID node_ID, instruction type cmd_Type, instruction data field length cmd_DataLen, instruction data cmd_Data, timeout timeout_ms, and checksum crc_16.

[0049] In this embodiment, the frame format of the response packet consists of eight parts: frame header (sign), source node ID (node_ID), instruction type (cmd_Type), execution status (status), execution result field length (result_DataLen), execution result (result_data), execution time (timestamp), and checksum (crc_16), as shown in Table 2.

[0050]

[0051] Table 2 provides the definitions of frame header sign, source node ID node_ID, instruction type cmd_Type, execution status status, execution result field length result_DataLen, execution result result_data, execution time timestamp, and checksum crc_16.

[0052] like Figure 2 As shown, this embodiment also includes the step of the monitoring and management software SMC issuing configuration management commands:

[0053] S101, the monitoring and management software SMC maintains a queue of configuration management instructions to be executed and an instruction completion queue. After receiving the monitoring and management command provided by the upper layer application, it parses the instruction to form a set of configuration management instructions for each blade unit. The initial priority value of the configuration management instruction is provided by the upper layer application. The monitoring and management software SMC adds the configuration management instruction to the queue of configuration management instructions to be executed according to the instruction priority and sets the status bit of the corresponding instruction to "00".

[0054] S102, determine whether the queue of configuration management instructions to be executed by the monitoring and management software SMC is empty. If it is not empty, take the instruction with the highest priority from the queue of configuration management instructions to be executed according to the priority, parse the node_ID of the blade unit target node of the configuration management instruction, and jump to step S103; otherwise, jump to step S102 to continue the judgment.

[0055] S103, the monitoring and management software SMC reads the status register status_reg0 of the master multiplexer to determine whether the currently connected serial port device is the target blade unit. If the status register status_reg0 of the master multiplexer shows that the target blade unit has been connected, the monitoring and management blade starts communication and sends configuration management instructions. The status of the instructions in the queue of configuration management instructions to be executed is updated to "01".

[0056] S104, The monitoring and management software SMC obtains the status information of the blade unit through the baseboard management controller (BMC) of the corresponding blade unit and determines whether the blade unit is working normally: If the blade unit is working normally, the monitoring and management software SMC sends a GPIO signal to the CPLD switching logic component to request the establishment of a serial port transmission channel from the monitoring and management blade to the blade unit, and jumps to step S105; If the blade unit is not working normally, the monitoring and management software SMC lowers the priority of the configuration management instruction in the queue of pending configuration management instructions, and jumps to step S102.

[0057] S105, after the CPLD switching logic component receives the GPIO signal, the main multiplexer, based on the target blade unit identified by the GPIO signal, completes the serial port channel switching between the CPU of the switching management blade and the CPU of the target blade unit, establishes a serial port transmission path for configuration management commands, and sends back information indicating that the serial port transmission path has been successfully established.

[0058] S106 After receiving the confirmation signal that the serial port transmission path has been successfully established, the monitoring and management software SMC sends a configuration management command, and the command status in the queue of pending configuration management commands is updated to "01".

[0059] like Figure 3 As shown, this embodiment also includes the step of the agent plugin in the blade unit executing configuration management instructions:

[0060] S201, The agent plugin listens to serial port information. When it receives a configuration management command, it jumps to step S202.

[0061] S202: The integrity of the received configuration management command is checked via CRC verification. If the received configuration management command is complete, the corresponding configuration management command is executed, and the execution is awaited. Simultaneously, a GPIO signal is sent to request switching the blade unit to the serial port receiving channel of the monitoring and management blade. The response frame is set with a header of "0x01" and a status of 0. After receiving the switching confirmation signal, a "command received" response frame is sent to the monitoring and management software SMC via the serial communication protocol. If the received configuration management command is incomplete, a GPIO signal is sent to request switching the blade unit to the serial port receiving channel of the monitoring and management blade. The response frame is set with a header of "0x01" and a non-zero error code. After receiving the switching confirmation signal, a "command received" response frame is sent to the monitoring and management software SMC via the serial communication protocol. Finally, after the configuration management command is executed, the process jumps to step S203.

[0062] S203, the agent plugin sends GPIO signals to control and request the switching of the blade unit to the serial port receiving channel of the monitoring and management blade; sets the frame header to "0x02", and sets the content of other fields in the response packet according to the execution status of the configuration management command; after receiving the switching confirmation signal, it sends an "execution completed" response packet frame to the monitoring and management software SMC through the serial communication protocol;

[0063] S204. After receiving the response information from the agent plugin, the monitoring and management software SMC will process it according to the category of the response information: If the received response packet header is "Instruction Received": Based on the status information of the response packet, if the status is 0, it means that the instruction received by the agent plugin is consistent with the instruction sent, and the status of the instruction in the queue of pending configuration management instructions is updated to "10"; if the status is non-zero, the agent plugin failed to receive the instruction, and the instruction execution priority is increased, and the status of the instruction in the queue of pending configuration management instructions is updated to "00"; If the received response packet type is "Execution Completed": Based on the status information of the response packet, if the status is 0, it means that the instruction was executed successfully, and the status of the instruction in the queue of pending configuration management instructions is updated to "11", the instruction is added to the instruction completion queue, and the corresponding execution result is parsed and fed back to the upper layer application; if the status is non-zero, it means that the instruction execution failed, and the instruction execution priority is reduced, and the status of the instruction in the queue of pending configuration management instructions is updated to "00".

[0064] Furthermore, this embodiment also provides a multi-unit server parallel configuration management system designed with hardware and software co-design, including interconnected monitoring and management blades and blade units, wherein the monitoring and management blades and blade units are programmed or configured to execute the multi-unit server parallel configuration management method designed with hardware and software co-design.

[0065] In summary, the method of this embodiment sets asynchronous serial port switching logic—CPLD switching switch logic component—to monitor and manage the blade, so as to realize the dynamic connection between the CPU serial port of the monitored and managed blade and the serial port channel of each blade unit CPU as needed, avoiding the security problems caused by the traditional method of establishing a communication path between the BMC and the CPU for monitoring and management. This embodiment of the method designs a master multiplexer (controlling transmission) and a slave multiplexer (controlling reception) that independently switch between serial port transmission and reception channels. This allows for asynchronous feedback of command issuance and execution results, truly enabling multiple blade units to execute configuration management commands in parallel. This avoids the congestion caused by one blade unit taking too long to execute configuration management commands, which prevents other blade units from receiving their commands (as in traditional single-serial-port switching schemes). (Request issuance and result feedback must be synchronously waited for (e.g., commands are sent only after polling the target blade, and the next blade unit is switched only after the execution result is returned).) This improves configuration management efficiency in multi-blade units. This embodiment of the method has the following advantages: 1. A more secure configuration management implementation method: By establishing a temporary serial port path between the monitoring and management blade CPU and the blade unit CPU, configuration management commands are sent to the proxy plugin on the blade unit CPU via the serial port. The connection is immediately severed after configuration, physically isolating attacks. 1. **Pathless Access:** This avoids the security issues associated with establishing a path between the BMC and CPU for configuration management. 2. **More Efficient Configuration Management Implementation:** Upgrading the traditional single-MUX's "serial synchronous" mode to "half-duplex parallel" by designing independently controlled serial port sending and receiving channels. This allows for asynchronous execution of command issuance and command execution result feedback, breaking the "request-response" bottleneck of synchronous mechanisms and improving the parallelism of multiple blade units executing configuration management commands, thus increasing configuration management efficiency. 3. **Through a three-layer collaboration of hardware, asynchronous communication protocols, and software, this solution achieves efficient differentiation and processing of two types of feedback without significantly increasing hardware complexity, providing reliable support for asynchronous management of large-scale blade servers. 4. **Applicable to Different Monitoring and Management Environments:** Suitable for monitoring and management frameworks with isolated out-of-band and in-band management networks, as well as for situations where in-band business networks are unavailable and configuration management commands issued by upper-layer applications cannot be implemented through the in-band business network.

[0066] The above description is merely a preferred embodiment of the present invention. The scope of protection of the present invention is not limited to the above embodiments. All technical solutions falling within the scope of the present invention's concept are within the scope of protection of the present invention. It should be noted that for those skilled in the art, any improvements and modifications made without departing from the principles of the present invention should also be considered within the scope of protection of the present invention.

Claims

1. A method for parallel configuration management of multi-unit servers through hardware and software co-design, characterized in that, The process includes the following steps: using the CPLD switching logic component in the monitoring and management blade and the monitoring and management software SMC running on the CPU to perform parallel configuration management on each blade unit. The CPLD switching logic component includes two multiplexers: a master multiplexer and a slave multiplexer. The master multiplexer controls the serial port transmission channel and is responsible for transmitting the configuration management instruction data frames sent by the monitoring and management blade to the multiple blade units. The serial port receiving channel controlled by the multiplexer is responsible for transmitting data frames containing execution results from the multi-blade unit to the monitoring and management blade. The CPUs of the monitoring and management blade and the blade unit are connected to the CPLD switching logic component via serial ports, and GPIO signals are output and connected to the GPIO pins of the CPLD switching logic component to control the channel switching of the master and slave multiplexers. The master and slave multiplexers have independent switching control signals to achieve half-duplex parallel configuration of the serial port channel between the monitoring and management blade and the blade unit. The multi-unit server parallel configuration management method also includes the step of the monitoring and management software SMC issuing configuration management instructions. S101, the monitoring and management software SMC maintains a queue of configuration management instructions to be executed and an instruction completion queue. After receiving the monitoring and management command provided by the upper layer application, it parses the instruction to form a set of configuration management instructions for each blade unit. The initial priority value of the configuration management instruction is provided by the upper layer application. The monitoring and management software SMC adds the configuration management instruction to the queue of configuration management instructions to be executed according to the instruction priority and sets the status bit of the corresponding instruction to "00". S102, determine whether the queue of configuration management instructions to be executed by the monitoring and management software SMC is empty. If it is not empty, take out the instruction with the highest priority from the queue of configuration management instructions to be executed according to the priority, parse the node_ID of the blade unit target node of the configuration management instruction, and jump to step S103. Otherwise, proceed to step S102 to continue the judgment; S103, the monitoring and management software SMC reads the status register status_reg0 of the main multiplexer to determine whether the currently connected serial port device is the target blade unit. If the status register status_reg0 of the main multiplexer shows that the target blade unit has been connected, the monitoring and management blade starts communication and sends configuration management instructions. The status of the instructions in the queue of configuration management instructions to be executed is updated to "01". S104, The monitoring and management software SMC obtains the status information of the blade unit through the baseboard management controller (BMC) of the corresponding blade unit and determines whether the blade unit is working normally: If the blade unit is working normally, the monitoring and management software SMC sends a GPIO signal to the CPLD switching logic component to request the establishment of a serial port transmission channel from the monitoring and management blade to the blade unit, and jumps to step S105; If the blade unit is not working normally, the monitoring and management software SMC lowers the priority of the configuration management instruction in the queue of pending configuration management instructions, and jumps to step S102. S105, after the CPLD switching logic component receives the GPIO signal, the main multiplexer, based on the target blade unit identified by the GPIO signal, completes the serial port channel switching between the CPU of the switching management blade and the CPU of the target blade unit, establishes a serial port transmission path for configuration management commands, and sends back information indicating that the serial port transmission path has been successfully established. S106 After receiving the switching confirmation signal that the serial port transmission path has been successfully established, the monitoring and management software SMC sends a configuration management command, and the command status in the queue of configuration management commands to be executed is updated to "01". It also includes the steps for the agent plugin in the blade unit to execute configuration management instructions: S201, The agent plugin listens to serial port information. When it receives a configuration management command, it jumps to step S202. S202: The integrity of the received configuration management command is checked via CRC verification. If the received configuration management command is complete, the corresponding configuration management command is executed, and the execution is awaited. Simultaneously, a GPIO signal is sent to request switching the blade unit to the serial port receiving channel of the monitoring and management blade. The response frame is set with a header of "0x01" and a status of 0. After receiving the switching confirmation signal, a "command received" response frame is sent to the monitoring and management software SMC via the serial communication protocol. If the received configuration management command is incomplete, a GPIO signal is sent to request switching the blade unit to the serial port receiving channel of the monitoring and management blade. The response frame is set with a header of "0x01" and a non-zero error code. After receiving the switching confirmation signal, a "command received" response frame is sent to the monitoring and management software SMC via the serial communication protocol. Finally, after the configuration management command is executed, the process jumps to step S203. S203, the agent plugin sends GPIO signal control to request switching the blade unit to the serial port receiving channel for monitoring and managing the blade; Set the frame header to "0x02", and set the content of other fields in the response packet according to the execution of the configuration management instructions; Upon receiving the switch confirmation signal, a "execution completed" response packet frame is sent to the monitoring and management software SMC via the serial communication protocol; S204. After receiving the response information from the agent plugin, the monitoring and management software SMC will process it according to the type of the response information: If the received response packet header is "Instruction Received": Based on the status information of the response packet, if the status is 0, it means that the instruction received by the agent plugin is consistent with the instruction sent, and the status of the instruction in the queue of pending configuration management instructions is updated to "10"; if the status is non-zero, the agent plugin failed to receive the instruction, and the instruction execution priority is increased, and the status of the instruction in the queue of pending configuration management instructions is updated to "00"; If the received response packet type is "Execution Completed": Based on the status information of the response packet, if the status is 0, it means that the instruction was executed successfully, and the status of the instruction in the queue of pending configuration management instructions is updated to "11", the instruction is added to the instruction completion queue, and the corresponding execution result is parsed and fed back to the upper layer application; if the status is non-zero, it means that the instruction execution failed, and the instruction execution priority is reduced, and the status of the instruction in the queue of pending configuration management instructions is updated to "00".

2. The multi-unit server parallel configuration management method for hardware and software co-design according to claim 1, characterized in that, It also includes the following: when the monitoring and management software SMC receives a monitoring and management request from the upper layer application, and the monitoring and management request is a configuration management operation that requires establishing a serial port channel with a certain blade unit, the monitoring and management software SMC sends a GPIO signal. After receiving the GPIO signal, the CPLD switching logic component switches the serial port transmission channel through the main multiplexer to connect the transmission serial port TX of the monitoring and management blade to the reception serial port RX of the target blade unit, so as to realize serial communication between the monitoring and management blade and the blade unit. After the monitoring and management software SMC sends control commands to the blade unit that has established a serial port transmission channel, it does not need to wait for the command execution result. It immediately controls the master multiplexer to switch to establish a serial port channel between the monitoring and management blade and the next computing blade, and completes the transmission of the next control command.

3. The multi-unit server parallel configuration management method for hardware and software co-design according to claim 1, characterized in that, Each blade unit's CPU outputs a serial port and two GPIO signals, which are connected to the CPLD switching logic component of the monitoring and management blade via a backplane. The CPU runs the operating system, business applications, and agent plugins. The agent plugins are responsible for listening to the serial port transmission channel, receiving configuration management instructions and data parameters issued from the monitoring and management blade, and executing corresponding configuration management operations. Upon successful instruction reception or instruction execution, the multiplexer switches the serial port reception channel by sending GPIO signals to connect the blade unit's transmit serial port TX and the monitoring and management blade's receive serial port RX, thereby enabling the "instruction received" or instruction execution result information to be sent to the monitoring and management software SMC.

4. The multi-unit server parallel configuration management method for hardware and software co-design according to claim 1, characterized in that, The Monitoring and Management Software (SMC) maintains a queue of pending configuration management commands and a command completion queue. The configuration management command queue is managed according to command priority. Each command has two status bits: "00" indicates the command is pending issuance; "01" indicates the command has been sent; "10" indicates the command has been received by the target blade unit; and "11" indicates the command has been executed. When the SMC receives a configuration management command from an upper-layer application, it places it in the pending configuration management command queue and sets the corresponding command status to "00". After sending the configuration management command to the blade unit according to the priority strategy, the SMC sets the corresponding command status to "01". When the SMC receives a "command received" message from the blade unit, it updates the corresponding command status to "10". When it receives the command execution result from the blade unit, it updates the corresponding command status to "11" and moves the command into the command completion queue.

5. The multi-unit server parallel configuration management method for hardware and software co-design according to claim 1, characterized in that, The main multiplexer internally manages the serial port transmission channel through an internal control signal completion flag (done_flag0), a switching logic module, a status detection module, and a status register (status_reg0). The completion flag (done_flag0) indicates whether the serial port switching is complete. During initialization, the completion flag (done_flag0) is set low, and after the switching operation is completed, it is set high. The status register (status_reg0) records the information of the currently connected serial port device. Each bit in the status register (status_reg0) represents a serial port device, with the bit corresponding to the currently connected device set to 1. After the switching is completed, the status register (status_reg0) is updated to indicate the new connection status. The monitoring and management blade host can determine whether the currently connected serial port device is the target device by reading the status register (status_reg0). If the status register status_reg0 shows that the target device is connected, the monitoring and management blade host can start communication. The status detection module is used to detect the status of the current serial port transmission channel, which is divided into two states: idle and busy. The switching logic module is used to receive the switching command and execute the switching operation. After the CPLD switching switch logic component receives the switching command sent by the host through GPIO, the switching logic module parses the target serial port device, waits for the current serial port channel status to be idle, configures the internal multiplexer switch, so that the serial port of the monitoring and management blade is connected to the serial port of the target blade unit. After the switching is completed, the completed flag bit done_flag0 is updated to a high level, and the corresponding bit of the connected device in the status register status_reg0 is updated to indicate that the switching is complete. At the same time, after the switching is completed, the GPIO pin of the CPLD switching switch logic component is set to a high level and held for a preset time so that the monitoring and management blade host can detect the "switching complete" signal.

6. The multi-unit server parallel configuration management method for hardware and software co-design according to claim 1, characterized in that, The multiplexer includes dual GPIO signal lines. Each blade unit is connected to two types of pins, INT_ACK[i] and INT_RESULT[i], of the CPLD switching logic component via two independent GPIO signal lines, where i∈[0,N-1] and N is the number of blade units. Pin INT_ACK[i] is triggered immediately after the blade unit receives and successfully verifies the control command; it is active high, indicating "acknowledgment received" and has a higher priority. Pin INT_RESULT[i] is triggered after the blade unit's control command execution is complete or times out; it is active high, indicating "execution result ready" and has a normal priority. When the agent plugin receives a configuration management command, the agent... The plugin checks the integrity of the received configuration management commands. By controlling GPIO signals, it switches the serial port receive channel of the multiplexer to connect the blade unit's transmit serial port TX and the monitoring and management blade's receive serial port RX. Upon receiving a switch confirmation signal, it sends a "command received" confirmation message to the monitoring and management software SMC via the serial communication protocol. When the agent plugin completes the execution of the configuration management commands or times out, it controls the multiplexer to switch the serial port receive channel of the multiplexer to connect the blade unit's transmit serial port TX and the monitoring and management blade's receive serial port RX by controlling GPIO signals. Upon receiving a switch confirmation signal, it sends the command execution result information to the monitoring and management software SMC via the serial communication protocol. The multiplexer internally uses a... The serial port receive channel management is implemented using an internal control signal completion flag (done_flag1), a switching logic module, a status detection module, and a status register (status_reg1). The internal control signal completion flag (done_flag1) indicates whether the serial port switching is complete; during initialization, the completion flag (done_flag1) is set low; after the switching operation is completed, the completion flag (done_flag1) is set high. The status register (status_reg1) records the information of the currently connected serial port device; each bit in the status register (status_reg1) represents a serial port device, with the bit corresponding to the currently connected device being set to 1. After the switching is complete... After completion, the status register status_reg1 is updated to indicate the new connection status. The status detection module is used to detect the current status of the serial port receiving channel. A state machine is designed inside the CPLD switching logic component to track the transmission status of data frames, which are divided into idle and busy states. The status detection module can identify the start bit and stop bit of the data frame. Initially, the state machine is in the idle state. When the status detection module detects the start bit of the data frame, it sets the state machine to busy. When the status detection module detects the stop bit of the data frame, it sets the state machine to idle. Each bit of the receive instruction register ack_reg represents a serial port device, and the corresponding bit of the blade unit requesting feedback of the receive instruction is set to 1.Each bit in the execution result register `result_reg` represents a serial port device. The bit corresponding to the blade unit requesting feedback on the execution instruction result is set to 1. The GPIO signal processing module is used to monitor the response signals of each blade unit in real time, that is, to scan the status of all pins `INT_ACK[i]` and `INT_RESULT[i]` in real time. Once a blade unit sends an "acknowledgment received" or "execution result ready" signal, indicating that the blade unit has successfully received the instruction or completed the instruction execution, the corresponding blade unit number's receive instruction register `ack_reg` or execution result register `result_reg` is immediately set to 1, triggering the switching logic module to switch the serial port receive channel to avoid blocking caused by synchronization waiting. The switching logic module is responsible for detecting the receive instruction register `ack_reg` and the execution result register `result_reg`, and prioritizes the receive instruction register `ack_reg`. The blade unit number to be connected is obtained from the `reg` register. If the `ack_reg` register is all zeros, the blade unit number to be connected is retrieved from the `result_list` register. When establishing a serial port channel between a blade unit and the monitoring / management blade, the internal multiplexing switch is configured to connect the blade unit's transmitting serial port (TX) to the monitoring / management blade's receiving serial port (RX) when the current serial port channel is idle. After the switchover is complete, the `done_flag1` flag is updated to a high level, and the corresponding bit in the `status_reg1` register is updated to indicate that the switchover is complete. Simultaneously, after the switchover, the corresponding GPIO pin of the blade unit is set to a high level and held for a preset time so that the blade unit host can detect the "switchover complete" signal.

7. The multi-unit server parallel configuration management method for hardware and software co-design according to claim 1, characterized in that, The monitoring and management software SMC deployed on the monitoring and management blade sends control command packets to the blade unit via a serial communication protocol. The agent plugin on the blade unit sends response packets to the monitoring and management blade in response to the control command packets. The frame format of the control command packet consists of 7 parts: frame header sign, target node ID node_ID, command type cmd_Type, command data field length cmd_DataLen, command data cmd_Data, timeout timeout_ms, and checksum crc_16. The frame format of the response packet consists of 8 parts: frame header sign, source node ID node_ID, command type cmd_Type, execution status status, execution result field length result_DataLen, execution result result_data, execution time timestamp, and checksum crc_16.

8. A multi-unit server parallel configuration management system with hardware and software co-design, comprising interconnected monitoring and management blades and blade units, characterized in that, The monitoring and management blades and blade units are programmed or configured to execute the multi-unit server parallel configuration management method of hardware and software co-design as described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Method for implementing redundant management module in compact peripheral component interconnect (CPCI) blade server

    CN102253872A

  • Data processing method and device, electronic equipment and storage medium

    CN115905087A