Server startup method, device, storage medium and program product

By receiving the server startup command, the startup sequence of peripheral devices is automatically adjusted according to the startup control information and flag bits, which solves the problem of low efficiency in adjusting the startup sequence of peripheral devices in the data center, and realizes efficient startup sequence adjustment and improved server security.

CN119861985BActive Publication Date: 2025-10-03INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202510333029.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-03-20
Publication Date
2025-10-03
Estimated Expiration
2045-03-20

AI Technical Summary

Technical Problem

In data centers, the startup sequence adjustment of peripheral devices on tens of thousands of servers is inefficient and requires manual adjustment, resulting in low efficiency.

Method used

By receiving the server startup command and according to the startup control information and startup flag of the startup control request, the startup processing of multiple peripheral devices is performed to realize automatic adjustment of the target startup sequence and improve the adjustment efficiency of the startup sequence.

Benefits of technology

It realizes the automatic modification of the target startup sequence of multiple peripheral devices, improves the efficiency of adjusting the startup sequence, and at the same time ensures the integrity of the preset startup sequence, prevents malicious request attacks, and improves the security of the server.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119861985B_ABST
    Figure CN119861985B_ABST
Patent Text Reader

Abstract

The present application discloses a server startup method, device, storage medium, and program product, relating to the field of server technology. The method comprises receiving a server startup command; determining response data corresponding to a startup control request based on the server startup command, the response data being used to indicate whether a startup control request exists, the startup control request being used to adjust a target startup sequence of multiple peripheral devices; obtaining startup control information corresponding to the startup control request and a startup flag corresponding to the startup control request based on the response data; and performing startup processing on the multiple peripheral devices based on the startup control information and the startup flag. This method can improve the efficiency of adjusting the startup sequence.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of server technology, and in particular to a server startup method, device, storage medium, and program product. Background Art

[0002] The server can expand hardware capabilities, improve data interaction efficiency, and ensure system reliability through peripheral devices to ensure stable operation of the server in complex scenarios.

[0003] In related technologies, when a server boots up, each peripheral device can be activated accordingly. Each peripheral device has a default startup order. To change the target startup order for each peripheral device, the server can access the Basic Input Output System (BIOS) Setup interface during startup and manually adjust the startup order. However, in data centers, tens of thousands of servers require manual adjustments to their startup order, making the adjustment of the peripheral device startup order inefficient. Summary of the Invention

[0004] The present application provides a server startup method, device, storage medium and program product to at least solve the problem of low efficiency in adjusting the startup sequence of peripheral devices in the related art.

[0005] In a first aspect, the present application provides a server startup method, which is applied to the server, and the server includes multiple peripheral devices. The method includes:

[0006] Receive server startup command;

[0007] Determining response data corresponding to the startup control request according to the server startup command, the response data being used to indicate whether a startup control request exists, and the startup control request being used to adjust a target startup sequence of the plurality of peripheral devices;

[0008] According to the response data, obtaining the start control information corresponding to the start control request and the start flag corresponding to the start control request;

[0009] According to the startup control information and the startup flag, startup processing is performed on multiple peripheral devices.

[0010] In a second aspect, the present application provides a server startup device, which is applied to a server, the server including multiple peripheral devices, and the device including a first receiving module, a first determining module, a first acquiring module, and a startup processing module:

[0011] The first receiving module is used to receive a server startup command;

[0012] The first determining module is used to determine, according to the server startup command, response data corresponding to the startup control request, the response data being used to indicate whether a startup control request exists, and the startup control request being used to adjust a target startup sequence of the plurality of peripheral devices;

[0013] The first acquisition module is used to acquire the startup control information corresponding to the startup control request and the startup flag corresponding to the startup control request according to the response data;

[0014] The startup processing module is used to perform startup processing on multiple peripheral devices according to the startup control information and the startup flag.

[0015] In a third aspect, the present application further provides an electronic device, comprising: a memory for storing a computer program; and a processor for implementing the steps of any of the above-mentioned server startup methods when executing the computer program.

[0016] In a fourth aspect, the present application further provides a computer-readable storage medium, in which a computer program is stored, wherein when the computer program is executed by a processor, the steps of any of the above-mentioned server startup methods are implemented.

[0017] In a fifth aspect, the present application also provides a computer program product, including a computer program, which implements the steps of any of the above-mentioned server startup methods when executed by a processor.

[0018] The server startup method, device, storage medium, and program product provided by this application enable, upon receiving a server startup command, if a startup control request is present, to perform startup processing on multiple peripheral devices based on the startup control information and startup flag corresponding to the startup control request. This allows modification of the target startup sequence of multiple peripheral devices, improving the efficiency of startup sequence adjustment. Furthermore, the preset startup sequence of multiple peripheral devices is not modified, ensuring that the next startup can proceed according to the preset startup sequence. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] In order to more clearly illustrate the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0020] Figure 1 A schematic diagram of an application scenario provided in an embodiment of the present application;

[0021] Figure 2 A schematic diagram of the structure of a server provided in an embodiment of the present application;

[0022] Figure 3 A schematic diagram of a process flow of a method for starting a server provided in an embodiment of the present application;

[0023] Figure 4 A flowchart of another method for starting a server provided in an embodiment of the present application;

[0024] Figure 5 A schematic diagram of the architecture of a server startup method provided in an embodiment of the present application;

