Server starting method and server

By storing BIOS module files in the server's BMC, the independent deployment and execution of EFI files is achieved, and the problems of poor generalization and maintenance difficulty in the existing technology of EFI file deployment are solved, which improves the flexibility and reusability of the deployment, and reduces development time and labor costs.

CN119536827APending Publication Date: 2025-02-28XFUSION DIGITAL TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411347773.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-25
Publication Date
2025-02-28

AI Technical Summary

Technical Problem

The EFI file deployment method of existing servers is poor in versatility, difficult to maintain, and the time it takes to compile, package and write flash, resulting in long development time and poor reusability.

Method used

By storing BIOS module files in the server's substrate management controller BMC, the independent deployment and execution of EFI files are achieved. When the server starts, it sends a file request message to the BMC, obtains the BIOS module files required in the target stage and executes it, realizing the startup task of the target stage.

Benefits of technology

It realizes flexible and convenient maintenance and management of EFI files, improves deployment flexibility and reusability, and reduces development time and labor costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119536827A_ABST
    Figure CN119536827A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a server starting method and a server, and relates to the technical field of servers. The method is applied to the server, and at least one BIOS module file is stored in a baseboard management controller (BMC) of the server. The method comprises the steps that under the condition that a server is started to a target stage, a file request message is sent to a BMC of the server, and the file request message is used for requesting to obtain a BIOS module file needing to be executed in the target stage; obtaining a BIOS module file sent by the BMC; and executing the BIOS module file to complete the starting task of the target stage. Therefore, part of BIOS module files required to be used in the startup process of the server are placed in the BMC and can be independently configured and updated, so that the flexibility of deploying and loading the BIOS module files is improved, and the BIOS module files are easy to maintain.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of servers, and in particular to a server startup method and a server. Background Art

[0002] The Basic Input Output System (BIOS) is an indispensable software in the server startup process. It ensures the correct initialization of hardware devices and the smooth startup of the operating system. The smallest module of the BIOS code is a binary executable file (i.e., EFI file) with the suffix .efi. The extension is the EFI (Extensible Firmware Interface) application. These EFI files are used to perform specific tasks when the server is started, such as starting the operating system, hardware initialization, system diagnosis, etc. The usual way to deploy EFI files is to compile and package multiple EFI files from the BIOS source code and write them into the non-volatile memory flash of the server so that they can be loaded and executed at different stages of the server startup.

[0003] Due to the diversity of server configurations, the EFI files running on servers with different central processing units (CPUs) are different, that is, different servers need to compile EFI separately, package it into binary files, and then write it into flash for use. It can be seen that this EFI file deployment method has poor versatility, and there may be a problem that once an EFI file has a problem, all EFI files used to implement BIOS functions need to be refreshed. Moreover, the time consumed in compiling, packaging and writing EFI files into flash is also very long, especially since the CPU of the server is updated very quickly. This deployment method means that even if the function of the BIOS running after the CPU is updated is the same as before the CPU is updated, the corresponding EFI files still need to be recompiled and packaged and then written into flash, resulting in long development time, poor reusability, and difficult maintenance.

[0004] In summary, this EFI deployment method, which is not universal and difficult to maintain, urgently needs some changes. Summary of the invention

[0005] The embodiments of the present application provide a server startup method, device, server, computer storage medium and computer program product, which can realize independent deployment and execution of EFI files, and facilitate flexible and convenient maintenance and management.

[0006] In a first aspect, an embodiment of the present application provides a server startup method, in which at least one input / output system BIOS module file is stored in the baseboard management controller BMC of the server; the method comprises: when the server is started to a target stage, sending a file request message to the baseboard management controller BMC of the server, the file request message is used to request to obtain the BIOS module file required to be executed in the target stage; obtaining the BIOS module file sent by the BMC; and executing the BIOS module file to complete the startup task of the target stage.

[0007] In this embodiment, one or more BIOS module files are stored in the BMC of the server, and each BIOS module file can be used to complete at least one function of the BIOS firmware. These BIOS module files can be extensible firmware interface EFI files compiled from the BIOS firmware source code. The server startup process may include multiple startup stages, including but not limited to the hardware initialization stage, the system diagnosis stage, the operating system startup stage, and the like. In this embodiment, one or more of the startup stages can be set as the target stage in advance, so that when the server is started to execute the target stage, the central processing unit of the server obtains the BIOS module file required to be executed in the target stage from the BMC and executes it, thereby realizing the startup task of the target stage. In this way, since the BIOS module file on the BMC side is independent of the BIOS firmware or EFI file stored in the server BIOS chip, it can be updated and upgraded separately, which is convenient for maintenance, management and execution, and has strong reusability.

[0008] In some possible examples, the startup process of the server includes multiple stages, and the target stage is one of the multiple stages; when the server is started to the target stage, before sending a file request message to the baseboard management controller BMC of the server, the method includes: when the server starts to start or before starting to start, sending a first request message to the BMC, the first request message is used to confirm the number of BIOS module files executed in each stage stored in the BMC; obtaining a first response message sent by the BMC, the first response message includes the number of BIOS module files executed in each stage and first identification information, the first identification information is used to identify the BIOS module file.

[0009] In this way, before obtaining the BIOS module file of the target stage, the number and identification of the BIOS module files executed in each target stage stored on the BMC are obtained first, so as to avoid subsequent invalid file requests and ensure smooth startup of the server.

[0010] In some possible examples, when the server boots to the target stage, a file request message is sent to the baseboard management controller BMC of the server, including: if it is determined from the first response message that there is a BIOS module file in the BMC that can be executed in the target stage, when the server boots to the target stage, a file request message is sent to the BMC, and the file request message includes first identification information of the BIOS module file.

[0011] In this way, after the central processor interacts with the BMC and determines the number and identification of the BIOS module files executed on the BMC in the target phase, these BIOS module files are obtained based on this request, thereby ensuring the success rate of obtaining the BIOS module files.

[0012] In some possible examples, obtaining a BIOS module file sent by a BMC includes: obtaining a file response message sent by the BMC, where the file response message carries a BIOS module file required to be executed in a target phase, where the BIOS module file is determined by the BMC according to first identification information included in the file request message.

[0013] In this way, even if the BMC does not need to be aware of the current startup stage of the server, it can quickly and accurately send the BIOS module file to be executed according to the request of the central processor.

[0014] In some possible examples, the startup process of the server includes at least a target stage and a non-target stage, and the non-target stage is a startup stage outside the target stage; the method specifically includes: when the server is started to the non-target stage, obtaining a pre-stored BIOS module file from the BIOS chip of the server; executing the BIOS module file obtained from the BIOS chip to complete the startup task of the non-target stage; when the server is started to the target stage, sending a file request message to the baseboard management controller BMC of the server, the file request message is used to request to obtain the BIOS module file required to be executed in the target stage; obtaining the BIOS module file sent by the BMC; executing the BIOS module file to complete the startup task of the target stage.

[0015] In this way, the BIOS module files can be stored in both the BIOS chip and the BMC of the server. The BIOS module files in the BIOS chip can be used to implement the startup tasks in the non-target stage of the startup process, and the BIOS module files in the BMC can be used to implement the startup tasks in the target stage. In other words, by loading and running the BIOS module files stored in the BIOS chip and the BMC in an orderly manner, the server startup is completed collaboratively, but there is no dependency between the BIOS module files stored in the BIOS chip and the BMC. The BIOS chip and the BMC can independently deploy EFI files and update and maintain each other separately, thereby improving deployment flexibility. Users can store some specified BIOS module files in the BMC according to their needs, such as EFI files with more frequent update requirements or EFI files that are prone to errors, but not limited to this. The management interface based on the BMC can realize remote deployment and updating of these BIOS module files, reduce the difficulty of maintenance, and thus improve the reusability of the BIOS module files in the BIOS chip, greatly reducing the time and labor costs of EFI development.

[0016] In some possible examples, the BIOS module file has second identification information, and the startup tasks executed by the BIOS module files with the same second identification information are the same; executing the BIOS module file to complete the startup task of the target stage includes: determining, based on the second identification information of the BIOS module file, whether a file matching the second identification information of the BIOS module file is pre-stored in the BIOS chip of the server; if it is determined that a file matching the second identification information of the BIOS module file is pre-stored in the BIOS chip, executing the one with a higher version number between the file and the BIOS module file to complete the startup task of the target stage; if it is determined that a file matching the second identification information of the BIOS module file is not pre-stored in the BIOS chip, executing the BIOS module file to complete the startup task of the target stage.

