Storage device adaptation method, storage device, storage medium and electronic device
By adapting the power supply unit, load unit, and control unit as a whole management module, and using a pre-defined overall adaptation strategy to quickly adjust new loads, the problem of long adaptation cycles for new loads on storage devices is solved, and adaptation efficiency is improved.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-07-09
- Publication Date
- 2026-03-05
Smart Images

Figure CN2025107753_05032026_PF_FP_ABST
Abstract
Description
Storage device adaptation methods, storage devices, storage media and electronic devices
[0001] Cross-reference to related applications
[0002] This application claims priority to Chinese Patent Application No. 202411202915.0, filed on August 29, 2024, entitled “Method for Adapting a Storage Device, Storage Device, Storage Medium and Electronic Device”, the entire contents of which are incorporated herein by reference. Technical Field
[0003] This application relates to the field of computers, and in particular to a method for adapting a storage device, a storage device, a storage medium, and an electronic device. Background Technology
[0004] In the era of big data, higher demands are placed on the reliability and efficiency of storage arrays, especially the operational reliability of storage systems. This increased reliability of storage systems places high demands on the BMC (Baseboard Management Controller), requiring the BMC unit to effectively manage PSU (Power Supply Unit) units and external card load units, as well as to interact in real-time with control units such as the CPU (Central Processing Unit) and CPLD (Complex Programmable Logic Device). This ensures that the BMC unit can effectively and reliably manage parameters such as temperature, VPD (Vital Product Data), and status of the storage devices.
[0005] However, as the performance requirements of storage devices have increased, their hardware specifications have also gradually improved. Storage devices have evolved from one frame with two controllers to one frame with four controllers. The number and specifications of PSU and BBU (Backup Battery Unit) units, the number of external cards supported by the device, the load level of the CPLD logic control unit, and the management capabilities of the drive under the MCS (Manufacturing Control System) have all been significantly improved compared to before. In particular, the number of external cards supported has increased from 3 to 5 per device to 14 or even more. This has implicitly improved the BMC unit's ability to adapt to and manage various new loads. In the traditional adaptation method, each new external card / hard drive requires adaptation to the new load. The BMC unit needs to read all the information in the new load, and the power supply unit and control unit also need to re-establish contact with the new load. This results in longer processing time and implicitly consumes the user's business execution resources. Summary of the Invention
[0006] This application provides a storage device adaptation method, storage device, storage medium, and electronic device to at least solve the problem of long adaptation cycles for new loads in related technologies.
[0007] According to one embodiment of this application, a storage device adaptation method is provided, applied to the controller of the storage device. The storage device further includes multiple management modules, each of which includes a set of cascaded power supply units, load units, and control units. The controller is connected to each management module via links. The method includes: in the case of a new load, determining the target management module where the new load is located among the multiple management modules; obtaining a pre-configured overall adaptation strategy, wherein the overall adaptation strategy includes multiple sets of adaptation information, each set of adaptation information corresponding to a specific management module, and each set of adaptation information includes adaptation information for performing multiple load adaptations on the load module in the corresponding management module; finding the target adaptation information corresponding to the target management module from the overall adaptation strategy; and performing load adaptation corresponding to the load type of the new load among multiple load adaptations according to the target adaptation information, to obtain the adapted new load.
[0008] According to another embodiment of this application, a storage device is provided, including: a controller and multiple management modules. Each management module includes a set of cascaded power supply units, load units, and control units. The controller is connected to each management module via links. The controller is configured to, in the event of a new load, determine the target management module of the new load among the multiple management modules; obtain a pre-configured overall adaptation strategy, wherein the overall adaptation strategy includes multiple sets of adaptation information, each set of adaptation information corresponding to one of the multiple management modules, and each set of adaptation information includes adaptation information for performing multiple load adaptations on the load module in the corresponding management module; find the target adaptation information corresponding to the target management module from the overall adaptation strategy; and perform load adaptation corresponding to the load type of the new load among multiple load adaptations according to the target adaptation information to obtain the adapted new load.
[0009] According to yet another embodiment of this application, a computer program product is also provided, including computer instructions that, when executed by a processor, implement the steps in any of the above-described storage device adaptation method embodiments.
[0010] According to another embodiment of this application, a computer non-volatile readable storage medium is also provided, wherein a computer program is stored in the computer non-volatile readable storage medium, and the computer program is configured to execute the steps in any of the above method embodiments when running.
[0011] According to yet another embodiment of this application, an electronic device is also provided, including a memory and a processor, wherein a computer program is stored in the memory and the processor is configured to run the computer program to perform the steps in any of the above method embodiments.
[0012] This application treats cascaded power supply units, load units, and control units as a single management module, and the management module as a whole adaptation object. When pre-determining the overall adaptation strategy, adaptation is performed in a power supply-load-control unit format. This results in each management module corresponding to a set of adaptation information. Each set of adaptation information includes specific details on various load adaptations for the load modules within a particular management module, guiding how to adapt each unit within the management module. When a new load is added, it can be adapted based on the target adaptation information corresponding to the target management module where the new load resides. Compared to the traditional method of re-establishing the connection between the power supply unit, control unit, and new load, this application eliminates the need for the controller to individually obtain power supply unit and control unit parameters and establish coupling relationships. Instead, it allows for rapid adjustments based on the target adaptation information corresponding to the new load, enabling the target adaptation information to quickly adapt to the new load and improving adaptation efficiency. Attached Figure Description
[0013] Figure 1 is a hardware structure block diagram of an optional storage device according to this embodiment.
[0014] Figure 2 is a flowchart illustrating an optional storage device adaptation method according to an embodiment of this application.
[0015] Figure 3 is a flowchart of an optional method for obtaining the adaptation coupling data packet of the current management module according to an embodiment of this application.
[0016] Figure 4 is a flowchart of an optional overall adaptation strategy according to an embodiment of this application.
[0017] Figure 5 is a flowchart of an optional load adaptation for new load according to an embodiment of this application.
[0018] Figure 6 is a structural block diagram of a computer system of an electronic device according to an embodiment of the present application. Detailed Implementation
[0019] The embodiments of this application will be described in detail below with reference to the accompanying drawings and examples.
[0020] It should be noted that the terms "first," "second," etc., in the specification, claims, and drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.
[0021] The methods and embodiments provided in this application can be executed in storage devices such as server devices and computer devices that are compatible with various network interface cards (NICs) / power supply units. Figure 1 is a schematic diagram of the application environment of a storage device adaptation method according to an embodiment of this application. As shown in Figure 1, the storage device includes a controller 102 and multiple management modules 104. Each management module 104 includes a set of cascaded power supply units 106, load units 108, and control units 110. The controller 102 is connected to the power supply units 106 in each management module 104 via links. Those skilled in the art will understand that the structure shown in Figure 1 is only illustrative and does not limit the structure of the server device described above. For example, the storage device may also include more or fewer components than shown in Figure 1, or have a different configuration than shown in Figure 1.
[0022] The controller 102 is configured to effectively manage each power supply unit 106 and load unit 108, and to interact with the control unit 110 in real time, thereby ensuring effective and reliable management of parameters such as temperature, VPD, and status of the storage device. For example, the controller 102 executes various functional applications and data processing by running computer programs, thus implementing the above method. The controller 102 includes, but is not limited to, a CPU unit and a BMC unit, as shown in Figure 1. The BMC unit is cascaded with various power supply units, load units, and control units in hardware via an I2C (Inter-Integrated Circuit) link, and reads and writes parameter information in the registers of each module through the I2C link. The BMC unit and the CPU unit are cascaded in hardware via LPC (Low Pin Count) and PECI (Platform Environment Controller Interface) links, sharing the driver version information of the load units according to the corresponding algorithm flow. The CPU unit also communicates with the server to obtain business information.
[0023] The power supply unit 106 may include a PSU (Power Supply Unit), a BBU (Backup Power BU), and various power supply chips. The power supply unit 106 is a key component in the storage device that provides stable power, converting the input power into an output power suitable for various load units and control units, ensuring the normal operation of the storage device.
[0024] The load unit 108 is configured to support various types of load devices, including but not limited to network cards, various sensors, and external actuators. It can also be integrated with other parts of the storage device (such as controller 102, control unit 110, etc.) to achieve unified control and management of the entire storage device.
[0025] The control unit 110 is configured to manage different power supply units 106 and load units 108. The control unit 110 may include, but is not limited to, control units such as CPUs and CPLDs.
[0026] In the era of big data, higher demands are placed on the reliability and efficiency of storage arrays, especially the operational reliability of storage systems. Improving the reliability of storage systems places high demands on the BMC (Baseboard Management Controller), requiring the BMC unit to effectively manage PSU (Power Supply Unit) units and external card load units, as well as to interact in real time with control units such as CPU (Central Processing Unit) and CPLD (Logic Control Unit), thereby ensuring that the BMC unit can effectively and reliably manage parameters such as temperature, VPD (Value Detector), and status of the storage devices.
[0027] However, as the performance requirements of storage devices have increased, their hardware specifications have also gradually improved. Storage devices have evolved from one frame with two controllers to one frame with four controllers. The number and specifications of PSU and BBU (backup power supply unit) units, the number of external cards supported by the device, the load level of the CPLD logic control unit, and the management capabilities of the drive under the MCS (Manufacturing Control System) have all been significantly improved compared to before. In particular, the number of external cards supported has increased from 3 to 5 per device to 14 or even more. This has implicitly improved the BMC unit's ability to adapt to and manage various new modules. In the traditional adaptation method, each new external card / hard drive requires adaptation to the new module. The BMC unit needs to read all the information in the new module, and the power supply and control modules also need to re-establish contact with the new unit. This results in longer processing times and implicitly consumes the user's business execution resources.
[0028] To at least partially solve the aforementioned technical problems, in this embodiment, the cascaded power supply unit, load unit, and control unit are treated as a single management module, and the management module is considered as a whole adaptation object. When pre-determining the overall adaptation strategy, adaptation is performed in the form of power supply-load-control unit. This results in each management module corresponding to a set of adaptation information. Each set of adaptation information includes specific details of various load adaptations for the load modules within a particular management module, guiding how to adapt each unit within the management module. When a new load is added, it can be adapted based on the target adaptation information corresponding to the target management module where the new load resides. Compared to the traditional method of re-establishing the connection between the power supply unit, control unit, and new load, this application eliminates the need for the controller to individually obtain the parameters of each power supply unit and control unit and establish coupling relationships. Instead, it allows for rapid adjustments based on the target adaptation information corresponding to the new load, enabling the target adaptation information to quickly adapt to the new load and improving adaptation efficiency.
[0029] According to one aspect of the embodiments of this application, a method for adapting a storage device is provided, which can be applied to the controller of the storage device.
[0030] Figure 2 is a flowchart of an optional storage device adaptation method according to an embodiment of the present application. As shown in Figure 2, the process includes the following steps S202 to S208.
[0031] Step S202: In the case of a new load, determine the target management module where the new load is located among multiple management modules.
[0032] In this context, "new workload" refers to any additional device or functional module added to the existing workload of the storage device. New workloads can include, but are not limited to, driver-based and non-driver-based workloads. Driver-based workloads require specific drivers to function properly, such as network interface cards (NICs) and graphics processing units (GPUs). Non-driver-based workloads do not require specific drivers or firmware to function, or their operation does not directly depend on system driver support, such as storage devices and expansion cards.
[0033] When new loads are added to the storage device, key indicators such as hardware status, power consumption, and data traffic can be monitored in real time using the BMC unit or the monitoring tools built into the storage device. System logs can also be analyzed. Abnormal increases or sudden changes in these indicators may indicate the addition of new loads to the storage device. Alternatively, the internal hardware chassis can be inspected to check for any newly installed hardware devices or modules. The storage device's built-in management software can also be used to query information about the installed hardware devices. This management software typically provides a detailed hardware configuration list, including installed processors, memory, storage devices, network interfaces, etc.
[0034] The management module is responsible for executing specific management tasks and functions. Each management module includes a power supply unit, a load unit, and a control unit. The power supply unit is responsible for power distribution and power consumption management, ensuring stable and efficient power supply to all components of the storage device. The load unit is responsible for managing and controlling the working status of the load link modules, ensuring that new loads can be correctly connected and function normally. The control unit is responsible for executing the control logic and algorithms of the storage device and coordinating the cooperation and interaction between the modules. In this embodiment, the power supply unit, load unit, and control unit are treated as a single management module. Each management module is a complete adaptation object, and adaptation is performed in the form of power supply-load-control unit, which can improve adaptation efficiency.
[0035] The target management module refers to the management module among multiple management modules that is designated to manage and control newly added loads. It can be understood as the management module where the new load resides. Generally, load cells provide slots for inserting and removing new loads. Once a new load is inserted into a slot in a load cell, the management module of that load cell becomes the target management module managing the new load. The target management module managing and controlling new loads can be identified through the overall architecture of the storage device and the connection methods between various cells. Furthermore, diagnostic tools or testing programs can be used to check and test each load cell in the system one by one, observing which load cells exhibit abnormalities or changes when new loads are added, thereby determining the target management module managing the new loads.
[0036] In some embodiments, when the controller analyzes system logs and the management software detects that a new load has been added to the storage device, it identifies the slot into which the new load is inserted and the load unit in which the slot is located. The management module in which the load unit is located is determined as the target management module for managing the new load.
[0037] Step S204: Obtain the pre-configured overall adaptation strategy. The overall adaptation strategy includes multiple sets of adaptation information, which correspond one-to-one with multiple management modules. Each set of adaptation information includes adaptation information for performing various load adaptations on the load modules in the corresponding management module.
[0038] The overall adaptation strategy refers to pre-planning and implementing a global adaptation and optimization scheme when deploying, configuring, or upgrading storage devices. This involves comprehensively evaluating and analyzing the hardware and software characteristics of all management modules and their internal units within the storage device. The overall adaptation strategy covers detailed adaptation requirements for all management modules and their internal units within the storage device. These requirements include not only hardware-level parameter settings (such as module physical specifications, interface standards, and power requirements) but also software-level configuration optimizations (such as firmware version and driver configuration).
[0039] For example, for each unit within each management module, the required adaptation parameters in both hardware and software include VPD (Vital Product Data, identifier) information (such as serial number, manufacturer, model, etc., used for management and monitoring), internal parameter information of each unit (such as the module's operating temperature range, temperature monitoring and alarm mechanisms to ensure that the device operates within a safe temperature range), operating status parameters of each unit (such as voltage value, operating temperature, load power consumption, etc., which are directly related to the device's working efficiency and stability), and business information of each load unit (including the estimation of business data volume and the analysis of business information types, in order to optimize storage strategies and data management strategies).
[0040] It's important to note that the overall adaptation strategy is not a one-time task, but an ongoing process. As storage devices are used, business grows, and technology evolves, the adaptation strategy needs to be evaluated and adjusted regularly to adapt to new needs and challenges.
[0041] Adaptation information refers to the specific details or instructions within the overall adaptation strategy for performing various load adaptations on the load modules within the management module. It guides how to configure, adjust, or optimize each unit within the management module of the storage device to adapt to the requirements of the overall system or to be compatible with other components. Multiple adaptation information sets correspond one-to-one with multiple management modules, meaning each set of adaptation information corresponds to a specific management module.
[0042] Multiple load adaptation refers to various adaptation methods set according to the characteristics of different load types. In complex computing environments or storage systems, there are diverse load types, each with its specific operational requirements and resource consumption patterns. Therefore, employing multiple load adaptation strategies can ensure that each load receives processing best suited to its characteristics, thereby improving the overall system performance and responsiveness. For example, for load types of driver-based and non-driver-based loads, load adaptation for non-driver-based loads includes two dimensions: operational status adaptation and business adaptation. Operational status adaptation aims to monitor the operational status of non-driver-based loads, such as CPU utilization, memory usage, and network latency. Business adaptation aims to optimize the configuration of non-driver-based loads based on the characteristics of business logic and data flow. Load adaptation for driver-based loads includes not only operational status adaptation and business adaptation but also driver adaptation. Driver adaptation aims to ensure the compatibility and interoperability between the load unit's driver and hardware devices, operating systems, or other software components by selecting and configuring appropriate driver versions.
[0043] In some embodiments, the controller defines the usage scenarios, business requirements, and performance indicators of the storage device, conducts a comprehensive assessment of the existing hardware and software environment, understands potential compatibility issues, designs an overall adaptation strategy based on the requirements analysis results and environment assessment, including detailed settings of hardware and software parameters, deploys and configures the device according to the overall adaptation strategy, conducts comprehensive testing and verification of the adapted storage device to ensure its stable operation and to meet business requirements, and continuously optimizes the adaptation strategy based on changes in device operation and business requirements.
[0044] Step S206: Find the target adaptation information corresponding to the target management module from the overall adaptation strategy.
[0045] The target adaptation information refers to the set of adaptation information corresponding to the target management module, which includes all the rules and guidelines required for load adaptation of the load unit where the new load resides. In short, the target management module is the management module responsible for adding new loads, while the target adaptation information is a pre-configured set of adaptation information for load adaptation within the target management module.
[0046] In some embodiments, after the controller determines the target management module where the new load is located and obtains the overall adaptation strategy, it searches for a set of adaptation information corresponding to the target management module from the overall adaptation strategy and uses the set of adaptation information as the target adaptation information.
[0047] Step S208: According to the target adaptation information, perform load adaptation on the new load in multiple load adaptations that corresponds to the load type of the new load, and obtain the adapted new load.
[0048] In some embodiments, the controller identifies the load type of the new load and selects a load adaptation method corresponding to that load type from the target adaptation information. Based on the selected load adaptation method, the controller performs corresponding adaptation operations on the new load, such as configuring the power adapter, setting parameters for the load module, and adjusting the system control strategy. After completing the load adaptation, the controller verifies the adaptation results to ensure that the new load has been successfully adapted and can operate stably. If the new load can operate normally, the adapted new load is obtained; if the new load cannot operate normally, the target adaptation information is adjusted according to the characteristics of the new load, and the new load is adapted according to the new target adaptation information until the new load can operate normally, thus obtaining the adapted new load.
[0049] In some embodiments, according to the traditional adaptation method, the adaptation time for the BMC unit of a network card / power supply PSU is one week. If driver-level adaptation is added, the workload will double. The method of this application can automatically adapt to the new load and quickly establish coupling relationship, reducing the adaptation time to one-third of the previous time.
[0050] The aforementioned storage device adaptation method treats cascaded power supply units, load units, and control units as a single management module, and the management module as a whole adaptation object. When pre-determining the overall adaptation strategy, adaptation is performed in a power supply-load-control unit format. This results in each management module corresponding to a set of adaptation information. Each set of adaptation information includes specific details on various load adaptations for load modules within a particular management module, guiding how to adapt each unit within the management module. When a new load is added, it can be adapted based on the target adaptation information corresponding to the target management module where the new load resides. Compared to the traditional method that requires re-establishing the connection between the power supply unit, control unit, and new load, this application eliminates the need for the controller to individually obtain power supply unit and control unit parameters and establish coupling relationships. Instead, it allows for rapid adjustments based on the target adaptation information corresponding to the new load, enabling the target adaptation information to quickly adapt to the new load and improving adaptation efficiency.
[0051] In one exemplary embodiment, the method for pre-establishing the overall adaptation strategy includes the following steps:
[0052] First, for each of the multiple management modules, treat it as the current management module and perform the following determination operations to obtain a set of adaptation information corresponding to each management module:
[0053] Obtain the adaptation coupling data packet of the current management module; the adaptation coupling data packet of the current management module includes a unit descriptor for describing the internal parameters of each unit within the current management module, and a parameter set for describing the running status of each unit within the current management module; obtain the load driver information corresponding to the load unit within the current management module, and perform driver-level link adaptation on the load unit within the current management module based on the load driver information to obtain the driver version information of the load unit within the current management module; obtain the business attribute information to be processed by the current management module in the next time period, and add the business attribute information and driver version information to the adaptation coupling data packet of the current management module to obtain a set of adaptation information corresponding to the current management module.
[0054] The adaptation coupling data packet is a data structure used to encapsulate and transmit all relevant information required by the current management module during the adaptation process. This typically includes, but is not limited to, unit descriptors, runtime status parameter sets, business attribute information, and driver version information for each unit within the current management module. This data collectively forms the basis for the current management module's adaptation decisions.
[0055] A unit descriptor is a data structure used to describe specific information about each unit (including power supply unit, load unit, and control unit) within the current management module. The unit descriptor provides detailed specifications about the unit's internal parameters and characteristics. For example, the unit descriptor includes VPD information (Vital Product Data) for each unit within the current management module (including basic information such as the product's serial number, manufacturer, model, and production date, used to identify and manage hardware units), operating temperature read / receive information (describing the unit's current or expected operating temperature range, and how this temperature information is read or received), and abnormal temperature alarm information (defining the conditions under which an abnormal temperature alarm should be triggered, as well as the detailed content and format of the alarm).
[0056] The set of operating status parameters is a set of data that is updated in real time or periodically to reflect the operating status of each unit within the current management module. The set of operating status parameters includes, but is not limited to, key parameters such as the power supply voltage, load power consumption, control unit voltage, and operating temperature of each unit within the current management module.
[0057] Load drive information refers to data or instructions related to a load unit (such as hardware devices, sensors, actuators, etc.) used to guide or control the load unit's drive process. Load drive information typically includes the load unit's electrical characteristics (such as voltage, current, and power requirements), physical characteristics (such as size, weight, and interface standards), drive method (such as direct drive and indirect drive), and control protocol (such as serial communication protocol and parallel communication protocol).
[0058] Driver version information refers to the version identifier and feature description associated with the last successfully inserted or updated load cell driver. A driver is a software component that controls and manages the load cell; it is responsible for translating instructions from the operating system or application into signals that the load cell can understand. Driver version information typically includes the driver's version number, release date, supported features, known bugs and fixes, and compatibility information. It's important to note that load cell driver information primarily focuses on the characteristics and requirements of the load cell itself, such as electrical parameters, physical dimensions, and control protocols. Driver version information, on the other hand, primarily focuses on the driver's status and features, such as version number, release date, and supported features.
[0059] The business attribute information to be processed by the current management module in the next time period refers to the characteristics or classification information of non-specific business data that needs to be processed or considered in a future time period (e.g., "next time period"). Business attribute information does not directly include the specific content or data of the business, but rather describes certain basic attributes or characteristics of the business. For example, business attribute information includes the volume of business information data and the type of business information. The volume of business information data refers to the total amount or average amount of data that the current management module expects to process in the next time period. The type of business information refers to the type or classification of the business, such as online transactions, data analysis, and user authentication.
[0060] It should be noted that the next time period refers to a specific time interval starting from the point in time when the adaptation information of the current management module is formulated, such as a few minutes, a few hours, a day, a week, etc., depending on the needs of the system or application scenario.
[0061] Optionally, Figure 3 is a flowchart of obtaining the adaptation coupling data packet of the current management module in one embodiment. As shown in Figure 3, the controller includes a BMC unit. The BMC unit traverses all management modules, takes the currently traversed management module as the current management module, and obtains the unit descriptor used to describe the internal parameters of each unit in the current management module, and the parameter set used to describe the running status of each unit in the current management module. The unit descriptor and the parameter set of the running status of each unit in the current management module are packaged to obtain the adaptation coupling data packet of the current management module. The controller reads the load driver information corresponding to the load unit in the current management module. According to the load driver information, the controller performs link adaptation operations at the driver level (such as adjusting driver settings, optimizing resource configuration, etc.) on the load unit in the current management module to obtain the driver version information of the load unit in the current management module. The controller obtains the business information to be processed by the current management module in the next time period, and determines the sub-business information that the current management module needs to process. The controller extracts business attribute related information from the sub-business information to obtain business attribute information, and adds the business attribute information and driver version information to the adaptation coupling data packet of the current management module to obtain a set of adaptation information corresponding to the current management module.
[0062] In some embodiments, based on load driver information, link adaptation at the driver level is performed on the load units within the current management module to obtain the driver version information of the load units within the current management module, including the following steps:
[0063] Figure 4 is a flowchart of obtaining the overall adaptation strategy in one embodiment. As shown in Figure 4, the controller includes a BMC unit and a CPU unit. The BMC unit sends the load drive information of the current management module to the storage MCS system (manufacturing control system) inside the CPU unit for system-level adaptation through the CPU-BMC link. After receiving the load drive information of the current management module, the MCS system performs link adaptation at the driver level. The MCS system sends driver interaction information to the load unit of the current management module to obtain the driver version number of the load unit of the current management module. After reading, it sends a driver version call instruction to the server, instructing the server to send the driver version information of the load unit of the current management module to the storage MCS system. The MCS system merges the driver version information of the load unit of the current management module into the load drive information. After merging, it sends a flag bit and the merged load drive information to the BMC unit. The BMC unit merges the merged load drive information with the adaptation coupling data packet of the current management module. Thus, the merged adaptation coupling data packet includes the driver version information of the load unit in the current management module.
[0064] 2. Generate an overall adaptation strategy based on a set of adaptation information corresponding to each management module.
[0065] In some embodiments, after obtaining a set of adaptation information corresponding to each management module, the controller integrates the set of adaptation information corresponding to each management module to obtain an overall adaptation strategy.
[0066] In this embodiment, by adding unit descriptors describing the internal parameters of each unit within the current management module and parameter sets describing the operational status of each unit within the current management module to the adaptation coupling data packet of the current management module, relevant adaptation requirements at the operational status dimension are provided for load adaptation. Furthermore, the adaptation coupling data packet also includes business attribute information to be processed by the current management module in the next time period, providing relevant adaptation requirements at the business dimension. Finally, the adaptation coupling data packet includes driver version information of the load units within the current management module, providing relevant adaptation requirements at the driver dimension for driver-based loads. This incorporates a driver adaptation strategy into the overall adaptation strategy and pre-adapts existing drivers, enabling new loads to quickly complete driver-level adaptation and rapidly deploy services. The aforementioned adaptation coupling data packet, with its multi-dimensional adaptation requirements, makes the system more flexible and easily adaptable to future new requirements or changes. For example, when a new business type or load unit is added to the system, only the corresponding adaptation coupling data packet needs to be updated.
[0067] In one exemplary embodiment, obtaining the adaptation coupling data packet of the current management module includes:
[0068] 1. Obtain the unit descriptor of each unit within the current management module.
[0069] In some embodiments, the controller reads information describing the internal parameters of each unit within the current management module and packages it to obtain the unit descriptor corresponding to each unit within the current management module.
[0070] Second, decouple the current management module to obtain a set of parameters for the running status information of each unit within the current management module.
[0071] Decoupling refers to separating the dependencies between units within the current management module, clarifying the communication methods and data exchange formats between these units. After decoupling, each unit can be tested and maintained independently, meaning that modifications or failures in one unit will not directly affect the normal operation of other units.
[0072] In some embodiments, the controller identifies the dependencies between units within the current management module and determines the communication methods and data exchange formats between units within the current management module. By testing each unit within the current management module individually, a subset of the operating status information of each unit within the current management module is obtained. The set of the subsets of the operating status information of each unit within the current management module is used as the parameter set of the operating status information of each unit within the current management module.
[0073] Third, merge the unit descriptors and parameter sets of each unit in the current management module to obtain the adaptation coupling data package of the current management module.
[0074] In some embodiments, the controller adds the unit descriptor of each unit in the current management module to the corresponding unit's running status information subset from the parameter set of the running status information of each unit in the current management module, and merges the added subsets to obtain the adaptation coupling data packet of the current management module.
[0075] In this embodiment, the parameter set of unit descriptors and running status information is merged into an adaptation coupling data package, which provides comprehensive data support for system load adaptation and performance optimization. The adaptation coupling data package enables the system to be flexibly configured and adjusted according to different needs and scenarios. On the other hand, since the coupling between units is reduced and the adaptation coupling data package is constructed, it is easier to integrate new units or components when it is necessary to expand or add new functions, without the need for large-scale reconstruction of the entire system.
[0076] In an exemplary embodiment, obtaining the unit descriptors of each unit within the current management module includes:
[0077] Read the identification information and unit parameter information of each unit in the current management module; package the identification information and corresponding unit parameter information of each unit in the current management module to obtain the unit descriptor of each unit in the current management module.
[0078] Identification information refers to a set of data used to uniquely identify and describe each unit within the current management module. For example, identification information includes unit serial number, model information, manufacturer information, firmware version, and other metadata (such as production date, batch number, configuration options, etc.). Each unit has its own identification information; for example, interface cards and PSUs have their information written by the manufacturer at the factory.
[0079] Unit parameter information refers to data that describes the current operating status or performance characteristics of a unit. For example, unit parameter information includes the operating temperature read / received information of each unit in the current management module (describing the current or expected operating temperature range of the unit, and how to read or receive this temperature information) and abnormal temperature alarm information (defining under what conditions an abnormal temperature alarm should be triggered, as well as the detailed content and format of the alarm).
[0080] In some embodiments, as shown in Figure 3, firstly, the identification information (VPD information) and unit parameter information (including operating temperature reading / receiving information, abnormal temperature alarm information, etc.) of each unit in the current management module are read through the cascaded I2C link between the BMC unit and each unit in the current management module. The identification information is parsed and matched with the corresponding unit. Each unit has its own identification information. When the BMC unit manages each unit in the current management module, it first finds the identification information of the unit to be managed. After the identification information is read, it is packaged to obtain the unit descriptor of each unit in the current management module. The purpose of the packaging operation is to establish a connection between the unit parameter information and the identification information of each unit in the current management module. A packaged unit descriptor includes the initial identification information and the subsequent unit parameter information.
[0081] In this embodiment, the identification information and corresponding unit parameter information of each unit in the current management module are packaged into unit descriptors of each unit in the current management module, which facilitates unified management and maintenance of all units, reduces the need for manual recording and information retrieval during load adaptation, and improves adaptation efficiency.
[0082] In one exemplary embodiment, the power supply unit includes multiple power supply units, the load unit includes multiple load sub-units, and the control unit includes multiple control sub-units.
[0083] For example, the power supply unit includes a PSU unit, a BBU unit, and various power supply chips. Therefore, the PSU unit, BBU unit, and each power supply chip can be considered as a separate power supply unit. The control unit is based on a CPLD logic control unit. The logic control unit is divided into different control subunits according to modules. Different control subunits manage different power supply and control units. For example, both power supply and control unit 1 are managed by control module 1.
[0084] In some embodiments, a decoupling operation is performed on the current management module to obtain a parameter set of operating status information for each unit within the current management module, including:
[0085] 1. For each power supply unit in the current management module, perform the following determination operations to obtain a subset of operating status information corresponding to each power supply unit:
[0086] Based on the power supply link, determine the target load sub-unit and target control sub-unit corresponding to the current power supply unit within the current management module; determine the operating status information corresponding to the current power supply unit, target load sub-unit, and target control sub-unit as a subset of the operating status information corresponding to the current power supply unit.
[0087] Optionally, as shown in Figure 3, the controller includes a BMC unit. The BMC unit marks the power supply units (including PSU, BBU units, and various power supply chips) of the current management module's power supply unit, identifies the target load subunit and target control subunit corresponding to the current power supply unit according to the power supply link, cascades the target load subunits corresponding to the current power supply unit, sends an enable signal EN to the current power supply unit, and synchronously feeds back the normal power quality signal PG from the current power supply unit to the target load subunit. After receiving the PG signal, the target load subunit operates normally and sends a response signal to the target control subunit (such as a CPLD unit). Upon receiving the response signal, the target control subunit indicates to the BMC unit that the target control subunit, the current power supply unit, and the target load subunit have been decoupled. The BMC unit records the operating status information corresponding to this set of power supply-load-control unit, obtains a subset of operating status information corresponding to the current power supply unit, and records this subset in the Flash memory unit inside the BMC unit.
[0088] In some embodiments, the cascading method involves sending a reset signal to both the power supply unit and the corresponding load subunit via the I2C link of the BMC unit, so that both are reset simultaneously. After the reset is completed, both restart according to their respective timing sequences. After the restart is completed, the load subunit sends a response signal to the BMC unit via the I2C link to indicate that the connection between the two has been established.
[0089] Second, the set of subsets corresponding to each power supply unit in the current management module is determined as the parameter set of the operating status information of each unit in the current management module.
[0090] In some embodiments, after the controller obtains the subset corresponding to each power supply unit in the current management module according to the above steps, it merges the subset corresponding to each power supply unit to obtain a parameter set of the operating status information of each unit in the current management module.
[0091] In this embodiment, the sub-units of each unit within the current management module are decoupled to obtain a subset of operating status information corresponding to the current power supply unit. The set of subsets corresponding to each power supply unit within the current management module is then determined as the parameter set of operating status information for each unit within the current management module. This results in the parameter set containing more detailed operating status information, providing more detailed and comprehensive adaptation requirements for subsequent load adaptation when adding new loads.
[0092] In one exemplary embodiment, obtaining the business attribute information to be processed by the current management module in the next time period includes:
[0093] First, obtain multiple business information to be processed by the storage device in the next time period, and determine the preferred load unit for processing each business information based on the multiple business information and the adaptation coupling data packets of each management module.
[0094] In this context, "business information" refers to the data set of tasks or operations that the storage device needs to process in the upcoming time period (i.e., the next time period). Each piece of business information may include various types of information such as data read / write requests, data processing tasks, data backup or recovery jobs, etc. Each piece of business information represents a specific task that the storage device needs to perform.
[0095] The preferred load unit refers to the load unit selected as the optimal or most suitable for processing a specific business information when processing multiple business information, based on the adaptation coupling data packets of each management module and the current state of the storage device. For example, based on the current business information and the parameter set in the adaptation coupling data packets of each management module, the load unit with the strongest data processing capability and the slowest temperature rise can be selected as the preferred load unit for the business layer, in order of data processing capability and temperature rise information.
[0096] In some embodiments, as shown in Figure 4, the controller includes a BMC unit and a CPU unit. The BMC unit packages and sends the adaptation coupling data packets of each management module to the CPU unit. After sending, the BMC unit sends a verification flag to the CPU unit. After receiving the verification flag, the CPU unit sends a service acquisition instruction to the server cascaded with the storage device through the external card unit to obtain the service information to be processed in the next time period. The CPU unit divides the load unit according to the current service information and the parameter set in the adaptation coupling data packets of each management module, in turn according to the data processing capability and temperature rise information. The load unit with the strongest data processing capability and the slowest temperature rise is selected as the preferred load unit of the service layer.
[0097] 2. Based on the association between each service information and its corresponding preferred load unit, service allocation information is generated, wherein the service corresponding to each service information is allocated to the preferred load unit corresponding to each service information.
[0098] Among them, business allocation information refers to the information set or data structure generated by allocation logic based on the relationship between business information and preferred load unit, which records how each piece of business information is allocated to its corresponding preferred load unit.
[0099] In some embodiments, as shown in FIG4, after the CPU unit determines the preferred load unit corresponding to each service information, it generates service allocation information according to the association between the service information and the preferred load unit, and sends the service allocation information to the BMC unit.
[0100] 3. Based on the business allocation information, determine the business attribute information to be processed by the current management module in the next time period.
[0101] Among them, business attribute information is the basis of business allocation information.
[0102] In some embodiments, as shown in Figure 4, the BMC unit sends the service attribute information (such as the amount of service information data and the type of service information) of the subsequent processing service to the preferred load unit corresponding to each service information through the I2C link. After the load unit in the current management module receives the service attribute information sent by the BMC unit, it adds the service attribute information received by the current management module into the adaptation coupling data packet corresponding to the current management module.
[0103] In this embodiment, multiple service information to be processed by the storage device in the next time period are obtained, and the preferred load unit for processing each service information is determined. Service allocation information is generated based on the association between each service information and the corresponding preferred load unit. Based on the service allocation information, the service attribute information to be processed by the current management module in the next time period is determined. The adaptation coupling data packet of the current management module is reorganized at the service level through the service attribute information, so that the adaptation coupling data packet includes the adaptation information at the service level. When a new load is added, the service level of the new load can be quickly adapted through the service attribute information in the adaptation coupling data packet.
[0104] In one exemplary embodiment, according to the target adaptation information, the newly added load is subjected to load adaptation corresponding to the load type of the newly added load among various load adaptation methods to obtain the adapted new load, including:
[0105] 1. If the new load is a non-driver type load, then the new load will be adapted for running status and business according to the target adaptation information.
[0106] Operational state adaptation refers to configuring and adjusting new loads according to the parameter set of the operational state of each unit within the target management module in the target adaptation information, to ensure that they can match the operational state of existing systems or modules. For example, operational state adaptation includes setting the load's startup order, operating frequency, power consumption management, and fault recovery strategies.
[0107] Business adaptation refers to adjusting the functionality and business logic of new workloads based on the business attribute information of the target management module within the target adaptation information. For example, if the new workload is used for data processing, the corresponding data processing algorithms and processes need to be configured; if the new workload is used for network transmission, network protocols and communication parameters need to be configured, etc.
[0108] Optionally, Figure 5 is a flowchart of load adaptation for a new load in one embodiment. As shown in Figure 5, the controller includes a BMC unit. When a new non-drive type load is added, the BMC unit determines the target load unit into which the new load is inserted, extracts the target adaptation information corresponding to the target management module of the target load unit in the overall adaptation strategy, and performs operation status adaptation for the new load according to the parameter set of unit descriptors and operation status information of the load unit, power supply unit, and control unit in the target adaptation information. It also performs service adaptation for the new load according to the service attribute information in the target adaptation information.
[0109] 2. Obtain the working status flag of the new load. When the working status flag indicates that the status is normal, the new load is found to be adapted in terms of both status and service.
[0110] The working status flag is typically used to indicate the current working status of the load. A normal working status flag indicates that the new load has been successfully adapted; an abnormal working status flag indicates that the new load has failed to adapt and needs to be adapted again.
[0111] In some embodiments, as shown in Figure 5, after the new load is adapted, the controller reads the working status flag of the new load. When the working status flag indicates that it is normal, no processing is performed, and the new load is obtained with the status adapted and the service adapted.
[0112] In this embodiment, for newly added non-driver-type loads, the operating status and business can be adapted to the newly added loads according to the target adaptation information within the overall adaptation strategy. The adaptation mechanism of adapting the newly added loads through the existing adaptation strategy can enable the newly added loads to be quickly integrated into the storage device without the need for extensive modifications to the storage device, thus improving the adaptation efficiency.
[0113] In one exemplary embodiment, the above-described method for adapting the storage device further includes:
[0114] 1. When the working status flag indicates an anomaly, the target management module is decoupled again to obtain a new set of parameters for the operating status information of each unit within the target management module.
[0115] In some embodiments, as shown in Figure 5, after the new load is adapted, the controller reads the working status flag of the new load. When the working status flag indicates an abnormality, the target management module where the new load is located is decoupled again to obtain a new set of parameters for the operating status information of each unit in the target management module.
[0116] Second, adjust the target adaptation information according to the new parameter set to obtain new target adaptation information.
[0117] In some embodiments, the controller replaces the parameter set in the target adaptation information with a new parameter set, and redetermines the business attribute information of the target management module based on the new parameter set to obtain new business attribute information. This new business attribute information replaces the existing business attribute information in the target adaptation information. The unit descriptors of the internal parameters of each unit within the target management module, the new parameter set, and the new business attribute information are packaged together to obtain new target adaptation information. This new target adaptation information is stored in Flash memory and added to the overall adaptation strategy to obtain a new overall adaptation strategy. When a new load unit needs to be added, adaptation is performed sequentially according to the new overall adaptation strategy in Flash memory.
[0118] Third, based on the new target adaptation information, return the steps of load adaptation corresponding to the load type of the new load in various load adaptations according to the target adaptation information, until the working status flag indicates normal, and obtain the new load with the status adapted and the service adapted.
[0119] In some embodiments, the controller performs corresponding adaptation operations on the new load according to the new target adaptation information and the load adaptation method that matches the load type of the new load. After the adaptation is completed, the controller obtains the working status flag of the new load. When the working status flag indicates that the status is normal, the new load that has been adapted and the service has been adapted is obtained. When the working status flag indicates that the status is abnormal, the controller returns to the step of re-decoupling the target management module and continues to execute until the working status flag indicates that the status is normal and the new load that has been adapted and the service has been adapted is obtained.
[0120] In this embodiment, for newly added non-driver-type loads, after the new load is adapted, the working status flag of the new load is obtained. When the working status flag indicates an abnormality, the target management module is decoupled again, and the target adaptation information is adjusted. The target adaptation information is dynamically adjusted according to the actual operating status and performance of the new load to ensure that the adaptation process is more accurate and efficient.
[0121] In one exemplary embodiment, the above-described method for adapting the storage device further includes:
[0122] 1. If the new load is a driver-type load, then according to the target adaptation information, the new load is adapted in terms of running status, business, and driver. After obtaining the new load that has been adapted in terms of status and business, the target driver version information corresponding to the load unit where the new load is located is determined from the target adaptation information.
[0123] If the new load is a driver-type load, the process of adapting the new load to its operating status and services according to the target adaptation information is the same as in the above embodiments, and will not be repeated here.
[0124] Driver adaptation aims to ensure compatibility and interoperability between the load unit's driver and hardware devices, operating systems, or other software components by selecting and configuring the appropriate driver version.
[0125] The target driver version information refers to the version identifier and feature description of the last time the load cell containing the newly added load was successfully inserted or updated to that load cell, as well as the version identifier and feature description related to the load cell driver.
[0126] In some embodiments, if the newly added load is a driver-type load, the controller determines the target load unit into which the new driver-type load is inserted, extracts the target adaptation information corresponding to the target management module of the target load unit in the overall adaptation strategy, and performs operational status adaptation on the new load based on the parameter set of the unit descriptors and operating status information of the load unit, power supply unit, and control unit in the target adaptation information. It also performs service adaptation on the new load based on the service attribute information in the target adaptation information, resulting in a new load that is both state-adapted and service-adapted. Then, the driver version information in the target adaptation information is used as the target driver version information.
[0127] Second, based on the target driver version information, the driver version of the new load is adapted so that the driver version information of the new load is consistent with the target driver version information, thus obtaining the new load with the driver adapted.
[0128] In some embodiments, the controller sends the target driver version information to the new load and compares it with the driver version of the new load. If the driver version information of the new load is consistent with the target driver version information, the driver version information of the new load is used to overwrite the target driver version information. If the driver version information of the new load is inconsistent with the target driver version information, the controller sends the upgrade package stored in the Flash to the new load to instruct the new load to upgrade its driver version to the driver version corresponding to the target driver version information, and uses the driver version information of the new load to overwrite the target driver version information, thus obtaining a new load with driver adaptation.
[0129] In this embodiment, for newly added driver-type loads, the operating status, business, and driver can be adapted to the new loads according to the target adaptation information within the overall adaptation strategy. The adaptation mechanism of adapting the new loads through the existing adaptation strategy can update the drivers in a timely manner, so that the new driver-type loads can quickly complete the driver-level adaptation, avoiding the driver-level extraction and reception of driver information one by one for adaptation, thereby quickly deploying the business.
[0130] In one exemplary embodiment, driver version adaptation is performed on the new workload based on the target driver version information, including:
[0131] 1. Based on the self-upgrade request sent by the new load, send version upgrade information to the new load to instruct the new load to upgrade the driver version to the driver version corresponding to the target driver version information.
[0132] Among them, the self-upgrade request refers to the new load being sent to the controller to read the version upgrade information stored in the controller.
[0133] Version upgrade information refers to the detailed instructions and data used to instruct new workloads to upgrade driver versions or other software components. Generally, version upgrade information is stored in the controller's Flash memory.
[0134] In some embodiments, when the target driver version information and the current driver version information of the new load are inconsistent, the controller generates version upgrade information. After the new load is added, it sends a self-upgrade request to the controller. The controller receives the self-upgrade request sent by the new load and responds with version upgrade information to the new load according to the self-upgrade request. The new load reads the version upgrade information stored in the controller's Flash to realize the driver version self-upgrade.
[0135] 2. Drive the addition of new load and read the exception flag of the new load.
[0136] The exception flag indicates the current driver version compatibility status of the workload. A normal exception flag means that the driver version of the new workload is consistent with the driver version corresponding to the target driver version information; an exception flag means that the driver version of the new workload is inconsistent with the driver version corresponding to the target driver version information, and re-adaptation is required.
[0137] In some embodiments, as shown in FIG5, the controller includes a BMC unit and a CPU unit. The BMC unit applies voltage to the CPU unit. After the voltage is applied, the CPU unit will be in a working state with maximum power consumption. At this time, the system layer of the storage device will maximize the load data transmission function. The BMC unit reads the abnormal flag bit of the newly added load through the I2C link.
[0138] Third, when the abnormal flag indicates normal operation, the newly added load that has been adapted to the driver is obtained.
[0139] In some embodiments, when the exception flag indicates normal operation, no processing is performed, and the new load that has been adapted to the driver is obtained; otherwise, the driver version for the new load needs to be re-adapted.
[0140] In this embodiment, for newly added driver-type workloads, driver version adaptation can be performed on the newly added workloads based on the target driver version information in the target adaptation information. The adaptation mechanism of adapting the newly added workloads through the existing driver version adaptation strategy can enable the newly added workloads to be quickly integrated into the storage device without the need for extensive modifications to the storage device, thereby improving the adaptation efficiency.
[0141] In one exemplary embodiment, the above-described method for adapting the storage device further includes:
[0142] When the exception flag indicates an exception, the process returns to the step of sending version upgrade information to the new load and continues until the exception flag indicates a normal state, at which point the new load with the driver adapted is obtained.
[0143] In some embodiments, after the new load implements driver version self-upgrade, the controller reads the exception flag of the new load. When the exception flag indicates an exception, the controller resends the version upgrade information to the new load. At this time, the new load performs driver version upgrade, and the driver version in the new load will automatically upgrade to the latest version.
[0144] In this embodiment, when adapting the driver version of a new load to the target driver version information, a self-verification process for the driver version of the new load is provided, which facilitates the adaptation of the new load at the driver level and improves the adaptation efficiency.
[0145] In one exemplary embodiment, detailed steps of a method for adapting a storage device are provided, including the following steps:
[0146] First, for each of the multiple management modules, treat it as the current management module and perform the following determination operations to obtain a set of adaptation information corresponding to each management module:
[0147] Read the identification information and unit parameter information of each unit within the current management module;
[0148] The identification information and corresponding unit parameter information of each unit in the current management module are packaged to obtain the unit descriptor of each unit in the current management module; the unit descriptor is used to describe the internal parameters of each unit in the current management module.
[0149] For each power supply unit in the current management module, perform the following determination operations to obtain a subset of operating status information corresponding to each power supply unit: determine the target load sub-unit and target control sub-unit corresponding to the current power supply unit in the current management module according to the power supply link; determine the operating status information corresponding to the current power supply unit, target load sub-unit, and target control sub-unit as a subset of operating status information corresponding to the current power supply unit.
[0150] The set of subsets corresponding to each power supply unit in the current management module is determined as the parameter set of the operating status information of each unit in the current management module;
[0151] The unit descriptors and parameter sets of each unit within the current management module are merged to obtain the adaptation coupling data package of the current management module;
[0152] Obtain the load driver information corresponding to the load unit in the current management module. Based on the load driver information, perform driver-level link adaptation on the load unit in the current management module to obtain the driver version information of the load unit in the current management module.
[0153] The system acquires multiple business information items to be processed by the storage device in the next time period, and determines the preferred load unit for processing each business item based on the multiple business information items and the adaptive coupling data packets of each management module.
[0154] Based on the association between each service information and its corresponding preferred load unit, service allocation information is generated, wherein the service corresponding to each service information is allocated to the preferred load unit corresponding to each service information.
[0155] Based on the business allocation information, determine the business attribute information to be processed by the current management module in the next time period;
[0156] The business attribute information and driver version information are added to the adaptation coupling data package of the current management module to obtain a set of adaptation information corresponding to the current management module.
[0157] 2. Generate an overall adaptation strategy based on a set of adaptation information corresponding to each management module.
[0158] 3. When adding new load, determine the target management module where the new load is located among multiple management modules.
[0159] Fourth, obtain the pre-configured overall adaptation strategy, which includes multiple sets of adaptation information. Each set of adaptation information corresponds to multiple management modules. Each set of adaptation information includes adaptation information used to perform various load adaptations on the load modules in the corresponding management module.
[0160] 5. Find the target adaptation information corresponding to the target management module from the overall adaptation strategy.
[0161] 6. If the new load is a non-driver type load, proceed to steps 7-9; if the new load is a driver type load, proceed to step 10.
[0162] 7. Based on the target adaptation information, adapt the new load to the operating status and business requirements.
[0163] 8. Obtain the working status flag of the newly added load.
[0164] 9. When the working status flag indicates normal operation, the new load is identified as having been adapted in both state and service. When the working status flag indicates abnormal operation, the target management module is decoupled to obtain a new set of parameters for the operating status information of each unit within the target management module. The target adaptation information is adjusted according to the new parameter set to obtain new target adaptation information. Based on the new target adaptation information, the steps for load adaptation corresponding to the load type of the new load in various load adaptation processes are returned until the working status flag indicates normal operation, and the new load is identified as having been adapted in both state and service.
[0165] 10. Based on the target adaptation information, perform runtime status adaptation, service adaptation, and driver adaptation for the new load. After obtaining the new load that has been adapted in terms of status and service, determine the target driver version information corresponding to the load unit where the new load is located from the target adaptation information.
[0166] 11. Based on the self-upgrade request sent by the newly added load, send version upgrade information to the newly added load to instruct the newly added load to upgrade the driver version to the driver version corresponding to the target driver version information.
[0167] 12. Drive the addition of new load and read the exception flag of the new load.
[0168] 13. When the exception flag indicates normal operation, the new load that has been adapted to the driver is obtained; when the exception flag indicates an exception, the step of sending version upgrade information to the new load is returned and execution continues until the exception flag indicates normal operation, and the new load that has been adapted to the driver is obtained.
[0169] In this embodiment, the cascaded power supply unit, load unit, and control unit are treated as a single management module, and the management module is considered as a whole adaptation object. When the overall adaptation strategy is pre-defined, adaptation is performed in the form of power supply-load-control unit. This results in each management module corresponding to a set of adaptation information. Each set of adaptation information includes specific details of various load adaptations for the load modules within a specific management module, guiding how to adapt each unit within the management module. The adaptation information includes unit descriptors describing the internal parameters of each unit within the current management module, a set of parameters describing the operating status of each unit within the current management module, providing relevant adaptation requirements for the operating status dimension for load adaptation, and driver version information of the load units within the current management module, providing relevant adaptation requirements for the driver dimension for load adaptation of driver-type loads. This incorporates a driver adaptation strategy into the overall adaptation strategy and performs driver adaptation for existing drivers in advance, enabling new loads to quickly complete driver-level adaptation and rapidly deploy services. When a new load is added, it can be adapted according to the target adaptation information corresponding to the target management module where the new load is located. Compared with the traditional method of re-establishing the connection between the power supply unit, control unit and the new load, the new load in this application does not need to obtain the parameters of the power supply unit and control unit one by one and establish the coupling relationship through the controller. It only needs to be quickly adjusted based on the target adaptation information corresponding to the new load, so that the target adaptation information can be quickly adapted to the new load, thus improving the adaptation efficiency.
[0170] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the related technology, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, or network device, etc.) to execute the methods of the various embodiments of this application.
[0171] According to another aspect of the embodiments of this application, a storage device is also provided for performing the adaptation method of any of the storage devices in the foregoing embodiments. The process of performing the storage device adaptation method by this storage device is similar to that in the foregoing embodiments, and will not be described in detail here.
[0172] In this embodiment, the storage device includes: a controller and multiple management modules. Each management module includes a set of cascaded power supply units, load units and control units. The controller is connected to each management module via a link.
[0173] The controller is configured to, upon the addition of a load, determine the target management module of the new load among multiple management modules; obtain a pre-configured overall adaptation strategy, wherein the overall adaptation strategy includes multiple sets of adaptation information, each set of adaptation information corresponding to multiple management modules, and each set of adaptation information includes adaptation information for performing various load adaptations on the load module in the corresponding management module; find the target adaptation information corresponding to the target management module from the overall adaptation strategy; and perform load adaptation corresponding to the load type of the new load among multiple load adaptations according to the target adaptation information, thereby obtaining the adapted new load.
[0174] The controller can be a CPU, BMC, etc. The aforementioned steps S202 to S208 can be executed by the controller.
[0175] The storage device provided in this embodiment executes the following steps by its controller: When a new load is added, the target management module containing the new load is determined from among multiple management modules; a pre-configured overall adaptation strategy is obtained, wherein the overall adaptation strategy includes multiple sets of adaptation information, each set corresponding to a specific management module, and each set including adaptation information for performing various load adaptations on the load module within the corresponding management module; the target adaptation information corresponding to the target management module is found from the overall adaptation strategy; according to the target adaptation information, the new load is subjected to load adaptation corresponding to its load type from among various load adaptations, resulting in the adapted new load. This solves the problem of long adaptation cycles for new loads in related technologies' storage device adaptation methods, improving the adaptation efficiency of the storage device.
[0176] In some exemplary embodiments, the controller is further configured to perform the following determining operations on each of the multiple management modules as the current management module to obtain a set of adaptation information corresponding to each management module: obtaining the adaptation coupling data packet of the current management module; the adaptation coupling data packet of the current management module includes a unit descriptor for describing the internal parameters of each unit within the current management module, and a parameter set for describing the operating state of each unit within the current management module; obtaining the load driver information corresponding to the load unit within the current management module, and performing driver-level link adaptation on the load unit within the current management module based on the load driver information to obtain the driver version information of the load unit within the current management module; obtaining the business attribute information to be processed by the current management module in the next time period, and adding the business attribute information and driver version information to the adaptation coupling data packet of the current management module to obtain a set of adaptation information corresponding to the current management module; and generating an overall adaptation strategy based on the set of adaptation information corresponding to each management module.
[0177] In some exemplary embodiments, the controller is further configured to obtain the unit descriptors of each unit within the current management module; perform decoupling operations on the current management module to obtain a parameter set of the operating status information of each unit within the current management module; and merge the unit descriptors and parameter sets of each unit within the current management module to obtain the adaptation coupling data packet of the current management module.
[0178] In some exemplary embodiments, the controller is further configured to read the identification information and unit parameter information of each unit in the current management module; and package the identification information and corresponding unit parameter information of each unit in the current management module to obtain the unit descriptor of each unit in the current management module.
[0179] In some exemplary embodiments, the power supply unit includes multiple power supply units, the load unit includes multiple load sub-units, and the control unit includes multiple control sub-units. The controller is further configured to perform the following determination operations on each power supply unit in the current management module as the current power supply unit, to obtain a subset of operating status information corresponding to each power supply unit: determining the target load sub-unit and target control sub-unit corresponding to the current power supply unit in the current management module according to the power supply link; determining the operating status information corresponding to the current power supply unit, the target load sub-unit, and the target control sub-unit as a subset of operating status information corresponding to the current power supply unit; and determining the set of subsets corresponding to each power supply unit in the current management module as a parameter set of operating status information for each unit in the current management module.
[0180] In some exemplary embodiments, the controller is further configured to acquire multiple service information items to be processed by the storage device in the next time period, and determine the preferred load unit for processing each service item based on the multiple service information items and the adaptation coupling data packets of each management module; generate service allocation information based on the association relationship between each service item and the corresponding preferred load unit, wherein the service corresponding to each service item is allocated to the preferred load unit corresponding to each service item; and determine the service attribute information to be processed by the current management module in the next time period based on the service allocation information.
[0181] In some exemplary embodiments, the controller is further configured to, if the new load is a non-drive-type load, perform operational state adaptation and service adaptation on the new load according to the target adaptation information; obtain the working status flag of the new load; and when the working status flag indicates normal, obtain the new load whose status and service have been adapted.
[0182] In some exemplary embodiments, the controller is further configured to, when the working status flag indicates an anomaly, re-decouple the target management module to obtain a new set of parameters for the operating status information of each unit within the target management module; adjust the target adaptation information according to the new parameter set to obtain new target adaptation information; and return the steps of load adaptation corresponding to the load type of the new load in various load adaptations according to the target adaptation information, until the working status flag indicates normal operation, thus obtaining the new load with adapted status and adapted services.
[0183] In some exemplary embodiments, the controller is further configured to, if the new load is a driver-type load, perform runtime state adaptation, service adaptation, and driver adaptation on the new load according to the target adaptation information. After obtaining the new load with adapted state and services, the controller determines the target driver version information corresponding to the load unit where the new load is located from the target adaptation information. Based on the target driver version information, the controller performs driver version adaptation on the new load so that the driver version information of the new load is consistent with the target driver version information, thereby obtaining the new load with adapted driver.
[0184] In some exemplary embodiments, the controller is further configured to send version upgrade information to the new load based on the self-upgrade request sent by the new load, so as to instruct the new load to upgrade the driver version; drive the new load, read the exception flag bit of the new load; and when the exception flag bit indicates that it is normal, obtain the new load that has been adapted for driving.
[0185] In some exemplary embodiments, the controller is further configured to return to the step of sending version upgrade information to the new load when the exception flag indicates an exception, and continue execution until the exception flag indicates a normal state, at which point the new load that has been adapted to drive is obtained.
[0186] It should be noted that the above modules can be implemented by software or hardware. For the latter, they can be implemented in the following ways, but are not limited to: all the above modules are located in the same processor; or, the above modules are located in different processors in any combination.
[0187] According to another aspect of the embodiments of this application, a computer-readable storage medium is also provided, wherein a computer program is stored therein, wherein the computer program is configured to perform the steps in any of the above method embodiments when it is run.
[0188] In some embodiments, the computer-readable storage medium described above may be, but is not limited to, a computer non-volatile readable storage medium.
[0189] In some exemplary embodiments, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as USB flash drives, ROM (Read-Only Memory), RAM (Random Access Memory), portable hard drives, magnetic disks, or optical disks.
[0190] According to another aspect of the embodiments of this application, an electronic device is also provided, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the steps in any of the above method embodiments.
[0191] In some exemplary embodiments, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor and the input / output device is connected to the processor.
[0192] Specific examples in this embodiment can be found in the examples described in the above embodiments and exemplary implementations, and will not be repeated here.
[0193] According to another aspect of the embodiments of this application, a computer program product is also provided, which includes a computer program / instructions comprising program code for performing the methods shown in the flowchart. The computer program product of this embodiment can be applied to the computing system of the electronic device shown in FIG6. In such an embodiment, the computer program can be downloaded and installed from a network via communication section 609, and / or installed from removable medium 611. When the computer program is executed by central processing unit 601, it performs various functions provided in the embodiments of this application. The sequence numbers of the above embodiments of this application are merely descriptive and do not represent the superiority or inferiority of the embodiments.
[0194] As shown in Figure 6, the computer system 600 includes a central processing unit (CPU) 601, which can perform various appropriate actions and processes based on programs stored in read-only memory (ROM) 602 or programs loaded from storage section 608 into random access memory (RAM) 603. RAM 603 also stores various programs and data required for system operation. The CPU 601, ROM 602, and RAM 603 are interconnected via a bus 604. An input / output interface 605 is also connected to the bus 604.
[0195] The following components are connected to the input / output interface 605: an input section 606 including a keyboard, mouse, etc.; an output section 607 including a CRT (Cathode Ray Tube), LCD (Liquid Crystal Display), etc., and speakers, etc.; a storage section 608 including a hard disk, etc.; and a communication section 609 including a network interface card such as a LAN card, modem, etc. The communication section 609 performs communication processing via a network such as the Internet. A drive 610 is also connected to the input / output interface 605 as needed. A removable medium 611, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on the drive 610 as needed so that computer programs read from it can be installed into the storage section 608 as needed.
[0196] Specifically, according to embodiments of this application, the processes described in the various method flowcharts can be implemented as computer software programs. For example, embodiments of this application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program including program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via communication section 609, and / or installed from removable medium 611. When the computer program is executed by central processing unit 601, it performs various functions defined in the system of this application.
[0197] It should be noted that the computer system 600 of the electronic device shown in Figure 6 is only an example and should not impose any limitations on the functionality and scope of use of the embodiments of this application.
[0198] Obviously, those skilled in the art should understand that the modules or steps of this application described above can be implemented using general-purpose computing devices. They can be centralized on a single computing device or distributed across a network of multiple computing devices. They can be implemented using computer-executable program code, and thus can be stored in a storage device for execution by a computing device. In some cases, the steps shown or described can be performed in a different order than those presented here, or they can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. Thus, this application is not limited to any particular combination of hardware and software.
[0199] The above description is merely an optional embodiment of this application and is not intended to limit this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the principles of this application should be included within the protection scope of this application.
Claims
1. A method for adapting a storage device, characterized in that, The controller is applied to the storage device, which further includes multiple management modules. Each of the multiple management modules includes a set of cascaded power supply units, load units, and control units. The controller is connected to each of the management modules via links. The method includes: In the case of a new load, determine the target management module where the new load is located among the multiple management modules; Obtain a pre-configured overall adaptation strategy, wherein the overall adaptation strategy includes multiple sets of adaptation information, each set of adaptation information corresponds one-to-one with the multiple management modules, and each set of adaptation information includes adaptation information for performing multiple load adaptations on the load modules in the corresponding management module. Find the target adaptation information corresponding to the target management module from the overall adaptation strategy; According to the target adaptation information, the new load is adapted to the load type of the new load among the various load adaptation methods to obtain the adapted new load.
2. The method according to claim 1, characterized in that, In the case of a new load, determining the target management module where the new load resides among the plurality of management modules includes: In the case of a new load, identify the slot into which the new load is inserted and the load unit in which the slot is located; The management module containing the load unit where the slot is located is identified as the target management module.
3. The method according to claim 1, characterized in that, The step of performing load adaptation on the new load according to the target adaptation information, corresponding to the load type of the new load among the various load adaptation methods, to obtain the adapted new load, includes: Identify the load type of the newly added load; Select a load adaptation method corresponding to the load type of the newly added load from the target adaptation information; The new load is adapted to the load type according to the load adaptation method. Verify the adaptation results of the load adaptation; If the adaptation result indicates that the new load can operate normally, the adapted new load can be obtained directly. If the adaptation result indicates that the new load cannot operate normally, the target adaptation information is adjusted, and the new load is adapted according to the adjusted target adaptation information until the new load can operate normally, thus obtaining the adapted new load.
4. The method according to claim 1, characterized in that, The method further includes: Each of the multiple management modules is treated as the current management module, and the following determination operations are performed to obtain a set of adaptation information corresponding to each management module: The adaptation coupling data packet of the current management module is obtained; the adaptation coupling data packet of the current management module includes a unit descriptor describing the internal parameters of each unit within the current management module, and a parameter set describing the operating state of each unit within the current management module; the load driver information corresponding to the load unit within the current management module is obtained, and based on the load driver information, the load unit within the current management module is adapted at the driver level to obtain the driver version information of the load unit within the current management module; the business attribute information to be processed by the current management module in the next time period is obtained, and the business attribute information and the driver version information are added to the adaptation coupling data packet of the current management module to obtain a set of adaptation information corresponding to the current management module; The overall adaptation strategy is generated based on a set of adaptation information corresponding to each management module.
5. The method according to claim 4, characterized in that, The step of obtaining the adaptation coupling data packet of the current management module includes: Obtain the unit descriptors of each unit within the current management module; The current management module is decoupled to obtain a parameter set of the operating status information of each unit within the current management module; The unit descriptors and corresponding parameter sets of each unit within the current management module are merged to obtain the adaptation coupling data packet of the current management module.
6. The method according to claim 5, characterized in that, The step of obtaining the unit descriptors of each unit within the current management module includes: Read the identification information and unit parameter information of each unit within the current management module; The identification information and corresponding unit parameter information of each unit in the current management module are packaged to obtain the unit descriptor of each unit in the current management module.
7. The method according to claim 5, characterized in that, The power supply unit includes multiple power supply units, the load unit includes multiple load sub-units, and the control unit includes multiple control sub-units; the decoupling operation of the current management module to obtain a parameter set of operating status information of each unit within the current management module includes: For each power supply unit in the current management module, the following determination operation is performed to obtain a subset of operating status information corresponding to each power supply unit: the target load subunit and target control subunit corresponding to the current power supply unit in the current management module are determined according to the power supply link; the operating status information corresponding to the current power supply unit, the target load subunit, and the target control subunit is determined as a subset of operating status information corresponding to the current power supply unit. The set of subsets corresponding to each power supply unit within the current management module is determined as the parameter set of the operating status information of each unit within the current management module.
8. The method according to claim 7, characterized in that, The step of determining the operating status information corresponding to the current power supply unit, the target load subunit, and the target control subunit as a subset of operating status information corresponding to the current power supply unit includes: A reset signal is sent to both the current power supply unit and the target load subunit, wherein the reset signal is used to instruct the current power supply unit and the target load subunit to reset simultaneously; Receive a response signal sent by the target load subunit, wherein the response signal is used to indicate that the current power supply unit and the target load subunit have completed establishing a connection; Upon receiving a signal from the target control subunit indicating that the target control subunit, the current power supply unit, and the target load subunit have been decoupled, the operating status information corresponding to the target control subunit, the current power supply unit, and the target load subunit is recorded to obtain a subset of operating status information corresponding to the current power supply unit.
9. The method according to claim 4, characterized in that, The step of obtaining the business attribute information to be processed by the current management module in the next time period includes: The system acquires multiple service information items to be processed by the storage device in the next time period, and determines the preferred load unit for processing each service item item based on the multiple service information items and the adaptation coupling data packets of each management module. Based on the association between each service information and its corresponding preferred load unit, service allocation information is generated, wherein the service corresponding to each service information is allocated to the preferred load unit corresponding to each service information; Based on the business allocation information, determine the business attribute information to be processed by the current management module in the next time period.
10. The method according to claim 9, characterized in that, The controller includes a central processing unit and a baseboard management controller unit. The central processing unit is connected to the baseboard management controller unit, and the baseboard management controller unit is connected to the power supply unit, load unit, and control unit in each of the management modules. The step of obtaining multiple service information to be processed by the storage device in the next time period includes: The baseboard management controller unit sends the adaptation coupling data packets of each management module to the central processing unit; The substrate management controller unit sends a verification flag bit to the central processing unit; Upon receiving the verification flag, the central processing unit sends a service acquisition instruction to a server cascaded with the storage device via an external card unit, thereby obtaining multiple service information to be processed by the storage device in the next time period.
11. The method according to claim 1, characterized in that, The step of performing load adaptation on the new load according to the target adaptation information, corresponding to the load type of the new load among the various load adaptation methods, to obtain the adapted new load, includes: If the new load is a non-driver type load, then the new load is adapted for running status and business according to the target adaptation information. Obtain the working status flag of the newly added load. When the working status flag indicates that the status is normal, the newly added load is found to be adapted in terms of both status and service.
12. The method according to claim 11, characterized in that, The method further includes: When the working status flag indicates an anomaly, the target management module is decoupled again to obtain a new set of parameters for the operating status information of each unit within the target management module; The target adaptation information is adjusted according to the new parameter set to obtain new target adaptation information; Based on the new target adaptation information, the step of performing load adaptation on the new load according to the target adaptation information, corresponding to the load type of the new load among the various load adaptations, is returned until the working status flag indicates normal, and the new load with the status adapted and the service adapted is obtained.
13. The method according to claim 11, characterized in that, The method further includes: If the new load is a driver-type load, then according to the target adaptation information, the new load is adapted in terms of running state, service and driver. After obtaining the new load that has been adapted in terms of state and service, the target driver version information corresponding to the load unit where the new load is located is determined from the target adaptation information. Based on the target driver version information, the new load is adapted to the target driver version information so that the driver version information of the new load is consistent with the target driver version information, thus obtaining the new load with adapted driver.
14. The method according to claim 13, characterized in that, The step of adapting the driver version for the new load based on the target driver version information includes: Based on the self-upgrade request sent by the newly added load, version upgrade information is sent to the newly added load to instruct the newly added load to upgrade the driver version to the driver version corresponding to the target driver version information; Drive the newly added load and read the exception flag of the newly added load; When the abnormal flag indicates that everything is normal, the newly added load that has been adapted is obtained.
15. The method according to claim 14, characterized in that, The controller includes a central processing unit and a baseboard management controller unit. The central processing unit is connected to the baseboard management controller unit, and the baseboard management controller unit is connected to the power supply unit, load unit, and control unit in each of the management modules. The process of driving the new load and reading the exception flag of the new load includes: The baseboard management controller unit sends a pressure-increasing command to the central processing unit, wherein the pressure-increasing command is used to instruct the central processing unit to be pressured, and the central processing unit after being pressured is in a maximum power consumption operating state. The substrate management controller unit reads the abnormal flag bit of the newly added load.
16. The method according to claim 14, characterized in that, The method further includes: When the exception flag indicates an exception, the step of sending version upgrade information to the new load is returned to continue execution until the exception flag indicates a normal state, at which point the new load with the driver adapted is obtained.
17. A storage device, characterized in that, include: The controller and multiple management modules, each of which includes a set of cascaded power supply units, load units and control units, and the controller is connected to each of the management modules via links; The controller is configured to, upon the addition of a new load, determine the target management module of the new load among the plurality of management modules; obtain a pre-configured overall adaptation strategy, wherein the overall adaptation strategy includes multiple sets of adaptation information, each set of adaptation information corresponding to one of the plurality of management modules, and each set of adaptation information includes adaptation information for performing multiple load adaptations on the load module in the corresponding management module; find the target adaptation information corresponding to the target management module from the overall adaptation strategy; and perform load adaptation on the new load according to the target adaptation information, among the multiple load adaptations, on the new load to obtain the adapted new load.
18. A computer program product, characterized in that, It includes computer instructions, wherein when executed by a processor, the computer instructions implement the steps of the method according to any one of claims 1 to 16.
19. A computer non-volatile readable storage medium, characterized in that, The computer non-volatile readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the method according to any one of claims 1 to 16.
20. 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 computer program, it implements the steps of the method according to any one of claims 1 to 16.
Citation Information
Patent Citations
Load balancing system and method and computer readable storage medium
CN114816723A
Method, device, system, equipment and medium for improving availability of system
CN116450349A
Adaptation method of storage device, storage device, storage medium and electronic device
CN118708366A
Adaptive load balancer and methods for intelligent data traffic steering
US20150358236A1
Load balancing processing method and apparatus, storage medium and electronic apparatus
WO2024056042A1