[0025] Figure 6 A schematic diagram of the structure of a server startup device provided in an embodiment of the present application;

[0026] Figure 7 A schematic diagram of the structure of another server startup device provided in an embodiment of the present application;

[0027] Figure 8 This is a schematic diagram of the structure of an electronic device provided in this application. DETAILED DESCRIPTION

[0028] The following will be combined with the accompanying drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of them. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0029] It should be noted that, in the description of this application, the terms "comprises," "includes," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. The terms "first," "second," etc., in this application are used to distinguish similar objects, and are not used to describe a particular order or sequence.

[0030] The server can expand hardware capabilities, improve data interaction efficiency, and ensure system reliability through peripheral devices to ensure stable operation of the server in complex scenarios.

[0031] For servers with different architectures, the server can be configured with multiple peripheral devices, including Peripheral Component Interconnect (PCI) interface PCI network cards, PCI Redundant Array of Independent Disks (RAID) cards, PCI Open Compute Project (OCP) network cards, PCI Non-Volatile Memory Host Controller Interface Specification (NVME) hard drives, Serial Advanced Technology Attachment hard disks (SATA) hard drives, Compact Disc-Read Only Memory (CD-ROM), Digital Versatile Disc - Read Only Memory (DVD-ROM), Universal Serial Bus (USB) network cards, USB hard drives, and so on.

[0032] Each peripheral device has a specific corresponding priority. When the server starts, each peripheral device can be started according to the priority corresponding to each peripheral device. In the related art, the preset startup sequence corresponding to each peripheral device can be stored in the server. When each peripheral device is started, each peripheral device is started according to the preset startup sequence. If the startup sequence of each peripheral device needs to be changed, the Basic Input Output System (BIOS) Setup interface can be entered during the server startup process to manually adjust the startup sequence. However, in the data center, tens of thousands of servers have their startup sequence manually adjusted, which makes the startup sequence adjustment efficiency low.

[0033] In the embodiment of the present application, after receiving a server startup command, if a startup control request is present, startup processing is performed on multiple peripheral devices based on the startup control information and startup flag corresponding to the startup control request. This allows modification of the target startup order of the multiple peripheral devices, improving the efficiency of adjusting the startup order. At the same time, the preset startup order of the multiple peripheral devices is not modified, ensuring that the next startup can start the multiple peripheral devices according to the preset startup order.

[0034] In order to enable those skilled in the art to better understand the present application, the present application is further described in detail below with reference to the accompanying drawings and specific implementation methods.

[0035] In conjunction with the specific application environment architecture or specific hardware architecture on which the execution of the server heat dissipation control method depends, the specific application environment architecture or specific hardware architecture is described here. Figure 1 and Figure 2 .

[0036] Figure 1 This is a schematic diagram of an application scenario provided by an embodiment of this application. Figure 1 , including a server 101 and a remote control device 102.

[0037] The server 101 can be communicatively connected with the remote control device 102 , and the server 101 can receive a startup control request sent by the remote control device 102 . The startup control request can be used to adjust a target startup sequence of multiple peripheral devices.

[0038] Figure 2 This is a schematic diagram of the structure of a server provided in an embodiment of the present application. Figure 2 The server 101 may include two central processing units (CPUs), namely CPU0 and CPU1, a basic input and output system (BIOS), a baseboard management controller (BMC), a preboot eXecution environment (PXE) operating system, etc.

[0039] The two CPUs (CPU0 and CPU1) communicate via the CCIX / UPI / GMI bus. CCIX stands for Cache Coherent Interconnect for Accelerators, which accelerates data transfer between processors and accelerators. UPI stands for Ultra Path Interconnect, a high-speed interconnect technology that connects multiple processors and enables efficient communication and data sharing in multi-processor systems. GMI stands for Global Memory Interconnect, a high-speed interconnect technology used to connect processors and memory, providing high-bandwidth and low-latency memory access.

[0040] The two CPUs are connected to multiple peripheral devices through the Peripheral Component Interconnect (PCI) interface. Figure 2 , CUP0 is connected to 4 NVMe hard drives (NVMe hard drive 0, NVMe hard drive 1, NVMe hard drive 2 and NVMe hard drive 3) and network card 0, and CUP1 is connected to CD-ROM0 and 4 NVMe hard drives (NVMe hard drive 4, NVMe hard drive 5, NVMe hard drive 6 and NVMe hard drive 7).

[0041] The BMC connects to CPU0 via the LPC / PCI bus. LPC stands for Low Pin Count Interface. The BMC communicates with the BIOS via the Intelligent Platform Management Interface (IPMI) protocol. The BMC can also communicate with CPU0 via a predefined interface management protocol (Redfish) to manage and monitor CPU0 and its associated devices.

[0042] The BIOS communicates with CPU0 via the LPC / SPI / QSPI bus. SPI stands for Serial Peripheral Interface (SPI), and QSPI stands for Quad SPI, which expands the number of data lines on top of SPI to support higher bandwidth and complex operating modes. CPU1 is connected to a USB keyboard hotkey via USB port 1 and to a USB flash drive via USB port 2.

[0043] In the BMC management interface of the remote control device 102, the user can set the target startup order of multiple peripheral devices. The remote control device 102 can generate a startup control request and send the startup control request to the server 101. The BMC of the server 101 can receive the startup control request, which includes startup control information, and can store the startup control request in the first storage device.