[0017] In this way, it can be ensured that the EFI file executed in the current target stage is the highest version, because the highest version of the EFI file is usually compiled according to the current system configuration of the server. Selecting the highest version of the file for execution is conducive to improving the smooth execution of the boot task.

[0018] In some possible examples, the server has the same first characteristic as other servers of different generations, the first characteristic corresponds to at least one BIOS module file, and the BIOS module file is stored in the BMC; when the server is booted to the target stage, before sending a file request message to the baseboard management controller BMC of the server, the method also includes: obtaining at least one BIOS module file configured for the first characteristic through the BMC, and the BIOS module file required to be executed in the target stage is determined from the at least one BIOS module file.

[0019] In this way, for the same features of different servers, the EFI files compiled for the same features can be batch-distributed to the BMCs in each server through the BMC management interface, so as to batch upgrade and replace EFI files, efficiently meet user customization needs, and increase the flexibility of EFI use.

[0020] In some possible examples, a server has a first characteristic that is different from other servers in the same batch, and the first characteristic corresponds to at least one BIOS module file, which is stored in the BMC; when the server is booted to the target stage, before sending a file request message to the baseboard management controller BMC of the server, the method also includes: obtaining at least one BIOS module file configured for the first characteristic through the BMC, and the BIOS module file required to be executed in the target stage is determined from the at least one BIOS module file.

[0021] In this way, according to the different characteristics of different servers, the EFI files compiled for the different characteristics can be sent to the BMC in each server through the BMC management interface to achieve remote upgrade and replacement of EFI files, thereby improving the customization capability for users.

[0022] In some possible examples, the method also includes: collecting current configuration information of hardware in the server through the BMC; determining, through the BMC, a BIOS module file that matches the current configuration information from all BIOS module files stored in the BMC; storing the BIOS module file that matches the current configuration information in a predetermined storage area, so that during the next server startup process, the BMC determines the BIOS module file required for the target stage from the predetermined storage area according to a file request message.

[0023] In this way, a suitable BIOS module file can be selected according to the hardware configuration of the server and stored in the BMC of the server for calling when the server is started, thereby improving the success rate of the startup.

[0024] In some possible examples, the method also includes: collecting current operating information of the hardware in the server through the BMC, the current operating information being used to characterize whether the function currently executed by the hardware corresponds to its own configuration information; through the BMC, if it is determined based on the current operating information that the function currently executed by the hardware does not correspond to its own configuration information, then determining the BIOS module file that matches the current operating information from all BIOS module files stored in the BMC; and updating the BIOS module file that matches the current operating information to a predetermined storage area, so that during the next server startup process, the BMC determines the BIOS module file required for the target stage from the predetermined storage area according to the file request message.

[0025] In this way, during the operation of the server, the BMC also obtains the hardware operation status to determine whether the current function of the hardware is consistent with the function claimed in the configuration information. If not, the EFI file needs to be screened again to be called the next time the server is started to improve the success rate of booting.

[0026] In the second aspect, an embodiment of the present application provides a server startup device, in which at least one input and output system BIOS module file is stored in the baseboard management controller BMC of the server; the device includes: a processing module, which is used to send a file request message to the baseboard management controller BMC of the server when the server is started to the target stage, and the file request message is used to request to obtain the BIOS module file required to be executed in the target stage; an acquisition module, which is used to obtain the BIOS module file sent by the BMC; the processing module is also used to execute the BIOS module file to complete the startup task of the target stage.

[0027] In some possible examples, the startup process of the server includes multiple stages, and the target stage is one of the multiple stages; the processing module is also used to: when the server starts to start or before starting to start, send a first request message to the BMC, and the first request message is used to confirm the number of BIOS module files executed in each stage stored in the BMC; the acquisition module is also used to obtain a first response message sent by the BMC, and the first response message includes the number of BIOS module files executed in each stage and first identification information, and the first identification information is used to identify the BIOS module file.

[0028] In some possible examples, the processing module is specifically used to: if it is determined from the first response message that there is a BIOS module file in the BMC that can be executed in the target stage, when the server is booted to the target stage, send a file request message to the BMC, and the file request message includes the first identification information of the BIOS module file.

[0029] In some possible examples, the acquisition module is specifically used to: acquire a file response message sent by the BMC, where the file response message carries a BIOS module file required to be executed in the target phase, and the BIOS module file is determined by the BMC according to the first identification information included in the file request message.

[0030] In some possible examples, the startup process of the server includes at least a target stage and a non-target stage, and the non-target stage is a startup stage outside the target stage; the acquisition module is specifically used to: when the server is started to the non-target stage, obtain a pre-stored BIOS module file from the BIOS chip of the server; the processing module is specifically used to: execute the BIOS module file obtained from the BIOS chip to complete the startup task of the non-target stage; the processing module is also specifically used to: when the server is started to the target stage, send a file request message to the baseboard management controller BMC of the server, and the file request message is used to request to obtain the BIOS module file required to be executed in the target stage; the acquisition module is also specifically used to: obtain the BIOS module file sent by the BMC; the processing module is also specifically used to: execute the BIOS module file to complete the startup task of the target stage.

[0031] In some possible examples, the BIOS module file has second identification information, and the startup tasks executed by the BIOS module files with the same second identification information are the same; the processing module is specifically used to: determine whether a file matching the second identification information of the BIOS module file is pre-stored in the BIOS chip of the server according to the second identification information of the BIOS module file; if it is determined that a file matching the second identification information of the BIOS module file is pre-stored in the BIOS chip, execute the one with the higher version number between the file and the BIOS module file to complete the startup task of the target stage; if it is determined that a file matching the second identification information of the BIOS module file is not pre-stored in the BIOS chip, execute the BIOS module file to complete the startup task of the target stage.

[0032] In some possible examples, the server has the same first characteristic as other servers of different generations, and the first characteristic corresponds to at least one BIOS module file, which is stored in the BMC; the processing module is also used to: obtain at least one BIOS module file configured for the first characteristic through the BMC, and the BIOS module file required to be executed in the target stage is determined from the at least one BIOS module file.

[0033] In some possible examples, a server has a first characteristic that is different from other servers in the same batch, and the first characteristic corresponds to at least one BIOS module file, which is stored in the BMC; the processing module is also used to: obtain at least one BIOS module file configured for the first characteristic through the BMC, and the BIOS module file required to be executed in the target stage is determined from the at least one BIOS module file.

[0034] In some possible examples, the acquisition module is further used to: collect current configuration information of hardware in the server through the BMC; the processing module is further used to: determine, through the BMC, a BIOS module file that matches the current configuration information from all BIOS module files stored in the BMC; the processing module is further used to: store the BIOS module file that matches the current configuration information in a predetermined storage area, so that during the next server startup process, the BMC determines the BIOS module file required for the target stage from the predetermined storage area according to the file request message.

[0035] In some possible examples, the acquisition module is also used to: collect current operating information of the hardware in the server through the BMC, and the current operating information is used to characterize whether the function currently executed by the hardware corresponds to its own configuration information; the processing module is also used to: through the BMC, if it is determined according to the current operating information that the function currently executed by the hardware does not correspond to its own configuration information, then determine the BIOS module file that matches the current operating information from all BIOS module files stored in the BMC; the processing module is also used to: update the BIOS module file that matches the current operating information to a predetermined storage area, so that during the next server startup process, the BMC determines the BIOS module file required for the target stage from the predetermined storage area according to the file request message.

[0036] In a third aspect, an embodiment of the present application provides a server, comprising: at least one memory for storing programs; and at least one processor for executing programs stored in the memory; wherein, when the program stored in the memory is executed, the processor is used to execute the method described in the first aspect or any possible implementation of the first aspect.

[0037] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program. When the computer program runs on a processor, the processor executes the method described in the first aspect or any possible implementation of the first aspect.

[0038] In a fifth aspect, an embodiment of the present application provides a computer program product, characterized in that when the computer program product runs on a processor, the processor executes the method described in the first aspect or any possible implementation of the first aspect.

[0039] In the sixth aspect, an embodiment of the present application provides a chip, characterized in that it includes at least one processor and an interface; at least one processor obtains program instructions or data through the interface; at least one processor is used to execute program line instructions to implement the method described in the first aspect or any possible implementation method of the first aspect.

[0040] It can be understood that the beneficial effects of the second to sixth aspects mentioned above can be found in the relevant description of the first aspect mentioned above, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0041] Figure 1 It is a structural diagram of a server provided in an embodiment of the present application;

