Server resource allocation system, method and apparatus
By adding a device BMC to the PCIe device, the server resource allocation process is simplified, solving the problems of high management complexity and long startup time in the existing technology, and realizing fast and reliable resource allocation and startup.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-09-15
- Publication Date
- 2026-03-31
AI Technical Summary
The existing management methods for server PCIe devices are complex, resulting in high system complexity and long startup times, making it difficult to achieve on-demand resource allocation.
By adding a device BMC to the PCIe device, resource requests can be sent directly to the device BMC through the user interface. The device BMC then forwards the requests to the device resource allocation system, simplifying the process and reducing reliance on the BIOS through a BMC-centric scheduling scheme, allowing direct access to the operating system.
This greatly simplifies the resource allocation process, reduces the possibility of errors, shortens server startup time, and improves the reliability and delivery efficiency of resource allocation.
Smart Images

Figure CN116010307B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of computers, and more particularly to the field of cloud computing, specifically to a server resource allocation system, method, and apparatus. Background Technology
[0002] Elastic Compute Service (ECS) is a computing service with elastically scalable processing power, and its management is simpler and more efficient than that of physical servers. Cloud servers help users quickly build more stable and secure applications, reduce the difficulty of development and maintenance and overall costs, allowing customers to focus more on innovation in their core business.
[0003] With the development of server technology, server configurations are becoming increasingly complex, and functional expansion is becoming more extensive. PCIe (Peripheral Component Interconnect Express) devices are an important way to expand server functionality. Through the slot design of PCIe devices, users can freely combine various PCIe devices.
[0004] Currently, server PCIe devices are mainly fixed types, such as network cards and storage devices. The few devices that support dynamic switching have very complicated processes, which greatly increases system complexity and lengthens server startup time, failing to truly achieve on-demand enabling. Summary of the Invention
[0005] This disclosure provides a server resource allocation system, method, apparatus, device, storage medium, and computer program product.
[0006] According to a first aspect of this disclosure, a server resource allocation system is provided, comprising: a terminal having a device BMC, a device resource allocation system, and a PCIe device set installed thereon, wherein the device BMC is configured to receive a user's PCIe resource request and forward the PCIe resource request to the device resource allocation system, the device resource allocation system is configured to select a target PCIe device from the PCIe device set according to the PCIe resource request and allocate it to the user, and the device BMC is configured to send a server restart request to a server to load the target PCIe device; and a server configured to receive the server restart request sent by the device BMC and load the PCIe device indicated in the server restart request.
[0007] According to a second aspect of this disclosure, a server resource allocation method is provided, comprising: receiving a user's PCIe resource request; selecting a target PCIe device from a set of PCIe devices and allocating it to the user based on the PCIe resource request; and sending a server restart request to the server instructing the loading of the target PCIe device.
[0008] According to a third aspect of this disclosure, a server resource allocation apparatus is provided, comprising: a receiving unit configured to receive a PCIe resource request from a user; an allocation unit configured to select a target PCIe device from a set of PCIe devices and allocate it to the user based on the PCIe resource request; and a sending unit configured to send a server restart request instructing the server to load the target PCIe device.
[0009] According to a fourth aspect of this disclosure, an electronic device is provided, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor to enable the at least one processor to perform the method of the second aspect.
[0010] According to a fifth aspect of this disclosure, a non-transitory computer-readable storage medium is provided storing computer instructions, wherein the computer instructions are configured to cause the computer to perform the method described in the second aspect.
[0011] According to a sixth aspect of this disclosure, a computer program product is provided, comprising a computer program that, when executed by a processor, implements the method described in the second aspect.
[0012] The server resource allocation system, method, and apparatus provided in the embodiments of this disclosure add a management and control chip such as a baseboard management controller (BMC) to the PCIe device. If the server needs N types of resources, the user interface can notify the PCIe device BMC of the N types of resource information. The device resource allocation system obtains the resource information of the device BMC and then provides the N types of resources. This is independent of the external environment, greatly simplifies the process, and improves the reliability of resource changes and delivery efficiency.
[0013] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description
[0014] The accompanying drawings are provided to better understand this solution and do not constitute a limitation of this disclosure. Wherein:
[0015] Figure 1a This is a flowchart of server resource allocation methods in existing technologies;
[0016] Figure 1b This is a flowchart of the server resource allocation method disclosed herein;
[0017] Figure 2 This is an architecture diagram of the publicly disclosed server resource allocation system;
[0018] Figure 3 This is a flowchart of an embodiment of the server resource allocation method according to the present disclosure;
[0019] Figure 4 This is a flowchart of yet another embodiment of the server resource allocation method according to the present disclosure;
[0020] Figure 5 This is a schematic diagram of a structure of an embodiment of a server resource allocation device according to the present disclosure;
[0021] Figure 6 This is a schematic diagram of the structure of a computer system suitable for implementing embodiments of the present disclosure. Detailed Implementation
[0022] The exemplary embodiments of this disclosure are described below with reference to the accompanying drawings, including various details of the embodiments to aid understanding, and should be considered merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of this disclosure. Similarly, for clarity and brevity, descriptions of well-known functions and structures are omitted in the following description.
[0023] It should be noted that, unless otherwise specified, the embodiments and features described in this disclosure can be combined with each other. This disclosure will now be described in detail with reference to the accompanying drawings and embodiments.
[0024] Figure 1a A flowchart illustrating existing server resource allocation methods is provided. Some cloud vendors support pluggable devices through hardware and software collaboration based on open-source frameworks (such as OpenStack). Currently, in the server field, servers pre-deploy PCIe physical devices, and servers load all PCIe type devices by default.
[0025] In existing technologies, users can send PCIe resource requests (network cards / hard drives, etc.) through a user interface. The user interface sends the PCIe resource request to the scheduling system. The scheduling system is a continuously running daemon process that receives and responds to PCIe resource requests from users, and is responsible for creating and destroying instances and controlling forwarding. The scheduling system forwards the PCIe resource request to a complex network system, passing through multiple levels of network switches, and finally reaching the target server cluster. The target server cluster is responsible for managing each server node under the cluster, i.e., the device system. The device system sends the PCIe resource request to the device resource receiving system. This device resource receiving system is based on the open-source Nova design and is very complex. The device resource receiving system then forwards the PCIe resource request to the device resource allocation system (a process running within the server node's OS), which is responsible for executing the actual allocation and release of PCIe resources. After the PCIe resources are allocated, a server restart is triggered. When the server restarts, it loads the Option ROM (optional memory) of all PCIe devices. After loading the Option ROMs of all PCIe devices, the server enters the OS (operating system). The OS loads the PCIe resources requested by the user. For example, if the user requested 4 network cards and 4 hard drives, the server will load these resources when it enters the OS. Under the OS, you can see that there are 4 network cards and 4 hard drives.
[0026] Figure 1b The diagram shows a flowchart of the server resource allocation method disclosed herein. A management control chip with BMC functionality is added to the PCIe device, named the device BMC. Users can send PCIe resource requests to the device BMC via a simple, general-purpose network system. The device BMC then forwards the PCIe resource requests to the device resource allocation system (a process running within the device OS), responsible for allocating and releasing PCIe resources. After resource allocation, a server restart is triggered to make the requested resources effective. The server can directly access the OS without going through the BIOS (Basic Input Output System).
[0027] Figure 1b The design shown, with BMC as the control center, requires only 6 steps. Figure 1aThe design, which requires at least nine steps and includes multiple subsystems within each system, enables rapid resource allocation, significantly simplifying process complexity, reducing the likelihood of errors, and shortening resource allocation time. Furthermore, the design disclosed herein has more universal hardware and software requirements, reducing system development and maintenance complexity, simplifying deployment, and improving delivery efficiency. Through a BMC-centric scheduling scheme, once the user has determined the boot device, loading the PCIe device's Option ROM is no longer required during the server startup phase, greatly reducing server startup time, minimizing resource waste, and improving user experience.
[0028] Figure 2 An architecture diagram of a server resource allocation system to which this disclosure can be applied is shown. The server resource allocation system includes:
[0029] The terminal is equipped with a Baseboard Management Controller (BMC), a device resource allocation system, and a PCIe (Peripheral Component Interconnect Express) device set. The BMC is configured to receive PCIe resource requests from users and forward them to the device resource allocation system. The device resource allocation system is configured to select a target PCIe device from the PCIe device set based on the PCIe resource request and allocate it to the user. The BMC is configured to send a server restart request to the server to load the target PCIe device.
[0030] The server is configured to receive a server restart request sent by the device BMC and load the PCIe device indicated in the server restart request.
[0031] Servers can install a Server BMC (Server Management Center), which enables server control, information monitoring, and other functions, serving as a platform for intuitively presenting server information. Server clients can access server information by visiting the BMC. Server performance depends not only on the CPU but also on the PCIe devices it uses. Common PCIe devices include RAID (redundant arrays of independent disks), GPUs (graphics processing units), NICs (network interface controllers), HBAs (host bus adapters), and FPGAs (field-programmable gate arrays). Servers are configured with different PCIe devices (one or more used together) at the factory according to requirements. The BMC needs to obtain information such as the type, version, manufacturer, status, bandwidth, and temperature of the PCIe devices. Currently, each type of PCIe device requires separate development and maintenance for the BMC. When the server model or requirements change (e.g., changes in PCIe device configuration), the BMC code needs to be modified for adaptation.
[0032] This disclosure adds a device BMC to the PCIe device side for managing and controlling all PCIe devices. The device BMC chip structure is basically the same as that of the server BMC, with only slight differences in functionality.
[0033] The specific process is as follows: Figure 2 As shown:
[0034] 1. The user fills in the required PCIe resources through the operation interface on the terminal, and then the background software of the operation interface generates a PCIe resource request and sends it to the device BMC. For example, the user requests 2 network cards and 1TB of disk space.
[0035] 2. The device BMC forwards the resource request to the device resource allocation system.
[0036] 3. The device resource allocation system selects the target PCIe device from multiple available PCIe devices based on the PCIe resource request. For example, it randomly selects 2 network cards from 10. It randomly selects a 1TB disk from 20 disks. If none of the disks have a capacity of 1TB, multiple disks can be selected and allocated to the user, for example, two 0.5TB disks.
[0037] Optionally, users can specify PCIe device attribute information such as quantity, capacity, speed, and brand in their PCIe resource requests. The device resource allocation system can obtain the attribute information of all PCIe devices and then match it with the user's PCIe resource request. If the number of successfully matched PCIe devices exceeds the user's demand, the system can randomly select PCIe devices with a matching quantity. Optionally, if the user does not specify some attribute information, the system can prioritize allocating PCIe devices with better performance. For example, even if the user requests a 0.5TB disk, a 1TB disk can be allocated if resources are sufficient, facilitating future expansion without requiring device switching.
[0038] Optionally, historical data on user services can be collected to statistically analyze information related to user expansion and contraction. User resource demands can be predicted by pre-training a prediction model that utilizes historical data. An allocation coefficient is set based on the probability of expansion. For example, with a 90% probability of expansion, the allocation coefficient can be 1.9, meaning resources are allocated based on the user's requested resource quantity * 1.9. If a user requests 1TB of disk space, 1.9TB can be allocated. If contraction is predicted (i.e., the probability of expansion is 0), the allocation coefficient is 1, allocating resources entirely based on the user's requested resource quantity.
[0039] 4. After allocating resources, the device resource allocation system notifies the device BMC which resources were allocated. Then, the device BMC notifies the server to restart in order to load these resources.
[0040] 5. The server restarts and enters the operating system, loading the allocated PCIe resources.
[0041] Once a user's business data arrives at the terminal, it will be directly directed to the PCIe resource allocated to it. For example, by modifying the data packet address, the destination address of the user's data packets will be changed to the address of the PCIe device allocated to him.
[0042] The system provided in the above embodiments of this disclosure allocates PCIe resources to users based on their PCIe resource requests, rather than allocating fixed resources, thereby achieving elastic device supply and on-demand allocation, making the devices more intelligent. By installing a device BMC on the PCIe device side, the PCIe device can be flexibly managed, enhancing the elastic scalability, effectiveness, and reliability of cloud server products. It can quickly deliver the cloud resources needed by customers without the need for complex networks, saving deployment time per node by minutes or more.
[0043] In some optional implementations of this embodiment, the server is further configured to: send a request to the device BMC not to load the optional memory; the device BMC is further configured to: set the optional memory (Option ROM) of the PCIe devices allocated to the user in the PCIe device set to be unavailable according to the request not to load the optional memory. Normally, the optional memory of the PCIe devices is loaded by default when the server restarts. However, this disclosure, through a BMC-centric scheduling scheme, eliminates the need to load the Option ROM during the server startup phase once the user has determined the device to boot, greatly reducing server startup time, minimizing resource waste, and improving user experience.
[0044] In some optional implementations of this embodiment, the server includes a server BMC, and the device BMC and the server BMC transmit signaling through an I2C interface using the intelligent platform management interface protocol, and transmit service data through a network interface.
[0045] The I2C bus requires only two wires: a data line and a clock line. The bus interface is integrated within the chip, eliminating the need for special interface circuitry. Furthermore, the on-chip interface circuit's filter can eliminate glitches in the bus data. Therefore, the I2C bus simplifies hardware PCB layout, reduces system costs, and improves system reliability. Because the I2C chip has no other lines connected to the system besides these two data lines and a few interrupt lines, the I2C interface can be standardized and modularized using commonly available ICs, facilitating its reuse.
[0046] The I2C bus is a true multi-master bus. If two or more masters initiate data transmission simultaneously, collision detection and arbitration can prevent data corruption. Each device connected to the bus has a unique address. Any device can act as both a master and a slave, but only one master is allowed at a time. Data transmission and address settings are configured by software, offering great flexibility. Adding or removing devices from the bus does not affect the normal operation of other devices. The server BMC both sends control commands to and receives control commands from the device BMC. Therefore, the I2C bus is particularly suitable for communication between server BMCs and device BMCs.
[0047] Signaling between the server and devices is transmitted via the I2C interface, ensuring signaling stability and reliability, thus guaranteeing server scalability. Business data is transmitted via the network interface, improving data transmission speed and ensuring smooth business operations.
[0048] The use of the IPMI (Intelligent Platform Management Interface) protocol for communication makes the product universal, compatible with products from different manufacturers, and can reduce production costs.
[0049] IPMI can operate across different operating systems, firmware, and hardware platforms, intelligently monitoring, controlling, and automatically reporting the operational status of a large number of servers to reduce server system costs.
[0050] In some optional implementations of this embodiment, the device BMC and the device resource allocation system transmit signaling information through the KCS interface and transmit service data through the network interface. The KCS interface is a submodule under the BMC. Its initialization, including channel selection, clock enabling, and register mapping address (0xCA2 by default), is handled by the BMC driver. After the necessary initialization of the KCS interface, the BIOS can directly access it. The purpose of using the KCS interface is to facilitate communication using the IPMI (Intelligent Platform Management Interface) protocol. This makes the product universal, compatible with products from different manufacturers, and reduces production costs.
[0051] Signaling between the device's BMC and the device resource allocation system is transmitted through the KCS interface, which reduces latency and improves signaling stability and reliability, thereby ensuring server scalability. Business data is transmitted through the network interface, which improves data transmission speed and ensures smooth business operations.
[0052] Continue to refer to Figure 3 The diagram illustrates a flow 300 of an embodiment of a server resource allocation method according to the present disclosure. This server resource allocation method includes the following steps:
[0053] Step 301: Receive the user's PCIE resource request.
[0054] In this embodiment, the execution entity of the server resource allocation method (such as the terminal shown in Figure 1) can receive PCIe resource requests input by the user via a wired or wireless connection. The user can send PCIe resource requests (network cards / hard drives, etc.) through the terminal's user interface. For example, the user might request 4 network cards and 4 hard drives.
[0055] Step 302: Select the target PCIe device from the PCIe device set and assign it to the user based on the PCIe resource request.
[0056] In this embodiment, a target PCIe device is selected from multiple available PCIe devices based on the PCIe resource request. For example, two network cards are randomly selected from 10. A 1TB disk is randomly selected from 20 disks. If none of the disks have a capacity of 1TB, multiple disks can be selected and allocated to the user, for example, two 0.5TB disks.
[0057] Optionally, users can specify PCIe device attribute information such as quantity, capacity, speed, and brand in their PCIe resource requests. The device resource allocation system can obtain the attribute information of all PCIe devices and then match it with the user's PCIe resource request. If the number of successfully matched PCIe devices exceeds the user's demand, a random selection of matching PCIe devices can be made. Optionally, if the user does not specify any attribute information, higher-performance PCIe devices can be prioritized for allocation. For example, even if a user requests a 0.5TB disk, a 1TB disk can be allocated if resources are sufficient, facilitating future expansion without the need for switching.
[0058] Optionally, historical data on user services can be collected to statistically analyze information related to user expansion and contraction. User resource demands can be predicted by pre-training a prediction model that utilizes historical data. An allocation coefficient is set based on the probability of expansion. For example, with a 90% probability of expansion, the allocation coefficient can be 1.9, meaning resources are allocated based on the user's requested resource quantity * 1.9. If a user requests 1TB of disk space, 1.9TB can be allocated. If contraction is predicted (i.e., the probability of expansion is 0), the allocation coefficient is 1, allocating resources entirely based on the user's requested resource quantity.
[0059] Step 303: Send a server-restart request to the server instructing the loading of the target PCIe device.
[0060] In this embodiment, the device BMC notifies the server to restart in order to load the target PCIe device allocated to the user. The server restarts and enters either the operating system or the BIOS, loading the allocated PCIe resources. The server chooses to enter either the BIOS or the OS based on the user's settings.
[0061] Once a user's business data arrives at the device, it will be directly directed to the PCIe resource allocated to it. For example, by modifying the packet address, the destination address of the user's data packets can be changed to the address of the PCIe device allocated to him.
[0062] The method provided in the above embodiments of this disclosure adds a management and control chip such as BMC to the PCIe device. If the server needs N types of resources, the N types of resource information are notified to the PCIe device-side BMC through the user interface. The communication protocol adopts IPMI or a custom communication protocol. The device resource allocation system obtains the resource information of the device BMC and then provides N types of resources. It does not depend on the external environment, greatly simplifies the process, and improves the reliability of resource changes and delivery efficiency.
[0063] In some optional implementations of this embodiment, the method further includes: if the utilization rate of the PCIe devices allocated to the user is detected to be less than a first predetermined threshold, then releasing a portion of the PCIe devices already allocated to the user; if the utilization rate of the PCIe devices allocated to the user is detected to be greater than a second predetermined threshold, then selecting another portion of PCIe devices from the PCIe device set and allocating them to the user. Besides scaling up or down based on user configuration, the technical solution of this disclosure also supports adaptive scaling up or down. The utilization rate of PCIe devices within a predetermined time period can be statistically analyzed. If it is lower than the first predetermined threshold (e.g., 50%), it indicates a high idle rate for the PCIe devices, and some resources can be released to be reallocated to other users, thereby improving resource utilization. If the utilization rate is greater than the second predetermined threshold (e.g., 95%), some more PCIe resources can be allocated to the user to alleviate the pressure on the PCIe devices allocated to that user, achieving load balancing.
[0064] Continue to refer to Figure 4 The diagram illustrates a flow 400 of yet another embodiment of the server resource allocation method according to this disclosure. This server resource allocation method includes the following steps:
[0065] Step 401: Receive the user's PCIE resource request.
[0066] Step 402: Select the target PCIe device from the PCIe device set and assign it to the user based on the PCIe resource request.
[0067] Steps 401-402 are basically the same as steps 201-202, so they will not be described again.
[0068] Step 403: Receive a request from the server not to load optional storage.
[0069] In this embodiment, the user can decide which PCIe device will be booted next by issuing a command to the server through the terminal's interface. The server instructs the device's BMC to load the corresponding Option ROM and not load other types of devices. If the server does not enter the BIOS during startup or restart, it can be controlled not to load any Option ROM, thus significantly reducing server startup or restart time, accelerating service deployment and reducing maintenance time.
[0070] Step 404: As requested, disable the optional memory for the PCIe devices allocated to the user in the PCIe device set.
[0071] In this embodiment, the flag of the Option ROM of the PCIe device allocated to the user can be set to unavailable, so that the Option ROM will not be loaded when the server restarts.
[0072] Step 405: Send a server-restart request to the server instructing the loading of the target PCIe device.
[0073] In this embodiment, the device BMC notifies the server to restart in order to load the target PCIe device allocated to the user. The server restarts directly into the operating system, loads the allocated PCIe resources, and does not load the Option ROM.
[0074] Normally, the optional storage of the PCIe device is loaded when the server restarts. However, this disclosure uses a scheduling scheme centered on the BMC, so that once the user has determined the boot device, OptionROM no longer needs to be loaded during the server startup phase. This greatly reduces server startup time, reduces resource waste, and improves user experience.
[0075] Further reference Figure 5 As an implementation of the methods shown in the above figures, this disclosure provides an embodiment of a server resource allocation device, which is similar to... Figure 3 Corresponding to the method embodiments shown, this device can be specifically applied to various electronic devices.
[0076] like Figure 5 As shown, the server resource allocation device 500 of this embodiment includes: a receiving unit 501, an allocation unit 502, and a sending unit 503. The receiving unit 501 is configured to receive a user's PCIE resource request; the allocation unit 502 is configured to select a target PCIE device from the PCIE device set according to the PCIE resource request and allocate it to the user; the sending unit 503 is configured to send a server restart request to the server, instructing the loading of the target PCIE device.
[0077] In this embodiment, the specific processing of the receiving unit 501, the allocating unit 502, and the sending unit 503 of the server resource allocation device 500 can be referred to Figure 3 The corresponding steps are 301, 302, and 30 in the embodiment.
[0078] In some optional implementations of this embodiment, the apparatus 500 further includes a disabling unit (not shown in the figures), configured to: receive a request from the server to not load optional memory; and, according to the request, disable the optional memory of the PCIe devices allocated to the user in the PCIe device set.
[0079] In some optional implementations of this embodiment, the device 500 further includes a telescoping unit (not shown in the figures), configured to: if the utilization rate of the PCIe devices allocated to the user is detected to be less than a first predetermined threshold, release a portion of the PCIe devices already allocated to the user; if the utilization rate of the PCIe devices allocated to the user is detected to be greater than a second predetermined threshold, select another portion of PCIe devices from the PCIe device set and allocate them to the user.
[0080] According to embodiments of this disclosure, this disclosure also provides an electronic device, a readable storage medium, and a computer program product.
[0081] An electronic device includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor to enable the at least one processor to perform the method described in process 300.
[0082] A non-transitory computer-readable storage medium storing computer instructions, wherein the computer instructions are used to cause the computer to perform the method described in process 300.
[0083] A computer program product includes a computer program that, when executed by a processor, implements the method described in process 300.
[0084] Figure 6A schematic block diagram of an example electronic device 600 that can be used to implement embodiments of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the present disclosure described and / or claimed herein.
[0085] like Figure 6 As shown, device 600 includes a computing unit 601, which can perform various appropriate actions and processes based on a computer program stored in read-only memory (ROM) 602 or a computer program loaded from storage unit 608 into random access memory (RAM) 603. RAM 603 may also store various programs and data required for the operation of device 600. The computing unit 601, ROM 602, and RAM 603 are interconnected via bus 604. Input / output (I / O) interface 605 is also connected to bus 604.
[0086] Multiple components in device 600 are connected to I / O interface 605, including: input unit 606, such as keyboard, mouse, etc.; output unit 607, such as various types of monitors, speakers, etc.; storage unit 608, such as disk, optical disk, etc.; and communication unit 609, such as network card, modem, wireless transceiver, etc. Communication unit 609 allows device 600 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0087] The computing unit 601 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 601 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 601 performs the various methods and processes described above, such as server resource allocation methods. For example, in some embodiments, the server resource allocation method may be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 608. In some embodiments, part or all of the computer program may be loaded and / or installed on device 600 via ROM 602 and / or communication unit 609. When the computer program is loaded into RAM 603 and executed by the computing unit 601, one or more steps of the server resource allocation method described above may be performed. Alternatively, in other embodiments, the computing unit 601 may be configured to perform server resource allocation methods by any other suitable means (e.g., by means of firmware).
[0088] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), payload-programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.
[0089] The program code used to implement the methods of this disclosure may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus, such that when executed by the processor or controller, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0090] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0091] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).
[0092] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with embodiments of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet.
[0093] Computer systems can include clients and servers. Clients and servers are generally located far apart and typically interact via communication networks. Client-server relationships are created by computer programs running on the respective computers and having a client-server relationship with each other. Servers can be cloud servers, servers in distributed systems, or servers incorporating blockchain technology.
[0094] It should be understood that the various forms of processes shown above can be used to rearrange, add, or delete steps. For example, the steps described in this disclosure can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution disclosed in this disclosure can be achieved, and this is not limited herein.
[0095] The specific embodiments described above do not constitute a limitation on the scope of protection of this disclosure. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this disclosure should be included within the scope of protection of this disclosure.
Claims
1. A server resource allocation system, comprising: a terminal, installed with a device BMC, a device resource allocation system and a set of PCIE devices, wherein the device BMC is configured to receive a PCIE resource request from a user and forward the PCIE resource request to the device resource allocation system, the device resource allocation system is configured to select a target PCIE device from the set of PCIE devices to allocate to the user according to the PCIE resource request, and the device BMC is configured to send a server restart request to load the target PCIE device to a server; a server, configured to receive the server restart request sent by the device BMC and load the target PCIE device indicated in the server restart request. 2.The system of claim 1, wherein the server is further configured to send a request to the device BMC not to load optional memory; the device BMC is further configured to set the optional memory of the PCIE device allocated to the user in the set of PCIE devices as unavailable according to the request not to load optional memory.
3. The system of claim 1, wherein, the server comprises a server BMC, and the device BMC and the server BMC perform signaling transmission through an I2C interface using an intelligent platform management interface protocol and perform business data transmission through a network interface.
4. The system of claim 1, wherein, the device BMC and the device resource allocation system perform signaling transmission through a KCS interface and perform business data transmission through a network interface.
5. The system of claim 1, wherein, the device resource allocation system modifies the destination address of a data packet from the user to the address of the target PCIE device. 6.A server resource allocation method applied to the server resource allocation system of any one of claims 1-5, the method comprising: receiving a PCIE resource request from a user; selecting a target PCIE device from a set of PCIE devices to allocate to the user according to the PCIE resource request; sending a server restart request to a server to indicate loading the target PCIE device.
7. The method of claim 6, wherein, the method further comprises: receiving a request from the server not to load optional memory; setting the optional memory of the PCIE device allocated to the user in the set of PCIE devices as unavailable according to the request.
8. The method of claim 6, wherein, the method further comprises: if the usage rate of the PCIE device allocated to the user is less than a first predetermined threshold, releasing a part of the PCIE device allocated to the user; if the usage rate of the PCIE device allocated to the user is greater than a second predetermined threshold, selecting a part of PCIE devices from the set of PCIE devices to allocate to the user. 9.A server resource allocation apparatus provided in the server resource allocation system of any one of claims 1-5, the apparatus comprising: a receiving unit configured to receive a PCIE resource request from a user; an allocating unit configured to select a target PCIE device from a set of PCIE devices to allocate to the user according to the PCIE resource request. The sending unit is configured to send, to the server, a restart server request indicating loading of the target PCIE device.
10. The apparatus of claim 9, wherein, The apparatus further comprises a disabling unit configured to: receive a request sent by the server not to load the optional memory; set the optional memory of the PCIE device assigned to the user in the PCIE device set to be unavailable according to the request.
11. The apparatus of claim 9, wherein, The apparatus further comprises a scaling unit configured to: if it is detected that the usage rate of the PCIE device assigned to the user is less than a first predetermined threshold, release a part of the PCIE device assigned to the user; if it is detected that the usage rate of the PCIE device assigned to the user is greater than a second predetermined threshold, reselect a part of the PCIE device from the PCIE device set to assign to the user.
12. An electronic device comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to perform the method of any one of claims 6-8.
13. A non-transitory computer readable storage medium having stored thereon computer instructions, wherein, The computer instructions are used to enable the computer to perform the method of any one of claims 6-8.
14. A computer program product comprising a computer program which, when executed by a processor, implements the method of any one of claims 6-8.
Citation Information
Patent Citations
Resource allocation method and device
CN112286685A
Peripheral component high-speed interconnection equipment fault detection method and device and server
CN113868058A