Storage node configuration method and device and storage medium
By automatically splitting the fast channel of peripheral components interconnection and identifying device information, and forming an independent disk redundant array, the problem of high manual configuration error rate in distributed storage systems is solved, and deployment speed and accuracy are improved.
Patent Information
- Application Number
- CN202510382792.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-28
- Publication Date
- 2025-07-11
AI Technical Summary
In the prior art, distributed storage systems and hyperconverged storage systems have problems such as high manual configuration error rate and long operation process when deploying, resulting in mismatch in hardware environments and cumbersome configuration process.
By obtaining hardware configuration field information in the substrate management controller, we automatically split the peripheral component interconnection fast channel, identify device information, and form an independent disk redundant array to generate storage node configuration results, and reduce manual intervention.
Improves the speed and efficiency of storage node deployment, reduces human errors, reduces troubleshooting time and cost during configuration, and ensures configuration accuracy.
Smart Images

Figure CN120295574A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of automation configuration technology, and particularly to a storage node configuration method, device, and storage medium. Background Art
[0002] Currently, when deploying common distributed storage systems and hyper-converged storage systems, it is usually necessary for production line personnel to build several nodes with the same hardware environment. Storage engineers then perform operations such as PCle (Peripheral Component Interconnect Express) splitting and RAID (Redundant Array of Independent Disks) formation on each node to prepare for the subsequent installation of the operating system.
[0003] However, in this process, production line personnel often encounter problems such as unstable hardware plugging, incorrect wire connection, mismatched use of accessories, or use of faulty accessories, resulting in mismatched node hardware environments. At the same time, storage engineers often need to restart the server multiple times when performing PCle splitting and RAID formation, resulting in a cumbersome and error-prone configuration process.
[0004] Due to the high error rate of manual configuration and the long time-consuming operation process, there is an urgent need for an automated storage node configuration solution to improve the efficiency and accuracy of system configuration. Summary of the Invention
[0005] The main purpose of this application is to provide a storage node configuration method, device, and storage medium, aiming to solve the problems of high error rate of manual configuration and long time-consuming operation process during system deployment.
[0006] To achieve the above objective, this application proposes a storage node configuration method, which is applied to the basic input / output system of a storage node configuration system. The system also includes a baseboard management controller and a peripheral component interconnect express. The method includes:
[0007] Obtain the hardware configuration field information corresponding to the system to be deployed in the baseboard management controller;
[0008] Based on the hardware configuration field information, split the peripheral component interconnect express to obtain a channel split result;
[0009] Call a preset external card recognition driver and a preset on-board resource recognition driver to read the access device information to obtain a device reading result;
[0010] Based on the hardware configuration field information, form a redundant array of independent disks to obtain an array formation result;
[0011] Associate and combine the channel splitting result, the device reading result, and the array formation result to generate a storage node configuration result.
[0012] In one embodiment, splitting the Peripheral Component Interconnect Express (PCIe) channel based on the hardware configuration field information to obtain a channel splitting result includes:
[0013] Parse the hardware configuration field information and a preset hardware parameter configuration mapping table to obtain storage hardware configuration parameters;
[0014] Based on the storage hardware configuration parameters, determine the splitting type and splitting configuration information corresponding to the PCIe channel;
[0015] According to the splitting type and the splitting configuration information, split the PCIe channel to obtain the channel splitting result.
[0016] In one embodiment, splitting the PCIe channel according to the splitting type and the splitting configuration information to obtain the channel splitting result includes:
[0017] Disable the PCIe channel ports corresponding to the splitting configuration information;
[0018] Configure splitting registers corresponding to the splitting type for the PCIe channel ports to implement channel splitting through the splitting registers and generate the channel splitting result.
[0019] In one embodiment, after configuring splitting registers corresponding to the splitting type for the PCIe channel ports to implement channel splitting through the splitting registers, it further includes:
[0020] Restart the PCIe channel ports through a preset interface configuration register;
[0021] Verify whether the field values in the PCIe channel are expected values;
[0022] If so, perform the step of generating the channel splitting result.
[0023] In one embodiment, calling a preset external card identification driver and a preset on-board resource identification driver to read access device information to obtain a device reading result includes:
[0024] Call the preset external card identification driver and the preset on-board resource identification driver to traverse and read the access device information corresponding to the expansion cards in the PCIe channel;
[0025] Obtain the information of the external plug-in card corresponding to the Peripheral Component Interconnect Express (PCIe) slot and the information of the interface device corresponding to the on-board interface;
[0026] Compare the access device information with the external plug-in card information and the interface device information to generate the device reading result.
[0027] In one embodiment, forming a Redundant Array of Independent Disks (RAID) based on the hardware configuration field information to obtain an array formation result, including:
[0028] Load the optional read-only memory corresponding to the RAID card and call the open interface corresponding to the optional read-only memory;
[0029] Scan the hard disk information corresponding to the RAID card through the open interface, and form the RAID based on the hardware configuration field information to obtain a first formation result;
[0030] Generate the array formation result based on the hard disk information and the first formation result.
[0031] In one embodiment, the loading of the optional read-only memory corresponding to the RAID card includes:
[0032] Obtain the total amount of data corresponding to the read-only memory by reading and writing a preset base address register;
[0033] Based on the total amount of data, write back to the preset base address register to configure the base address corresponding to the read-only memory;
[0034] Call a preset function to map the base address of the read-only memory to the system memory, and load the optional read-only memory corresponding to the RAID card through a preset protocol.
[0035] In one embodiment, after associating and combining the channel splitting result, the device reading result, and the array formation result to generate a storage node configuration result, it includes:
[0036] Check whether it is consistent with the expected system deployment requirements based on the storage node configuration result;
[0037] If so, perform a functional test on the configured hardware and storage system;
[0038] If the test passes, deploy the system to be deployed.
[0039] In addition, to achieve the above object, the present application also proposes a storage node configuration device, and the storage node configuration device includes:
[0040] An information acquisition module, configured to acquire hardware configuration field information corresponding to the system to be deployed in the baseboard management controller;
[0041] A channel splitting module, configured to split the peripheral component interconnect express channel based on the hardware configuration field information to obtain a channel splitting result;
[0042] A device reading module, configured to call a preset external card identification driver and a preset on-board resource identification driver to read access device information to obtain a device reading result;
[0043] An array formation module, configured to form an independent disk redundant array based on the hardware configuration field information to obtain an array formation result;
[0044] A result generation module, configured to associate and combine the channel splitting result, the device reading result, and the array formation result to generate a storage node configuration result.
[0045] In addition, to achieve the above object, the present application further provides a storage node configuration device, where the device includes: a memory, a processor, and a computer program stored on the memory and executable on the processor, and the computer program is configured to implement the steps of the storage node configuration method as described above.
[0046] In addition, to achieve the above object, the present application further provides a storage medium, where the storage medium is a computer-readable storage medium, and a computer program is stored on the storage medium, and when the computer program is executed by a processor, the steps of the storage node configuration method as described above are implemented.
[0047] In addition, to achieve the above object, the present application further provides a computer program product, where the computer program product includes a computer program, and when the computer program is executed by a processor, the steps of the storage node configuration method as described above are implemented.
[0048] The present application provides a storage node configuration method, device, and storage medium. The storage node configuration method obtains the hardware configuration field information corresponding to the system to be deployed in the baseboard management controller, and then based on the hardware configuration field information, splits the peripheral component interconnect express channel to obtain a channel split result. Then, it calls a preset external card identification driver and a preset on-board resource identification driver to read the access device information to obtain a device reading result. Furthermore, based on the hardware configuration field information, it constructs an independent disk redundant array to obtain an array construction result. Then, it associates and combines the channel split result, the device reading result, and the array construction result to generate a storage node configuration result. By means of automated configuration, it reduces manual intervention, significantly improves the speed and efficiency of storage node deployment, reduces human errors at the same time, and improves the accuracy of configuration, thus significantly shortening the deployment time of storage nodes, reducing manual operations and troubleshooting during the configuration process, and lowering the deployment cost. BRIEF DESCRIPTION OF THE DRAWINGS
[0049] The accompanying drawings herein are incorporated into the specification and constitute a part of the specification, showing embodiments consistent with the present application, and are used together with the specification to explain the principles of the present application.
[0050] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the accompanying drawings required for use in the description of the embodiments or the prior art. Obviously, for those of ordinary skill in the art, without creative efforts, other drawings can also be obtained based on these drawings.
[0051] Figure 1 It is a schematic flowchart provided for Embodiment 1 of the storage node configuration method of the present application;
[0052] Figure 2 It is a schematic diagram of the system structure provided for the storage node configuration method of the present application;
[0053] Figure 3 It is a schematic flowchart provided for the storage node configuration method of the present application regarding obtaining a storage hardware configuration parameter driver;
[0054] Figure 4 It is a schematic flowchart provided for the storage node configuration method of the present application regarding customizing a channel split driver;
[0055] Figure 5 It is a schematic flowchart provided for the storage node configuration method of the present application regarding an external card identification driver and an on-board resource identification driver;
[0056] Figure 6 It is a schematic flowchart provided for the storage node configuration method of the present application regarding calling an independent disk redundant array configuration driver;
[0057] Figure 7 Schematic diagram of the module structure of the storage node configuration device according to an embodiment of the present application;
[0058] Figure 8 Schematic diagram of the device structure of the hardware operating environment involved in the storage node configuration method according to an embodiment of the present application.
[0059] The implementation, functional features, and advantages of the present application will be further described in conjunction with embodiments and with reference to the accompanying drawings. Specific embodiments
[0060] It should be understood that the specific embodiments described herein are only used to explain the technical solutions of the present application and are not used to limit the present application.
[0061] In order to better understand the technical solutions of the present application, the following will be described in detail in conjunction with the accompanying drawings of the specification and specific embodiments.
[0062] It should be noted that the execution subject of this embodiment can be a computing service device with data processing, network communication, and program running functions, such as a tablet computer, a personal computer, a mobile phone, etc., or an electronic device, a big data service platform, a storage node configuration system, etc. that can implement the above functions. Hereinafter, the storage node configuration system will be used as an example to illustrate this embodiment and the following embodiments.
[0063] Based on this, an embodiment of the present application provides a storage node configuration method, with reference to Figure 1 , Figure 1 Schematic flow chart provided for Embodiment 1 of the storage node configuration method of the present application.
[0064] In this embodiment, the storage node configuration method includes steps S11 to S15:
[0065] Step S11, obtaining the hardware configuration field information corresponding to the system to be deployed in the baseboard management controller;
[0066] It should be noted that the basic input output system BOIS (Basis Input Output System) refers to the first software that runs when the computer starts, which is responsible for initializing the hardware components and starting the operating system. The baseboard management controller BMC (Baseboard Management Controller) refers to a dedicated microcontroller used to monitor and manage the physical state of the server, usually including functions such as hardware health monitoring and remote management.
[0067] Further, it should be noted that the system to be deployed refers to a computer system or storage system that has not been installed or configured but is planned to be installed or configured. The hardware configuration field information refers to the information stored in the BMC or other management interfaces, also known as FRU information (Field Replaceable Unit), which describes the configuration of the storage hardware in the system, such as the hard disk model, quantity, RAID (Redundant Array of Independent Disks) level, etc.
[0068] Specifically, in one embodiment, the user can inform the server of the current node hardware environment to be built by flashing the specific hardware configuration field information, that is, FRU information (reference can be made to Figure 2 , and the FRU information is stored in the BMC). Four hardware configuration field information, namely Product Asset Tag, Product Extra1, Product Extra2, and Product Extra3 (each field does not exceed 8 Byte lengths), are used in the FRU to store the hardware configuration parameters.
[0069] Step S12: Based on the hardware configuration field information, split the Peripheral Component Interconnect Express (PCIe) to obtain a channel split result;
[0070] It should be noted that the Peripheral Component Interconnect Express (PCIe) is a high-speed serial computer expansion bus standard used to connect internal hardware devices of a computer, such as graphics cards, network cards, storage devices, etc. The channel split result refers to the configuration result after splitting the PCIe channel, such as whether a x16 channel is successfully split into two x8 channels, etc., which is not limited here.
[0071] Specifically, parse the hardware configuration field information and the preset hardware parameter configuration mapping table to obtain the stored hardware configuration parameters. Then, based on the stored hardware configuration parameters, determine the split type and split configuration information corresponding to the Peripheral Component Interconnect Express, and thus split the Peripheral Component Interconnect Express according to the split type and the split configuration information to obtain the channel split result.
[0072] Step S13: Call the preset external card recognition driver and the preset on-board resource recognition driver to read the access device information to obtain a device reading result;
[0073] It should be noted that the preset external expansion card recognition driver refers to the driver program pre-installed in the system, which is used to recognize and configure external expansion cards connected through interfaces such as PCIe slots. The preset on-board resource recognition driver refers to the driver program pre-installed in the system, which is used to recognize and configure the resources integrated on the motherboard, such as SATA ports, USB ports, etc.
[0074] Furthermore, it should be noted that the access device information refers to the information of devices already connected to a computer or server, such as hard disks, network cards, etc., including model, capacity, status, etc. The device reading result refers to the result of the access device information read through the recognition driver, which is used to verify the connection and configuration status of the device.
[0075] Specifically, call the preset external expansion card recognition driver and the preset on-board resource recognition driver to traverse and read the access device information corresponding to the expansion card in the Peripheral Component Interconnect Express (PCIe) channel, and then obtain the external expansion card information corresponding to the PCIe channel slot and the interface device information corresponding to the on-board interface, so as to compare the access device information with the external expansion card information and the interface device information, and generate the device reading result.
[0076] Step S14, based on the hardware configuration field information, form a Redundant Array of Independent Disks (RAID), and obtain the array formation result;
[0077] It should be noted that the Redundant Array of Independent Disks (RAID) refers to a technology that combines multiple disk drives into a logical unit to improve data reliability, fault tolerance, and performance. The array formation result refers to the result after creating a RAID array according to a predetermined RAID level and configuration, including the status, performance parameters, etc. of the array.
[0078] Specifically, load the optional read-only memory corresponding to the RAID card, and call the open interface corresponding to the optional read-only memory. Then, scan the hard disk information corresponding to the RAID card through the open interface, and form the Redundant Array of Independent Disks (RAID) according to the hardware configuration field information to obtain the first formation result. Thus, based on the hard disk information and the first formation result, generate the array formation result.
[0079] Step S15, associate and combine the channel splitting result, the device reading result, and the array formation result to generate the storage node configuration result.
[0080] It should be noted that the storage node configuration result refers to the configuration result of the entire storage node (including PCIe channels, access devices, RAID arrays, etc.), which is used to verify whether the storage configuration of the entire system meets the expectations.
[0081] Specifically, the channel splitting result, the device reading result, and the array formation result are associated and combined to generate a storage node configuration result. In one embodiment, if all configurations are correct, the system will generate a successfully configured storage node configuration result, indicating that the storage node has been successfully configured and is ready. For example, if a storage node needs to support high-throughput data access and requires data redundancy to prevent single-point failures, then the configuration result will show that the PCIe channels have been correctly split to support the required number of expansion cards, all hard disks have been correctly identified and connected, and the RAID 5 array has been successfully formed and is running, thus ensuring high performance and data security, achieving automatic detection of the hardware connection status of each node, automatic splitting of the Peripheral Component Interconnect Express (PCIe) channels, and automatic formation of the RAID array, thereby solving problems such as hardware mismatch and manual configuration errors that occur during the traditional storage node configuration process, and improving the configuration efficiency and accuracy of the storage node.
[0082] In this embodiment, the hardware configuration field information corresponding to the system to be deployed in the baseboard management controller is obtained. Then, based on the hardware configuration field information, the Peripheral Component Interconnect Express (PCIe) channels are split to obtain a channel splitting result. Thereby, a preset external card identification driver and a preset on-board resource identification driver are called to read the access device information to obtain a device reading result. Then, based on the hardware configuration field information, an independent disk redundant array is formed to obtain an array formation result. Thereby, the channel splitting result, the device reading result, and the array formation result are associated and combined to generate a storage node configuration result. Furthermore, through automated configuration, manual intervention is reduced, significantly improving the speed and efficiency of storage node deployment, while reducing human errors and improving the accuracy of configuration, thereby significantly shortening the deployment time of the storage node, reducing manual operations and troubleshooting during the configuration process, and reducing the deployment cost.
[0083] In a feasible implementation manner, the splitting of the Peripheral Component Interconnect Express (PCIe) channels based on the hardware configuration field information to obtain a channel splitting result includes:
[0084] Step S21, parsing the hardware configuration field information and a preset hardware parameter configuration mapping table to obtain storage hardware configuration parameters;
[0085] It should be noted that the preset hardware parameter configuration mapping table refers to a database or data structure that defines the correspondence between various hardware parameters and system configurations, including configuration options for hardware components (such as network cards, RAID cards, storage disks, etc.) and parameter codes that the system can recognize, enabling the system to understand how to configure the hardware based on the FRU (Field Replaceable Unit) information stored in the BIOS or BMC (Baseboard Management Controller). Refer to Table 1.
[0086] Further, it should be noted that the storage hardware configuration parameters refer to those parsed from the mapping table, which specifically describe the hardware configuration requirements of the storage node, such as the number of SATA ports needed, the model and configuration of the RAID card, the number and type of PCIe slots, etc., and are used to guide the system on how to correctly configure and optimize the hardware resources.
[0087] Specifically, the hardware configuration field information and the preset hardware parameter configuration mapping table are parsed to obtain the storage hardware configuration parameters. In one embodiment, when the Alternating Current Power (AC) is powered on, the Basic Input / Output System (BIOS) sends an Intelligent Platform Management Interface (IPMI) FRU READ Request instruction to the Baseboard Management Controller (BMC). The BMC (Baseboard Management Controller) replies to the BIOS (Basic Input / Output System) with the hardware configuration field information of the "storage hardware configuration parameters" in the current FRU through the IPMI FRU READ Response instruction. For reference, Figure 3 , Figure 3 FIG. 1 is a schematic flow chart example of obtaining the storage hardware configuration parameter driver provided for the storage node configuration method of this application. Further, the hardware configuration field information and the preset hardware parameter configuration mapping table are parsed to obtain the storage hardware configuration parameters, as shown in Table 1 below. Table 1 is the mapping table of FRU field values and hardware parameter configurations.
[0088] Table 1
[0089]
[0090] For example, assume that the hardware configuration of the current hyper-converged machine is as follows: 1 9560 RAID card is connected to slot 1 of raise card 2, 2 X710 network cards are connected to raise card 1, 2 on-board 500GB Nonvolatile Memory Express (NVMe) Solid State Drives (SSDs), and 6 8T Serial Advanced Technology Attachment (SATA, a high-speed serial computer expansion bus standard) Hard Disk Drives (HDDs) are all connected to the RAID card and set to the Just a Bunch Of Disks (JBOD) mode. Then, the corresponding field values of the storage in the Fru are as follows:
[0091] Product Asset Tag: 0b00000001 (1 indicates a hyper-converged project);
[0092] Product Extra1: Bit0 to Bit2: 0b010 (2 network cards);
[0093] Bit3 to Bit6: 0b0101 (5 represents the X710 model number);
[0094] Bit7 to Bit10: 0b0001 (represents the slot code of slot1 of raise card 1);
[0095] Bit11 to Bit14: 0b0101 (5 represents the X710 model number);
[0096] Bit15 to Bit18: 0b0010 (represents the slot code of slot2 of raise card 1);
[0097] That is, the value stored in the Product Extra1 field is 0x128AA;
[0098] Product Extra2: Bit0 to Bit1: 0b01 (1 RAID card);
[0099] Bit2 to Bit5: 0b1000 (8 represents the 9560 model number);
[0100] Bit6 to Bit9: 0b0100 (4 represents the slot code of slot1 of raise card 2);
[0101] Bit10 to Bit15: 0b0110 (represents 6 storage disks);
[0102] Bit16 to Bit18: 0b101 (5 represents the 8T single-disk capacity);
[0103] Bit19 to Bit21: 0b111 (7 represents the JBOD mode)
[0104] That is, the value stored in the Product Extra2 field is 0xF5921;
[0105] Product Extra3: Bit0 to Bit4: 0b00010 (2 SSDs);
[0106] Bit5 to Bit8: 0b0001 (hard disk slot 1);
[0107] Bit9 to Bit12: 0b0011 (3 represents the 500GB capacity);
[0108] Bit13 to Bit16: 0b0010 (Hard Disk Slot 2);
[0109] Bit17 to Bit20: 0b0011 (3 represents a capacity of 500GB);
[0110] That is, the value stored in the Product Extra3 field is 0x64622.
[0111] Step S22, based on the stored hardware configuration parameters, determine the splitting type and splitting configuration information corresponding to the Peripheral Component Interconnect Express (PCIe) channel;
[0112] It should be noted that the splitting type refers to the specific way of splitting the PCIe channel. For example, a x16 PCIe slot can be split into two x8 slots, or an x8 slot can be split into two x4 slots, thus determining how to allocate the bandwidth of the PCIe channel to different devices.
[0113] Furthermore, it should be noted that the splitting configuration information refers to specific configuration instructions that tell the system how to perform the splitting of the PCIe channel, including the PCIe ports to be disabled, the splitting mode to be set, the new ports to be enabled, etc., which are usually determined based on the stored hardware configuration parameters and preset values in the mapping table. There is no limitation here and it can be set according to the actual situation.
[0114] Specifically, in one embodiment, by comparing the mapping table with the actual stored hardware configuration parameters, identify the devices to be connected, such as graphics cards, network cards, RAID cards, etc., and determine the PCIe channel width required for each device (such as x1, x4, x8, x16, etc.). Then, evaluate the number and type of available PCIe slots on the motherboard, as well as the total bandwidth capacity of these slots, to determine the most effective splitting type for splitting the PCIe channel to meet the requirements of all identified devices. For example, if a system needs to connect two graphics cards, and each graphics card requires a x16 PCIe channel, but there is only one x16 slot on the motherboard, the system will decide to split this slot into two x8 channels to support both graphics cards simultaneously.
[0115] Furthermore, after determining the splitting type, generate specific splitting configuration information, including the PCIe ports to be disabled and enabled, the splitting mode to be set, and the bandwidth configuration for each channel after splitting. Then, send the splitting configuration information to the BIOS or RAID controller, and the BIOS or RAID controller performs the actual PCIe channel splitting operation. For reference, see Figure 4 , Figure 4A brief process example diagram of custom channel splitting driver provided for the storage node configuration method of this application, to ensure that all hardware devices can obtain the required PCIe resources, so as to achieve optimal performance and compatibility.
[0116] Step S23, according to the splitting type and the splitting configuration information, split the Peripheral Component Interconnect Express (PCIe) channel to obtain the channel splitting result.
[0117] Specifically, disable the PCIe channel port corresponding to the splitting configuration information, and then configure a splitting register corresponding to the splitting type for the PCIe channel port, so as to implement channel splitting through the splitting register and generate the channel splitting result.
[0118] In this embodiment, the hardware configuration field information and the preset hardware parameter configuration mapping table are parsed to obtain the storage hardware configuration parameters. Then, based on the storage hardware configuration parameters, the splitting type and splitting configuration information corresponding to the PCIe channel are determined. Thus, according to the splitting type and the splitting configuration information, the PCIe channel is split to obtain the channel splitting result, thereby ensuring the precise allocation of PCIe resources according to the actual hardware requirements, optimizing the hardware performance and system efficiency, and realizing automatic channel splitting, reducing manual intervention, accelerating the deployment speed and reducing the risk of configuration errors.
[0119] In a feasible implementation manner, the step of splitting the PCIe channel according to the splitting type and the splitting configuration information to obtain the channel splitting result includes:
[0120] Step S31, disable the PCIe channel port corresponding to the splitting configuration information;
[0121] Step S32, configure a splitting register corresponding to the splitting type for the PCIe channel port, so as to implement channel splitting through the splitting register and generate the channel splitting result.
[0122] It should be noted that the PCIe channel port (Peripheral Component Interconnect Express Port, abbreviated as PCIe Port) refers to the interface on the computer motherboard or expansion card for connecting peripheral devices (such as graphics cards, network cards, sound cards, RAID cards, etc.). Among them, the PCIe port can have different "channel widths", and the common ones are x1, x4, x8, x16, etc. The number after "x" represents the number of data channels that the port can support. The wider the channel, the higher the data transmission rate.
[0123] Further, it should be noted that the split register refers to a register used to configure the PCIe port splitting function in a PCIe controller or chipset. The split register contains control signals for defining how to logically split a physical PCIe port into multiple ports to connect more devices. For example, a PCIe port of x16 can be split into two x8 ports by configuring the split register, or an x8 port can be split into two x4 ports, thus allowing for more flexible hardware configurations and enabling a single physical slot to support more or different types of devices.
[0124] Specifically, for example, if three external cards are connected to the raise card 1 (expansion card), the split requirement is as follows: split the X16 of the PCle port into X8, X4, and X4. The channel splitting steps are as follows:
[0125] Disable the link of Port 1 by setting the Disable Link bit of the PCle_PCle PCICFG register to disable the Peripheral Component Interconnect Express (PCIe) port corresponding to the split configuration information. Then, write the split type and the split configuration information into the PCle_SPLIT_CTL split register. Configure the PCle_SPLIT_CTL split register for each PCIe Port to be split, set Split Mode = 0110b (representing X16 + X8 + X8), and set Enable Split to achieve channel splitting and generate the channel splitting result.
[0126] In this embodiment, by disabling the Peripheral Component Interconnect Express (PCIe) port corresponding to the split configuration information, and then configuring the split register corresponding to the split type for the PCIe port, channel splitting is achieved through the split register to generate the channel splitting result. Thus, by precisely configuring the PCIe port and registers, the hardware resources are carefully controlled to ensure that the system operates according to the design requirements, and the data transmission path is optimized, thereby improving the overall performance of the system and meeting the channel splitting requirements during system deployment.
[0127] In a feasible implementation manner, after configuring the split register corresponding to the split type for the Peripheral Component Interconnect Express (PCIe) port to achieve channel splitting through the split register, it further includes:
[0128] Step S41, restart the Peripheral Component Interconnect Express (PCIe) port by configuring the register through a preset interface;
[0129] It should be noted that the preset interface configuration register refers to the PCIe CFG (configuration) register, which is part of the PCI Express (PCIe) bus specification and is used to control and monitor various configuration parameters and statuses of PCIe devices. The PCIe CFG register is part of the PCIe device configuration space, which is a set of registers that define the attributes and behaviors of the device.
[0130] Specifically, the peripheral component interconnect express lane port is re-enabled through the preset interface configuration register. Set Link Width = 0x1C (X16+X8+X8) in the PCIe CFG register of the PCle, clear the disable bit in the PCle_PCle CFG, and trigger link retraining.
[0131] Step S42, verify whether the field value in the peripheral component interconnect express lane is the expected value;
[0132] Specifically, to verify whether the field value in the peripheral component interconnect express lane is the expected value, it can be done by checking whether the Negotiated Link Width in the Link Status Register (PCI configuration space offset 12h) is the expected value, and there is no limitation here.
[0133] Step S43, if so, execute the step of generating the channel splitting result.
[0134] Specifically, if so, execute the step of generating the channel splitting result. Additionally, if the field value is not the expected value, return to execute the step of disabling the peripheral component interconnect express lane port until the field value is the expected value.
[0135] Additionally, after the field value is the expected value, the PCIe splitting information display on the BIOS setup can be adjusted according to the channel splitting result to remind the staff of the current channel splitting result.
[0136] In this embodiment, the peripheral component interconnect express lane port is restarted through the preset interface configuration register, and then it is verified whether the field value in the peripheral component interconnect express lane is the expected value. Thus, if so, the step of generating the channel splitting result is executed. Furthermore, by verifying the field value, it is ensured that the PCIe port is configured as expected, avoiding system instability or performance problems caused by configuration errors. At the same time, manual intervention is reduced, making the configuration more standardized and consistent, reducing the possibility of human errors, and then realizing an automated configuration process, improving the reliability of the system, and ensuring that the PCIe port can work properly in various situations.
[0137] In a feasible implementation manner, the step of invoking a preset external card recognition driver and a preset on-board resource recognition driver to read access device information to obtain a device reading result includes:
[0138] Step S51, invoking the preset external card recognition driver and the preset on-board resource recognition driver to traverse and read the access device information corresponding to the expansion card in the Peripheral Component Interconnect Express (PCIe) bus;
[0139] It should be noted that the preset external card recognition driver refers to a driver program pre-installed in the system, which is used to recognize and configure external expansion cards connected to the computer motherboard through expansion slots (such as PCIe slots). The preset on-board resource recognition driver refers to a driver program pre-installed in the system, which is used to recognize and configure the resources integrated on the motherboard, such as on-board sound cards, network cards, SATA controllers, etc.
[0140] Furthermore, it should be noted that the expansion card, also known as a PCle raise card, refers to a hardware card that can be inserted into an expansion slot (such as PCI, PCIe, AGP, etc.) on the computer motherboard, and is used to increase or expand the functions of the computer, such as a graphics card, a sound card, a network card, a RAID card, etc.
[0141] Specifically, through the Basic Input / Output System (BIOS), the preset external card recognition driver and the preset on-board resource recognition driver are called to scan the devices connected to the expansion card on the server (the devices include Figure 2 the PCle card, storage disk, NVME (Nonvolatile Memory Express) disk, etc. shown), and the access device information is obtained by traversing and reading the values in the DeviceID (PCI configuration space offset 02h) and SubsystemID (PCI configuration space offset 2eh) registers in the PCI configuration space of each device. For reference, Figure 5 , Figure 5 is a brief flow example diagram of the external card recognition driver and the on-board resource recognition driver provided for the storage node configuration method of this application.
[0142] Step S52, obtaining the external card information corresponding to the Peripheral Component Interconnect Express bus slot and the interface device information corresponding to the on-board interface;
[0143] It should be noted that the Peripheral Component Interconnect Express (PCIe) slot refers to the slot on the motherboard for connecting expansion cards with a PCI Express interface. PCIe is a high-speed serial computer expansion bus standard used to connect various hardware devices inside the computer. The external card information refers to the information about the expansion card obtained through the external card identification driver, including the card model, manufacturer, firmware version, resource usage (such as memory address, I / O port, etc.).
[0144] Furthermore, it should be noted that the on-board interface refers to the interface provided on the motherboard for connecting various internal or external devices, such as USB ports, SATA ports, network ports, etc. The interface device information refers to the information about the devices connected to the on-board interface obtained through the on-board resource identification driver, including the device model, manufacturer, connection status, performance parameters, etc.
[0145] Step S53: Compare the access device information with the external card information and the interface device information to generate the device reading result.
[0146] Specifically, when comparing the access device information with the external card information and the interface device information to generate the device reading result, in one embodiment, when comparing the external card information with the scanned access device information, if an abnormality occurs, the abnormal situation is sent to the BMC through the IPML (Intelligent Platform Management Interface) OEM command (IPML custom command) of the LPC (Low Pin Count) channel. The BMC displays a warning message on the Web. For example, the external card identification driver causes the Web to prompt that the network card in the corresponding slot is not connected and the network card models do not match, and the on-board resource identification driver causes the Web to prompt the lack of a direct-pass SATA disk in a certain slot or the disk capacity does not match.
[0147] Among them, in the format of the IPML OEM request command: the NetFn (1 byte) segment is 0x2e (0x2E indicates an OEM request), the Command (1 byte) segment is 0x08 or 0x0f (0x08 indicates sending the external card comparison result, 0x0f indicates sending the on-board storage disk comparison result), and the Data segment (with an indefinite number of bytes) is various error information codes.
[0148] In the format of the IPML OEM response command: the NetFn (1 byte) segment is 0x2f (0x2F indicates an OEM response), the Command (1 byte) segment is 0x08 or 0x0f or 0x00 (0x08 indicates successfully receiving the external card comparison result, 0x0f indicates successfully receiving the on-board storage disk comparison result, 0x00 indicates not successfully receiving the result), and the Data segment (1 byte) is 0x00.
[0149] Understandably, in the traditional storage node configuration, production line personnel and storage engineers may encounter problems such as unstable hardware connections, mismatched accessory models, and unrecognized accessory failures when configuring hardware, resulting in inconsistent node hardware environments, which in turn affect the deployment and stability of the entire system. Through the development of BIOS (Basic Input / Output System) firmware, the hardware connection status of each storage node can be automatically detected, external plug-in cards and storage devices can be automatically recognized, avoiding hardware mismatch problems. At the same time, by comparing the hardware configuration and the scanned device information, if there is a hardware mismatch, the system will notify the BMC (Baseboard Management Controller) through the LPC (Low Power Communication) channel, and the BMC will display a warning message to remind the user to check and solve the hardware problem. Thus, by automatically identifying and matching hardware accessories, the correct connection and configuration of the hardware are ensured. If the hardware connection is improper or the accessories do not match, the system will automatically feedback the abnormal situation through the LPC (Low Power Communication) channel and display a warning message through the BMC (Baseboard Management Controller), avoiding hardware incompatibility problems.
[0150] In this embodiment, the preset external plug-in card recognition driver and the preset on-board resource recognition driver are called to traverse and read the access device information corresponding to the expansion card in the Peripheral Component Interconnect Express (PCIe) bus, and then the external plug-in card information corresponding to the PCIe slot and the interface device information corresponding to the on-board interface are obtained. Thus, the access device information is compared with the external plug-in card information and the interface device information to generate the device reading result, and then the hardware devices connected to the system are automatically recognized, reducing human errors, improving the recognition accuracy, and realizing hardware recognition and verification configuration.
[0151] In a feasible implementation manner, based on the hardware configuration field information, forming an independent disk redundant array to obtain an array formation result includes:
[0152] Step S61, loading the optional read-only memory corresponding to the independent disk redundant array card and calling the open interface corresponding to the optional read-only memory;
[0153] It should be noted that the independent disk redundant array card, also known as a RAID card, is a special hardware device that contains a processor and memory and is used to manage multiple hard disk drives connected to a computer. The RAID card is responsible for implementing RAID functions, including data striping, mirroring, and parity checking, etc., to improve data reliability and performance.
[0154] Further, it should be noted that the optional read-only memory, also known as Option ROM, is a kind of firmware on the RAID card, stored in the non-volatile memory on the card, and contains the code required to initialize the RAID card and configure the RAID array. When the computer starts up, the BIOS can load the Option ROM to configure the RAID array before the operating system is loaded.
[0155] Furthermore, the open interface refers to a set of standardized APIs (application programming interfaces) or command sets provided by the RAID card, which allows the operating system or management software to communicate with the RAID card, enabling the software to query the status of the RAID card, configure the RAID array, manage hard disks, etc.
[0156] Specifically, the total amount of data corresponding to the read-only memory is obtained by reading and writing a preset base address register, and then based on the total amount of data, the preset base address register is rewritten to configure the base address corresponding to the read-only memory. Thus, a preset function is called to map the base address of the read-only memory to the system memory, and the optional read-only memory corresponding to the redundant array of independent disks card is loaded through a preset protocol. Further, the open interface corresponding to the optional read-only memory is called.
[0157] It can be understood that the deployment of the storage system usually relies on the manual operation of storage engineers, involving complex configuration tasks such as PCle splitting and RAID formation. Manual operation is difficult and inefficient, and due to the multiple restarts involved in the configuration process, it consumes a large amount of time. Therefore, by using the BIOS (basic input / output system) firmware to automatically split the PCle channels and form the RAID array according to the hardware configuration parameters at startup, it avoids the requirements and steps such as hardware environment analysis, learning to use Setup, and component knowledge reserve required during manual splitting and configuration. This enables storage engineers to only spend the time to brush the Fru information to ensure that the Fru information brushed on the server meets the project requirements, and then the required deployment configuration can be completed, greatly saving time costs and reducing the configuration difficulty.
[0158] Step S62, scan the hard disk information corresponding to the redundant array of independent disks card through the open interface, and form the redundant array of independent disks according to the hardware configuration field information to obtain the first formation result;
[0159] It should be noted that the hard disk information refers to the detailed information about the hard disk drives connected to the RAID card or the computer, including the hard disk model, capacity, serial number, firmware version, as well as their roles and status in the RAID array. The first configuration result refers to the preliminary RAID array configuration result, including the organization method of the hard disks, the RAID level (such as RAID 0, RAID 1, RAID 5, etc.), the total capacity and performance parameters of the array, etc., which is used to verify whether the RAID array has been successfully configured as expected.
[0160] Specifically, the hard disk information corresponding to the redundant array of independent disks card is obtained by scanning through the open interface, and the redundant array of independent disks is configured according to the hardware configuration field information to obtain the first configuration result.
[0161] In an embodiment, the process of configuring the RAID according to the hardware configuration field information is as follows: the Driver Imformation Registers on the controller of the RAID card are read using the ReadRegister() method in the open interface to obtain the storage disk information, and then the RAID data in the FRU is written into the Virtual Driver Registers using the WriteRegister() in the open interface API, so as to use the ReadRegister() to read the Virtual DriverImformation Registers to obtain the first configuration result. For reference, see Figure 6 , Figure 6 which is a brief flow example diagram for calling the redundant array of independent disks configuration driver provided for the storage node configuration method of this application.
[0162] It can be understood that due to permission issues, traditional software can only use some of the already encapsulated APIs when calling the APIs of the RAID card Option ROM, such as MakeRAID(), GetRAID Status(), etc. These APIs are implemented by the firmware engineers of the RAID card manufacturer by controlling the registers on the RAID card controller. However, due to the requirements of security and generality, the RAID card firmware engineers often only consider the most basic functions and the worst environmental conditions when providing APIs externally, which makes the APIs provided externally not perform well when used.
[0163] Therefore, in this solution, the APIs of the RAID card are called in the CPU's BIOS. Since the BIOS has higher permissions, the registers on the RAID card can be directly controlled through the read and write register APIs to accurately and efficiently implement the configuration of the RAID card.
[0164] Step S63: Generate the array formation result based on the hard disk information and the first formation result.
[0165] Specifically, after forming the RAID, report the read hard disk information and the first component result to the BMC (Baseboard Management Controller), that is, generate the array formation result. Among them, the array formation result is divided into: success, display the hardware information of each storage disk and the RAID information; failure, prompt the mismatch situation and reasons. There is no limitation here, and it can be set according to the actual situation.
[0166] It can be understood that the existing automated configuration tools cannot fully automate hardware detection and configuration. Especially for complex storage system configurations, that is, the prompts and solutions for users regarding detected problems are not intelligent. Therefore, this solution provides a hardware verification mechanism and a RAID automatic configuration mechanism. The BIOS can scan the server hardware and verify whether the device meets the configuration requirements, and configure the required RAID. When it is found that the hardware connection is incorrect or the RAID configuration is unsuccessful, the BIOS (Basic Input / Output System) can automatically feedback more accurate error information through the BMC (Baseboard Management Controller) Web, facilitating users to solve problems faster.
[0167] In this embodiment, load the optional read-only memory corresponding to the independent disk redundant array card, and call the open interface corresponding to the optional read-only memory. Then, scan the hard disk information corresponding to the independent disk redundant array card through the open interface, and form the independent disk redundant array according to the hardware configuration field information to obtain the first formation result. Thus, generate the array formation result based on the hard disk information and the first formation result, and further automate the creation and management of the RAID array, reducing the need for manual configuration and simplifying the deployment process to ensure that the RAID array is correctly formed according to the predetermined configuration parameters.
[0168] In a feasible implementation manner, the loading of the optional read-only memory corresponding to the independent disk redundant array card includes:
[0169] Step S71: Obtain the total amount of data corresponding to the read-only memory by reading and writing a preset base address register.
[0170] It should be noted that the preset base address register is a register used to specify the position of device memory or resources in the system memory address space. When configuring a device, such as a RAID card, it is necessary to read the current base address setting or write a new base address value.
[0171] Further, it should be noted that the read-only memory (ROM) refers to a read-only memory, a non-volatile memory used to store data or programs that do not change frequently. The total amount of data refers to the total amount of information stored in the ROM, or the size of the memory space that the device can configure through registers.
[0172] Specifically, the total amount of data corresponding to the read-only memory is obtained by reading and writing a preset base address register. First, write all 0xFFFF FFFE to the PCI base address register (located at 30h) of the RAID card device and read it back to obtain the ROM size corresponding to the read-only memory, that is, the total amount of data.
[0173] Step S72, based on the total amount of data, write back to the preset base address register to configure the base address corresponding to the read-only memory;
[0174] It should be noted that the base address refers to the starting address of a range in memory, and this range is allocated to a specific hardware device, such as a RAID card. By configuring the base address register, the operating system or BIOS can map the device to a specific location in the system memory space, thereby allowing the CPU to access the memory or registers of the device.
[0175] Specifically, according to the total amount of data, that is, the ROM size, allocate memory space, write back to the preset base address register to configure the base address corresponding to the read-only memory, and write the base address to the 0x30 / 0x38 register to enable ROM decoding.
[0176] Step S73, call a preset function to map the base address of the read-only memory to the system memory, and load the optional read-only memory corresponding to the redundant array of independent disks (RAID) card through a preset protocol.
[0177] Specifically, call a preset function (such as the PciRomAddimageMapping function) to map the base address of the read-only memory to the system memory, and load the optional read-only memory corresponding to the RAID card through a preset protocol (such as the EFIOPROM_EXECUTE protocol).
[0178] In this embodiment, the total amount of data corresponding to the read-only memory is obtained by reading and writing a preset base address register. Furthermore, based on the total amount of data, write back to the preset base address register to configure the base address corresponding to the read-only memory, thereby calling a preset function to map the base address of the read-only memory to the system memory, and load the optional read-only memory corresponding to the RAID card through a preset protocol. Furthermore, through an automated mapping and loading process, the configuration and management of the RAID card are simplified, and it is ensured that the firmware and driver programs of the RAID card are compatible with other components of the system, avoiding potential hardware conflicts, thereby improving the accuracy of RAID formation.
[0179] In a feasible implementation manner, after associating and combining the channel splitting result, the device reading result, and the array formation result to generate a storage node configuration result, it includes:
[0180] Based on the storage node configuration result, check whether it is consistent with the expected system deployment requirements; if so, conduct functional tests on the configured hardware and storage system; if the tests pass, deploy the system to be deployed.
[0181] Specifically, obtaining and parsing the expected system deployment requirements, including hardware specifications, storage capacity, performance metrics, and compatibility requirements, and then, according to the expected system deployment requirements, using interfaces such as BIOS or Baseboard Management Controller (BMC) to read the current configuration results of the storage node, including PCIe channel configuration, RAID array settings, hard disk model and capacity, etc. For example, if the expected requirement is to create a RAID 5 array using a specific model of hard disk, then the system will check whether the configuration results actually reflect these settings.
[0182] Furthermore, once it is confirmed that the configuration result is consistent with the expected requirements, conduct functional tests on the configured hardware and storage system, including performance benchmark tests, data integrity checks, and fault recovery simulations, etc., which are not limited here. For example, the performance of the RAID array can be tested by writing and reading a large amount of data, or the redundancy and recovery capabilities of the system can be verified by simulating hard disk failures.
[0183] Even further, if all tests pass, it proves that the system runs as expected, and then deploy the system to be deployed, which involves installing the operating system, application software, and performing final system configuration, so as to ensure that the configuration of the storage node not only meets the technical specifications, but also performs well in actual operation, thus providing a solid foundation for the stable operation of the system and data security.
[0184] In this embodiment, by checking whether the storage node configuration result is consistent with the expected system deployment requirements, and if so, conducting functional tests on the configured hardware and storage system, and thus if the tests pass, deploying the system to be deployed, it ensures that the system configuration meets the established design goals and business requirements by checking whether the configuration result is consistent with the expected requirements. At the same time, conducting functional tests before system deployment helps to discover potential problems in advance, thereby improving the reliability and stability of the system, and increasing the success rate, security, and accuracy of system deployment.
[0185] It should be understood that the magnitudes of the sequence numbers of the steps in the above embodiments do not mean the order of execution. The order of execution of each process should be determined by its function and internal logic, and should not constitute any limitation to the implementation process of the embodiments of the present invention.
[0186] The present application also provides a storage node configuration device. Please refer to Figure 7 , the storage node configuration device includes:
[0187] An information acquisition module 71, configured to acquire hardware configuration field information corresponding to a system to be deployed in the baseboard management controller;
[0188] A channel splitting module 72, configured to split the peripheral component interconnect express channel based on the hardware configuration field information to obtain a channel splitting result;
[0189] A device reading module 73, configured to call a preset external card identification driver and a preset on-board resource identification driver to read access device information to obtain a device reading result;
[0190] An array building module 74, configured to build an independent disk redundant array based on the hardware configuration field information to obtain an array building result;
[0191] A result generation module 75, configured to associate and combine the channel splitting result, the device reading result, and the array building result to generate a storage node configuration result.
[0192] The storage node configuration device is further configured to:
[0193] Parse the hardware configuration field information and a preset hardware parameter configuration mapping table to obtain storage hardware configuration parameters;
[0194] Based on the storage hardware configuration parameters, determine a splitting type and splitting configuration information corresponding to the peripheral component interconnect express channel;
[0195] According to the splitting type and the splitting configuration information, split the peripheral component interconnect express channel to obtain the channel splitting result.
[0196] The storage node configuration device is further configured to:
[0197] Disable a peripheral component interconnect express channel port corresponding to the splitting configuration information;
[0198] Configure a splitting register corresponding to the splitting type for the peripheral component interconnect express channel port, so as to implement channel splitting through the splitting register and generate the channel splitting result.
[0199] The storage node configuration device is further configured to:
[0200] Restart the peripheral component interconnect express channel port through a preset interface configuration register;
[0201] Verify whether the field value in the Peripheral Component Interconnect Express (PCIe) channel is the expected value;
[0202] If so, execute the step of generating the channel splitting result.
[0203] The storage node configuration device is further configured to:
[0204] Call the preset external card identification driver and the preset on-board resource identification driver to traverse and read the access device information corresponding to the expansion card in the Peripheral Component Interconnect Express (PCIe) channel;
[0205] Obtain the external card information corresponding to the Peripheral Component Interconnect Express (PCIe) channel slot and the interface device information corresponding to the on-board interface;
[0206] Compare the access device information with the external card information and the interface device information to generate the device reading result.
[0207] The storage node configuration device is further configured to:
[0208] Load the optional read-only memory corresponding to the redundant array of independent disks (RAID) card and call the open interface corresponding to the optional read-only memory;
[0209] Scan the hard disk information corresponding to the redundant array of independent disks (RAID) card through the open interface, and form the redundant array of independent disks (RAID) according to the hardware configuration field information to obtain the first formation result;
[0210] Generate the array formation result based on the hard disk information and the first formation result.
[0211] The storage node configuration device is further configured to:
[0212] Obtain the total amount of data corresponding to the read-only memory by reading and writing the preset base address register;
[0213] Based on the total amount of data, write back to the preset base address register to configure the base address corresponding to the read-only memory;
[0214] Call a preset function to map the base address of the read-only memory to the system memory, and load the optional read-only memory corresponding to the redundant array of independent disks (RAID) card through a preset protocol.
[0215] The storage node configuration device is further configured to:
[0216] Based on the storage node configuration result, check whether it is consistent with the expected system deployment requirements;
[0217] If so, perform a functional test on the configured hardware and storage system;
[0218] If the test passes, deploy the system to be deployed.
[0219] The storage node configuration device provided by this application adopts the storage node configuration method in the above-mentioned embodiment, and can solve the technical problems in the background art. Compared with the prior art, the beneficial effects of the storage node configuration device provided by this application are the same as those of the storage node configuration method provided by the above-mentioned embodiment, and other technical features in the storage node configuration device are the same as the features disclosed in the above-mentioned embodiment method, and will not be elaborated here.
[0220] This application provides a storage node configuration device, which includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein, the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the storage node configuration method in the first embodiment above.
[0221] Next, refer to Figure 8 , which shows a schematic structural diagram of a storage node configuration device suitable for implementing the embodiments of the present application. The storage node configuration device in the embodiments of the present application may include, but is not limited to, mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (Personal Digital Assistants), PADs (Portable Application Descriptions), PMPs (Portable Media Players), vehicle-mounted terminals (such as vehicle-mounted navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. Figure 8 The storage node configuration device shown is only an example and should not impose any limitations on the functions and usage scope of the embodiments of the present application.
[0222] As Figure 8As shown, the storage node configuration device may include a processing device 1001 (such as a central processing unit, a graphics processing unit, etc.), which may perform various appropriate actions and processes according to a program stored in the read-only memory 1002 or a program loaded from the storage device 1003 into the random access memory 1004. In the random access memory 1004, various programs and data required for the operation of the storage node configuration device are also stored. The processing device 1001, the read-only memory 1002, and the random access memory 1004 are connected to each other through a bus 1005. An input / output interface 1006 is also connected to the bus. Generally, the following systems may be connected to the input / output interface 1006: an input device 1007 including, for example, a touch screen, a touchpad, a keyboard, a mouse, an image sensor, a microphone, an accelerometer, a gyroscope, etc.; an output device 1008 including, for example, a liquid crystal display (LCD: Liquid Crystal Display), a speaker, a vibrator, etc.; a storage device 1003 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 1009. The communication device 1009 may allow the storage node configuration device to communicate with other devices wirelessly or wiredly to exchange data. Although the figure shows a storage node configuration device having various systems, it should be understood that it is not required to implement or include all the shown systems. More or fewer systems may be alternatively implemented or included.
[0223] Specifically, according to the embodiments disclosed in the present application, the processes described above with reference to the flowcharts may be implemented as computer software programs. For example, the embodiments disclosed in the present application include a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program includes program codes for performing the methods shown in the flowcharts. In such an embodiment, the computer program may be downloaded and installed from a network through the communication device, or installed from the storage device 1003, or installed from the read-only memory 1002. When the computer program is executed by the processing device 1001, the above functions defined in the methods of the embodiments disclosed in the present application are executed.
[0224] The storage node configuration device provided by the present application adopts the storage node configuration method in the above embodiments and can solve the technical problems in the background art. Compared with the prior art, the beneficial effects of the storage node configuration device provided by the present application are the same as those of the storage node configuration method provided by the above embodiments, and other technical features in the storage node configuration device are the same as those disclosed in the method of the previous embodiment, and will not be elaborated here.
[0225] It should be understood that the various parts disclosed in the present application may be implemented by hardware, software, firmware, or a combination thereof. In the description of the above embodiments, specific features, structures, materials, or characteristics may be combined in a suitable manner in any one or more embodiments or examples.
[0226] As described above, it is only the specific implementation manner of this application. However, the protection scope of this application is not limited thereto. Any person skilled in the art within the technical scope disclosed by this application can easily think of changes or substitutions, which should all be covered within the protection scope of this application. Therefore, the protection scope of this application shall be subject to the protection scope of the claimed rights.
[0227] This application provides a computer-readable storage medium having computer-readable program instructions (i.e., computer programs) stored thereon, and the computer-readable program instructions are used to execute the storage node configuration method in the above embodiments.
[0228] The computer-readable storage medium provided by this application can be, for example, a USB flash drive, but is not limited to electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems or devices, or any combination of the above. More specific examples of the computer-readable storage medium may include, but are not limited to: electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM) or flash memory, optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the above. In this embodiment, the computer-readable storage medium can be any tangible medium that contains or stores a program, and this program can be used by or in combination with an instruction execution system or device. The program code contained on the computer-readable storage medium can be transmitted by any appropriate medium, including but not limited to: wires, optical cables, RF (Radio Frequency), etc., or any suitable combination of the above.
[0229] The above computer-readable storage medium can be included in the storage node configuration device; or it can exist separately without being assembled into the storage node configuration device.
[0230] The above computer-readable storage medium carries one or more programs. When the above one or more programs are executed by the storage node configuration device, the storage node configuration device is caused to:
[0231] Obtain the hardware configuration field information corresponding to the system to be deployed in the baseboard management controller;
[0232] Based on the hardware configuration field information, split the peripheral component interconnect express channel to obtain a channel splitting result;
[0233] Call the preset external card recognition driver and the preset on-board resource recognition driver to read the access device information and obtain the device reading result;
[0234] Based on the hardware configuration field information, form an independent disk redundant array to obtain the array formation result;
[0235] Associate and combine the channel splitting result, the device reading result, and the array formation result to generate a storage node configuration result.
[0236] Computer program code for performing the operations of the present application can be written in one or more programming languages or combinations thereof. The above-mentioned programming languages include object-oriented programming languages - such as Java, Smalltalk, C++, and also include conventional procedural programming languages - such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, executed as an independent software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer can be connected to the user's computer through any type of network - including a local area network (LAN: Local Area Network) or a wide area network (WAN: Wide Area Network), or it can be connected to an external computer (for example, by using an Internet service provider to connect through the Internet).
[0237] The flowcharts and block diagrams in the accompanying drawings illustrate the possible architectures, functions, and operations of systems, methods, and computer program products according to various embodiments of the present application. In this regard, each block in the flowchart or block diagram can represent a module, a program segment, or a part of code that contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order than that marked in the accompanying drawings. For example, two consecutive blocks shown may actually be executed substantially in parallel, and they can sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart, and the combination of blocks in the block diagram and / or flowchart, can be implemented by a dedicated hardware-based system for performing the specified functions or operations, or can be implemented by a combination of dedicated hardware and computer instructions.
[0238] The modules involved in the embodiments described in the present application can be implemented in software or in hardware. Among them, the name of the module does not constitute a limitation to the unit itself in some cases.
[0239] The readable storage medium provided by this application is a computer-readable storage medium. The computer-readable storage medium stores computer-readable program instructions (i.e., computer programs) for executing the above-mentioned storage node configuration method, and can solve the technical problems in the background art. Compared with the prior art, the beneficial effects of the computer-readable storage medium provided by this application are the same as those of the storage node configuration method provided by the above embodiment, and will not be elaborated here.
[0240] An embodiment of this application provides a computer program product, including a computer program, and the steps of the above-mentioned storage node configuration method are implemented when the computer program is executed by a processor.
[0241] The computer program product provided by this application can solve the technical problems in the background art. Compared with the prior art, the beneficial effects of the computer program product provided by the embodiment of this application are the same as those of the storage node configuration method provided by the above embodiment, and will not be elaborated here.
[0242] The above are only partial embodiments of this application, and do not limit the patent scope of this application. Any equivalent structural transformation made by using the content of the specification and drawings of this application under the technical concept of this application, or direct / indirect application in other related technical fields, is included in the patent protection scope of this application.
Claims
1. A method for configuring a storage node, characterized in that Basic Input / Output System applied to a storage node configuration system, the system further including a Baseboard Management Controller and a Peripheral Component Interconnect Express, the method comprising: Obtain the hardware configuration field information corresponding to the system to be deployed in the Baseboard Management Controller; Based on the hardware configuration field information, split the Peripheral Component Interconnect Express to obtain a channel split result; Call a preset external card identification driver and a preset on-board resource identification driver to read the access device information to obtain a device reading result; Based on the hardware configuration field information, form an Independent Disk Redundant Array to obtain an array formation result; Associate and combine the channel split result, the device reading result, and the array formation result to generate a storage node configuration result.
2. The storage node configuration method according to claim 1, wherein The splitting the Peripheral Component Interconnect Express based on the hardware configuration field information to obtain a channel split result includes: Parse the hardware configuration field information and a preset hardware parameter configuration mapping table to obtain storage hardware configuration parameters; Based on the storage hardware configuration parameters, determine the split type and split configuration information corresponding to the Peripheral Component Interconnect Express; According to the split type and the split configuration information, perform channel splitting on the Peripheral Component Interconnect Express to obtain the channel split result.
3. The storage node configuration method according to claim 2, wherein The performing channel splitting on the Peripheral Component Interconnect Express according to the split type and the split configuration information to obtain the channel split result includes: Disable the Peripheral Component Interconnect Express ports corresponding to the split configuration information; Configure split registers corresponding to the split type for the Peripheral Component Interconnect Express ports to implement channel splitting through the split registers and generate the channel split result.
4. The storage node configuration method according to claim 3, wherein After configuring split registers corresponding to the split type for the Peripheral Component Interconnect Express ports to implement channel splitting through the split registers, further includes: Restart the Peripheral Component Interconnect Express ports through a preset interface configuration register; Verify whether the field values in the Peripheral Component Interconnect Express are expected values; If so, execute the step of generating the channel split result.
5. The storage node configuration method according to claim 1, wherein The calling a preset external card identification driver and a preset on-board resource identification driver to read the access device information to obtain a device reading result includes: Call the preset external card identification driver and the preset on-board resource identification driver to traverse and read the access device information corresponding to the expansion cards in the Peripheral Component Interconnect Express; Obtain the external card information corresponding to the Peripheral Component Interconnect Express slots and the interface device information corresponding to the on-board interfaces; Compare the access device information with the external card information and the interface device information to generate the device reading result.
6. The storage node configuration method according to claim 1, wherein, The forming an Independent Disk Redundant Array based on the hardware configuration field information to obtain an array formation result includes: Load the optional read-only memory corresponding to the Independent Disk Redundant Array card and call the open interface corresponding to the optional read-only memory; Scan the hard disk information corresponding to the redundant array of independent disks (RAID) card through the open interface, and form the redundant array of independent disks based on the hardware configuration field information to obtain a first formation result; Generate the array formation result based on the hard disk information and the first formation result.
7. The storage node configuration method according to claim 6, characterized in that, The loading of the optional read-only memory corresponding to the redundant array of independent disks card includes: Obtain the total amount of data corresponding to the read-only memory by reading and writing a preset base address register; Based on the total amount of data, write back to the preset base address register to configure the base address corresponding to the read-only memory; Call a preset function to map the base address of the read-only memory to the system memory, and load the optional read-only memory corresponding to the redundant array of independent disks card through a preset protocol.
8. The storage node configuration method according to claim 1, wherein After associating and combining the channel splitting result, the device reading result, and the array formation result to generate a storage node configuration result, it includes: Check whether it is consistent with the expected system deployment requirements based on the storage node configuration result; If so, perform a functional test on the configured hardware and storage system; If the test passes, deploy the system to be deployed.
9. A storage node configuration device, characterized in that, The storage node configuration device includes: a memory, a processor, and a computer program stored on the memory and executable on the processor, and the computer program is configured to implement the steps of the storage node configuration method according to any one of claims 1 to 8.
10. A storage medium, characterized in that, The storage medium is a computer-readable storage medium, and a computer program is stored on the storage medium, and when the computer program is executed by a processor, the steps of the storage node configuration method according to any one of claims 1 to 8 are implemented.
Citation Information
Cited By
Storage node management method and electronic equipment
CN120743200A
Storage node management methods and electronic devices
CN120743200B