[0042] Figure 2 It is a schematic diagram of a system architecture for EFI file deployment provided by an embodiment of the present application;

[0043] Figure 3 It is a flow chart of a server startup method provided in an embodiment of the present application;

[0044] Figure 4 It is a flow chart of a server startup method provided in an embodiment of the present application;

[0045] Figure 5 This is a schematic diagram of the format of a first request message and a response message thereof provided in an embodiment of the present application;

[0046] Figure 6 It is a schematic diagram of the format of a file request message and its response message provided in an embodiment of the present application;

[0047] Figure 7 It is a flow chart of a server startup method provided in an embodiment of the present application;

[0048] Figure 8 It is a flow chart of a server startup method provided in an embodiment of the present application;

[0049] Fig. 9 It is a flow chart of a server startup method provided in an embodiment of the present application;

[0050] Fig.10 It is a flow chart of a server startup method provided in an embodiment of the present application;

[0051] Fig.11 This is a flow chart of a server startup method provided in an embodiment of the present application.

[0052] Fig.12 It is a structural schematic diagram of a server startup device provided in an embodiment of the present application;

[0053] Fig.13 It is a schematic diagram of the structure of a chip provided in an embodiment of the present application. DETAILED DESCRIPTION

[0054] The term "and / or" in this article is a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. The symbol " / " in this article indicates that the associated objects are in an or relationship, for example, A / B means A or B.

[0055] In the description of the embodiments of the present application, unless otherwise specified, "multiple" means two or more than two. For example, multiple processing units refer to two or more processing units, etc.; multiple elements refer to two or more elements, etc.

[0056] To facilitate understanding of the technical solution of the present application, the terms appearing in this document are explained below.

[0057] The Basic Input Output System (BIOS) is a basic interface between computer hardware and the operating system. It is the first executable program in the computer startup process. It is responsible for hardware initialization, detection and configuration before the operating system is loaded, as well as loading the operating system.

[0058] EFI (Extensible Firmware Interface) is an open standard that defines the interface between software and system firmware. It is designed to replace the traditional BIOS and complete computer startup. One of the main features of EFI is that it allows the interaction between firmware and operating system to be more modular, which is convenient for expansion and upgrading. Usually, the BIOS source code can be compiled into the corresponding EFI and packaged into a binary executable file, which is then flashed into the computer's flash for calling at startup. In some scenarios, the EFI firmware interface that follows a unified standard can also be called UEFI (Unified Extensible Firmware Interface).

[0059] Redfish is an open standard developed by the Distributed Management Task Force (DMTF) to simplify the management of server hardware. It aims to provide a unified interface (API) for managing and monitoring server hardware resources, including but not limited to server hardware configuration, monitoring, event handling and firmware updates.

[0060] Intelligent Platform Management Interface (IPMI) is a standardized hardware interface for remote monitoring and management of server hardware. It provides an operating system-independent method to monitor server status, collect system events, perform remote control operations, and perform fault diagnosis.

[0061] In order to achieve the flexibility of EFI file deployment and reduce the difficulty of maintenance, an execution method of an extensible firmware interface file is provided in an embodiment of the present application. The method mainly stores some EFI files on the BMC side of the server, and at a specified stage in the server startup process, requests the BMC to obtain the EFI files required to be executed in this stage and executes them to complete the startup task of this stage. In this way, the EFI files deployed in the BMC are independent of the BIOS program or EFI file set stored in the server BIOS chip, and can be updated and upgraded separately, which is convenient for maintenance, management and execution, and has strong reusability.

[0062] In order to better understand the technical solution of the present application, a server provided in an embodiment of the present application is first introduced below.

[0063] For example, Figure 1 FIG. 1 shows a schematic diagram of the structure of a server provided in an embodiment of the present application. Figure 1 As shown, the server 10 may include a central processing unit (CPU) 110, a memory 120, a network card 130, a hard disk 140, and a BIOS chip 150, etc. The memory 120, the network card 130, the hard disk 140, and the BIOS chip 150 may all be connected to the CPU 110 via a bus.

[0064] It should be noted that Figure 1 It is only an example of a server and does not constitute a specific limitation. In actual applications, it may include Figure 1 More or fewer devices may include, for example, a power supply, a fan, a single-chip microcomputer (an integrated circuit chip, equivalent to a microcomputer), a digital signal processor (DSP), an application specific integrated circuit (ASIC), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, general-purpose processors, etc.

[0065] Continue to refer Figure 1As shown, CPU 110 is the computing core and control core of the server 10, and is mainly responsible for executing computer instructions, processing data, and controlling the operation of other hardware in the server system.

[0066] The memory 120 can be used to temporarily store the operation data in the CPU 110, and the data exchanged with the external memory such as the hard disk 140. Exemplarily, the memory 120 can be a random access memory (RAM). By way of example but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM) or direct rambus RAM (DR RAM).

[0067] The network card 130 is a key hardware component for connecting the server 10 to the network, and can be used to process the sending and receiving of data packets at the physical layer. For example, but not limitation, the network card 130 can be an integrated network card that supports standard Ethernet connections (such as 1Gbps or 10Gbps), or a PCI Express (PCIe) network card that supports high-speed network connections (such as 40Gbps, 100Gbps, etc.).

[0068] The hard disk 140 may include a hard disk drive (HDD) and a solid state drive (SSD). It should be understood that the hard disk 140 is merely an example of a non-volatile memory and does not constitute a specific limitation. In practical applications, a non-volatile memory may be selected in combination with actual conditions. The hard disk 140 may be used to store computer programs and data, such as a server operating system (OS) and executable program codes, etc. These computer programs may be loaded into the memory 120 and executed by the CPU 110.

[0069] In some possible implementations, a Basic Input Output System (BIOS) program (which can be stored in a BIOS chip 150) can be deployed on the server 10, and the BIOS program is executed after the server 10 is powered on to complete all startup tasks. For example, assuming that the BIOS program needs to complete N (N>1) startup tasks when it is running, then the BIOS program may not include the function code of the nth startup task, but compile the function code into an EFI file. When the BIOS program runs to the stage of executing the nth startup task, the EFI file is called to execute to complete the nth startup task, and then the BIOS continues to execute downward. By analogy, multiple tasks or even all tasks in the BIOS program can be implemented by orderly calling corresponding EFI files. These EFI files can be stored in the BIOS chip 150, for example Figure 1 In addition, these EFI files, as the minimum functional modules of the BIOS program, can also be replaced by executable files of other formats, which are not listed one by one in this example. As a specific example, the BIOS chip 150 can be a flash memory, but is not limited to this.

[0070] In the present embodiment, the server 10 also includes a baseboard management controller (Baseboard Management Controller, BMC) 160, which is an independent controller that can be used to implement a series of monitoring and remote control functions for the hardware in the server 10, such as detecting the operating status of the temperature, voltage, etc. of each component of the server 10 (CPU 110, memory 120, hard disk 140, network card 130, etc.), allowing users to remotely access the server 10, perform system startup, shutdown, restart, BIOS configuration changes, firmware (BIOS, driver, etc.) updates and other operations. BMC 160 can also be used to record information and logs of each hardware in the server 10, for prompting users and locating subsequent problems. It should be understood that BMC 160 can also perform functions other than those described in this article, which are not listed here one by one.

[0071] In this embodiment, some EFI files are also stored in the BMC 160 of the server 10, such as Figure 1In this way, in some designated stages (also referred to as target stages in this article, the same below) during the startup process of the server 10, the EFI files are obtained from the BMC 160 to execute the startup tasks of these designated stages. Since the user can remotely configure and manage the BMC 160, and the EFI files stored in the BMC 160 have no dependency on the EFI files or BIOS programs in the BIOS chip 150, the user can flexibly and conveniently update and upgrade the EFI files stored in the BMC 160, and it is conducive to remotely batch-operating the EFI files stored in the BMC 160 of multiple servers 10.

[0072] Next, based on Figure 1 The structure of the server 10 shown introduces the deployment and execution principles of the EFI file on the server 10 in the embodiment of the present application.

[0073] For example, Figure 2 The embodiment of the present application shows a system architecture for EFI file deployment. Figure 2 As shown, the management terminal 20 can be connected to multiple servers 10 for communication, and the user can access the management interface (such as the BMC interface) 210 on the management terminal 20 to uniformly manage and configure these servers 10, including batch configuring the EFI files compiled for these servers 10 into the BMC 160 of these servers 10.