[0044] After receiving the server startup command, the server 101 can determine response data corresponding to the startup control request based on the server startup command. The response data can be used to indicate whether a startup control request exists. The server 101 can obtain startup control information corresponding to the startup control request and a startup flag corresponding to the startup control request based on the response data, and perform startup processing on multiple peripheral devices based on the startup control information and the startup flag.

[0045] Figure 3This is a flow chart of a method for starting a server provided in an embodiment of the present application. Figure 3 , the method may include:

[0046] S301: Receive a server startup command.

[0047] Before receiving the server startup command, a startup control request can be received, which includes startup control information; the startup control information can be stored in a first storage device, and the flag data corresponding to the startup flag bit can be determined as the first flag data; if the startup duration is greater than the preset duration, the flag data corresponding to the startup flag bit can be updated to the second flag data.

[0048] In this application, the timeliness of the start control request is monitored through the start flag. Once the start control request times out, the start control request will be invalidated. This can prevent malicious requests from occupying server resources or attacking the server through the start control request, thereby improving the security of the server.

[0049] The server can receive a startup control request sent by a remote control device when the server is in a shutdown state or when the operating system of the server is in a startup state.

[0050] When the server is powered off, the received startup control request may be ipmitool.exe chassisbootdev PXE. When the server operating system is powered on, the received startup control request may be ipmitool.exe –I lanplus -H XX.XX.XX.XX(BMC IP address) –U BMC user name –P BMC password chassis bootdev PXE.

[0051] "ipmitool.exe" is the executable file for the IPMI tool, which can be used to interact with the server's baseboard management controller (BMC) via the command line. "I lanplus" specifies the use of the LANplus interface type, an enhanced IPMI protocol that supports encrypted communication (such as RMCP+) and is more secure than traditional LAN interfaces. "H XX.XX.XX.XX" specifies the server's BMC management IP address and must be replaced with the actual BMC IP address. "U BMC Username" and "P BMC Password" provide the credentials for logging into the BMC. For example, the username is ADMIN, and the password must be entered based on the actual configuration and is case-sensitive. "chassis" indicates operating chassis-related functions. The "bootdev" subcommand is used to set the boot device, and "PXE" specifies booting from the network (Preboot eXecution Environment) at the next startup.

[0052] The BMC can run independently of the server's CPU, BIOS, and operating system. Even if the server loses power or the operating system crashes, administrators can still use the BMC to remotely power on, power off, restart, or force reset the server.

[0053] The server may receive a startup control request sent by a remote control device through the BMC.

[0054] In some embodiments, when the operating system of the server is started, a startup control request may be sent to the BMC through the operating system.

[0055] The boot control request can be used to adjust the target boot sequence of multiple peripheral devices in the server.

[0056] The startup control information can be stored in a first storage device corresponding to the BMC. The first storage device can be a non-volatile memory that can retain data even after power is turned off. This means that after the power is turned off, the first storage device can still maintain data integrity.

[0057] The first storage device may be a non-volatile random access memory (NVRAM) or an electrically erasable programmable read-only memory (EEPROM).

[0058] After receiving the startup control request, the BMC determines the flag data corresponding to the startup flag as the first flag data and automatically counts. When the startup duration exceeds the preset duration, the flag data corresponding to the startup flag can be updated to the second flag data, and the startup control information can be deleted from the first storage device, regardless of whether multiple preset devices in the server have been started.

[0059] The first flag data may be used to indicate that the start control request has not timed out, and the second flag data may be used to indicate that the start control request has timed out.

[0060] The startup duration may be used to indicate the duration of time for receiving the startup control request.

[0061] In some possible embodiments, the preset duration may be 3 minutes.

[0062] The server startup command may be a Power Cycle command or a power button command.

[0063] The Power Cycle command refers to the chassis power cycle command that can be executed through IPMI. The Power Cycle command completely cuts off the server power (enters the S5 shutdown state), waits for about 1-10 seconds, and then powers on again, simulating a complete power cycle of physically disconnecting and then connecting the power.

[0064] The power button command refers to a short press of the physical power button, which corresponds to the IPMI power on command. It only triggers the power-on process without going through the complete power-off stage.

[0065] S302: Determine response data corresponding to the startup control request according to the server startup command.

[0066] After the remote control device sends a startup control request to the BMC, the BMC generates response data. The response data may indicate whether a startup control request exists. The startup control request is used to adjust the target startup sequence of multiple peripheral devices.

[0067] After receiving the server startup command, the server may start the BIOS, and the BIOS may read the response data in the BMC through the first interface management protocol.

[0068] The BIOS performs a Power-On Self Test (POST) at startup to check whether the hardware is normal, and then loads the boot program according to the configured boot sequence.

[0069] In this application, the BIOS can load and start the boot programs corresponding to multiple peripheral devices according to the target startup sequence corresponding to the startup control request.

[0070] S303: Acquire the start control information corresponding to the start control request and the start flag corresponding to the start control request according to the response data.

[0071] The startup control information may include the startup times and the target startup order of the plurality of peripheral devices.

[0072] The flag data corresponding to the startup flag bit may include first flag data and second flag data. The first flag data may be used to indicate that the startup duration corresponding to the startup control request is less than or equal to the preset duration, and the second flag bit data may be used to indicate that the startup duration is greater than the preset duration.

[0073] S304: Perform startup processing on multiple peripheral devices according to the startup control information and the startup flag.

