Data synchronization method, substrate management controller, electronic device, and storage medium
By utilizing the FRU management module and data synchronization module to process and schedule data in a multi-controller storage system, the problems of increasing synchronization data volume and low-speed bus latency between BMCs are solved, achieving efficient and real-time data synchronization.
Patent Information
- Application Number
- CN202310779219.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-06-28
- Publication Date
- 2026-08-25
- Estimated Expiration
- 2043-06-28
AI Technical Summary
In multi-controller storage systems, the amount of data to be synchronized between BMCs increases exponentially due to differences in the data type and quantity of FRUs and the number of controllers. Furthermore, the use of a low-speed physical bus for data synchronization leads to latency issues.
The FRU management module acquires the data to be synchronized, determines its type, and processes it. Under the data synchronization logic, the synchronized data is determined from the processed data, and the data synchronization module schedules the transmission link, selecting the appropriate interface and link for data transmission.
It achieves low-latency and reliable synchronization between different BMCs, improving the real-time performance and accuracy of data synchronization.
Smart Images

Figure CN116795290B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of computer technology, and more particularly to a data synchronization method, a baseboard management controller, an electronic device, and a storage medium. Background Technology
[0002] In storage server hardware design, multiple controller redundancy is often employed, and data synchronization between these controllers is crucial for ensuring the stability and reliability of the storage system. In multi-controller storage systems, multiple Baseboard Manager Controllers (BMCs) typically manage the hardware data within the server, and data synchronization between these BMCs is essential. In existing technologies, the amount of data synchronized between BMCs increases exponentially due to factors such as the data type and quantity of Field Replaceable Units (FRUs) and the number of controllers. Furthermore, the use of low-speed physical buses in the synchronization link negatively impacts data synchronization latency. Summary of the Invention
[0003] This invention provides a data synchronization method to address the shortcomings of existing technologies where, during actual data synchronization, the amount of synchronization data between BMCs increases exponentially due to factors such as the data type and number of FRUs and the number of controllers. Furthermore, the use of a low-speed physical bus for data synchronization in the synchronization link negatively impacts data synchronization latency.
[0004] In a first aspect, the present invention provides a data synchronization method applied to a baseboard management controller at a transmitting end, the baseboard management controller comprising: a field replaceable unit (FRU) management module and a data synchronization module, the data synchronization method comprising:
[0005] The FRU management module acquires the data to be synchronized and determines the type of the data to be synchronized.
[0006] The FRU management module processes the data to be synchronized according to the type of the data to be synchronized;
[0007] When the FRU management module runs the data synchronization logic, it determines the synchronization data from the processed data to be synchronized and sends the synchronization data to the data synchronization module.
[0008] The data synchronization module schedules the synchronization data, determines the transmission link of the synchronization data, and sends the synchronization data to the baseboard management controller at the receiving end through the transmission link.
[0009] In some embodiments, the type includes static data and dynamic data;
[0010] The FRU management module processes the data to be synchronized according to its type, including:
[0011] The FRU management module stores the static data in its memory and retains a static data synchronization status word within the FRU management module. The static data synchronization status word is used to indicate whether the static data has been synchronized.
[0012] The FRU management module divides the dynamic data into striped regions, numbers them, adds check bits, and establishes a synchronous copy of the dynamic data in the memory of the FRU management module.
[0013] In some embodiments, the FRU management module, when running the data synchronization logic, determines the synchronization data from the processed data to be synchronized, including:
[0014] When the FRU management module runs the data synchronization logic, it determines static synchronization data whose static data synchronization status word is negative from the processed static data.
[0015] The FRU management module encapsulates the static synchronization data according to the static data frame format and uses the encapsulated static synchronization data as the synchronization data. The static data frame format includes a data separator field, a static data synchronization status word, and a static data segment.
[0016] In some embodiments, the FRU management module, when running the data synchronization logic, determines the synchronization data from the processed data to be synchronized, including:
[0017] When the FRU management module runs the data synchronization logic, it determines whether a synchronized copy of the dynamic data already exists in the local memory.
[0018] If a synchronized copy of the dynamic data already exists in the local memory, then the dynamic synchronized data that has changed compared to the existing synchronized copy is determined from the processed dynamic data, and the dynamic synchronized data is used as the synchronized data.
[0019] If there is no synchronized copy of the dynamic data in the local memory, the processed dynamic data will be used as the synchronized data.
[0020] In some embodiments, the data synchronization module schedules the synchronization data, determines the transmission link of the synchronization data, and transmits the synchronization data to the baseboard management controller at the receiving end through the transmission link, including:
[0021] Based on the real-time requirements of the FRU management module, the sending interface for the synchronous data is determined, and the sending interface includes a synchronous interface or an asynchronous interface;
[0022] When the synchronization interface is called to send the synchronization data, a priority field is added to the data header frame of the synchronization data. The value of the priority field is determined by querying the priority level table based on the number of the FRU management module. The priority level table is pre-established within the data synchronization module according to the real-time performance and data volume of each FRU management module.
[0023] Based on the priority field, the synchronization data is scheduled, the transmission link of the synchronization data is determined, and the synchronization data is sent to the baseboard management controller at the receiving end through the transmission link.
[0024] In some embodiments, the method further includes:
[0025] When the asynchronous interface is called to send the synchronous data, the synchronous data is aggregated in the data transmission pool of the data synchronization module. The asynchronous data transmission thread of the data synchronization module reads multiple data packets from the data transmission pool at one time, sorts the multiple data packets by priority, and sends the read data packets out sequentially by calling the physical link according to the sorting result.
[0026] In some embodiments, determining the transmission link of the synchronization data includes:
[0027] If both the primary and backup links are functioning normally, the backup link is selected as the transmission link for the synchronization data.
[0028] In the event of an anomaly in any link, a fair competition method is used to determine the transmission link for the synchronization data.
[0029] Secondly, the present invention also provides a baseboard management controller, comprising: a field replaceable unit (FRU) management module and a data synchronization module.
[0030] The FRU management module is used to acquire data to be synchronized, determine the type of the data to be synchronized, process the data to be synchronized according to the type of the data to be synchronized, and, when the data synchronization logic is executed, determine the synchronization data from the processed data to be synchronized and send the synchronization data to the data synchronization module.
[0031] The data synchronization module is used to schedule the synchronization data, determine the transmission link of the synchronization data, and send the synchronization data to the baseboard management controller at the receiving end through the transmission link.
[0032] Thirdly, the present invention also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor, when executing the program, implements the data synchronization method as described above.
[0033] Fourthly, the present invention also provides a non-transitory computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the data synchronization method as described above.
[0034] This invention provides a data synchronization method, a baseboard management controller, an electronic device, and a storage medium. The method acquires data to be synchronized through an FRU management module, determines the type of the data, processes the data according to its type, and, when the data synchronization logic is executed, determines the synchronization data from the processed data and sends it to the data synchronization module. The data synchronization module schedules the synchronization data, determines the transmission link, and sends the synchronization data to the receiving baseboard management controller via the transmission link. This enables low-latency, reliable synchronization of data between different baseboard management controllers (BMCs), improving the real-time performance of data synchronization. Attached Figure Description
[0035] To more clearly illustrate the technical solutions in this invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.
[0036] Figure 1 This is a block diagram of the two-controller hardware structure of a storage server in the existing technology;
[0037] Figure 2 This is one of the flowcharts illustrating the data synchronization method provided in this embodiment of the invention;
[0038] Figure 3 These are examples of processed static and dynamic data provided in embodiments of the present invention;
[0039] Figure 4 This is a schematic diagram of the process provided by an embodiment of the present invention for scheduling synchronization data, determining the transmission link of synchronization data, and sending synchronization data to the baseboard management controller at the receiving end through the transmission link;
[0040] Figure 5 This is one of the structural schematic diagrams of the baseboard management controller provided in the embodiments of the present invention;
[0041] Figure 6This is a second schematic flowchart of the data synchronization method provided in this embodiment of the invention;
[0042] Figure 7 This is a second schematic diagram of the structure of the baseboard management controller provided in an embodiment of the present invention;
[0043] Figure 8 This is a schematic diagram of the structure of the electronic device provided by the present invention. Detailed Implementation
[0044] To make the objectives, technical solutions, and advantages of this invention clearer, the technical solutions of this invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of this invention. All other embodiments obtained by those skilled in the art based on the embodiments of this invention without creative effort are within the scope of protection of this invention.
[0045] Each storage server typically consists of two or four controllers housed in a 2U or 4U chassis. Within the chassis, the controllers have mirrored redundancy and backup for data access, operation, and storage, working together to ensure the server's safe and reliable operation.
[0046] Within the same frame, each controller is considered a data synchronization node, and multiple controllers together form a data synchronization network, where hardware management data flows between nodes in the synchronization network.
[0047] Figure 1 This is a block diagram of the two-controller hardware structure of a storage server in the existing technology. (Example:) Figure 1 As shown, the storage server has two controllers, controller A and controller B. Both controller A and controller B are equipped with a Complex Programmable Logic Device (CPLD) and a BMC. The two CPLDs coordinate the data synchronization between the two BMCs through general purpose input / output (GPIO) heartbeat signals. The two BMCs are connected to each other through an I2C synchronization master link and an I2C synchronization backup link.
[0048] Figure 2 This is one of the flowcharts illustrating the data synchronization method provided in an embodiment of the present invention. For example... Figure 2 As shown, a data synchronization method is provided, applied to a baseboard management controller at the transmitting end. The baseboard management controller includes a field replaceable unit (FRU) management module and a data synchronization module. The data synchronization method includes the following steps: steps 210, 220, 230, and 240. These method steps are merely one possible implementation of the present invention.
[0049] The Baseboard Management Controller (BMC) is typically a standalone computer board installed on the server motherboard to manage server hardware. The BMC can also monitor server health status, such as temperature, voltage, and fan speed. Furthermore, the BMC can provide remote management capabilities through remote management interfaces, such as the Intelligent Platform Management Interface (IPMI), allowing administrators to remotely monitor and manage the server.
[0050] Field Replaceable Units (FRUs) are components that can be replaced in the field during the repair and maintenance of electronic equipment. These components are typically consumable parts or parts that require frequent replacement, such as batteries, hard drives, and fans. FRUs can help reduce equipment repair costs and time because they can be easily replaced in the field without having to send the entire device back to the manufacturer for repair.
[0051] Step 210: The FRU management module obtains the data to be synchronized and determines the type of the data to be synchronized.
[0052] The data to be synchronized includes, but is not limited to, the following: server hardware status data, such as central processing unit (CPU) temperature, fan speed, voltage, etc.; system event logs, including system crashes, power failures, temperature anomalies, etc.; user permissions and configuration information, such as user accounts, passwords, network configurations, etc.; and remote control commands, such as restarting the server and modifying BIOS settings, etc.
[0053] Optionally, the data to be synchronized can be classified by identifying information such as the format, content, and keywords of the data. It can be classified into text data and image data according to the format, or into static data and dynamic data according to the temporal state.
[0054] It is understandable that by acquiring the data to be synchronized and determining its type, it is easier to classify and process different types of data to be synchronized in the future, and to select an appropriate method for data synchronization based on the type of data to be synchronized.
[0055] Step 220: The FRU management module processes the data to be synchronized according to its type.
[0056] It is understandable that different processing methods are used for different types of data to be synchronized, such as adding synchronization status identifiers or numbers, so as to facilitate the quick and efficient identification of synchronized data from the processed data to be synchronized, thereby improving the accuracy and reliability of the synchronized data.
[0057] Step 230: When the FRU management module reaches the data synchronization logic, it determines the synchronization data from the processed data to be synchronized and sends the synchronization data to the data synchronization module.
[0058] It is understandable that selecting data that needs to be synchronized from the processed data to be synchronized and sending it to the data synchronization module, and filtering out data that has been synchronized and data that has not undergone state changes from the processed data to be synchronized, can further improve the accuracy and reliability of the synchronized data and improve the efficiency of data synchronization.
[0059] Step 240: The data synchronization module schedules the synchronization data, determines the transmission link of the synchronization data, and sends the synchronization data to the baseboard management controller at the receiving end through the transmission link.
[0060] It should be noted that the scheduling and transmission of synchronous data typically need to consider the following aspects:
[0061] 1) Data priority: Different types of data may have different priorities. The sending order needs to be determined according to the priority to avoid low-priority data being blocked by high-priority data.
[0062] 2) Network bandwidth and latency: Network bandwidth and latency are also important factors in determining the order of data transmission. The timing of data transmission needs to be determined based on factors such as network conditions and data volume.
[0063] 3) Synchronization accuracy: The accuracy of the synchronized data also needs to be considered. If high-precision synchronization is required, it may be necessary to use network equipment with higher bandwidth and lower latency, as well as more refined scheduling algorithms.
[0064] 4) Data retransmission and loss handling: During data transmission, retransmission and loss may occur, and corresponding mechanisms are needed to handle these problems.
[0065] Taking all the above factors into consideration, a corresponding scheduling algorithm can be designed to schedule the synchronization data and determine the transmission link of the synchronization data, so as to achieve efficient, accurate and stable transmission of the synchronization data.
[0066] In this embodiment of the invention, the FRU management module acquires the data to be synchronized, determines the type of the data to be synchronized, processes the data to be synchronized according to the type of the data to be synchronized, and when the data synchronization logic is executed, determines the synchronization data from the processed data to be synchronized and sends the synchronization data to the data synchronization module; the data synchronization module schedules the synchronization data, determines the transmission link of the synchronization data, and sends the synchronization data to the baseboard management controller at the receiving end through the transmission link, which can reduce the latency of data synchronization between different BMCs and improve the real-time performance and accuracy of the synchronization data.
[0067] It should be noted that each embodiment of the present invention can be freely combined, rearranged, or executed individually, and does not need to rely on or depend on a fixed execution order.
[0068] In some embodiments, the types include static data and dynamic data;
[0069] The FRU management module processes the data to be synchronized according to its type, including:
[0070] The FRU management module stores static data in its memory and retains a static data synchronization status word within the module. This status word indicates whether the static data has been synchronized.
[0071] The FRU management module divides dynamic data into striped regions, numbers them, adds check bits, and establishes a synchronous copy of the dynamic data in the memory of the FRU management module.
[0072] Static data refers to data that does not change over time, including data that is not modified after the routine test is completed, such as user accounts and network configurations; while dynamic data refers to data that changes over time, i.e. data monitored in real time by the FRU management module, such as CPU temperature, fan speed, and voltage.
[0073] The static data synchronization status word is either "Yes" or "No". "Yes" indicates that the static data has been synchronized, while "No" indicates that the static data has not been synchronized.
[0074] It should be noted that, given a fixed total amount of dynamic data, the entire data area is divided according to the data length, and a number and checksum are added to each area. The division is based on the bandwidth of the data transmission channel, and efforts are made to ensure that the amount of striped data is less than the amount of data that the maximum transmission packet can handle.
[0075] Figure 3 Examples of processed static and dynamic data provided in embodiments of the present invention. Figure 3As shown, the processed static data can be either "[Data separator character 5 bytes]; [Data synchronization status _ No]; Static data" or "[Data separator character 5 bytes]; [Data synchronization status _ Yes]". The dynamic data is divided into multiple stripes, including "Data field 1, Data field 2, Data field 3, ..., Data field N". Each stripe of dynamic data has a corresponding number and verification field.
[0076] Understandably, the FRU management module stores static data in its memory and retains a static data synchronization status word within the module. This allows it to determine whether static data needs to be sent based on the synchronization status word. The FRU management module also divides dynamic data into striped regions, assigns numbers, and adds check bits. A synchronized copy of the dynamic data is then created in the module's memory. This facilitates comparison between dynamic data from different stripes and the data in the synchronized copy. Based on the status changes of different stripes, the module determines the data regions that need to be synchronized, thereby improving data synchronization efficiency and reducing latency.
[0077] In some embodiments, the FRU management module, when running the data synchronization logic, determines the synchronization data from the processed data to be synchronized, including:
[0078] When the FRU management module runs the data synchronization logic, it determines the static synchronization data whose static data synchronization status word is negative from the processed static data.
[0079] The FRU management module encapsulates static synchronization data according to the static data frame format and uses the encapsulated static synchronization data as synchronization data. The static data frame format includes a data separator field, a static data synchronization status word, and a static data segment.
[0080] For example, the encapsulated static synchronization data is "[Data separator character 5 bytes]; [Data synchronization status _ No]; Static data".
[0081] Understandably, when the FRU management module runs the data synchronization logic, it determines the static synchronization data with a no-status static data synchronization from the processed static data, encapsulates the static synchronization data according to the static data frame format, and uses the encapsulated static synchronization data as synchronization data. This makes it easier to filter out static data that has not been synchronized, encapsulate it, and use it as synchronization data for synchronization processing, thus avoiding repeated synchronization of static data that has been synchronized.
[0082] In some embodiments, the FRU management module, when running the data synchronization logic, determines the synchronization data from the processed data to be synchronized, including:
[0083] When the FRU management module runs the data synchronization logic, it determines whether a synchronized copy of the dynamic data already exists in the local memory.
[0084] If a synchronized copy of the dynamic data already exists in local memory, then the dynamic synchronized data that has changed compared to the existing synchronized copy is determined from the processed dynamic data and used as the synchronized data.
[0085] If there is no synchronized copy of the dynamic data in local memory, the processed dynamic data will be used as the synchronized data.
[0086] It's important to note that dynamic data synchronization refers to the practice in storage systems of backing up data across multiple nodes to ensure reliability and high availability. This allows for automatic failover to standby nodes in the event of a primary node failure, guaranteeing continuous system operation. The data on these standby nodes are the synchronization copies, which remain synchronized with the data on the primary node to ensure consistency. When the data on the primary node changes, the synchronization copies are also updated accordingly to maintain data synchronization.
[0087] Optionally, when the FRU management module continues to run and the dynamic data changes and is updated, when the processed dynamic data is obtained and compared with the synchronous copy of the dynamic data that already exists in local memory, some algorithms can be used, such as hash value comparison or comparing whether the field values of two objects are the same, and the number of the data area that has changed is recorded.
[0088] Understandably, by determining whether a synchronized copy of the dynamic data already exists in local memory, and if so, comparing the processed dynamic data with it, it becomes easier to identify the changed dynamic synchronized data and use it as the synchronized data. If not, the processed dynamic data is used as the synchronized data, thereby improving the reliability and accuracy of the synchronized data.
[0089] Figure 4 This is a schematic diagram illustrating the process of scheduling synchronization data, determining the transmission link for the synchronization data, and sending the synchronization data to the baseboard management controller at the receiving end through the transmission link, as provided in an embodiment of the present invention. Figure 4 As shown, in some embodiments, the data synchronization module in step 240 schedules the synchronization data, determines the transmission link of the synchronization data, and sends the synchronization data to the baseboard management controller at the receiving end through the transmission link, including:
[0090] Step 241: Based on the real-time requirements of the FRU management module, determine the synchronous data sending interface, which may include a synchronous interface or an asynchronous interface.
[0091] Figure 5 This is one of the structural schematic diagrams of a baseboard management controller provided in an embodiment of the present invention. For example... Figure 5 As shown, the BMC includes an FRU management module and a data synchronization module. The FRU management module retrieves data to be synchronized from different business modules and, based on the real-time requirements, calls the sending interface to determine the sending interface for the synchronized data (i.e., synchronous or asynchronous interface). The data synchronization module includes a synchronous interface, an asynchronous interface, and a sending data pool. If a synchronous interface is selected for data transmission, the data synchronization module can schedule the synchronized data and determine the transmission link (i.e., primary link or backup link). If an asynchronous interface is selected, the synchronized data can be first aggregated in the sending data pool and then the physical link can be called to transmit the synchronized data.
[0092] Synchronous interfaces refer to waiting for a response after sending a request before proceeding to the next step. This method requires waiting time but ensures the accuracy of the data.
[0093] Asynchronous interfaces refer to sending a request and proceeding to the next step without waiting for a response. This method can save time, but may result in inaccurate data.
[0094] Optionally, different FRU management modules can select different interfaces to complete data synchronization based on the real-time nature of the data; asynchronous interfaces are selected for low real-time requirements, while synchronous interfaces are selected for high real-time requirements.
[0095] It is understandable that determining the interface for sending synchronous data is to ensure the real-time nature and accuracy of the data, and the choice of which interface to use depends on the specific requirements and application scenarios.
[0096] Step 242: When calling the synchronization interface to send synchronization data, add a priority field to the data header frame of the synchronization data. The value of the priority field is determined by querying the priority level table based on the FRU management module number. The priority level table is pre-established within the data synchronization module according to the real-time performance and data volume of each FRU management module.
[0097] Step 243: Schedule the synchronization data according to the priority field, determine the transmission link of the synchronization data, and send the synchronization data to the baseboard management controller at the receiving end through the transmission link.
[0098] Optionally, the transmission link can be a primary link or a backup link. The transmission link for the synchronization data can be determined by using a scheduling algorithm based on the link's idle status.
[0099] Understandably, based on the real-time requirements of the FRU management module, the interface for sending synchronous data is determined. When the synchronous interface is called to send synchronous data, a priority field is added to the data header frame of the synchronous data. Based on the priority field, the synchronous data is scheduled, and the transmission link of the synchronous data is determined. The synchronous data is then sent to the baseboard management controller at the receiving end through the transmission link. This not only reduces the latency of data synchronization and improves the efficiency of data synchronization, but also ensures the real-time performance and accuracy of the synchronous data.
[0100] In some embodiments, the method further includes:
[0101] When sending synchronous data via an asynchronous interface, the synchronous data is aggregated in the data pool of the data synchronization module. The asynchronous data sending thread of the data synchronization module reads multiple data packets from the data pool at once, prioritizes the data packets, and sends them out sequentially via the physical link according to the prioritization result.
[0102] Optionally, if the backup link is idle and can work normally, the backup link can be used to send synchronization data, sending high-priority data packets first and then low-priority data packets.
[0103] Understandably, when calling the asynchronous interface to send synchronous data, the synchronous data is aggregated in the data pool of the data synchronization module. The asynchronous data sending thread of the data synchronization module reads multiple data packets from the data pool at once, prioritizes the multiple data packets, and sends the read data packets out in sequence according to the sorting result by calling the physical link. This makes it easier to make full use of the backup link and can effectively improve the real-time performance of data synchronization.
[0104] In some embodiments, determining the transmission link for synchronization data includes:
[0105] If both the primary and backup links are functioning normally, the backup link is selected as the transmission link for synchronization data.
[0106] In the event of an anomaly in any link, a fair competition process will be used to determine the link for sending synchronized data.
[0107] Understandably, when both the primary and backup links are functioning normally, the backup link is selected as the transmission link for synchronization data. In the event of an anomaly in either link, a fair competition process is used to determine the transmission link for synchronization data. This approach fully utilizes the backup link, reduces data synchronization latency, and improves the real-time performance of data synchronization.
[0108] Figure 6 This is a second schematic flowchart illustrating the data synchronization method provided in an embodiment of the present invention. Figure 6As shown, a data synchronization method is provided, applied to a baseboard management controller at a receiving end. The data synchronization method includes:
[0109] Step 610: Receive synchronization data;
[0110] Step 620: Check if the data separator field of the synchronized data is accurate, and read the static data synchronization status word. If the static data synchronization status word is negative, read the static data segment and save it in the local control data memory.
[0111] Alternatively, check if the checksum number and check bit of the synchronized data are accurate, confirm that the data transmission process is error-free, extract the dynamic data according to the number, and save it to the local control data memory.
[0112] In this embodiment of the invention, by receiving synchronized data, checking whether the data separation field of the synchronized data is accurate, and reading the static data synchronization status word, if the static data synchronization status word is negative, reading the static data segment and storing it in the local control data memory, or checking whether the checksum number and check bit of the synchronized data are accurate, confirming that the data transmission process is error-free, and extracting the dynamic data according to the number and storing it in the local control data memory, the accuracy and reliability of the synchronized data can be improved.
[0113] The substrate management controller provided in the embodiments of the present invention is described below. The substrate management controller described below and the data synchronization method described above can be referred to each other.
[0114] Figure 7 This is a second schematic diagram of the structure of the baseboard management controller provided in an embodiment of the present invention, as shown below. Figure 7 As shown, the baseboard management controller 700 includes:
[0115] FRU management module 710 is used to acquire data to be synchronized, determine the type of data to be synchronized, process the data to be synchronized according to the type of data to be synchronized, and when the data synchronization logic is executed, determine the data to be synchronized from the processed data to be synchronized and send the data to the data synchronization module.
[0116] The data synchronization module 720 is used to schedule the synchronization data, determine the transmission link of the synchronization data, and send the synchronization data to the baseboard management controller at the receiving end through the transmission link.
[0117] Optionally, the data types include static data and dynamic data;
[0118] The FRU management module processes the data to be synchronized according to its type, including:
[0119] The FRU management module stores static data in its memory and retains a static data synchronization status word within the module. This status word indicates whether the static data has been synchronized.
[0120] The FRU management module divides dynamic data into striped regions, numbers them, adds check bits, and establishes a synchronous copy of the dynamic data in the memory of the FRU management module.
[0121] Optionally, the FRU management module, when running the data synchronization logic, determines the synchronization data from the processed data to be synchronized, including:
[0122] When the FRU management module runs the data synchronization logic, it determines the static synchronization data whose static data synchronization status word is negative from the processed static data.
[0123] The FRU management module encapsulates static synchronization data according to the static data frame format and uses the encapsulated static synchronization data as synchronization data. The static data frame format includes a data separator field, a static data synchronization status word, and a static data segment.
[0124] Optionally, the FRU management module, when running the data synchronization logic, determines the synchronization data from the processed data to be synchronized, including:
[0125] When the FRU management module runs the data synchronization logic, it determines whether a synchronized copy of the dynamic data already exists in the local memory.
[0126] If a synchronized copy of the dynamic data already exists in local memory, then the dynamic synchronized data that has changed compared to the existing synchronized copy is determined from the processed dynamic data and used as the synchronized data.
[0127] If there is no synchronized copy of the dynamic data in local memory, the processed dynamic data will be used as the synchronized data.
[0128] Optionally, the data synchronization module schedules the synchronization data, determines the transmission link for the synchronization data, and transmits the synchronization data to the baseboard management controller at the receiving end through the transmission link, including:
[0129] Based on the real-time requirements of the FRU management module, the interface for sending synchronous data is determined, which may include a synchronous interface or an asynchronous interface.
[0130] When sending synchronization data by calling the synchronization interface, a priority field is added to the data header frame of the synchronization data. The value of the priority field is determined by querying the priority level table based on the FRU management module number. The priority level table is pre-established within the data synchronization module according to the real-time performance and data volume of each FRU management module.
[0131] Based on the priority field, the synchronization data is scheduled, the transmission link of the synchronization data is determined, and the synchronization data is sent to the baseboard management controller at the receiving end through the transmission link.
[0132] Optionally, the baseboard management controller also includes:
[0133] The data sending module is used to aggregate synchronous data in the sending data pool of the data synchronization module when calling the asynchronous interface to send synchronous data. The asynchronous data sending thread of the data synchronization module reads multiple data packets from the sending data pool at one time, sorts the multiple data packets by priority, and sends the read data packets out in sequence according to the sorting result by calling the physical link.
[0134] Optionally, the transmission link for synchronization data is determined, including:
[0135] If both the primary and backup links are functioning normally, the backup link is selected as the transmission link for synchronization data.
[0136] In the event of an anomaly in any link, a fair competition process will be used to determine the link for sending synchronized data.
[0137] It should be noted that the baseboard management controller provided in this embodiment of the invention can implement all the method steps implemented in the above data synchronization method embodiment and can achieve the same technical effect. Here, the parts that are the same as those in the method embodiment and the beneficial effects will not be described in detail.
[0138] Figure 8 An example is a schematic diagram of the physical structure of an electronic device, such as... Figure 8As shown, the electronic device may include: a processor 810, a communication interface 820, a memory 830, and a communication bus 840. The processor 810, communication interface 820, and memory 830 communicate with each other via the communication bus 840. The processor 810 can call logic instructions in the memory 830 to execute a data synchronization method. This method is applied to a baseboard management controller at the transmitting end. The baseboard management controller includes: a Field Replaceable Unit (FRU) management module and a data synchronization module. The method includes: the FRU management module acquiring data to be synchronized and determining the type of the data to be synchronized; the FRU management module processing the data to be synchronized according to its type; the FRU management module, when running the data synchronization logic, determining the synchronization data from the processed data to be synchronized and sending the synchronization data to the data synchronization module; and the data synchronization module scheduling the synchronization data, determining the transmission link of the synchronization data, and sending the synchronization data to the baseboard management controller at the receiving end through the transmission link.
[0139] Furthermore, the logical instructions in the aforementioned memory 830 can be implemented as software functional units and, when sold or used as independent products, can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention, essentially, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0140] On the other hand, the present invention also provides a computer program product, which includes a computer program that can be stored on a non-transitory computer-readable storage medium. When the computer program is executed by a processor, the computer can execute the data synchronization method provided by the above methods. This method is applied to a baseboard management controller at the transmitting end. The baseboard management controller includes a field replaceable unit (FRU) management module and a data synchronization module. The method includes: the FRU management module acquiring data to be synchronized and determining the type of the data to be synchronized; the FRU management module processing the data to be synchronized according to the type of the data to be synchronized; the FRU management module, when running the data synchronization logic, determining the synchronization data from the processed data to be synchronized and sending the synchronization data to the data synchronization module; and the data synchronization module scheduling the synchronization data, determining the transmission link of the synchronization data, and sending the synchronization data to the baseboard management controller at the receiving end through the transmission link.
[0141] In another aspect, the present invention also provides a non-transitory computer-readable storage medium storing a computer program thereon. When executed by a processor, the computer program is implemented to perform the data synchronization method provided by the above-described methods. The method is applied to a baseboard management controller at the transmitting end. The baseboard management controller includes a Field Replaceable Unit (FRU) management module and a data synchronization module. The method includes: the FRU management module acquiring data to be synchronized and determining the type of the data to be synchronized; the FRU management module processing the data to be synchronized according to the type of the data to be synchronized; the FRU management module, when running the data synchronization logic, determining the synchronization data from the processed data to be synchronized and sending the synchronization data to the data synchronization module; and the data synchronization module scheduling the synchronization data, determining the transmission link of the synchronization data, and sending the synchronization data to the baseboard management controller at the receiving end through the transmission link.
[0142] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Those skilled in the art can understand and implement this without any creative effort.
[0143] Through the above description of the embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus necessary general-purpose hardware platforms, and of course, it can also be implemented by hardware. Based on this understanding, the above technical solutions, in essence or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods described in the various embodiments or some parts of the embodiments.
[0144] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and not to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present invention.
Claims
1. A data synchronization method, characterized in that, A baseboard management controller applied to a transmitting end, the baseboard management controller comprising: a field replaceable unit (FRU) management module and a data synchronization module, the data synchronization method comprising: The FRU management module acquires the data to be synchronized and determines the type of the data to be synchronized. The FRU management module processes the data to be synchronized according to the type of the data to be synchronized; When the FRU management module runs the data synchronization logic, it determines the synchronization data from the processed data to be synchronized and sends the synchronization data to the data synchronization module. The data synchronization module schedules the synchronization data, determines the transmission link of the synchronization data, and sends the synchronization data to the baseboard management controller at the receiving end through the transmission link. The types include static data and dynamic data; The FRU management module processes the data to be synchronized according to its type, including: The FRU management module stores the static data in its memory and retains a static data synchronization status word within the FRU management module. The static data synchronization status word is used to indicate whether the static data has been synchronized. The FRU management module divides the dynamic data into striped regions, numbers them, adds check bits, and establishes a synchronous copy of the dynamic data in the memory of the FRU management module.
2. The data synchronization method according to claim 1, characterized in that, When the FRU management module reaches the data synchronization logic, it determines the synchronization data from the processed data to be synchronized, including: When the FRU management module runs the data synchronization logic, it determines static synchronization data whose static data synchronization status word is negative from the processed static data. The FRU management module encapsulates the static synchronization data according to the static data frame format and uses the encapsulated static synchronization data as the synchronization data. The static data frame format includes a data separator field, a static data synchronization status word, and a static data segment.
3. The data synchronization method according to claim 1, characterized in that, When the FRU management module reaches the data synchronization logic, it determines the synchronization data from the processed data to be synchronized, including: When the FRU management module runs the data synchronization logic, it determines whether a synchronized copy of the dynamic data already exists in the local memory. If a synchronized copy of the dynamic data already exists in the local memory, then the dynamic synchronized data that has changed compared to the existing synchronized copy is determined from the processed dynamic data, and the dynamic synchronized data is used as the synchronized data. If there is no synchronized copy of the dynamic data in the local memory, the processed dynamic data will be used as the synchronized data.
4. The data synchronization method according to claim 1, characterized in that, The data synchronization module schedules the synchronization data, determines the transmission link for the synchronization data, and transmits the synchronization data to the baseboard management controller at the receiving end through the transmission link, including: Based on the real-time requirements of the FRU management module, the sending interface for the synchronous data is determined, and the sending interface includes a synchronous interface or an asynchronous interface; When the synchronization interface is called to send the synchronization data, a priority field is added to the data header frame of the synchronization data. The value of the priority field is determined by querying the priority level table based on the number of the FRU management module. The priority level table is pre-established within the data synchronization module according to the real-time performance and data volume of each FRU management module. Based on the priority field, the synchronization data is scheduled, the transmission link of the synchronization data is determined, and the synchronization data is sent to the baseboard management controller at the receiving end through the transmission link.
5. The data synchronization method according to claim 4, characterized in that, The method further includes: When the asynchronous interface is called to send the synchronous data, the synchronous data is aggregated in the data transmission pool of the data synchronization module. The asynchronous data transmission thread of the data synchronization module reads multiple data packets from the data transmission pool at one time, sorts the multiple data packets by priority, and sends the read data packets out sequentially by calling the physical link according to the sorting result.
6. The data synchronization method according to claim 4, characterized in that, Determining the transmission link of the synchronization data includes: If both the primary and backup links are functioning normally, the backup link is selected as the transmission link for the synchronization data. In the event of an anomaly in any link, a fair competition method is used to determine the transmission link for the synchronization data.
7. A baseboard management controller, characterized in that, Includes: Field Replaceable Unit (FRU) management module and data synchronization module. The FRU management module is used to acquire data to be synchronized, determine the type of the data to be synchronized, process the data to be synchronized according to the type of the data to be synchronized, and, when the data synchronization logic is executed, determine the synchronization data from the processed data to be synchronized and send the synchronization data to the data synchronization module. The data synchronization module is used to schedule the synchronization data, determine the transmission link of the synchronization data, and send the synchronization data to the baseboard management controller at the receiving end through the transmission link. The types include static data and dynamic data; The step of processing the data to be synchronized according to its type includes: The static data is stored in the memory of the FRU management module, and a static data synchronization status word is retained inside the FRU management module. The static data synchronization status word is used to indicate whether the static data has been synchronized. The dynamic data is divided into striped regions, numbered, and a check digit is added. A synchronous copy of the dynamic data is then created in the memory of the FRU management module.
8. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the program, it implements the data synchronization method as described in any one of claims 1 to 6.
9. A non-transitory computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the data synchronization method as described in any one of claims 1 to 6.
Citation Information
Patent Citations
Read method and write-in method of field replaceable unit information
CN103136139A
System for Out of Band Management of Rack-Mounted Field Replaceable Units
US20130205069A1