[0074] Specifically, in this example, the user can upload (or obtain from other devices) one or more compiled EFI files from the interface 210 of the terminal 20 and store them in a temporary directory (tmp directory). Then, the user can configure corresponding attribute information for these EFI files one by one through the Redfish software platform (or IPMI management tool, etc., not limited to the only one) on the interface 210, and the attribute information includes but is not limited to one or more of the file number, size, function, storage directory (the directory is used to describe the storage location of the EFI file in the BMC160), and a globally unique identifier (Globally Unique Identifier, GUID), etc. In some examples, the GUID of the file can also be compiled into the file together with the version number and can be recognized by the terminal 20 and the server 10, and the EFI file of a function has a unique GUID, the GUID of the EFI files with the same function is the same, and the version number of the EFI files with the same GIUD can be different.

[0075] Next, the user sends the configured EFI files in batches to the BMC160 of each server 10 through Redfish for storage. In some specific examples, the user can send one or more configured EFI files to the BMC160 of each server 10, and the EFI files obtained by each server 10 are the same, so that these EFI files can be highly reused, thereby greatly reducing the development time and labor costs of EFI files. Alternatively, the user can also configure and send EFI files to each server 10 separately, and the EFI files obtained by each server 10 are different, meeting the customer's server customization needs.

[0076] Afterwards, for each server 10, since the EFI file is stored in its BMC 160, during the power-on startup process of the server 10, the CPU 110 of the server 10 can request the BMC 160 to obtain the EFI file of the specified stage when it is booted to the specified stage to execute and complete the corresponding startup task.

[0077] Next, based on the above description, a server startup method provided by an embodiment of the present application is introduced. It can be understood that the method is proposed based on the above description, and part or all of the content of the method can refer to the above description.

[0078] See also Figure 3 , Figure 3 It is a flow chart of a server startup method provided in an embodiment of the present application. It is understood that the method can be executed by any device, equipment, platform, or device cluster with computing and processing capabilities. Figure 1 The example of executing on the server 10 shown in FIG. Figure 3 As shown, the method may include:

[0079] S301, when the server is started to a target stage, a file request message is sent to a baseboard management controller BMC of the server, where the file request message is used to request to obtain a BIOS module file required to be executed in the target stage.

[0080] In this embodiment, it takes a while to complete the startup process when the server 10 is powered on or restarted. This startup process may include multiple orderly startup stages, for example but not limited to, the stage of initializing hardware, the stage of loading programs such as BIOS, and the stage of loading OS, etc. The server 10 can execute corresponding programs (such as BIOS programs or UEFI programs, etc.) to complete a series of startup tasks in each startup stage, such as various hardware initialization tasks in the stage of initializing hardware, etc.

[0081] Exemplarily, the Basic Input Output System (BIOS) chip 150 of the server 10 may be used to store a BIOS program or a BIOS module file compiled from the source code of the BIOS program. Exemplarily, the BIOS chip 150 may be a flash memory for storing one or more BIOS module files, wherein the BIOS module file may be, but is not limited to, an EFI file, such as Figure 1 EFI1, 2, ... and other EFI files shown in . These EFI files can all be compiled from source code that can implement BIOS functions. In other words, the collection of these EFI files can be used to implement part or all of the functions of BIOS, and each EFI file is used to implement at least one BIOS function. For example, the power-on self-test function of BIOS can specifically include multiple items such as detecting the configuration of CPU110, detecting the configuration of memory 120, and detecting the configuration of hard disk 140. Then one EFI file can be used to execute one of them. Similarly, the hardware initialization function of BIOS includes initializing various hardware of server 10, then one EFI file can be used to execute the initialization of one of the hardware (such as CPU110 or memory 120, etc.), and so on.

[0082] In this embodiment, several BIOS module files compiled from the source code of the BIOS firmware can be pre-stored in the BMC160 of the server 10, or some of the BIOS module files can be stored in the BMC160 and other BIOS module files can be stored in the BIOS chip 150 of the server 10, and each BIOS module file can be used to execute at least one startup task.

[0083] Exemplarily, during the booting process of the server 10, i.e., at each stage from the start of the booting to the end of the booting, one or more booting tasks can be completed by loading corresponding BIOS module files. Among them, these BIOS module files can all come from the BMC 160 of the server 10, or a part can be obtained from the BIOS chip 150 and the other part can be obtained from the BNC 160.

[0084] Exemplarily, when the server 10 is started to a preset startup phase, i.e., a target phase, the CPU 110 may send a file request message to the BMC 160, and the file request message is used to request the acquisition of the BIOS module file required to be executed in the target phase. For example, the hardware initialization phase in the server startup process is set as the target phase, then after the server 10 is powered on, the BIOS program may be loaded from the BIOS chip 150 to perform the boot process, and each startup phase of the startup process may be performed in order, and when the server 10 is started to the hardware initialization phase, the CPU 110 may request the BMC 160 to return the extensible firmware interface EFI file used to complete the hardware initialization function.

[0085] S302: Obtain the BIOS module file sent by the BMC.

[0086] In this embodiment, at least one BOIS module file is pre-stored on the BMC 160, and these BOIS module files are configured with attribute information, and the attribute information includes one or more of file number, size, function (describing the startup task executed in the specified startup phase), storage directory, and GUID, etc. In this way, the BMC 160 of the server 10 can search for the BOIS module file required to be executed in the target phase according to the attribute information of the files in the stored several BOIS module files in response to the file request message of the CPU 110, and then send it to the CPU 110.

[0087] Exemplarily, there may be one or more BOIS module files required to be executed in the target phase.

[0088] S303, executing the BIOS module file to complete the startup task of the target stage.

[0089] In this embodiment, after receiving these BOIS module files, the CPU 110 of the server 10 loads and executes these BOIS module files in the order specified by the BIOS program or the UEFI program to complete the startup task corresponding to the target stage. For example, during the power-on startup process of the server 10, the BIOS program is run to the hardware initialization stage, and the CPU 110 obtains three BOIS module files from the BMC 160, and all of them are EFI files. The three EFI files are used to initialize the CPU 110, the memory 120, and the IO device, respectively. The CPU 110 first loads and executes the EFI file for initializing the CPU 110 in the order specified by the BIOS program to complete the CPU 110 initialization task, and then loads and executes the EFI file for initializing the memory 120 to complete the task of detecting and configuring the memory 120, and then loads and executes the EFI file for initializing the IO device to complete the task of detecting and configuring the network card 130 and the hard disk 140, so that the startup task of the hardware initialization stage is completed, and then the BIOS program continues to execute to complete the remaining subsequent startup tasks.

[0090] In this embodiment, the BOIS module file stored on the BMC 160 is independent of the BIOS or UEFI program stored in the BIOS chip 150 of the server 10, and has no dependency on the EFI file stored in the BIOS chip 150, and can be remotely configured and updated separately for the server 10 to be called when it is powered on. In this way, on the one hand, during normal startup, the BOIS module file required to be executed in the target stage can be obtained and loaded from the BMC 160, which is highly flexible and ensures the smooth completion of the startup task; on the other hand, when the key hardware such as the CPU 110 and the memory 120 of the server 10 is updated and replaced, and thus the BOIS module file in the flash needs to be compiled and refreshed, if most of the BOIS module files in the BIOS chip 150 used before and after the update have the same functions, and only a small part of the BOIS module files on the BMC 160 need to be refreshed, the BOIS module files on the BMC 160 can be updated separately, which improves the reusability of the BOIS module files in the BIOS chip 150, greatly reduces the time and labor cost of BOIS module development, and is easy to maintain.

[0091] In some possible implementations, such as Figure 4 FIG. 1 is a flow chart of a server startup method provided by an embodiment of the present application. Figure 4 Yes Figure 3 A further detailed description of the process shown. Figure 4 As shown, the method may specifically include:

[0092] S401, the terminal obtains a BIOS module file.

[0093] In this embodiment, the user can upload (or obtain from other devices) one or more BIOS module files from the interface 210 of the terminal 20, and the BIOS module files can be EFI files, and store these EFI files in a temporary directory. It should be understood that the temporary directory (tmp directory) is a temporary directory at the system level or user level, which is used to provide a temporary storage space for storing files that do not need to be permanently stored.

[0094] S402: The terminal receives a configuration operation of a user on a BIOS module file and generates attribute information of the BIOS module file.