[0074] In some possible embodiments, the startup flag bit can be used to determine whether the startup control request is invalid; if not, the startup process is performed on multiple peripheral devices according to the startup control information; if so, the startup process is performed on multiple peripheral devices according to a preset startup sequence.

[0075] Specifically, if the start control request is not received or the start time of the start control request times out, the start control request becomes invalid.

[0076] The server startup method provided in an embodiment of the present application, after receiving a server startup command, can, if a startup control request is present, perform startup processing on multiple peripheral devices based on the startup control information and startup flag corresponding to the startup control request. This can modify the startup order of multiple peripheral devices, improve the efficiency of adjusting the startup order, and achieve dynamic adjustment of server startup. At the same time, the preset startup order of multiple peripheral devices will not be modified, ensuring that the multiple peripheral devices can be started according to the preset startup order at the next startup.

[0077] Figure 4 This is a flow chart of another server startup method provided in an embodiment of the present application. Figure 4 , the method may include:

[0078] S401: Receive a server startup command.

[0079] The execution process of S401 can refer to the execution process of S301, and will not be repeated here.

[0080] S402: Determine a first interface management protocol between a basic input / output system and a baseboard management controller according to a server startup command.

[0081] The first interface management protocol may be an IPMI protocol, which may be a core protocol for remote monitoring and hardware management.

[0082] Among them, the baseboard management controller BMC can be used for remote monitoring.

[0083] The BIOS is the first firmware that runs when a server starts up. It is responsible for initializing the hardware and booting the operating system. The BIOS can load the operating system's boot program based on a predefined boot sequence (such as hard drive, USB, or network PXE).

[0084] In the present application, the baseboard management controller and the basic input / output system communicate through the first interface management protocol, and the baseboard management controller can adjust the preset startup sequence when starting multiple peripheral devices in the basic input / output system according to the preset startup sequence.

[0085] S403: Acquire response data from the baseboard management controller according to the first interface management protocol.

[0086] The basic input and output system BIOS may obtain the response data through the first interface management protocol, wherein the data structure of the response data in the baseboard management controller BMC may be a data structure set in the first interface management protocol.

[0087] In some possible embodiments, the response data may be a first value or a second value, wherein the first value is used to indicate the presence of the start control request and the second value is used to indicate the absence of the start control request. For example, the first value may be 0 and the second value may be 1.

[0088] In some other embodiments, the number of bits of the first bit (i.e., bit 0) of the response data may be obtained to indicate whether a start control request exists. For example, if bit 0 is 1, a start control request exists; if bit 0 is 0, no start control request exists.

[0089] It is worth noting that the startup sequence of the server's peripheral devices may be adjusted in the preset interface management protocol.

[0090] Specifically, it can be determined whether the preset interface management protocol has a first startup sequence; if not, response data is obtained through the first interface management protocol; if so, the first startup sequence is obtained; and the plurality of peripheral devices are started according to the first startup sequence.

[0091] The preset interface management protocol may be the Redfish protocol. The Redfish protocol is a server management standard based on the REpresentational State Transfer (REST) ​​architecture and is developed by the Distributed Management Task Force (DMTF). The protocol aims to provide an open, scalable, and secure out-of-band management solution for modern data centers.

[0092] The first startup sequence is the default startup sequence in the Redfish protocol.

[0093] If the first startup sequence exists in the Redfish protocol, the first startup sequence is given priority. If not, multiple peripheral devices are started according to the startup control request in this application.

[0094] It is worth noting that the target boot order is the boot order corresponding to the boot control request, the preset boot order is the boot order in the BIOS, and the priority of each boot order is: the first boot order is greater than the target boot order, and the target boot order is greater than the preset boot order.

[0095] S404: Determine whether the response data is the first value.

[0096] If yes, execute step S405;

[0097] If not, start according to the preset startup sequence.

[0098] S405: If yes, obtain the startup control information from the first storage device, and obtain the startup flag from the baseboard management controller.

[0099] The start flag bit can be used to indicate whether the start control request has timed out.

[0100] After receiving the startup control request, the baseboard management controller BMC will time the startup time of receiving the startup control request. If the startup time is longer than the preset time, the startup control request times out and the flag data of the startup flag bit is determined to be the second flag data.

[0101] In some possible embodiments, the first flag data may be 1, and the second flag data may be 0.

[0102] For example, before receiving the start control request, the flag data of the start flag bit can be 0. After receiving the start control request, the flag data of the start flag bit can be updated to 1. After the start duration is greater than the preset duration, the flag data of the start flag bit can be updated to 0.

[0103] In some possible embodiments, a third flag data is further included, and the third flag data is used to indicate that there is no start control request. The first flag data can be 01, the second flag data can be 10, and the third flag data can be 00.

[0104] For example, before receiving the start control request, the flag data of the start flag can be 00. After receiving the start control request, the flag data of the start flag can be updated to 01. After the start duration is greater than the preset duration, the flag data of the start flag can be updated to 10.

[0105] In some possible embodiments, the BMC may include multiple startup parameters, the multiple startup parameters include flag data corresponding to the startup flag bit, and the flag data corresponding to the startup flag bit in the multiple startup parameters can be obtained through a query command.

[0106] In this application, queries can be performed using remote control commands or system commands. Remote control commands are used to instruct the server's operating system to communicate directly with the local BMC without an external network connection, but the ipmitool tool must be installed in the system. System commands are used to instruct the BMC to be remotely connected from an external device (such as a remote control terminal or automation platform) and are suitable for cross-network management.

