Configuration method
By building server neighbor groups in the data center and synchronizing configuration information, the problem of inefficient UEFI configuration in the prior art is solved, and efficient multi-server synchronous configuration is achieved.
Patent Information
- Application Number
- CN202411958258.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-27
- Publication Date
- 2025-04-18
AI Technical Summary
In multi-cavity data centers, the existing technology cannot implement batch deployment of unified extensible firmware interface (UEFI) configuration options, resulting in the need to log in to the baseboard management controller (BMC) of each node for configuration, which is inefficient.
By starting the server daemon, searching for other servers in the LAN, and building neighbor groups based on preset matching conditions, so that servers in all groups can perform the same configuration tasks synchronously. Then, the information to be configured is sent to other servers in the neighbor group to achieve synchronous information configuration.
The synchronous information configuration of multiple servers is realized, which improves configuration efficiency, reduces duplicate operations, and simplifies UEFI configuration management in multi-cluster data centers.
Smart Images

Figure CN119854112A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of electronic technology, and are related to but not limited to a configuration method. Background Art
[0002] In the related technical solutions, when it is necessary to modify the Unified Extensible Firmware Interface (UEFI) configuration options through the server's Baseboard Management Controller (BMC), users can only log in to the server's BMC to issue configuration commands. When making some UEFI configuration changes in a multi-cabinet data center, users need to log in to the BMC of each node one by one to implement the configuration, and there is no method for batch deployment and configuration. This configuration requires repeated operations to be performed multiple times, and the configuration efficiency is low. How to improve the efficiency of configuring multiple servers at the same time has become a technical problem that needs to be solved urgently. Summary of the invention
[0003] In view of this, an embodiment of the present application provides a configuration method.
[0004] The technical solution of the embodiment of the present application is implemented as follows:
[0005] In a first aspect, an embodiment of the present application provides a configuration method, including:
[0006] The first server starts a server daemon process, and the server daemon process searches for other servers in the local area network;
[0007] The first server determines a server that meets a preset matching condition among other servers as a second server to form a neighbor group with all the second servers, wherein the preset matching condition is set to enable all servers in the neighbor group to synchronously execute the same configuration task;
[0008] The first server sends the information to be configured to the second server, so that the first server and the second server complete synchronization information configuration based on the information to be configured.
[0009] In a second aspect, an embodiment of the present application provides a configuration device, including:
[0010] Search module, used to start the server daemon process, which searches for other servers in the local area network;
[0011] A first determination module is used to determine a server that meets a preset matching condition among other servers as a second server to form a neighbor group with all the second servers, wherein the preset matching condition is set to enable all servers in the neighbor group to synchronously execute the same configuration task;
[0012] The sending module is used to send the information to be configured to the second server, so that the first server and the second server complete the synchronization information configuration based on the information to be configured.
[0013] In a third aspect, an embodiment of the present application provides an electronic device, comprising a memory and a processor, wherein the memory stores a computer program that can be run on the processor, and when the processor executes the program, a server daemon is started, and the server daemon searches for other servers in a local area network; a server among the other servers that meets a preset matching condition is determined as a second server to build a neighbor group with all second servers, wherein the preset matching condition is set to enable all servers in the neighbor group to synchronously execute the same configuration task; and the information to be configured is sent to the second server, so that the first server and the second server complete the synchronization information configuration based on the information to be configured.
[0014] In a fourth aspect, an embodiment of the present application provides a storage medium storing executable instructions, which are used for starting a server daemon process when executed by a processor, and the server daemon process searches for other servers in a local area network; a server among other servers that meets a preset matching condition is determined as a second server to build a neighbor group with all second servers, wherein the preset matching condition is set to enable all servers in the neighbor group to synchronously execute the same configuration task; and the information to be configured is sent to the second server, so that the first server and the second server complete the synchronization information configuration based on the information to be configured.
[0015] In a fifth aspect, a computer program product includes a computer program or instructions, which, when executed by a processor, starts a server daemon process, and the server daemon process searches for other servers in a local area network; determines a server among other servers that meets a preset matching condition as a second server, so as to build a neighbor group with all second servers, wherein the preset matching condition is set to enable all servers in the neighbor group to synchronously execute the same configuration task; sends the information to be configured to the second server, so that the first server and the second server complete the synchronization information configuration based on the information to be configured. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] Figure 1 A schematic diagram of an implementation flow of a configuration method provided in an embodiment of the present application;
[0017] Figure 2 A schematic diagram of an implementation flow of determining a second server provided in an embodiment of the present application;
[0018] Figure 3 A schematic diagram of the implementation process of the unified extensible firmware interface configuration provided in the embodiment of the present application;
[0019] Figure 4 A schematic diagram of a neighbor group network provided in an embodiment of the present application;
[0020] Figure 5 A schematic diagram of the structure of a configuration device provided in an embodiment of the present application;
[0021] Figure 6 A hardware entity schematic diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0022] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the specific technical solution of the embodiments of the present application will be further described in detail below in conjunction with the drawings in the embodiments of the present application. The following embodiments are used to illustrate the present application, but are not used to limit the scope of the present application.
[0023] In the following description, reference is made to “some embodiments”, which describe a subset of all possible embodiments, but it will be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.
[0024] In the following description, the terms "first\second\third" involved are merely used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged with a specific order or sequence where permitted, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.
[0025] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as those commonly understood by those skilled in the art to which this application belongs. The terms used herein are only for the purpose of describing the embodiments of this application and are not intended to limit this application.
[0026] The present application embodiment provides a configuration method, such as Figure 1 As shown, the method includes:
[0027] Step S110: The first server starts a server daemon process, and the server daemon process searches for other servers in the local area network;
[0028] Here, a server daemon process is a background service program running in the operating system, which is used to perform system-level tasks, such as network services, file services, system monitoring, etc. This process does not depend on the user login session, is automatically started when the system is started or needed, and continues to run until the system is shut down or explicitly terminated. For example, when the server daemon process is started, services such as network communication, file services, and database management can be provided, and can be automatically run when the system is started, or started by other programs as needed.
[0029] The first server may be any server in the local area network. In the implementation process, there may be multiple servers in the local area network, all of which start the server daemon process, so that multiple servers can search for other servers in the local area network at the same time.
[0030] In some embodiments, the first server starts a zero-configuration network service to enable the first server to discover other servers in the local area network that can establish data communication with the server.
[0031] Here, Avahi Daemon is a service that implements the Zeroconf (also known as mDNS / DNS-SD) protocol, which allows devices and services to be discovered without configuration in a local area network. It is a service daemon running on the Linux operating system, used to implement a network-based Zeroconf service discovery mechanism.
[0032] In some embodiments, the first server may also start mDNSResponder, which allows the device to automatically discover and connect to services provided by other devices on the local network; the first server may also start nss-mdns, which allows the Linux system to resolve host names through the mDNS protocol, thereby discovering and connecting to devices and services on the local network; the first server may also start dnsmasq, which allows the device to broadcast and discover services on the local network; the first server may also start Bonjour, which allows the device to automatically discover other devices and services on the local network without manual configuration.
[0033] Here, there is no limitation on the server daemon process started by the first server, and starting the process can search for other servers in the local area network.
[0034] Step S120: The first server determines a server among the other servers that meets a preset matching condition as a second server, so as to form a neighbor group with all the second servers, wherein the preset matching condition is set to enable all servers in the neighbor group to synchronously execute the same configuration task;
[0035] Here, the preset matching condition can be set according to actual needs so that all servers that meet the preset matching condition can synchronously execute the same configuration task. For example, the preset matching condition can be set to electronic devices of the same manufacturer, and electronic devices belonging to the same manufacturer can execute the same system configuration task, such as system upgrade, system patching, etc.
[0036] During implementation, at least one second server may be determined based on a preset matching condition, and a neighbor group may be formed with the first server. For example, transmission of a configuration file to be configured may be achieved between all servers in the neighbor group.
[0037] Step S130: The first server sends the information to be configured to the second server, so that the first server and the second server complete synchronization information configuration based on the information to be configured.
[0038] Here, the information to be configured may be obtained by the user operating the client corresponding to the first server to fill in configuration parameters. In some embodiments, the client may provide a configuration page to provide a visualization window that the user can configure.
[0039] During the implementation process, after the first server obtains the information to be configured, it can send the configuration information to the second server in the neighbor group. In this way, the first server and the second server can complete the synchronization information configuration based on the same information to be configured.
[0040] In the embodiment of the present application, the first server starts the server daemon process to search for other servers in the local area network; the server that meets the preset matching conditions among the other servers is determined as the second server, and a neighbor group is constructed; and the information to be configured is sent to the second server. In this way, the first server and the second server in the neighbor group can complete the synchronization information configuration based on the information to be configured. The synchronization information configuration of multiple servers can be completed by using one server in the neighbor group, and the configuration method is flexible, which effectively improves the efficiency of the synchronization information configuration of multiple servers.
[0041] In some embodiments, in the above step S120, "the first server determines the server among the other servers that meets the preset matching condition as the second server" Figure 2 As shown, this can be achieved by following the steps below:
[0042] Step S210: the first server obtains identification information of other servers in the local area network;
[0043] Here, the identification information may be carried in the broadcast message of the server, that is, an identification that can be sent externally through the broadcast of the server.
[0044] In some embodiments, the identification information includes at least one of the following: a manufacturer identification, a model identification, a serial number, a version number, and a configuration parameter.
[0045] Among them, the manufacturer identifier can be used to identify the manufacturer of the server; the model identifier can be used to identify the model of the server, and servers from the same manufacturer can correspond to different models; the serial number is a unique representation of the server, and the manufacturer and / or model of the server can be determined by parsing the serial number; the version number can be used to identify the current running version of the server, and servers of the same model can be configured with different running versions; the version number can also be used to identify the hardware version of the server, and servers with the same hardware version number have the same hardware configuration; the configuration parameters can be used to identify the current configuration parameters of the server, such as BIOS or UEFI configuration parameters, etc.
[0046] During implementation, the first server may obtain identification information of other servers in the local area network by obtaining broadcast messages.
[0047] Step S220: The first server determines a server that meets preset identification information as the second server.
[0048] Here, the preset identification information may be preset manufacturer information, and the determined second server is a server of the same manufacturer as the first server; the preset identification information may be preset model information, and the determined second server is a server of the same model as the first server; the preset identification information may be preset version number information, and the determined second server is a server of the same version number as the first server; the preset identification information may be preset configuration parameter information, and the determined second server is a server of the same configuration parameters as the first server.
[0049] During implementation, the first server may determine that the server sending the broadcast message is the second server when receiving the broadcast message that meets the preset identification information.
[0050] In the embodiment of the present application, the first server obtains the identification information of other servers in the local area network and determines the server that meets the preset identification information as the second server. In this way, it is possible to determine the second server that meets the conditions using the identification information in the broadcast message sent by the server.
[0051] In some embodiments, the above step S220 "the first server determines the server that meets the preset identification information as the second server" can be implemented by the following steps:
[0052] Step 221: The first server sets a whitelist based on the preset identifier;
[0053] Here, a preset identifier may be set in the whitelist. For example, at least one of the following information may be set in the whitelist: manufacturer A, device model B, version number C, and configuration parameter D, etc.
[0054] Step 222: The first server determines a server that matches a preset identifier in the whitelist as the second server.
[0055] During implementation, the first server may determine the second server based on a preset identifier set in the whitelist. For example, when the first server receives a broadcast message, it may parse the information carried in the broadcast message to obtain the manufacturer information, and when it is determined that the manufacturer information is in the whitelist, the server that sent the broadcast message may be determined as the second server.
[0056] In some embodiments, a blacklist may be set to determine the server as the second server when it is determined that the server does not match the identifier in the blacklist. For example, when the first server receives a broadcast message, it may parse the information carried in the broadcast message to obtain the model information, and when it is determined that the signal information is not in the blacklist, it may determine the server that sent the broadcast message as the second server.
[0057] In the embodiment of the present application, the first server sets a whitelist based on a preset identifier, and determines the server matching the preset identifier in the whitelist as the second server. In this way, the second server can be determined using the whitelist, thereby improving the efficiency of determining the second server.
[0058] In some embodiments, the above step S130 "the first server sends the information to be configured to the second server, so that the first server and the second server complete the synchronization information configuration based on the information to be configured" can be implemented by the following process:
[0059] The first baseboard management controller arranged in the first server sends the information to be configured to the second baseboard management controller in the second server via the communication network between baseboard management controllers, so that the first baseboard management controller and the second baseboard management controller complete synchronization information configuration based on the information to be configured.
[0060] Here, the baseboard management controller (BMC) in the server is responsible for the configuration of the server, so the transmission of the information to be configured can utilize the communication between the baseboard management controllers. The communication settings of this part are set from a security perspective and can be independent of the operating system (OS). In the implementation process, the baseboard management controller set in the server can be discovered through Avahi, and then the information to be configured can be obtained through the baseboard management controller, and the configuration of the BIOS can be completed.
[0061] During the implementation process, the communication network between the baseboard management controllers can be used to send the configuration information. The communication network of the baseboard management controller is divided into a shared network and a dedicated network. If one of the networks fails, it can be switched to other networks.
[0062] In some embodiments, the baseboard management controllers also use the service network of the server to send and receive data, that is, the service network can also be used to send the information to be configured. The baseboard management controller in the server is also responsible for sending and receiving data using the service network.
[0063] In the embodiment of the present application, the communication network between baseboard management controllers can be used to send the information to be configured, so that the security of sending the information to be configured can be effectively improved, and the efficiency of sending and receiving the information to be configured can also be improved.
[0064] In some embodiments, before executing step S130 "the first server sends the information to be configured to the second server", the following steps may also be performed:
[0065] Step S140: the first server obtains server selection information;
[0066] Here, the server selection information may be information of a determined server that receives the information to be configured.
[0067] During implementation, one or more second servers may be selected to receive the information to be configured. For example, the client of the first server may provide a visual interface for server selection information, and the user may select the server to receive the information to be configured according to the configuration requirements.
[0068] Step S150: The first server determines, based on the server selection information, a second server in the neighbor group that receives the information to be configured.
[0069] During implementation, the first server may determine the second server that receives the information to be configured based on the determined server selection information. For example, when a target server is determined, the target server may be determined to be the server that receives the information to be configured.
[0070] In the embodiment of the present application, the first server obtains the server selection information, and based on the server selection information, determines the second server in the neighbor group to receive the information to be configured. In this way, it is possible to flexibly determine one or more second servers for synchronous configuration in the neighbor group.
[0071] In some embodiments, the above configuration method further includes the following steps:
[0072] Step S160: The first server obtains the configuration effective time;
[0073] Here, the effective mode includes: forced effective mode and customized effective mode. Among them, forced effective mode means immediate effective mode. For example, you can complete the configuration of UEFI setting options immediately and restart the server immediately to make it effective. Customized effective mode can set the effective time and effective mode according to the user's usage requirements. For example, it can be set to take effect at the next server restart, or it can be set to take effect by restarting the server in the early morning.
[0074] During implementation, the client of the first server may provide a visual interface for determining the validation mode, and the user may select a suitable validation mode according to the validation time requirement. For example, the visual interface may provide the user with the option of mandatory validation or customized validation.
[0075] Correspondingly, the above step S130 "the first server sends the information to be configured to the second server, so that the first server and the second server complete the synchronization information configuration based on the information to be configured" can be implemented by the following process:
[0076] The first server sends the information to be configured and the configuration effective time to the second server, so that the first server and the second server complete synchronization information configuration based on the information to be configured and the configuration effective time.
[0077] During implementation, the synchronization information configuration of the first service and the second server can be completed based on the configuration effective time. For example, when the effective time is obtained as mandatory, the first server and the second server can be forced to restart to implement the mandatory configuration.
[0078] In the embodiment of the present application, the first server obtains the configuration effective time; based on the configuration effective time, the synchronization information configuration of the first service and the second server is completed. In this way, the configuration can be completed at the configuration effective time based on the user's choice, meeting the different configuration effective time requirements of the user.
[0079] In some embodiments, the information to be configured is unified extensible firmware interface setting information, and the above configuration method further includes the following steps:
[0080] Step S170: The first server triggers a host restart based on the unified extensible firmware interface setting information and the configuration effective time to implement configuration of the extensible firmware interface setting information synchronized with the second server.
[0081] Here, the Extensible Firmware Interface Setting Information includes multiple key information and configuration options of the electronic device, which allow users to adjust and manage the computer's startup process, hardware settings, security features, etc. Including: startup management, system information, power management, security settings, etc., among which startup management includes setting the startup sequence, startup mode, safe startup and fast startup, etc.; system information includes setting the system date and time, etc.; power management is used to set power management options such as wake-up timer, sleep state, etc.; security settings include user password (User Password), which is used to set or change the password required to start the server, and hard disk password (HDD Password), which is used to set or change the hard disk access password.
[0082] During implementation, the first server and the second server can trigger host restart based on the unified extensible firmware interface setting information and the configuration effective time, so that the first server and the second server can synchronously execute the configuration of the extensible firmware interface setting information.
[0083] In an embodiment of the present application, the first server and the second server trigger the host restart based on the unified extensible firmware interface setting information and the configuration effective time. In this way, the configuration of the extensible firmware interface setting information synchronized between the first server and the second server can be achieved, which simplifies the process of configuring the same extensible firmware interface settings for multiple servers and effectively improves the configuration efficiency of the extensible firmware interface settings on multiple servers.
[0084] In some embodiments, before "the first server sends the information to be configured to the second server" in the above step S130, the following steps are also included:
[0085] Step S180: The first server obtains the information to be configured by using the client, wherein the client can display a visual interface, and obtains the information to be configured by using the visual interface;
[0086] Here, a visual interface can be set on the client of the first server, and the visual interface provides the user with the information to be configured of the configuration service. For example, the user can configure the extensible firmware interface setting information of the server on the visual interface.
[0087] Correspondingly, in the above step S130, "the first server sends the information to be configured to the second server" can also be implemented by the following process:
[0088] The first server sends the information to be configured to the second server via unicast or broadcast.
[0089] Here, unicast is the most basic and common communication method in the network. It refers to the data being transmitted directly from a sending node (such as the first server) to another specific receiving node (such as a second server). Broadcast refers to the data being sent from one node (such as the first server) to all nodes (second servers) in the neighbor group. In broadcast mode, the first server sends a data packet once, and all second servers in the neighbor group will receive this data packet.
[0090] In some embodiments, the first server may send the information to be configured to a second server by unicasting, and then the second server may send the information to be configured again by unicasting, and so on, the information to be configured may be sent to all second servers.
[0091] In some embodiments, the first server may send the information to be configured to all second servers by broadcasting once.
[0092] In the embodiment of the present application, the first server uses the client to obtain the information to be configured. In this way, a method for setting the information to be configured is provided to the user in a simpler and easier way to interact with the server. The first server sends the information to be configured to the second server via unicast or broadcast. In this way, a flexible and diverse method for sending the information to be configured is provided.
[0093] Figure 3 A schematic diagram of the implementation process of the unified extensible firmware interface configuration provided in the embodiment of the present application is shown in FIG. Figure 3 As shown, this can be achieved by following the steps below:
[0094] Step S310: Use Avahi daemon to build a neighbor group.
[0095] Here, Avahi daemon is a service daemon running on the Linux operating system, which implements Zero Configuration Networking (Zeroconf), also known as mDNS / DNS-SD protocol, allowing devices and services to be discovered without configuration in the local area network. Avahi Daemon uses multicast DNS (mDNS) to achieve automatic discovery of devices and services. When a new device joins the network, it sends an mDNS broadcast message to announce its existence and the services it provides. Other devices listen to these broadcasts to discover the existence of new devices and obtain information about the required services.
[0096] During the implementation process, the construction of the neighbor group can be completed through the following steps S311 to S314.
[0097] Step S311, mDNS service is enabled;
[0098] mDNS, or Multicast DNS, is a service that allows devices within a local area network to discover and communicate with each other without a traditional DNS server. "DNS" refers to Domain Name System.
[0099] During the implementation process, the baseboard management controller of the node in the LAN starts Avahi daemon to enable the mDNS device discovery function. First, you can install the Avahi software package on the node baseboard management controller. After the installation is complete, start Avahi daemon. After Avahi daemon is started and configured correctly, the mDNS device discovery function is enabled. At this time, the baseboard management controller of the server can discover other devices in the LAN, and other devices can also discover the baseboard management controller of the server.
[0100] Step S312, searching for all discoverable nodes in the current local area network;
[0101] During the implementation process, node A starts the Avahi daemon, and after the mDNS device discovery function is enabled, multiple other nodes in the LAN can be discovered.
[0102] For example, when the baseboard management controller on a server starts the Avahi daemon and the mDNS device discovery function is enabled, multiple other servers in the LAN can be discovered.
[0103] Step S313: Whether it is the specified target type (Vendor Specific);
[0104] Here, the Vendor Specific field is an optional, vendor-specific data area used to carry vendor-specific information in the communication protocol or data message. This information may include vendor identification, model identification, specific function configuration, device status, etc. Through the Vendor Specific field, vendors can implement their own specific needs without changing the general protocol structure.
[0105] In the implementation process, it can be determined based on the Vendor Specific field of other servers whether it is a specified target type. For example, it can be determined based on the Vendor Specific field whether the server is a server of a preset manufacturer.
[0106] Step S314: Build a neighbor group.
[0107] During implementation, other nodes that meet the specified target type may be combined with the node A to form a neighbor group. For example, nodes from the same manufacturer may be combined into a neighbor group, or nodes from the same manufacturer and the same model may be combined into a neighbor group.
[0108] Figure 4 A schematic diagram of a neighbor group network provided in an embodiment of the present application, such as Figure 4 As shown, the schematic diagram includes: node A, node B, node C, node D, node E, wherein,
[0109] The neighboring group multicast DNS (mDNS) consisting of nodes A, B, C, D and E is a ring-structured network. Among them, mDNS is a protocol for automatic discovery of devices and services within a local area network (usually in the same subnet). mDNS allows devices to send and receive DNS queries and responses through multicast addresses without relying on a central server or configuration file. In this way, devices can discover and access each other by their names without a traditional DNS server. The protocol is used in small networks, home networks, Internet of Things (IoT) environments, and scenarios where devices need to be automatically discovered and configured.
[0110] In some embodiments, the nodes in the neighbor group may also form a star structure, a chain structure, a tree structure, a mesh structure or a honeycomb structure according to the requirements. Here, the network structure of the neighbor group is not limited.
[0111] Step S320, configuring UEFI setting options;
[0112] Here, the Unified Extensible Firmware Interface (UEFI) settings allow you to configure various parameters of hardware devices to improve system performance and security. Among them, UEFI setting options include the following types:
[0113] Boot device selection: In the UEFI / BIOS setup options, you can set which device the computer boots from, such as hard disk, USB drive, or network boot.
[0114] Boot mode setting: UEFI supports multiple boot modes, including UEFIOnly, Legacy Support, UEFIFirst or Legacy First, Legacy Only, etc. You can select the appropriate boot mode as needed. For example, the UEFIOnly mode uses the Globally Unique Identifier Partition Table (GUID Partition Table, GPT) partition format for booting, which is suitable for devices that support UEFI booting.
[0115] Security Settings: In the Security or Password tab, you can set a power-on password, hard disk password, and security chip, etc. These settings help protect the computer from unauthorized access.
[0116] Hotkey mode setting: Users can change the hotkey mode in UEFI / BIOS Setup Utility and choose whether to enable or disable the hotkey mode.
[0117] Always-on function setting: For computers with an Always-on interface, you can enable or disable the Always-on function in UEFI / BIOS Setup Utility.
[0118] During implementation, a configuration interface for configuring UEFI setup options may be provided to the user, so that the user can configure the UEFI setup options using the configuration interface.
[0119] Step S330: Select a target neighbor node;
[0120] During implementation, the node that publishes the configuration UEFI setup option may provide a user visualization interface, so that the user can select other target neighbor nodes for implementing synchronous configuration of the UEFI setup option in the neighbor group corresponding to the node on the visualization interface.
[0121] Step S340, selecting a validation method;
[0122] Here, the effective modes include: 1. Forced effective mode; 2. Customized effective mode. Forced effective mode means immediate effective mode. For example, you can configure the UEFI setup options immediately and restart the server immediately to make it effective. Customized effective mode can set the effective time and effective mode according to user needs. For example, you can set it to take effect at the next server restart or restart the server in the early morning to make it effective.
[0123] In the implementation process, the execution order of the above steps S430 and S440 is not limited. For example, the user can operate node A, configure the UEFI setup options through the baseboard management controller of node A, and select the target neighbor node to be synchronized.
[0124] Step S350: Publish the configuration to the target node and record the operation log;
[0125] Here, the changed UEFI setup option can be published on a baseboard management controller of a target node, and all nodes that join the "partnership", that is, nodes in the neighbor group, can receive it.
[0126] During the implementation process, each server that configures the UEFI setup option may record an operation log during the process of configuring the UEFI setup option.
[0127] Step S360: trigger the host to restart according to the validation method to make the UEFI setting option effective.
[0128] During the implementation process, the baseboard management controller of the target neighbor node receives the configuration file, captures the effective action type, and triggers the corresponding action of processing the configuration file according to the type.
[0129] In some embodiments, when forced effectiveness is selected, the host (HOST) can be immediately triggered to restart after the configuration of the UEFI setup option is completed, so that the UEFI setting option takes effect immediately after the restart.
[0130] In some embodiments, when the next restart is selected to take effect, the next host restart can be waited for after the UEFI setup option is configured, so that the UEFI setting option takes effect after the host triggers the next restart.
[0131] After executing step S360, the Avhai service configured on the node continues to return to monitoring.
[0132] In some embodiments, the Avahi core API (Avahicore API), an open source tool based on mDNS, can be used to develop the synchronization configuration function, and implement the function by supporting custom communication protocols, such as Redfish, Simple Network Management Protocol (SNMP), Intelligent Platform Management Interface (IPMI), etc. Among them, Redfish is a modern hardware management application programming interface (Application Programming Interface, API) standard based on the RESTful protocol, which is used to simplify the management of servers, storage devices and other data center hardware. SNMP is an application layer protocol for managing network devices such as routers, switches, servers, etc. IPMI is a hardware-level interface standard that can provide remote monitoring, alarm, recovery and management functions for computer system hardware.
[0133] In some embodiments, the baseboard management controller of the server can be monitored by a designated service, and then a callback function is used to transfer the UEFI settings to implement the setting deployment function of the BIOS setting options. The designated service can be an IPMI service.
[0134] In the embodiment of the present application, the Avahi core application interface, an open source tool based on mDNS, is used to support custom communication protocols. In this way, based on the open source protocol, the cost is low and the development cycle is short. Special fields for custom discovery are supported, i.e., identification of Specifc Vendor, etc., to form a specified "partnership". The changed UEFI setting options can be published on the baseboard management controller of a node, and all nodes that join the "partnership" can receive them, and whether the configuration takes effect immediately can also be selected. Supports multiple modes of broadcast or unicast. In this way, the configuration is flexible, and after the function is turned on, it supports full coverage or target selection.
[0135] By starting a daemon in the baseboard management controller of the node, other baseboard management controllers in the local area network can be discovered, and the daemon is used to establish trusted data communication between baseboard management controllers. The baseboard management controller is monitored through specified services, and the callback function is used to pass the UEFI settings to implement the setting deployment function of the BIOS setting options.
[0136] Based on the foregoing embodiments, an embodiment of the present application provides a configuration device, which includes the modules included, each module includes each sub-module, each sub-module includes a unit, which can be implemented by a processor in an electronic device; of course, it can also be implemented by a specific logic circuit; in the implementation process, the processor can be a central processing unit (CPU), a microprocessor (MPU), a digital signal processor (DSP) or a field programmable gate array (FPGA), etc.
[0137] Figure 5 A schematic diagram of the structure of a configuration device provided in an embodiment of the present application is shown in FIG. Figure 5 As shown, the device 500 includes:
[0138] A search module 510, used to start a server daemon process, which searches for other servers in the local area network;
[0139] A first determination module 520 is used to determine a server that meets a preset matching condition among the other servers as a second server, so as to form a neighbor group with all the second servers, wherein the preset matching condition is set to enable all servers in the neighbor group to synchronously execute the same configuration task;
[0140] The sending module 530 is used to send the information to be configured to the second server, so that the first server and the second server complete the synchronization information configuration based on the information to be configured.
[0141] In some embodiments, the first determination module 520 includes an acquisition submodule and a determination submodule, wherein the acquisition submodule is used to acquire identification information of other servers in the local area network; and the determination submodule is used to determine a server that meets the preset identification information as the second server.
[0142] In some embodiments, the identification information includes at least one of the following: a manufacturer identification, a model identification, a serial number, a version number, and a configuration parameter.
[0143] In some embodiments, the determination submodule includes a setting unit and a determination unit, wherein the setting unit is used to set a whitelist based on the preset identifier; and the determination unit is used to determine a server matching the preset identifier in the whitelist as the second server.
[0144] In some embodiments, the sending module 530 is also used to send the information to be configured to the second baseboard management controller in the second server based on the first baseboard management controller set in the first server using the communication network between baseboard management controllers, so that the first baseboard management controller and the second baseboard management controller complete the synchronization information configuration based on the information to be configured.
[0145] In some embodiments, the configuration method further includes a first acquisition module and a second determination module, wherein the acquisition module is used to acquire server selection information; and the second determination module is used to determine a second server in the neighbor group to receive the information to be configured based on the server selection information.
[0146] In some embodiments, the configuration device also includes a second acquisition module for acquiring the configuration effective time; correspondingly, the sending module 530 is also used to send the information to be configured and the configuration effective time to the second server, so that the first server and the second server complete the synchronization information configuration based on the information to be configured and the configuration effective time.
[0147] In some embodiments, the information to be configured is unified extensible firmware interface setting information, and the configuration device also includes a restart module, which is used to trigger the host restart based on the unified extensible firmware interface setting information and the configuration effective time to achieve the configuration of the extensible firmware interface setting information synchronized with the second server.
[0148] In some embodiments, the device also includes a third acquisition module, which uses a client to obtain the information to be configured, wherein the client can display a visual interface and use the visual interface to obtain the information to be configured; correspondingly, the sending module is also used to send the information to be configured to the second server via unicast or broadcast.
[0149] In some embodiments, the search module 510 is further used to start a zero-configuration network service to enable the first server to find other servers in the local area network that can establish data communication with the server.
[0150] The description of the above device embodiment is similar to the description of the above method embodiment, and has similar beneficial effects as the method embodiment. For technical details not disclosed in the device embodiment of the present application, please refer to the description of the method embodiment of the present application for understanding.
[0151] It should be noted that in the embodiment of the present application, if the above method is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the embodiment of the present application is essentially or the part that contributes to the relevant technology can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable an electronic device (which can be a mobile phone, a tablet computer, a laptop computer, a desktop computer, etc.) to execute all or part of the methods described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a U disk, a mobile hard disk, a read-only memory (ROM), a disk or an optical disk. In this way, the embodiment of the present application is not limited to any specific combination of hardware and software.
[0152] Correspondingly, an embodiment of the present application provides a storage medium on which a computer program is stored. When the computer program is executed by a processor, the steps in the configuration method provided in the above embodiment are implemented.
[0153] Correspondingly, an embodiment of the present application provides an electronic device, Figure 6 A hardware entity diagram of an electronic device provided in an embodiment of the present application, such as Figure 6 As shown, the hardware entity of the device 600 includes: a memory 601 and a processor 602, wherein the memory 601 stores a computer program that can be run on the processor 602, and the processor 602 implements the steps in the configuration method provided in the above embodiment when executing the program.
[0154] The memory 601 is configured to store instructions and applications executable by the processor 602, and can also cache data to be processed or processed by the processor 602 and various modules in the electronic device 600 (for example, image data, audio data, voice communication data, and video communication data), which can be implemented through flash memory (FLASH) or random access memory (Random Access Memory, RAM).
[0155] It should be noted here that the description of the above storage medium and device embodiments is similar to the description of the above method embodiments, and has similar beneficial effects as the method embodiments. For technical details not disclosed in the storage medium and device embodiments of this application, please refer to the description of the method embodiments of this application for understanding.
[0156] It should be understood that "one embodiment" or "an embodiment" mentioned throughout the specification means that specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, "in one embodiment" or "in an embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It should be understood that in various embodiments of the present application, the size of the sequence number of the above-mentioned processes 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 embodiments of the present application. The above-mentioned sequence numbers of the embodiments of the present application are only for description and do not represent the advantages and disadvantages of the embodiments.
[0157] It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element.
[0158] In the several embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as: multiple units or components can be combined, or can be integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the components shown or discussed can be through some interfaces, and the indirect coupling or communication connection of the devices or units can be electrical, mechanical or other forms.
[0159] The units described above as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units; they may be located in one place or distributed on multiple network units; some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.
[0160] In addition, all functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may be a separate unit, or two or more units may be integrated into one unit; the above-mentioned integrated units may be implemented in the form of hardware or in the form of hardware plus software functional units.
[0161] A person skilled in the art can understand that all or part of the steps of implementing the above method embodiment can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it executes the steps of the above method embodiment; and the aforementioned storage medium includes: mobile storage devices, read-only memories (ROM), magnetic disks or optical disks, etc., various media that can store program codes.
[0162] Alternatively, if the above-mentioned integrated unit of the present application is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application can be essentially or partly reflected in the form of a software product that contributes to the relevant technology. The computer software product is stored in a storage medium, including several instructions to enable an electronic device (which can be a mobile phone, a tablet computer, a laptop computer, a desktop computer, etc.) to execute all or part of the methods described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROMs, magnetic disks, or optical disks.
[0163] The methods disclosed in several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
[0164] The features disclosed in several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
[0165] The features disclosed in several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.
[0166] The above is only an implementation method of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.
Claims
1. A configuration method, the method comprising: The first server starts a server daemon process, and the server daemon process searches for other servers in the local area network; The first server determines a server among the other servers that meets a preset matching condition as a second server, so as to build a neighbor group with all the second servers, wherein the preset matching condition is set to enable all servers in the neighbor group to synchronously execute the same configuration task; The first server sends the information to be configured to the second server, so that the first server and the second server complete synchronization information configuration based on the information to be configured.
2. The method according to claim 1, wherein the first server determines a server among the other servers that meets a preset matching condition as the second server, comprising: The first server obtains identification information of other servers in the local area network; The first server determines a server that meets preset identification information as the second server.
3. The method of claim 2, wherein the identification information comprises at least one of the following: a manufacturer identification, a model identification, a serial number, a version number, and a configuration parameter.
4. The method according to claim 2, wherein the first server determines a server that meets preset identification information as the second server, comprising: The first server sets a whitelist based on the preset identifier; The first server determines a server matching a preset identifier in the whitelist as the second server.
5. The method according to claim 1, wherein the first server sends the information to be configured to the second server, so that the first server and the second server complete synchronization information configuration based on the information to be configured, comprising: The first baseboard management controller arranged in the first server sends the information to be configured to the second baseboard management controller in the second server via the communication network between baseboard management controllers, so that the first baseboard management controller and the second baseboard management controller complete synchronization information configuration based on the information to be configured.
6. The method according to any one of claims 1 to 5, before the first server sends the information to be configured to the second server, the method further comprises: The first server obtains server selection information; The first server determines, based on the server selection information, a second server in the neighbor group that receives the information to be configured.
7. The method according to any one of claims 1 to 5, further comprising: The first server obtains the configuration effective time; Correspondingly, the first server sends the information to be configured to the second server, so that the first server and the second server complete synchronization information configuration based on the information to be configured, including: The first server sends the information to be configured and the configuration effective time to the second server, so that the first server and the second server complete synchronization information configuration based on the information to be configured and the configuration effective time.
8. The method according to claim 7, wherein the information to be configured is UEFI setting information, and the method further comprises: The first server triggers a host restart based on the unified extensible firmware interface setting information and the configuration effective time to implement configuration of the extensible firmware interface setting information synchronized with the second server.
9. The method according to any one of claims 1 to 5, before the first server sends the information to be configured to the second server, the method further comprises: The first server obtains the information to be configured by using a client, wherein the client is capable of displaying a visual interface and obtaining the information to be configured by using the visual interface; Correspondingly, the first server sends the information to be configured to the second server, including: The first server sends the information to be configured to the second server via unicast or broadcast.
10. The method according to any one of claims 1 to 5, wherein the first server starts a server daemon process and searches for other servers in the local area network, comprising: The first server starts a zero configuration network service to enable the first server to find other servers in the local area network that can establish data communication with the server.
Citation Information
Patent Citations
Routing method in server cluster system
CN102333029A
Cluster configuration updating method
CN102916974A
Method and system for maintaining system configuration consistency
CN108696372A
Server deployment method, device and equipment and readable storage medium
CN113495732A
Method and device for monitoring running state of server
CN117421177A