[0095] In this embodiment, the user can configure the BIOS module files in the temporary directory from the interface 210 of the terminal 20 to generate attribute information of each BIOS module file, and the attribute information may include but is not limited to one or more of the file number (or file name, also referred to herein as "first identification information"), size, function, storage directory (used to describe the storage location of the BIOS module file in the BMC 160), and GUID (also referred to herein as "second identification information"), etc. In some examples, the GUID of the file may also be compiled into the file together with the version number and can be recognized by the terminal 20 and the server 10, and a BIOS module file of a function has a unique GUID. In other words, the GUID of the BIOS module files of the same function is the same, but the version number of the BIOS module files of the same GIUD may be different.

[0096] S403: The BMC of the server obtains the BIOS module file configured by the user and stores it.

[0097] In this step, after the user configures the BIOS module files, the user may send them to the BMC 160 of the server 10 . The BMC 160 receives the BIOS module files and places the BIOS module files in the storage directory configured by the user.

[0098] Exemplarily, the BIOS module files acquired by BMC 160 may be loaded and executed at different startup stages of server 10 , and therefore, the BIOS module files may be classified according to the startup stages to which they belong.

[0099] For example, the server startup process may include four stages: PEI (Pre-EFI Initialization), DXE (Driver Execution Environment), BDS (Background Debug Support), and SMM (System Management Mode). Therefore, the BIOS module files stored in the BMC 160 may be divided into four categories: PEI, DXE, BDS, and SMM, corresponding to these startup stages.

[0100] There may be multiple BIOS module files belonging to the PEI class, which are used to execute various startup tasks of the server 10 when it is booted to the PEI stage. It should be understood that the PEI stage is an early stage in the boot process, and the purpose of this stage is to initialize the hardware, including initialization of the CPU 110, memory 120 and basic I / O devices. This stage does not depend on any firmware or operating system, and this stage is usually very fast because its main task is to set up the hardware so that the subsequent DXE stage can start.

[0101] There can be multiple BIOS module files belonging to the DXE class, which are used to perform various startup tasks when the server boots to the DXE stage. It should be understood that the DXE stage is a stage immediately after the PEI stage and before the operating system is started. The startup tasks of this stage include loading and executing device drivers so that the system can identify and initialize hardware devices. Therefore, the DXE stage depends on the hardware initialized in the PEI stage, and it allows interaction between the firmware and the operating system.

[0102] There can be multiple BIOS module files belonging to the BDS class, which are used to perform various boot tasks of the server from the boot to the BDS stage. It should be understood that the BDS stage is part of the DXE stage, which provides a background environment to support debugging and diagnostic functions. This stage allows the firmware to provide debugging information during the boot process to assist developers in diagnosing and repairing problems.

[0103] There can be multiple BIOS module files belonging to the SMM class, which are used to execute various startup tasks when the server boots to the SMM stage. It should be understood that the SMM stage is a special mode in the firmware. The startup tasks of this stage include tasks for system management during system startup and operation, such as power management, thermal management, remote management, etc. This stage can be activated when the OS is running or the system is in sleep mode.

[0104] S404: When the server starts to start or before it starts to start, send a first request message to the BMC.

[0105] In this embodiment, the server 10 starts to start after being powered on. At this time or before this, the CPU 110 can first send a first request message to the BMC 160. The request message is a file detail request message, that is, it is used to confirm the file details such as the number of BIOS module files required to be executed in each startup stage stored in the BMC 160, that is, it is used to determine the number of various types of BIOS module files in the BMC 160.

[0106] Exemplarily, the first request message may follow the format defined by IPMI, defining the byte order and its field content, the field content including the field name, data type, length, and / or specific request data, etc. For example Figure 5 As shown in Table 1, the content of the 1st to 3rd bits (Byte) in a first request message is "0x14E300", which refers to the name, length and type of the request, etc. The content in the 4th bit is the request data (or command) for the type and quantity of EFI files.

[0107] S405: Obtain the first response message sent by the BMC.

[0108] In this embodiment, in response to the received first request message, the BMC160 of the server 10 can traverse all BIOS module I files in the storage directory and count their types and quantities, and encapsulate the quantity and attribute information of each type of BIOS module files into a first response message and return it to the CPU110.

[0109] Exemplarily, BMC160 can specifically determine the category according to the function information in the attribute information of each BIOS module file. For example, if the function information of BIOS module file 1 is "initialize CPU110 in PEI stage", it is determined that BIOS module file 1 belongs to PEI class. In this way, after statistics, the number of various types of BIOS module files is obtained, and the attribute information of each BIOS module file in each type of BIOS module file is encapsulated together with the quantity information into a response message. The attribute information in the first response message includes at least the first identification information of the EFI file (such as the number or file name of the BIOS module file), etc., for identifying each EFI file.

[0110] Exemplarily, the first response message may follow the format defined by IPMI, defining the byte order and its field content, the field content including the field name, data type, length, and / or specific request data, etc. For example Figure 5As shown in Table 1, in a first response message, the content of bits 5 to 6 indicates that EFI files numbered 1 to 3 currently in BMC160 belong to the PEI class, the content of bits 7 to 8 indicates that EFI files numbered 4 to 8 belong to the DXE class, the content of bits 9-10 indicates that there is no EFI file of the BDS class, and the content of bits 11 to 12 indicates that the EFI file numbered 9 belongs to the SMM class.

[0111] S406: When the server is started to the target stage, a file request message is sent to the BMC.

[0112] In this embodiment, after receiving the first response message, CPU110 can enter the power-on startup process of server 10 and gradually execute the startup tasks of each startup stage. Exemplarily, CPU110 can orderly perform each startup stage process of power-on startup by running the BIOS program stored in BIOS chip 150 (or other programs such as UEFI, which will be described below by taking running the BIOS program as an example). Among them, the target stage can be one or more startup stages pre-set on the server 10, so that when the server 10 is started to these stages, CPU110 sends a file request message to BMC160 to request to obtain the corresponding BIOS module file from BMC160.

[0113] Exemplarily, the execution principle of step S406 is similar to the execution principle of S301 in the above example, and may specifically include the following S4061 to S4062:

[0114] At S4061, according to the first response message, it is determined whether there is a BIOS module file that can be executed in the target stage in the BMC.

[0115] In this step, because the target stage in the server startup process is preset, the CPU 110 can determine whether there is a BIOS module file that can be executed in the target stage in the BMC 160 according to the first response message after receiving the first response message.

[0116] For example, if the preset PEI stage is a target stage, the CPU 110 first determines whether there is a BIOS module file of the PEI type in the BMC 160 according to the first response message, such as Figure 5 In the example shown, the first response message describes that there are EFI files numbered 1 to 3 in BMC 160 that belong to the DEI class, and CPU 110 can determine that there are 3 BIOS modules of the DEI class in the current BMC 160, all of which are EFI files. On the contrary, if the first response message of the file details describes a BIOS module file of a type that does not correspond to the target stage, CPU 110 can determine that there is no BIOS module file in BMC 160 that can be executed in the target stage.

[0117] S4062: If it is determined from the first response message that there is a BIOS module file in the BMC that can be executed in the target stage, when the server is booted to the target stage, a file request message is sent to the BMC.

[0118] In this step, if CPU 110 determines from the first response message that there is a BIOS module file in BMC 160 that can be executed in the target stage, then when the server 10 boots to the target stage, CPU 110 can send a file request message to BMC 160, wherein the file request message includes the first identification information (such as the number or file name, etc.) of the BIOS module file to be obtained. As a specific example, the file request message can follow the format defined by IPMI, defining the byte order and its domain content, and the domain content includes the name, data type, length, and / or specific request data of the field. For example Figure 6 As shown in Table 2, the content in the 4th bit of a file request message is the request data (or command) for the EFI file data, and the content in the 5th to 6th bits is the number of the EFI file to be obtained (i.e., the first identification information), so that the EFI file with the specified number can be obtained.

[0119] As a specific example, if CPU 110 determines that the EFI files numbered 1, 2, and 3 in BMC 160 are all PEI-type BIOS module files based on the first response message, then when the server 10 boots to the PEI stage (target stage), CPU 110 can send a file request message to request BMC 160 to send EFI files numbered 1, 2, and 3.

[0120] In this way, when it is determined that there is an EFI file executed in the target stage in BMC 160 and the server 10 is started to the target stage, CPU 110 sends a file request message to request to obtain the BIOS module file of the specified identification information. On the contrary, if there is no BIOS module file executed in the target stage in BMC 160, the BIOS module file that can be executed in the target stage can be searched and loaded from BIOS chip 150.