[0107] For example, if the boot flag is the fifth boot parameter, you can use the following two commands to obtain the boot flag: remote control command: ipmitool.exe chassis bootparam get 5; or system command: ipmitool.exe –I lanplus -H XX.XX.XX.XX(BMC IP address) –U BMC user name –P BMC password chassis bootparam get 5.

[0108] Among them, "chassis bootparam get 5" is used to query the fifth boot parameter, which corresponds to the Boot Flags in the IPMI specification and is used to view the current boot device configuration and effective range.

[0109] In some possible embodiments, after the startup control information is acquired in the first storage device, the startup control information in the first storage device may be deleted to alleviate storage pressure on the first storage device.

[0110] S406: Determine whether the startup control request is invalid according to the startup flag.

[0111] In some possible embodiments, if the flag data corresponding to the start flag is the first flag data, the start control request is not invalid; if the flag data corresponding to the start flag is the second flag data, the start control request is invalid.

[0112] In some possible embodiments, if the flag data corresponding to the start flag is the first flag data, the start control request is not invalid; if the flag data corresponding to the start flag is the second flag data or the third flag data, the start control request is invalid.

[0113] If yes, then the plurality of peripheral devices are started according to the preset startup sequence;

[0114] If not, execute step S407.

[0115] S407: If not, determine the startup type corresponding to the startup control request according to the startup times.

[0116] The startup control information may include the startup count. When the user sets the target startup sequence of multiple peripheral devices in the remote control device, the user may set the startup count of the startup control request.

[0117] The startup type can include single startup and multiple startup.

[0118] If the number of starts is 1, the start type is single start; if the number of starts is greater than 1, the start type is multiple starts.

[0119] It is worth noting that, under normal circumstances, users can set single start and permanent start. Permanent start can be a special case of multiple starts. When the number of starts is set to a larger value, it is permanent start.

[0120] S408: If the startup type is single startup, the multiple peripheral devices are started according to the target startup sequence.

[0121] The target startup sequence may be a startup sequence queue of multiple peripheral devices, and each peripheral device is started in sequence according to the startup sequence queue.

[0122] In some possible embodiments, the boot sequence queue may include multiple peripheral device groups, each peripheral device group including at least one peripheral device. Each peripheral device group in the boot sequence queue may be prioritized, and for any peripheral device group, each peripheral device may be prioritized.

[0123] Multiple peripheral devices can be grouped according to different methods, such as the interface type of the device and the type definition of the device.

[0124] In some possible embodiments, the peripheral devices may include a network card device group, a hard disk device group, a CD / DVD-ROM device group, and an Others device group. The network card device group may include a PCI network card, an OCP network card, an HCA card, or an HBA card; the hard disk device group may include NVME-type storage devices; the CD / DVD-ROM device group may include an optical drive or a DVD device; and the Others device group may include the remaining devices.

[0125] For example, the preset boot order can be the network card device group, hard disk device group, CD / DVD-ROM device group, and Others device group; the target boot order can be the hard disk device group, CD / DVD-ROM device group, network card device group, and Others device group.

[0126] In some possible embodiments, peripheral devices may be grouped using different interface types, such as USB devices and PCI devices. USB devices may include USB network cards, USB hard drives, and USB flash drives, while PCI devices may include network cards with PCI interfaces and OCP network cards with PCI interfaces.

[0127] In the present application, at least one peripheral device in each peripheral device group may be started up in sequence.

[0128] It is worth noting that in this application, no modification is made to the hotkey function. When a hotkey input is received, the hotkey function needs to be executed immediately. For example, the F11 hotkey executes the boot device selection function, the Del hotkey executes the BIOS Setup interface function, etc.

[0129] The BIOS Setup interface is the configuration interface entered when the computer starts. It is mainly used to manage and adjust hardware settings to ensure normal operation of the system.

[0130] S409: If the startup type is multiple startups, store the target startup sequence in the second storage device.

[0131] If the startup type is multiple startups, the target startup sequence needs to be stored in the second storage device so that the target startup sequence can be directly obtained from the second storage device during the next startup.

[0132] The second storage device may be an NVRAM area of ​​the BIOS.

[0133] In some possible embodiments, the current startup times of the server may be recorded, and when the current startup times are equal to the startup times corresponding to the multiple startups, the target startup sequence in the second storage device is deleted.

[0134] S410: Perform startup processing on multiple peripheral devices according to a target startup sequence.

[0135] The execution process of step S410 can refer to the execution process of step S408, which will not be repeated here.

[0136] In some possible embodiments, after booting multiple peripheral devices, the operating system can be booted through the pre-boot execution environment; in the operating system, a preset boot sequence is obtained and the preset boot sequence is verified.

[0137] During the server startup process, the Preboot Execution Environment (PXE) can be used to obtain and boot the operating system from a remote server over the network when the computer has no local storage device (such as a hard disk).

[0138] PXE can be built into the BIOS firmware. During startup, the BIOS loads the PXE client program in the network card ROM into the memory, and PXE initiates a network request.

[0139] In the operating system, you can use the Server Configuration Engine (SCE) tool to obtain the preset boot order.