[0121] In this way, since the types and quantities of BIOS module files in BMC160 are known before entering the boot process, invalid requests (i.e., the requested files do not exist) can be avoided when the BIOS module files need to be obtained from BMC160 at each target stage, and invalid IO overhead can be avoided to waste server resources. It is also beneficial to load the corresponding BIOS module files from BIOS chip 150 in time when there is no BIOS module file executed in the target stage in BMC160, so as to ensure the efficient and smooth execution of the boot process. In addition, obtaining the BIOS module files after confirming the types and quantities also facilitates CPU110 to arrange the cache space or bandwidth of these files more reasonably, which is beneficial to resource management and optimization of transmission efficiency.

[0122] S407: Obtain the BIOS module file sent by the BMC.

[0123] Exemplarily, similar to the description of the execution principle of S302 in the above example, S407 may specifically include the following S4071 to S4072:

[0124] S4071: The BMC responds to the file request message and searches for a BIOS module file matching the first identification information in all stored BIOS module files according to the first identification information included in the file request message.

[0125] In this step, BMC 160 responds to the file request message of CPU 110, and according to the attribute information such as the first identification information (number) included in the file request message, can search for the BIOS module file that matches the attribute information in all BIOS module files in the storage directory. For example, if the BIOS module files described in the current file request message are numbered 1 to 3, then BMC 160 needs to search for BIOS module files numbered 1, 2, and 3.

[0126] S4072, obtaining a file response message sent by the BMC, where the file response message carries a BIOS module file required to be executed in the target phase.

[0127] In this example, BMC 160 generates a file response message based on the queried BIOS module file and returns it to CPU 110 .

[0128] As a specific example, the file response message may follow the format defined by IPMI, defining the byte order and its field content, the field content including the field name, data type, length, and / or specific request data, etc. Figure 6As shown in Table 2, in a file response message, the content of the 5th to 6th bits is that the transmitted BIOS module is an EFI file and the number of the EFI file, the content of the 7th to 10th bits is the data length of the transmitted EFI file, the 10th to Lth (L>10) bits are the transmitted EFI file itself, and the Lth to L+2th bits are data check bits used to verify the integrity of the message.

[0129] S408, executing the BIOS module file sent by the BMC to complete the startup task of the target stage.

[0130] Exemplarily, the execution process of S408 is similar to the description of the execution principle of S303 in the above example, and will not be repeated here.

[0131] In some possible implementations, S408 may specifically include the following S4081 to S4082:

[0132] S4081: Determine, based on the identification information of the BIOS module file, whether a file matching the second identification information of the BIOS module file is pre-stored in the server BIOS chip.

[0133] In this embodiment, the BIOS module files stored in the BMC 160 and the BIOS chip 150 of the server 10 both have second identification information, such as GUID, and the startup tasks performed by the BIOS module files with the same second identification information are the same. Since some EFI files with the same functions may be stored in the BMC 160 and the BIOS chip 150, for example, BIOS module files with GUID1 and GUID2 are stored in both the BMC 160 and the BIOS 150. Then, after the CPU 110 obtains the BIOS module files sent by the BMC 160, it can first compare the second identification information of these BIOS module files with the BIOS module files stored in the BIOS chip 150 to determine whether there is a BIOS module file in the BIOS chip 150 whose second identification information is consistent with the BIOS module file sent by the BMC 160, that is, to determine whether there is a BIOS module file in the BISO 150 that is consistent with the function of the BIOS module file sent by the BMC 160.

[0134] S4082, if it is determined that a file matching the second identification information of the BIOS module file is pre-stored in the BIOS chip, the one with a higher version number between the file and the BIOS module file is executed to complete the startup task of the target stage;

[0135] If it is determined that no file matching the second identification information of the BIOS module file is pre-stored in the BIOS chip, the BIOS module file is executed to complete the startup task of the target stage.

[0136] In this embodiment, if there is a BIOS module file in the BIOS chip 150 whose GUID is consistent with the EFI file sent by BMC160, then the one with a higher version number is selected from these BIOS module files with the same GUID for execution. If the version numbers of these BIOS module files with the same GUID are also consistent, then the BIOS module file obtained from BMC160 is selected for execution to complete the startup task of the target stage. In addition, if there is no BIOS module file in the BIOS chip 150 whose GUID is consistent with the BIOS module file sent by BMC160, the BIOS module file sent by BMC160 can be directly executed to complete the startup task of the target stage. In this way, it can be ensured that the BIOS module file executed in the current target stage is the highest version, because the highest version of the BIOS module file is usually compiled according to the current system configuration of the server 10, and selecting the highest version of the file for execution is conducive to improving the smooth execution of the boot task.

[0137] Then, after completing the startup task of the target stage, if the target stage is the last startup stage, the server 10 completes the startup process. If the target stage is not the last startup stage, the server 10 continues to execute downward and repeats the above steps S406 to S408 in the next target stage until the entire startup process is completed.

[0138] The following is a specific example to illustrate the principle of loading and executing EFI files during the startup process of the server 10. Figure 7As shown, during the startup process of the server 10, the CPU 110 can enter the startup process by running the BIOS program stored in the BIOS chip 150. The various stages of the startup process can be divided into a target stage and a non-target stage (i.e., other startup stages other than the target stage). Specifically, if the server 10 needs to perform stage A first after entering the startup process, the main startup task of stage A is to check whether the power supply of the server 10 is normal. This startup task can be completed by executing the EFI file A, and the stage A is a non-target stage. Then, when booting to the non-target stage A, the CPU 110 can obtain the previously stored EFI file A from the BIOS chip 150 and execute it to complete the check whether the power supply is normal. Then, the startup process continues until the server 10 boots to the first target stage DEI, and the CPU 110 executes the above steps S406 to S408 to obtain all EFI files of the DEI class from the BMC 160 and load them, thereby completing the tasks of the DEI stage such as initialization of the CPU 110, the memory 120 and the basic I / O devices. Then, when CPU110 continues to run BISO to the second target stage DXE, CPU110 executes the above steps S406 to S408 to obtain all EFI files of the DXE class from BMC160 and load them, thereby completing the startup tasks of the DXE stage such as loading and executing device drivers. In addition, if it is transported to the BDS stage of the DXE stage, CPU110 can perform the above steps S406 to S408 again for the BDS stage to obtain all EFI files of the BDS class from BMC160 and load them, thereby completing the startup tasks of the BDS stage to debug and diagnose the system of the server 10, and then continue to complete the tasks of the DXE stage. Then, when CPU110 continues to run BISO to the fourth target stage SMM, CPU110 executes the above steps S406 to S408 to obtain all EFI files of the SMM class from BMC160 and load them, thereby completing the startup tasks of the SMM stage such as power management, thermal management, remote management, etc. If the server 10 continues to boot to some non-target stages, the CPU 110 can still call the corresponding EFI file from the BIOS chip 150 to complete the tasks of these non-target stages until the BIOS is finished running and the OS is loaded and started. The BIOS transfers the control of the BIOS to the OS, and the boot process of the server 10 ends.

[0139] In this way, the server startup is completed collaboratively by sequentially loading and running the EFI files stored in the BIOS chip 150 and the BMC 160, but there is no dependency between the EFI files stored in the BIOS chip 150 and the BMC 160. The BIOS chip 150 and the BMC 160 can independently deploy EFI files, and update and maintain each other separately, thereby improving deployment flexibility. Users can store some specified EFI files in the BMC 160 according to needs, such as EFI files with more frequent update needs, or EFI files that are prone to errors, but not limited to this. The management interface based on the BMC 160 can realize remote deployment and updating of these EFI files, reduce the difficulty of maintenance, and thus improve the reusability of the BIOS module files of the BIOS chip 150, greatly reducing the time and labor costs of EFI development.

[0140] In some possible implementations, for multiple servers 10 of different generations, the characteristics of these servers 10 (also referred to as "first characteristics" in this example) are the same, such as the same basic functions, or the same architecture design, all using multi-core processors, redundant power supplies and storage systems, etc., or the same performance indicators, all following the same standards in terms of CPU speed, memory capacity, storage speed, etc. In this way, although different versions of BIOS are required between these servers 10 of different generations to complete corresponding boot tasks, the same BIOS module file can be used for the same characteristics of these servers 10, that is, the CPU 110 can call the same BIOS module file when running different versions of BIOS.