[0140] The SCE tool is a utility that can access the server's underlying firmware configuration even when the operating system is running. Its core function is to read or modify hardware-layer settings through the baseboard management controller (BMC) or firmware interface.

[0141] At this time, the preset startup sequence is still the default startup sequence, and the startup control request will not modify the preset startup sequence.

[0142] In some possible embodiments, the operating system can be started in the following manner: an event function corresponding to a start control request is generated; based on the event function, a hot key of the pre-boot execution environment is simulated to generate a virtual hot key for starting the pre-boot execution environment; and based on the virtual hot key, the operating system is started.

[0143] At the end of the BIOS's Driver Execution Environment (DXE) phase, an event function called "End of DXE Event" is typically created. This event function can be a custom event group. Its core function is to notify the system to enter the Boot Device Selection (BDS) phase after all drivers are loaded and initialized during the DXE phase, gradually transferring control to the operating system.

[0144] Hotkeys are shortcuts that trigger specific functions in computer systems through predefined key combinations. Their core goal is to improve efficiency by reducing the number of steps required. Hotkeys are widely used at various levels, including firmware (such as BIOS / UEFI), operating systems (such as Windows / macOS), and applications (such as Photoshop).

[0145] In some possible embodiments, the preset startup sequence may be updated to the target startup sequence.

[0146] When the preset startup sequence is verified, the target startup sequence has been modified to the preset startup sequence, which is consistent with the expected startup sequence.

[0147] After the server is started according to the startup control request, the server can be restarted or shut down and then restarted. When the BIOS restarts, it starts normally according to the preset startup sequence and enters the operating system. The operating system reads the preset startup sequence through the SCE tool. The preset startup sequence can be the network card device group, hard disk device group, CD / DVD-ROM device group, and Others device group, which conforms to the default startup sequence.

[0148] After entering the operating system, use the SCE tool to export the preset boot order and confirm whether it is consistent with the default and permanent boot order. After the boot is completed and restarted, the server's BIOS will boot according to the default and permanent grouping information (that is, the preset boot order) during the boot process. When entering the system again, use the SCE tool to export the boot item grouping order information and confirm whether it is the permanent default boot item grouping order. This can avoid manual operation of the BIOS Setup interface to adjust the boot order, and there is no need to adjust the default permanent boot order. It can also realize the PXE function boot function. In addition, it can ensure that during the boot process, the hotkey function execution has higher priority than the actual requirement of IPMI command single boot, which can improve the reliability of server boot.

[0149] After the IPMI single boot setting is completed, the hotkey function can still be executed. You only need to use the SCE tool to export whether the preset boot sequence meets your expectations. This will not change the hotkey function, making operation convenient.

[0150] The server startup method provided in an embodiment of the present application, after receiving a server startup command, can determine whether the startup control request is invalid based on the startup flag bit if there is a startup control request; if it is not invalid, the startup type corresponding to the startup control request can be determined based on the number of startups; and startup processing can be performed on multiple peripheral devices based on the startup type and the target startup sequence. This can modify the target startup sequence of multiple peripheral devices, improving the efficiency of adjusting the startup sequence. In addition, by using the startup flag bit to determine whether the startup control request is invalid, malicious requests can be prevented from occupying server resources or attacking the server through startup control requests, thereby improving the security of the server.

[0151] Figure 5 This is a schematic diagram of the architecture of a server startup method provided in an embodiment of the present application. Figure 5The server may include an operating system, a baseboard management controller (BMC), and a basic input / output system (BIOS). The baseboard management controller (BMC) may receive a startup control request. The startup control request may be sent via a remote control device when the server is powered off, or may be sent within the operating system when the operating system is powered on. The baseboard management controller (BMC) may store the startup control request in a first storage device and enable a timing function to determine a startup duration corresponding to the startup control request.

[0152] If the basic input and output system BIOS receives a server startup command when the startup duration is less than the preset duration, the basic input and output system BIOS can install the first interface management protocol (i.e., IPMI protocol) in the DXE stage and determine whether the first interface management protocol is successfully installed. After successful installation, if the preset interface management protocol (i.e., Redfish protocol) supports the sequential startup of peripheral devices and there is a first startup sequence, the multiple peripheral devices are started according to the first startup sequence; if the preset interface management protocol does not support the sequential startup of peripheral devices and there is no first startup sequence, or if the preset interface management protocol does not support the sequential startup of peripheral devices, the basic input and output system BIOS can obtain response data from the baseboard management controller.

[0153] If the response data is the second value, the plurality of peripheral devices are started according to a preset startup sequence. If the response data is the first value, the startup control information is obtained from the first storage device, and the startup flag is obtained from the baseboard management controller. The startup flag can be used to determine whether the startup control request is invalid. If so, the plurality of peripheral devices are started according to the preset startup sequence. If not, the startup type corresponding to the startup control request is determined based on the startup count in the startup control information.

[0154] If the startup type is a single startup, the plurality of peripheral devices are started according to the target startup sequence; if the startup type is a multiple startup, the target startup sequence is stored in a second storage device, and the plurality of peripheral devices are started according to the target startup sequence. If a hotkey command is input during the startup process, the hotkey command is processed first.

[0155] The BIOS can generate an event function corresponding to the boot control request. Based on the event function, it simulates a hotkey for the pre-boot execution environment and generates a virtual hotkey for starting the pre-boot execution environment. Based on the virtual hotkey, the operating system can be started. Within the operating system, a preset boot sequence can be obtained and verified.

[0156] Figure 6 This is a schematic diagram of the structure of a server startup device provided in an embodiment of the present application. Figure 6 The server startup device 600 includes a first receiving module 601, a first determining module 602, a first obtaining module 603 and a startup processing module 604:

[0157] The first receiving module 601 is used to receive a server startup command;

[0158] The first determining module 602 is configured to determine, based on the server startup command, response data corresponding to the startup control request, where the response data indicates whether a startup control request exists, and the startup control request is used to adjust a target startup sequence of multiple peripheral devices;

[0159] The first acquisition module 603 is used to acquire the startup control information corresponding to the startup control request and the startup flag corresponding to the startup control request according to the response data;

[0160] The startup processing module 604 is used to perform startup processing on multiple peripheral devices according to the startup control information and the startup flag.

[0161] In some possible embodiments, the startup processing module 604 is specifically configured to:

[0162] According to the startup flag bit, determine whether the startup control request is invalid;

[0163] If not, the plurality of peripheral devices are started according to the start control information.

[0164] In some possible embodiments, the flag data corresponding to the startup flag bit includes first flag data and second flag data, the first flag data is used to indicate that the startup duration corresponding to the startup control request is less than or equal to a preset duration, and the second flag data is used to indicate that the startup duration is greater than the preset duration;

[0165] The startup processing module 604 is specifically used to:

[0166] If the flag data corresponding to the start flag bit is the first flag data, the start control request is not invalid;

[0167] If the flag data corresponding to the start flag bit is the second flag data, the start control request is invalid.

[0168] In some possible embodiments, the startup control information includes the startup times and the target startup order of the plurality of peripheral devices; the startup processing module 604 is specifically configured to:

[0169] According to the number of starts, determine the start type corresponding to the start control request, which includes single start and multiple starts;

[0170] Perform startup processing on multiple peripheral devices according to the startup type and target startup sequence.

[0171] In some possible embodiments, the startup processing module 604 is specifically configured to:

[0172] If the startup type is single startup, multiple peripheral devices will be started according to the target startup sequence;

[0173] If the startup type is multiple startups, the target startup sequence is stored in the second storage device, and the startup process is performed on the multiple peripheral devices according to the target startup sequence.

[0174] Figure 7 This is a structural diagram of another server startup device provided in an embodiment of the present application. Figure 7 The server startup device 600 further includes a startup module 605, a second acquisition module 606 and a verification processing module 607:

[0175] The startup module 605 is used to start the server's operating system through the pre-start execution environment;

[0176] The second acquisition module 606 is used to obtain a preset startup sequence in the operating system;

[0177] The verification processing module 607 is used to verify the preset startup sequence.

[0178] In some possible embodiments, the startup module 605 is specifically configured to:

[0179] Generate an event function corresponding to the start control request;

[0180] According to the event function, the hot key of the pre-boot execution environment is simulated to generate a virtual hot key for starting the pre-boot execution environment;

[0181] Start the operating system according to the virtual hotkey.

[0182] In some possible embodiments, the server further includes a basic input / output system and a baseboard management controller; and the first determining module 602 is specifically configured to:

[0183] determining, according to the server startup command, a first interface management protocol between a basic input / output system and a baseboard management controller;

[0184] According to the first interface management protocol, response data in the baseboard management controller is obtained.

[0185] In some possible embodiments, the first determining module 602 is specifically configured to:

[0186] Determine whether the preset interface management protocol has a first startup sequence;

[0187] If not, the response data is obtained through the first interface management protocol.

[0188] In some possible embodiments, the first determining module 602 is specifically configured to:

[0189] If so, obtain the first startup sequence;

[0190] According to the first startup sequence, a startup process is performed on the plurality of peripheral devices.

[0191] In some possible embodiments, the first obtaining module 603 is specifically configured to:

[0192] determining whether the response data is a first value, the first value being used to indicate the presence of a start control request;

[0193] If so, the startup control information is obtained from the first storage device, and the startup flag is obtained from the baseboard management controller.

[0194] In some possible embodiments, the apparatus further includes a second receiving module, a storage module, a second determining module, and an updating module:

[0195] The second receiving module is used to receive a start control request, where the start control request includes start control information;

[0196] The storage module is used to store the startup control information in the first storage device;

[0197] The second determining module is used to determine the flag data corresponding to the start flag bit as the first flag data;

[0198] The updating module is used to update the flag data corresponding to the startup flag bit to second flag data if the startup duration is greater than the preset duration, and the startup duration is used to indicate the duration of receiving the startup control request.

[0199] For the description of the features in the embodiment corresponding to the server startup device, please refer to the relevant description of the embodiment corresponding to the server startup method, which will not be repeated here.

[0200] Figure 8 This is a schematic diagram of the structure of an electronic device provided by this application. Figure 8 As shown, the electronic device 800 provided in this embodiment includes: at least one processor 801 and a memory 802. Optionally, the electronic device 800 further includes a communication component 803. The processor 801, the memory 802 and the communication component 803 are connected via a bus.

[0201] During the specific implementation process, at least one processor 801 executes the computer-executable instructions stored in the memory 802, so that the at least one processor 801 executes the above-mentioned server startup method embodiment.

[0202] The specific implementation process of the processor 801 can be found in the above method embodiment. Its implementation principle and technical effects are similar and will not be repeated here in this embodiment.