[0141] Based on this, Figure 8 A schematic diagram of a process of starting a server is shown. Figure 8 The process shown is Figure 3 A further detailed description of the process shown, Figure 8 The process shown is similar to Figure 3 The main difference between the processes shown is that, before sending a file request message to the BMC, the method may further include S800: obtaining, through BMC160, at least one BIOS module file configured for the above-mentioned first characteristic, so as to determine, from the at least one BIOS module file, the BIOS module file required to be executed in the target stage when the server 10 is booted to the target stage.

[0142] Specifically, the user can manage multiple servers 10 based on the interface 210 on the management terminal 20, that is, Figure 8The devices 1, 2, 3, ... shown in the figure are uniformly managed and configured. These servers 10 are of different generations and have the same characteristics. Then, the user can batch configure the BIOS module files (taking the BIOS module files as EFI files as an example) compiled for the same characteristics to the BMCs 160 of these servers 10 of different generations. For details, see Figure 8 As shown, in this step S800, the user can Figure 4 In the method of S401-S402, the user configures these EFI files for a feature through the Redfish software platform (or IPMI management tools, etc., not limited to the only one) in the interface 210, and after configuring the corresponding attribute information, these EFI files are sent in batches to the BMC160 in each server 10 according to the IP address, so as to batch upgrade and replace EFI files, efficiently complete the user's customization needs, and increase the flexibility of EFI use. Then, the configured EFI files can be stored in the storage space of BMC160 according to their respective configured storage directories. Subsequently, CPU110 interacts with BMC160, and through steps S801 to 803, the EFI files required for the target stage are filtered out from BMC160 for execution to ensure the smooth startup of the server 10. It can be understood that the execution principle of S801 to S803 is the same as the above. Figure 3 Steps S301 to S303 shown in , or Figure 4 The steps from S406 to S408 shown in FIG. 4 are similar and will not be repeated here.

[0143] In some possible implementations, for the same batch of servers, if the characteristics (also referred to as "first characteristics" in this example) of these servers are different, then these servers also need BIOS with different characteristics (or functions). In other words, different BIOS module files need to be used according to the characteristics of these servers. Fig. 9 A schematic diagram of a process of starting a server is shown. Fig. 9 The process shown is Figure 3 A further detailed description of the process shown, Fig. 9 The process shown is similar to Figure 3 The main difference between the processes shown is that, before sending a file request message to the BMC, the method may further include S900: obtaining, through BMC160, at least one BIOS module file configured for the above-mentioned first characteristic, so as to determine, from the at least one BIOS module file, the BIOS module file required to be executed in the target stage when the server 10 is booted to the target stage.

[0144] Specifically, in this step S900, the user can Figure 4In the method of S401-S402, in the interface 210 of the management terminal 20, the corresponding BIOS module files are configured according to the different characteristics of different servers 10 (taking the BIOS module files as EFI files as an example), and then the EFI files belonging to each server 10 are sent to their respective BMC160 according to the IP address, so as to batch upgrade and replace EFI files and improve the customization capabilities for users. Then, the configured EFI files can be stored in the storage space of BMC160 according to their respective configured storage directories. Subsequently, CPU110 interacts with BMC160, and through steps S901 to 903, the EFI files required for the target stage are filtered out from BMC160 for execution to ensure the smooth startup of the server 10. It can be understood that the execution principle of S901 to S903 is the same as the above. Figure 3 Steps S301 to S303 shown in , or Figure 4 The steps from S406 to S408 shown in FIG. 4 are similar and will not be repeated here.

[0145] In some possible implementations, since the BIOS cannot perceive the hardware configuration of the server 10 before running, the BIOS code often needs to add a lot of codes for determining the hardware configuration, which is relatively redundant. Fig.10 A schematic diagram of a server startup method is shown. Figure 3 Compared with the process shown in Fig.10 The main difference between the processes shown is that the method may further include S1001 to S1003:

[0146] S1001, collecting current configuration information of hardware in the server through the BMC.

[0147] In this step, BMC160 (or through CPLD or other methods) can be used to obtain the current configuration information of the server 10 hardware, such as the model and quantity of CPU110, the model and quantity of memory 120, the model and quantity of hard disk 140 and other configuration information, but not limited to this.

[0148] S1002: Determine, through the BMC, a BIOS module file that matches the current configuration information from all BIOS module files stored in the BMC.

[0149] In this step, BMC160 can search for BIOS module files that match the current configuration of the hardware from all stored BIOS module files based on the current configuration information (i.e., hardware characteristics) of the hardware of the server 10. For example, if the hardware of the server 10 is currently in A configuration, and A configuration includes 1 CPU 110 of model A1 and 4 memories of model A2, etc., and BMC160 stores 1000 BIOS module files, all of which are EFI files, then BMC160 can filter out 20 EFI files that are adapted to A configuration from the current 1000 EFI files for the A configuration. Similarly, if the server 10 is updated to B configuration, BMC160 can also filter out several EFI files that are adapted to B configuration for the B configuration during operation.

[0150] S1003, storing the BIOS module file matching the current configuration information in a predetermined storage area, so that during the next server startup process, the BMC determines the BIOS module file required for the target stage from the predetermined storage area according to the file request message.

[0151] In this step, the BIOS module files filtered out by BMC160 for the current configuration information of the server hardware can be stored in a pre-designated storage area (which can be a storage area on the BMC160 side). When the server 10 is started to the target stage next time, BMC160 can respond to the file request message of CPU110, call the corresponding BIOS module file from the storage area and send it to CPU110, thereby realizing flexible loading of BIOS module files for hardware configuration and realizing configuration differentiation.

[0152] In addition, in a system architecture such as BMC160 managing several server nodes, BMC160 can perform the above steps S1001 to S1003, collect the current configuration information of the hardware of each server node, and configure the appropriate BIOS module file for each server node according to the current configuration information. For example, a batch of EFI files (recorded as set A) are configured to match the A of server node 1, and a suitable EFI file is configured for the B of server node 2 and recorded as set B, etc., and BMC160 can associate and store the identifiers of these server nodes with the file sets that match them. In the subsequent startup process of these server nodes, the EFI files required to be executed in the respective target stages can be requested from BMC160. BMC160 responds to the file request message of the server node (encapsulating the server node identifier), finds the EFI files required for the target stage in the file set associated with the server node according to the server node identifier, and then returns it to the server node, so that the startup task of the target stage is completed by executing these EFI files. In this way, by managing multiple server nodes through BMC160, batch deployment and loading of EFI files are realized, which is conducive to maintenance.

[0153] In some possible implementations, in order to further improve the compatibility of the BMC-side BIOS module file with the server hardware characteristics and ensure the successful startup of the server, in this embodiment, Fig.11 A schematic diagram of a server startup method is shown. Fig.10 Compared with the process shown in Fig.11 The main difference between the processes shown is that the method may further include S1101 to S1103:

[0154] S1101, collecting current operation information of the hardware in the server through the BMC.

[0155] In this step, BMC160 also monitors the current operating status of the hardware of server 10 during operation, and the current operating information is used to indicate whether the function currently executed by the hardware corresponds to its own configuration information. For example, the current configuration information of memory 120 describes that there are 4 memory modules of model B, but the current operating status indicates that only 3 memory modules of model B are currently operating normally. In this way, the current operating information does not correspond to the current configuration information obtained by BMC160, indicating that there may be a memory failure, or a memory module has been replaced, etc., so there may be a problem with the BIOS module file that BMC160 matches for the current configuration information.

[0156] S1102: If it is determined through the BMC according to the current running information that the function currently executed by the hardware does not correspond to its own configuration information, a BIOS module file matching the current running information is determined from all BIOS module files stored in the BMC.

[0157] In this step, if the current operation information of the hardware corresponds to the current configuration information, BMC160 may not update the relevant BIOS module files matching these hardware. On the contrary, if it is determined based on the current operation information that the function currently executed by the hardware does not correspond to its own configuration information, the BIOS module file matching the current operation information is re-determined from all BIOS module files stored in BMC160.

[0158] S1103, updating the BIOS module file matching the current operation information to the predetermined storage area, so that during the next server startup process, the BMC determines the BIOS module file required for the target stage from the predetermined storage area according to the file request message.

[0159] In this step, BMC 160 selects a suitable BIOS module file according to the adaptability of the current operation information of the hardware to update the EFI file in the storage area, thereby ensuring the high adaptability of the BIOS module used in the next startup process of the server 10.

[0160] Based on the method in the above embodiment, the present application embodiment provides a server startup device. Fig.12 , Fig.12 It is a structural diagram of a server startup device provided in an embodiment of the present application.