[0203] In the above embodiments, it should be understood that the processor may be a central processing unit (CPU), other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), etc. A general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in the application may be directly executed by a hardware processor or by a combination of hardware and software modules within the processor.

[0204] The memory may include random access memory (RAM) and may also include non-volatile memory (NVM), such as at least one disk storage.

[0205] A bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus. Buses can be categorized as address buses, data buses, and control buses. For ease of illustration, the buses in the drawings of this application are not limited to just one bus or just one type of bus.

[0206] An embodiment of the present application further provides a computer-readable storage medium, in which a computer program is stored. The computer program is configured to execute the steps of any of the above-mentioned server startup method embodiments when running.

[0207] In an exemplary embodiment, the computer-readable storage medium may include, but is not limited to, various media that can store computer programs, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk, or an optical disk.

[0208] An embodiment of the present application further provides a computer program product, which includes a computer program. When the computer program is executed by a processor, the steps of any of the above-mentioned server startup method embodiments are implemented.

[0209] An embodiment of the present application further provides another computer program product, including a non-volatile computer-readable storage medium, wherein the non-volatile computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of any of the above-mentioned server startup method embodiments are implemented.

[0210] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the above description has generally described the components and steps of each example according to their functions. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0211] The above is a detailed introduction to a server startup method provided by the present application. Specific examples are used herein to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only intended to help understand the method and core ideas of the present application. It should be noted that, for those skilled in the art, without departing from the principles of the present application, several improvements and modifications may be made to the present application, and such improvements and modifications also fall within the scope of protection of the claims of the present application.

Claims

1. A method for starting a server, characterized in that: Applied to a server, the server including a plurality of peripheral devices, a basic input and output system, and a baseboard management controller, the method comprising: Receive server startup command; determining, according to the server startup command, a first interface management protocol between the basic input / output system and the baseboard management controller; Determine whether the preset interface management protocol has a first startup sequence; If yes, obtaining the first startup sequence; and performing startup processing on the plurality of peripheral devices according to the first startup sequence; If not, obtaining, through the first interface management protocol, response data corresponding to the startup control request, the response data being used to indicate whether the startup control request exists, the startup control request being used to adjust a target startup sequence of the multiple peripheral devices, the startup control request being sent by the remote control device to the server, and the target startup sequence of the multiple peripheral devices being determined on the remote control device; According to the response data, obtaining startup control information corresponding to the startup control request and a startup flag corresponding to the startup control request; the startup control information includes the number of startups and the target startup sequence of the plurality of peripheral devices; determining, according to the startup flag bit, whether the startup control request is invalid; If so, the plurality of peripheral devices are started according to a preset startup sequence; If not, the startup type corresponding to the startup control request is determined based on the number of startups, and the startup types include single startup and multiple startups; if the startup type is the single startup, the multiple peripheral devices are started according to the target startup sequence; if the startup type is the multiple startups, the target startup sequence is stored in the second storage device, and the multiple peripheral devices are started according to the target startup sequence.

2. The method according to claim 1, characterized in that The flag data corresponding to the startup flag bit includes first flag data and second flag data, the first flag data is used to indicate that the startup duration corresponding to the startup control request is less than or equal to the preset duration, and the second flag data is used to indicate that the startup duration is greater than the preset duration; Determining whether the startup control request is invalid according to the startup flag bit includes: If the flag data corresponding to the start flag bit is the first flag data, the start control request is not invalid; If the flag data corresponding to the start flag bit is the second flag data, the start control request is invalid.

3. The method according to claim 1, characterized in that After starting the plurality of peripheral devices, the method further includes: Start the server's operating system through the pre-boot execution environment; In the operating system, a preset startup sequence is obtained and a verification process is performed on the preset startup sequence.

4. The method according to claim 3, characterized in that Start the pre-server operating system through the pre-start execution environment, including: Generate an event function corresponding to the start control request; According to the event function, simulating the hot key of the pre-boot execution environment to generate a virtual hot key for starting the pre-boot execution environment; The operating system is started according to the virtual hot key.

5. The method according to claim 1, wherein Acquiring, according to the response data, startup control information corresponding to the startup control request and a startup flag corresponding to the startup control request, including: determining whether the response data is a first value, where the first value is used to indicate the presence of the start control request; If so, the startup control information is obtained from the first storage device, and the startup flag is obtained from the baseboard management controller.

6. The method according to claim 1, characterized in that Before receiving the server startup command, it also includes: receiving the startup control request, wherein the startup control request includes startup control information; storing the startup control information in a first storage device, and determining the flag data corresponding to the startup flag bit as first flag data; If the startup duration is greater than the preset duration, the flag data corresponding to the startup flag is updated to second flag data, and the startup duration is used to indicate the duration of receiving the startup control request.

7. An electronic device, characterized in that: include: memory for storing computer programs; A processor, configured to implement the steps of the server startup method according to any one of claims 1 to 6 when executing the computer program.

8. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, wherein when the computer program is executed by a processor, the steps of the server startup method according to any one of claims 1 to 6 are implemented.

9. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the server startup method according to any one of claims 1 to 6 are implemented.

Citation Information

Patent Citations

  • Startup item configuration method and device, computer equipment and storage medium

    CN116521261A

  • Server hot key setting method, device and equipment and readable storage medium

    CN119248118A

  • Startup item sequence adjustment method, system and equipment and computer storage medium

    CN119356743A