[0161] like Fig.12 As shown, the device 1200 is applied to a server, and at least one input and output system BIOS module file is stored in the baseboard management controller BMC of the server. The device 1200 may include: a processing module 1201, which can be used to send a file request message to the baseboard management controller BMC of the server when the server is started to the target stage, and the file request message is used to request to obtain the BIOS module file required to be executed in the target stage; an acquisition module 1202, which is used to obtain the BIOS module file sent by the BMC; the processing module 1201 can also be used to execute the BIOS module file to complete the startup task of the target stage.

[0162] It should be understood that the above-mentioned device 1200 is used to execute the method in the above-mentioned embodiment. The implementation principle and technical effect of the corresponding program module in the device 1200 are similar to those described in the above-mentioned method. The working process of the device can refer to the corresponding process in the above-mentioned method, which will not be repeated here.

[0163] Based on the method in the above embodiment, the embodiment of the present application provides a server. The server may include: at least one memory for storing programs; at least one processor for executing the programs stored in the memory; wherein, when the programs stored in the memory are executed, the processor is used to execute the method in the above embodiment.

[0164] Based on the method in the above embodiment, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program. When the computer program runs on a processor, the processor executes the method in the above embodiment.

[0165] Based on the method in the above embodiment, an embodiment of the present application provides a computer program product, characterized in that when the computer program product runs on a processor, the processor executes the method in the above embodiment.

[0166] Based on the method in the above embodiment, the present application embodiment also provides a chip. Fig.13 , Fig.13 This is a schematic diagram of the structure of a chip provided in an embodiment of the present application. Fig.13 As shown, the chip 1300 includes one or more processors 1301 and an interface circuit 1302. Optionally, the chip 1300 may also include a bus 1303. Among them:

[0167] The processor 1301 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by an integrated logic circuit of hardware in the processor 1301 or an instruction in the form of software. The above-mentioned processor 1301 can be a general-purpose processor, a digital communicator (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The disclosed methods and steps in the embodiments of the present application can be implemented or executed. The general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc.

[0168] The interface circuit 1302 can be used to send or receive data, instructions or information. The processor 1301 can use the data, instructions or other information received by the interface circuit 1302 to process, and can send the processing completion information through the interface circuit 1302.

[0169] Optionally, the chip 1300 further includes a memory, which may include a read-only memory and a random access memory, and provides operation instructions and data to the processor. A portion of the memory may also include a non-volatile random access memory (NVRAM).

[0170] Optionally, the memory stores executable software modules or data structures, and the processor can perform corresponding operations by calling operation instructions stored in the memory (the operation instructions can be stored in the operating system).

[0171] Optionally, the interface circuit 1302 may be used to output the execution result of the processor 1301 .

[0172] It should be noted that the corresponding functions of the processor 1301 and the interface circuit 1302 can be implemented through hardware design, software design, or a combination of hardware and software, and there is no limitation here.

[0173] It should be understood that each step of the above method embodiment can be completed by a hardware-based logic circuit or a software-based instruction in a processor.

[0174] It is understandable that the size of the sequence number of each step in the above embodiment does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application. In addition, in some possible implementations, each step in the above embodiment can be selectively executed according to actual conditions, and can be partially executed or fully executed, which is not limited here.

[0175] It is understood that the processor in the embodiments of the present application may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof. The general-purpose processor may be a microprocessor or any conventional processor.

[0176] The method steps in the embodiments of the present application can be implemented by hardware or by a processor executing software instructions. The software instructions can be composed of corresponding software modules, and the software modules can be stored in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disks, mobile hard disks, CD-ROMs, or any other form of storage medium known in the art. An exemplary storage medium is coupled to a processor so that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be a component of the processor. The processor and the storage medium can be located in an ASIC.

[0177] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted through the computer-readable storage medium. The computer instructions may be transmitted from a website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state disk (SSD)), etc.

[0178] It should be understood that the various numerical numbers involved in the embodiments of the present application are only used for the convenience of description and are not used to limit the scope of the embodiments of the present application.

Claims

1. A server startup method, characterized in that: The baseboard management controller (BMC) of the server stores at least one input / output system BIOS module file; the method includes: When the server is started to the target stage, a file request message is sent to a baseboard management controller (BMC) of the server, where the file request message is used to request a BIOS module file required to be executed in the target stage; Obtain the BIOS module file sent by the BMC; Execute the BIOS module file to complete the startup task of the target stage.

2. The method according to claim 1, characterized in that The server startup process includes multiple stages, and the target stage is one of the multiple stages; When the server is started to the target stage, before sending a file request message to a baseboard management controller (BMC) of the server, the method includes: When the server starts to boot or before the server starts to boot, sending a first request message to the BMC, where the first request message is used to confirm the number of BIOS module files executed in each stage stored in the BMC; A first response message sent by the BMC is obtained, where the first response message includes the number of BIOS module files executed in each stage and first identification information, where the first identification information is used to identify the BIOS module file.

3. The method according to claim 2, characterized in that When the server is started to the target stage, sending a file request message to a baseboard management controller (BMC) of the server includes: If it is determined from the first response message that a BIOS module file that can be executed in the target stage exists in the BMC, and when the server boots to the target stage, the file request message is sent to the BMC, where the file request message includes the first identification information of the BIOS module file.

4. The method according to claim 3, characterized in that The obtaining of the BIOS module file sent by the BMC includes: A file response message sent by the BMC is obtained, where the file response message carries a BIOS module file required to be executed in the target phase, and the BIOS module file is determined by the BMC according to the first identification information included in the file request message.

5. The method according to any one of claims 1 to 4, characterized in that The startup process of the server includes at least the target phase and the non-target phase, wherein the non-target phase is a startup phase other than the target phase; The method specifically includes: When the server is started to the non-target stage, obtaining a pre-stored BIOS module file from a BIOS chip of the server; Executing the BIOS module file obtained from the BIOS chip to complete the startup task of the non-target stage; When the server is started to the target stage, sending a file request message to a baseboard management controller (BMC) of the server, wherein the file request message is used to request to obtain a BIOS module file required to be executed in the target stage; Obtain the BIOS module file sent by the BMC; Execute the BIOS module file to complete the startup task of the target stage.

6. The method according to any one of claims 1 to 4, characterized in that The BIOS module file has second identification information, and the startup tasks executed by the BIOS module files with the same second identification information are the same; The executing of the BIOS module file to complete the startup task of the target stage includes: Determining, based on the second identification information of the BIOS module file, whether a file matching the second identification information of the BIOS module file is pre-stored in the BIOS chip of the server; If it is determined that a file matching the second identification information of the BIOS module file is pre-stored in the BIOS chip, the one with the higher version number between the file and the BIOS module file is executed to complete the startup task of the target stage; If it is determined that no file matching the second identification information of the BIOS module file is pre-stored in the BIOS chip, the BIOS module file is executed to complete the startup task of the target stage.

7. The method according to any one of claims 1 to 6, characterized in that The server has the same first characteristic as other servers of different generations, the first characteristic corresponding to at least one BIOS module file, and the BIOS module file is stored in the BMC; When the server is started to the target stage, before sending a file request message to a baseboard management controller (BMC) of the server, the method further includes: At least one BIOS module file configured for the first feature is obtained through the BMC, and the BIOS module file required to be executed in the target stage is determined from the at least one BIOS module file.

8. The method according to any one of claims 1 to 6, characterized in that The server has a first characteristic that is different from other servers in the same batch, the first characteristic corresponding to at least one BIOS module file, and the BIOS module file is stored in the BMC; When the server is started to the target stage, before sending a file request message to a baseboard management controller (BMC) of the server, the method further includes: At least one BIOS module file configured for the first feature is obtained through the BMC, and the BIOS module file required to be executed in the target stage is determined from the at least one BIOS module file.

9. The method according to any one of claims 1 to 8, characterized in that The method further comprises: Collecting current configuration information of the hardware in the server through the BMC; Determining, by the BMC, a BIOS module file that matches the current configuration information from all BIOS module files stored in the BMC; The BIOS module file matching the current configuration information is stored in a predetermined storage area, so that during the next server startup process, the BMC determines the BIOS module file required for the target stage from the predetermined storage area according to the file request message.

10. A server, characterized in that: include: at least one memory for storing a program; at least one processor, configured to execute the program stored in the memory; When the program stored in the memory is executed, the processor is configured to execute the method according to any one of claims 1 to 8.