Accelerator loading method, system and accelerator loading device

Dynamically loading images that meet the needs of virtual machines through the accelerator loading device, solving the problem that existing accelerators cannot load different functional images on demand, realizing on-demand allocation of accelerator and efficient utilization of resources, improving the operating efficiency and flexibility of the system .

CN111813459BActive Publication Date: 2024-12-27HUAWEI TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202010459605.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2016-11-09
Publication Date
2024-12-27
Estimated Expiration
2036-11-09

AI Technical Summary

Technical Problem

Existing accelerators cannot dynamically load images of different functions on demand, resulting in waste of resources and degradation of performance, and cannot meet the needs of different acceleration functions.

Method used

The acceleration requirements of the virtual machine to be created are obtained through the accelerator loading device, and the image that meets the needs is found and loaded, so as to realize on-demand allocation and dynamic loading of the accelerator. The device includes computing management functions, acceleration management controller, accelerator mirror library and acceleration database. It finds the target accelerator based on the acceleration functions and performance of the virtual machine, and sends mirror loading commands to the target host to ensure that the accelerator has the required functions and performance.

Benefits of technology

It realizes the on-demand allocation of accelerators, avoids waste of hardware resources, improves the operating efficiency and flexibility of the system, can dynamically load and meet the acceleration needs of virtual machines, and improves the performance of network function virtualization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111813459B_ABST
    Figure CN111813459B_ABST
Patent Text Reader

Abstract

The present invention provides an accelerator loading method and system. An accelerator loading device obtains acceleration requirements, and the acceleration requirements include the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created. The accelerator loading device determines a target accelerator that satisfies the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created. The accelerator loading device determines the image corresponding to the target accelerator, and sends an image loading command to the target host where the target accelerator is located, and the image loading command is used to enable the target host to load the image for the target accelerator according to the image loading command. The present invention can determine a target host that can create the virtual machine according to the acceleration function and acceleration performance required by the virtual machine to be created, and load the image for acceleration onto the available accelerator of the target host, thereby realizing dynamic loading and deployment of the accelerator.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to acceleration technology, and in particular to an accelerator loading method, system and accelerator loading device. Background Art

[0002] Network operators' networks are usually composed of a large and rapidly growing variety of hardware devices. Developing a new network service or network function often requires a new type of equipment, and it is becoming increasingly difficult to find space and power for these new types of equipment. To make matters worse, hardware life cycles are becoming shorter and shorter while business creation is accelerating, which inhibits the deployment of new value-added services and limits innovation in the growing network-centric field.

[0003] Network Function Virtualization (NFV) uses virtualization technology to merge many types of network devices into high-capacity servers, switches or storage devices that meet industrial standards. These servers, switches or storage devices can be deployed in data centers, network nodes or user terminals. NFV enables flexible software loading, thereby speeding up network deployment and adjustment, reducing the complexity of business deployment, and improving the unification, generalization and adaptability of network devices.

[0004] Since the NFV architecture uses industrial standard hardware, and standard hardware has performance degradation when processing a large number of network functions, in order to solve the performance degradation problem of the NFV architecture, NFV hardware acceleration has become an important research direction. Hardware acceleration, specifically, is the use of dedicated and more efficient hardware to implement specific network functions, and the hardware that implements these functions is called an accelerator.

[0005] At present, there are two ways to provide acceleration functions: the first is fixed-function acceleration provided by accelerator manufacturers; the second is that accelerator manufacturers provide images of acceleration functions and provide image loading functions in the driver provided by the manufacturer, and load the images locally on the server. In this way, the server can achieve different acceleration functions by loading images with different functions.

[0006] However, even when loading images, existing accelerators can only load images with specific functions, and do not support dynamic loading of different images on demand, and cannot implement different functions. Thus, when different acceleration functions are required, corresponding hardware accelerators must be provided, resulting in a waste of resources. Summary of the invention

[0007] In order to solve the above problems in the prior art, the present invention provides an accelerator loading method, system and accelerator loading device, which can dynamically load an image that meets the acceleration requirements of a virtual machine to be created for the accelerator, so as to realize on-demand allocation of accelerators and save hardware resources.

[0008] A first aspect of the present invention provides an accelerator loading method, which is applied to an accelerator loading device. The accelerator loading device obtains an acceleration requirement, and the acceleration requirement includes the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created. The accelerator loading device determines a target accelerator that meets the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created, and determines the image corresponding to the target accelerator. The accelerator loading device sends an image loading command to a target host where the target accelerator is located, and the image loading command includes a descriptor of the image and an identifier of the target accelerator. The image loading command is used to enable the target host to load the image for the target accelerator according to the image loading command; the image descriptor includes at least one of the identifier of the image and the location of the image.

[0009] Through the above method, an image that meets the acceleration requirement can be loaded into the target accelerator according to the acceleration requirement of the virtual machine to be created, so that the target accelerator has the function corresponding to the acceleration requirement, thereby realizing the on-demand allocation of accelerators.

[0010] In a first implementation of the first aspect, when determining a target accelerator that satisfies the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created, the accelerator loading device searches the acceleration database according to the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created, and determines at least one candidate host that can provide at least one available accelerator that satisfies the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created, as well as information about available accelerators of each candidate host. The accelerator loading device determines one of the at least one candidate host as the target host, and determines the available accelerator of the target host as the target accelerator. The acceleration database is used to store the acceleration information of each host managed by the accelerator loading device, and the acceleration information of each host includes the identifier of the host, the identifier of each accelerator of the host, the accelerator model of the accelerator, the feature group of the accelerator, the attributes of the accelerator, and the status of the accelerator, and the feature group of the accelerator includes the acceleration function of the accelerator and the acceleration performance of the accelerator; the attributes of the accelerator are used to indicate whether the accelerator can dynamically load an image.

[0011] The acceleration database in the present invention stores the acceleration information of each host, and the accelerator loading device can find the candidate host according to the acceleration function and acceleration performance of the virtual machine to be created, and then determine the target host and the target accelerator corresponding to the target host from the candidate hosts. Through the above-mentioned first implementation, the accelerator loading device can find the most suitable accelerator for the virtual machine to be created, which can improve the operating efficiency of the system as a whole.

[0012] Based on the first implementation of the first aspect, in the second implementation of the first aspect, when determining at least one candidate host that can provide an available accelerator that satisfies the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created, the accelerator loading device is used to obtain a host list corresponding to the acceleration requirement, and the host list includes an identifier of at least one host that satisfies the acceleration requirement. The accelerator loading device searches the acceleration database according to the host list, the acceleration function of the virtual machine to be created, and the acceleration performance of the virtual machine to be created, and determines at least one candidate host in the host list that can provide an available accelerator that satisfies the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created.

[0013] In actual deployment, the accelerator loading device can manage a large number of hosts. Therefore, there may be multiple hosts that meet the acceleration function and acceleration performance of the virtual machine to be created. Selecting such hosts as candidate hosts can avoid problems such as network congestion and system performance degradation caused by loading the image onto a host that cannot meet the acceleration requirements.

[0014] Based on the second implementation of the first aspect, in the third implementation of the first aspect, when obtaining the acceleration requirement, the accelerator loading device obtains a request to create a virtual machine, the request to create a virtual machine includes the computing resource requirement of the virtual machine to be created, the storage resource requirement of the virtual machine to be created, and the acceleration requirement, and the acceleration requirement is the acceleration requirement of the virtual machine to be created. When obtaining the host list corresponding to the acceleration requirement, the accelerator loading device searches for one or more hosts that can meet the computing resource requirement and the storage resource requirement from all hosts managed by the accelerator loading device according to the computing resource requirement and the storage resource requirement, and generates the host list corresponding to the acceleration requirement according to the identifiers of the one or more hosts.

[0015] In the present invention, the accelerator loading device determines a host list according to the storage resource requirements of the virtual machine to be created and the computing resource requirements of the virtual machine to be created, so as to ensure that the found host can support the business requirements of the virtual machine to be created.

[0016] Based on any one of the above-mentioned first aspect to the third implementation manner of the first aspect, in the fourth implementation manner of the first aspect, when it is determined that one of the at least one candidate hosts is the target host, the accelerator loading device selects a candidate host from the at least one candidate host as the target host according to the host filtering rules.

[0017] Since the virtual machine to be created can ultimately only be created on one target host, if there are multiple candidate hosts that can meet the various requirements of the virtual machine to be created, the accelerator loading device selects the most suitable target host from the multiple candidate hosts according to the host filtering rules, which can achieve load balancing or maximize system efficiency.

[0018] Based on any one of the first to fourth implementations of the first aspect above, in a fifth implementation of the first aspect, the acceleration database also includes a descriptor of an image corresponding to a feature group of each accelerator; when determining the image corresponding to the target accelerator, the accelerator loading device determines a target feature group of the target accelerator and a descriptor of the image corresponding to the target feature group, and uses the image corresponding to the target feature group as the image of the target accelerator; the acceleration function of the target feature group is the acceleration function of the virtual machine to be created, and the acceleration performance of the target feature group is the acceleration performance of the virtual machine to be created.

[0019] Based on the fifth implementation of the first aspect above, in a sixth implementation of the first aspect, the acceleration database further includes a tag for each feature group, and the tag of the feature group is used to indicate whether the acceleration function in the feature group is the current function of the accelerator corresponding to the feature group. When searching the acceleration database to determine the target feature group of the target accelerator and the descriptor of the image corresponding to the target feature group, the accelerator loading device searches the acceleration database to determine that the target accelerator meets the loading conditions. Wherein the target accelerator meets the loading conditions including: the acceleration function of the target feature group is not the current function of the target accelerator and the state of the target accelerator is idle.

[0020] In the above-mentioned fact mode, the accelerator loading device determines that the acceleration function of the target feature group is not the current function of the target accelerator and the accelerator whose status is idle is an accelerator that meets the loading conditions, thereby avoiding the waste of resources caused by loading the image onto the accelerator that has already loaded the image that meets the acceleration requirements.

[0021] Based on the sixth implementation of the first aspect, in the seventh implementation of the first aspect, an image request sent by the target host is received, and the image request includes a descriptor of the image; the accelerator loading device obtains the image from the accelerator image library according to the descriptor of the image and sends the image to the target host. The accelerator image library is used to store images and image information, and the image information of each image includes the descriptor of the image, the accelerator model corresponding to the image, the acceleration function that the image can provide, and the acceleration performance that the image can provide.

[0022] After sending the image to the target host, the accelerator loading device receives a notification message sent by the target host, the notification message including the identifier of the target host, the identifier of the target accelerator, the acceleration function of the virtual machine to be created, and the acceleration performance of the virtual machine to be created. The accelerator loading device updates the acceleration database according to the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created, modifies the state of the target accelerator to locked, and sets the acceleration function of the virtual machine to be created as the current function of the target accelerator.

[0023] The accelerator loading device updates the acceleration database so that the information in the acceleration database can reflect the latest status of the accelerators on all hosts in real time, thereby achieving accurate search of the accelerator and avoiding image loading failure caused by untimely information update.

[0024] In the present invention, the accelerator loading device can receive a new image at any time, and store the new image and the image information of the new image in the accelerator image library. The image information of the new image includes the descriptor of the new image, the accelerator model corresponding to the new image, the acceleration function that the new image can provide, and the acceleration performance that the new image can provide. Then, the accelerator loading device searches the acceleration database according to the accelerator model corresponding to the new image, and adds a feature group including the acceleration function of the new image and the acceleration performance of the new image and the descriptor of the new image to each accelerator that supports the accelerator model corresponding to the new image in the acceleration database.

[0025] In the present invention, the accelerator loading device receives a new image and updates the information related to the new image in the accelerator image library and the acceleration database respectively, so that the information of the new image can be reflected in the acceleration database, thereby improving the accuracy of the target accelerator found when determining the target accelerator that meets the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created, and avoiding network congestion or system performance degradation caused by loading the image into an inappropriate accelerator.

[0026] A second aspect of the present invention provides an accelerator loading device, including a computing management function, an acceleration management controller, an accelerator image library and an acceleration database. The above-mentioned various components interact with each other to implement the methods in the first aspect and various implementation methods of the first aspect.

[0027] A third aspect of the present invention provides an accelerator loading system, comprising the accelerator loading device of the second aspect and at least one host, wherein the at least one host comprises a target host determined by the accelerator loading device.

[0028] The fourth aspect of the present invention provides another accelerator loading device, including a processor, a first memory, a second memory and a communication interface, wherein the first memory is used to store a computing management program code and an acceleration management program code, and the second memory is used to store an accelerator image library and an acceleration database. The processor is used to call the computing management program code to implement the computing management function in the first and second aspects, and call the acceleration management program code to implement the functions of the acceleration management controller in the first and second aspects. The processor also performs operations such as searching, reading or updating the accelerator image library and / or the acceleration database as needed during the process of calling the computing management program code and / or the acceleration management program code.

[0029] A fifth aspect of the present invention provides a storage medium for storing computer program code, which, when executed, can implement the method in the first aspect of the present invention and its various implementations.

[0030] The present invention can determine a target host capable of creating the virtual machine according to the acceleration function and acceleration performance of the virtual machine to be created, and load the image for acceleration onto an available accelerator of the target host, thereby realizing dynamic loading and deployment of the accelerator. BRIEF DESCRIPTION OF THE DRAWINGS

[0031] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings required for describing the embodiments are briefly introduced below.

[0032] Figure 1 A schematic diagram of the structure of an accelerator loading system provided by an embodiment of the present invention;

[0033] Figure 2 A schematic diagram of a flow chart of an accelerator loading method provided by an embodiment of the present invention;

[0034] Figure 3 A schematic flow chart of another accelerator loading method provided by an embodiment of the present invention;

[0035] Figure 4A A schematic diagram of the structure of an accelerator image library provided by an embodiment of the present invention;

[0036] Figure 4B A schematic diagram of the structure of an updated accelerator image library provided by an embodiment of the present invention;

[0037] Figure 5A A schematic diagram of the structure of an acceleration database provided by an embodiment of the present invention;

[0038] Figure 5B A schematic diagram of the structure of an updated acceleration database provided by an embodiment of the present invention;

[0039] Figure 5C for Figure 5B The schematic diagram shown is a diagram of an acceleration database after being updated according to the image information of a new image;

[0040] Figure 6 A structural schematic diagram of an accelerator loading device is provided for an embodiment of the present invention. DETAILED DESCRIPTION

[0041] The present invention is described in detail below with reference to the accompanying drawings.

[0042] like Figure 1 , which is a schematic diagram of the structure of an accelerator loading system 100 provided in an embodiment of the present invention. The accelerator loading system 100 includes an accelerator loading device 200 and one or more hosts 300. For the convenience of description, Figure 1A host 300 is taken as an example. A virtualized infrastructure manager (English: Virtualised Infrastructure Manager, abbreviated: VIM) is deployed on the accelerator loading device 200, and a NFV infrastructure (English: NFV Infrastructure, abbreviated: NFVI) is deployed on the host 300. The VIM is used to control and manage the computing, storage and network resources of all NFVIs, and each NFVI includes hardware and software components for establishing an operating environment for virtual network functions (English: virtual network functions, abbreviated: VNFs). Both VIM and NFVI are logical concepts, which are only used to introduce the application scenarios of the embodiments of the present invention and are not intended to limit the present invention. The VIM includes a computing management function (English: compute management function) 210, an acceleration management controller (English: acceleration management controller) 220, an accelerator image repository (English: accelerator image repository) 230 and an acceleration database (English: acceleration database) 240. The accelerator image repository 230 and the acceleration database 240 can be stored in the same memory or in different memories. NFVI includes an acceleration agent 310 and one or more accelerator drivers 320, each accelerator driver 320 corresponds to a general accelerator, and the general accelerator can dynamically load an image for implementing a specific function. The host 300 may also include a hypervisor and a computing agent. The hypervisor generates at least one virtual machine (VM) on the host 300, and the computing agent is used to communicate with the hypervisor to manage the at least one VM.

[0043] When the accelerator loading system 100 is running, the accelerator loading device 200 obtains acceleration requirements, the acceleration requirements include the acceleration function and acceleration performance of the virtual machine to be created, such as the first VM; determines a target accelerator that meets the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created; determines the image corresponding to the target accelerator; sends an image loading command to the target host where the target accelerator is located, such as the host 300, the image loading command includes the descriptor of the image and the identifier of the target accelerator; the descriptor of the image includes at least one of the identifier and the position of the image. The host 300 receives the image loading command and loads the image for the target accelerator according to the image loading command.

[0044] When determining a target accelerator that satisfies the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created, the accelerator loading device 300 searches the acceleration database 240 according to the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created, determines at least one candidate host that can provide an available accelerator that satisfies the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created, and information about the available accelerators of each candidate host; determines one of the at least one candidate hosts, for example, the host 300, as a target host, and determines the available accelerator of the target host as the target accelerator.

[0045] The acceleration database 240 is used to store the acceleration information of each host managed by the accelerator loading device, and the acceleration information of each host includes the identification of the host, the identification of each accelerator of the host, the accelerator model of the accelerator, the characteristic group of the accelerator, the attribute of the accelerator and the state of the accelerator, and the characteristic group of the accelerator includes the acceleration function of the accelerator and the acceleration performance of the accelerator; the attribute of the accelerator is used to indicate whether the accelerator can dynamically load the image. The acceleration database 240 will be described in detail later in conjunction with the accompanying drawings.

[0046] When at least one candidate host that can provide an available accelerator that meets the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created is determined, the accelerator loading device 200 obtains a host list corresponding to the acceleration requirement, and the host list includes the identifier of at least one host that meets the acceleration requirement. The accelerator loading device 200 searches the acceleration database 240 according to the host list, the acceleration function of the virtual machine to be created, and the acceleration performance of the virtual machine to be created, and determines at least one candidate host in the host list that can provide an available accelerator that meets the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created.

[0047] In one embodiment, when obtaining the acceleration requirement, the accelerator loading device 200 obtains a request to create a virtual machine, the request to create a virtual machine includes the computing resource requirement of the virtual machine to be created, the storage resource requirement of the virtual machine to be created, and the acceleration requirement, and the acceleration requirement is the acceleration requirement of the virtual machine to be created. When obtaining the host list corresponding to the acceleration requirement, the accelerator loading device 200 searches for one or more hosts that can meet the computing resource requirement and the storage resource requirement from all hosts managed by the accelerator loading device according to the computing resource requirement of the virtual machine to be created and the storage resource requirement of the virtual machine to be created; and generates the host list corresponding to the acceleration requirement according to the identifiers of the one or more hosts.

[0048] When determining that one of the at least one candidate host is the target host, the accelerator loading device 200 selects a candidate host from the at least one candidate host as the target host according to the host filtering rule. The host filtering rule refers to a rule for selecting a candidate host from the multiple hosts when multiple hosts meet the acceleration requirement. The host filtering rule may be a rule for selecting a host with the lightest load. The host filtering rule may also be called an acceleration resource constraint.

[0049] The acceleration database 240 also includes the descriptor of the image corresponding to the feature group of each accelerator. When determining the image corresponding to the target accelerator, the accelerator loading device 200 determines the target feature group of the target accelerator and the descriptor of the image corresponding to the target feature group, and uses the image corresponding to the target feature group as the image of the target accelerator; the acceleration function of the target feature group is the acceleration function of the virtual machine to be created, and the acceleration performance of the target feature group is the acceleration performance of the virtual machine to be created.

[0050] Furthermore, the acceleration database 240 also includes a tag for each feature group, and the tag of the feature group is used to indicate whether the acceleration function in the feature group is the current function of the accelerator corresponding to the feature group. Before searching the acceleration database to determine the target feature group of the target accelerator and the descriptor of the image corresponding to the target feature group, the accelerator loading device 200 also searches the acceleration database to determine whether the target accelerator meets the loading conditions. The target accelerator meets the loading conditions including: the acceleration function of the target feature group is not the current function of the target accelerator and the state of the target accelerator is idle.

[0051] The host 300 sends an image request to the accelerator loading device 200, and the image request includes a descriptor of the image. The accelerator loading device 200 receives the image request, obtains the image from the accelerator image library 230 according to the descriptor of the image, and sends the image to the target host. The accelerator image library 230 is used to store images and image information, and the image information of each image includes the descriptor of the image, the accelerator model corresponding to the image, the acceleration function that the image can provide, and the acceleration performance that the image can provide. The accelerator image library 230 will be introduced in detail in conjunction with the accompanying drawings.

[0052] After the image loading is completed, the host 300 also sends a notification message to the accelerator loading device 200, and the notification message includes the identifier of the host 300, the identifier of the target accelerator, the acceleration function of the virtual machine to be created, and the acceleration performance of the virtual machine to be created. The accelerator loading device 200 receives the notification message, updates the acceleration database according to the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created, modifies the state of the target accelerator to locked, and sets the acceleration function of the virtual machine to be created as the current function of the target accelerator.

[0053] Since developers may continue to develop new images to update the functions of the accelerator, the accelerator loading device 200 also receives the new image and stores the new image and the image information of the new image in the accelerator image library 230; the image information of the new image includes the descriptor of the new image, the accelerator model corresponding to the new image, the acceleration function that the new image can provide, and the acceleration performance that the new image can provide; the acceleration database is searched according to the accelerator model corresponding to the new image, and a feature group including the acceleration function of the new image and the acceleration performance of the new image and the descriptor of the new image are added to each accelerator that supports the accelerator model corresponding to the new image in the acceleration database.

[0054] The accelerator loading device 200 and the host 300 may be located on the same physical server or on different physical servers.

[0055] based on Figure 1 The accelerator loading system shown in the present invention provides an accelerator loading method, the method comprising: Figure 1 In one embodiment, the method includes: Figure 2 Steps shown.

[0056] In S201 , the accelerator loading device 200 obtains an acceleration requirement, where the acceleration requirement includes an acceleration function and acceleration performance required for a virtual machine to be created.

[0057] In S202 , the accelerator loading device 200 determines a target accelerator that meets the acceleration function and acceleration performance.

[0058] In S203 , the accelerator loading device 200 determines the image corresponding to the target accelerator.

[0059] In S204, the accelerator loading device 200 sends an image loading command to the target host 300 where the target accelerator is located, wherein the image loading command includes a descriptor of the image and an identifier of the target accelerator, and the image loading command is used to enable the target host 300 to load the image for the target accelerator according to the image loading command.

[0060] Figure 2 For the specific implementation of each step in the method shown, please refer to the introduction Figure 1 The accelerator loading system shown is a description of the accelerator loading device 200 .

[0061] Through the above method, the accelerator loading device determines the target accelerator that meets the acceleration function and acceleration performance of the virtual machine to be created, and loads the image that meets the acceleration function and acceleration performance for the target accelerator, thereby realizing on-demand allocation of accelerators and avoiding the waste of hardware resources caused by configuring a corresponding hardware accelerator for each acceleration function.

[0062] The following combination Figure 3 ,right Figure 1 The accelerator loading system shown and Figure 2 The accelerator loading method shown is described in detail.

[0063] When S201 is implemented, the computing management function 210 of the accelerator loading device 200 executes Figure 3 S302 in.

[0064] In S302, the computing management function 210 obtains a request for creating a virtual machine, where the request for creating a virtual machine includes an acceleration requirement of the virtual machine to be created, where the acceleration requirement includes an acceleration function of the virtual machine to be created and an acceleration performance of the virtual machine to be created.

[0065] The request to create a virtual machine may further include computing resource requirements of the virtual machine to be created and storage resource requirements of the virtual machine to be created.

[0066] Among them, the request to create a virtual machine can be triggered when the user needs to deploy a virtual machine. The computing resource requirement can be, for example, the specifications of the central processing unit (CPU) required for the virtual machine to be created. The specification can include the number of computing engines (also known as cores) included in the CPU. The storage resource requirement can be, for example, the size of the storage space required for the virtual machine to be created, for example, 120GB. The acceleration function of the virtual machine to be created can include, for example, encryption or decryption, compression or decompression, layer 3 forwarding, virtual eXtensible Local Area Network (VXLAN) forwarding, and the acceleration performance includes the speed when executing the function, for example, the rate of 20Gbps when VXLAN forwarding. Further, when the acceleration function of the virtual machine to be created is a forwarding function, the request to create the virtual machine can also include the specifications of the forwarding table, that is, the maximum number of entries in the forwarding table.

[0067] When S202 is implemented, the computing management function 210 and the acceleration management controller 220 of the accelerator loading device 200 execute Figure 3 S304, S306 and S308 in.

[0068] In S304, the computing management function 210 sends the acceleration requirement of the virtual machine to be created to the acceleration management controller 220, where the acceleration requirement of the virtual machine to be created includes the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created.

[0069] For example, the acceleration requirement of the virtual machine to be created includes that the acceleration function of the virtual machine to be created is VXLAN forwarding, and the acceleration performance of the virtual machine to be created is 20 Gbps.

[0070] In S306, the acceleration management controller 220 searches the acceleration database 240 according to the acceleration function of the virtual machine to be created and the acceleration performance of the virtual machine to be created, and determines at least one candidate host that can provide an available accelerator that meets the acceleration function and acceleration performance, as well as information about the available accelerators of each candidate host.

[0071] The information of the available accelerator is called a profile of the available accelerator, and the information of each available accelerator includes an identifier of a host where the available accelerator is located, an accelerator model of the available accelerator, and an identifier (ID) of the available accelerator.

[0072] Among them, the acceleration database 240 is used to store the acceleration information of each host managed by the accelerator loading device, and the acceleration information of each host includes the identification of the host, the identification of each accelerator of the host, the accelerator model of the accelerator, the feature group of the accelerator, the attributes of the accelerator and the status of the accelerator. The feature group of the accelerator includes the acceleration function of the accelerator and the acceleration performance of the accelerator.

[0073] The properties of an accelerator are used to indicate whether the accelerator can dynamically load images. The properties of an accelerator include: loadable and non-loadable. Loadable means that the accelerator can be dynamically loaded with different images to achieve different acceleration functions, and non-loadable means that the function of the accelerator has been fixed or can only load specific images.

[0074] There are four states of accelerators: allocated, locked, and idle. An allocated accelerator is an accelerator that is already in use by a virtual machine. A locked accelerator is an accelerator that has been loaded with an image and is ready to be allocated to a virtual machine. A locked accelerator cannot load a new image. An idle accelerator is an accelerator that can be loaded with an image. An idle accelerator can be an accelerator that has been loaded with an image and the loaded image has been released, or an accelerator that has never been loaded with an image. A released idle accelerator can be directly allocated to other virtual machines for use, or images corresponding to other acceleration functions and acceleration performance supported by the accelerator can be reloaded.

[0075] In the present invention, an accelerator with the attribute of being loadable and the state of being idle is referred to as an available accelerator. In the present invention, the acceleration function and acceleration performance corresponding to an accelerator with the state of being allocated or locked are the acceleration function and acceleration performance that the accelerator can actually provide. For an accelerator with the attribute of being loadable and the state of being idle, the acceleration function and acceleration performance corresponding to the accelerator are the acceleration function and acceleration performance that the accelerator can theoretically support. In the present invention, one accelerator can theoretically support multiple acceleration performances of multiple acceleration functions.

[0076] Furthermore, the acceleration database 240 also includes a descriptor of the image corresponding to the feature group of each accelerator and a tag of each feature group, wherein the tag of the feature group is used to indicate whether the acceleration function in the feature group is the current function of the accelerator corresponding to the feature group. Exemplarily, in this application, a tag of 1 indicates that the acceleration function in the feature group is the current function of the accelerator corresponding to the feature group, and a tag of 0 indicates that the acceleration function in the feature group is not the current function of the accelerator corresponding to the feature group.

[0077] like Figure 5A, which is a schematic diagram of an acceleration database 240 provided in an embodiment of the present invention, and the acceleration database 240 stores information of an accelerator corresponding to each host. Figure 5A Three hosts are shown in the figure. There are two accelerators A11 and A12 on the host H1. Accelerator A11 is a non-loadable accelerator and has been assigned to a virtual machine for layer-3 forwarding acceleration. Accelerator A11 only supports one feature group {layer-3 forwarding, 10 Gbps}. The corresponding feature group is marked as 1, indicating that the layer-3 forwarding function in the feature group is the current function of accelerator A12. Accelerator A12 is a loadable accelerator that supports two feature groups, namely, {VXLAN forwarding, 20Gbps} and {VXLAN forwarding, 10Gbps}. The {VXLAN forwarding, 10Gbps} feature group is marked as 1, indicating that the image corresponding to the {VXLAN forwarding, 10Gbps} feature group has been loaded onto accelerator A12. The accelerator status of accelerator A12 is idle, indicating that although accelerator A12 has been used by a virtual machine, it has been released by the virtual machine. Accelerator M12 can be directly allocated to a virtual machine that needs to accelerate VXLAN forwarding and has an acceleration performance of 10Gbps, and the image can also be reloaded. Host H2 has an accelerator A21, which only supports one feature group {encryption, 20Gbps}, and the corresponding feature group is marked as 1. The accelerator status of accelerator A21 is locked, indicating that accelerator A21 has been loaded with an image and is ready to be allocated to a virtual machine for use. Accelerator A21 cannot be loaded with other images. Host H3 has an accelerator A31, which supports only one feature group {VXLAN forwarding, 20 Gbps}, and the corresponding feature group tag is 0. The accelerator state of accelerator A31 is idle, indicating that no image has been loaded on accelerator A31. Image descriptors D1 to D5 indicate images corresponding to different feature groups.

[0078] As an example, when the acceleration function is VXLAN forwarding and the acceleration performance is 20 Gbps, the acceleration management controller 220 searches Figure 5A The acceleration database 240 shown in the figure determines that the candidate hosts are the host H1 and the host H3, and the corresponding available accelerators are the accelerator A12 on the host H1 and the accelerator A31 on the host H3.

[0079] Optionally, before S306, the method further includes: the acceleration management controller 220 searches the acceleration database 240 according to the acceleration function and the acceleration performance, and when no locked accelerator that meets the acceleration requirement is found, S306 is executed.

[0080] S306 may further include S306 - 1 and S306 - 2 .

[0081] In S306-1, the acceleration management controller 220 obtains a host list corresponding to the acceleration requirement.

[0082] The host list includes an identifier of at least one host that meets the acceleration requirement. The identifier of the host is used to uniquely identify the host.

[0083] In one implementation of S306-1, the acceleration requirement sent by the computing management function 210 to the acceleration management controller 220 also includes a host list, and the host list includes information of all hosts managed by the accelerator loading device 200 that can meet the computing resource requirements of the virtual machine to be created and the storage resource requirements of the virtual machine to be created. That is, in this implementation, S306-1 includes: the acceleration management controller 220 receives the host list corresponding to the acceleration requirement sent by the computing management function 210. The host list can be included in the acceleration requirement, or it can be sent separately by the computing management function 210 to the acceleration management controller 220.

[0084] The accelerator loading device 200 stores information about all hosts it manages, and the information about each host includes computing resources and storage resources that the host can provide. Among them, which hosts the accelerator loading device 200 can manage is configured by the administrator, and the information of all hosts can be stored in any planned storage space of the accelerator loading device 200. When obtaining a host list, the computing management function 210 searches for one or more hosts that can meet the computing resource requirements and the storage resource requirements from all hosts according to the computing resource requirements and the storage resource requirements, and generates the host list according to the identifiers of the one or more hosts and sends it to the acceleration management controller 220.

[0085] In another implementation of S306-1, the acceleration requirement also includes the computing resource requirement of the virtual machine to be created and the storage resource requirement of the virtual machine to be created, and obtaining the host list corresponding to the acceleration requirement includes: the acceleration management controller 220 searches for one or more hosts that can meet the computing resource requirement and the storage resource requirement from all hosts managed by the accelerator loading device according to the computing resource requirement and the storage resource requirement, and generates the host list according to the identifiers of the one or more hosts.

[0086] In S306-2, the acceleration management controller 220 searches the acceleration database 240 according to the host list, the acceleration function of the virtual machine to be created, and the acceleration performance of the virtual machine to be created, and determines at least one candidate host in the host list that can provide an available accelerator that meets the acceleration function and acceleration performance, as well as information on the available accelerators of each candidate host.

[0087] In S308 , the acceleration management controller 200 determines one of the at least one candidate host as a target host, and determines an available accelerator of the target host as a target accelerator.

[0088] When there is only one candidate host, the acceleration management controller 220 directly determines the candidate host as the target host, and the available accelerator of the candidate host is the target accelerator.

[0089] When the candidate host includes multiple hosts, in one implementation of S308, the acceleration requirement also includes a host filtering rule, and S308 includes: the acceleration management controller 220 selects a candidate host from the at least one candidate host as a target host according to the host filtering rule, and determines the available accelerator of the target host as the target accelerator.

[0090] When the candidate host includes multiple hosts, in another implementation of S308, the acceleration requirement does not include a host filtering rule, and S308 includes:

[0091] S308-1, the acceleration management controller 220 sends a candidate host notification message to the computing management function, wherein the candidate host notification message includes information of each candidate host in the at least one candidate host, wherein the information of each candidate host includes at least an identifier of the candidate host.

[0092] S308 - 2 , the computing management function 210 selects a candidate host from the at least one candidate host as a target host according to the host filtering rule.

[0093] S308-3, the acceleration management controller 220 receives the identifier of the target host sent by the computing management function 210, determines the target host according to the identifier of the target host, and determines the available accelerator of the target host as the target accelerator.

[0094] For example, the acceleration management controller 220 determines the host H1 as the target host and the accelerator A12 as the target accelerator according to the host filtering rule.

[0095] When implementing S203, the acceleration management controller 220 in the accelerator loading device 200 executes Figure 3 The S310 in.

[0096] In S310 , the acceleration management controller 220 determines a target characteristic group of the target accelerator and a descriptor of an image corresponding to the target characteristic group, and uses the image corresponding to the target characteristic group as the image of the target accelerator.

[0097] The acceleration function of the target characteristic group is the acceleration function of the virtual machine to be created, and the acceleration performance of the target feature group is the acceleration performance of the virtual machine to be created.

[0098] The acceleration management controller 220 may determine the target characteristic group of the target accelerator and the descriptor of the image corresponding to the target characteristic group according to the search result in S306 .

[0099] like Figure 5A As shown, the acceleration database 240 also includes a tag for each feature group. Before S310, the method may also include: the acceleration management controller 220 searches the acceleration database to determine that the target accelerator meets the loading condition, wherein the target accelerator meets the loading condition including: the acceleration function of the target feature group is not the current function of the target accelerator and the state of the target accelerator is idle.

[0100] When S204 is implemented, the acceleration management controller 220 executes Figure 3 S312 in.

[0101] In S312 , the acceleration management controller 220 sends an image loading command to the acceleration agent 310 of the target host, where the image loading command includes a descriptor of the image and an identifier of the target accelerator.

[0102] In order to load the image, Figure 3 As shown, the acceleration agent 310 and the accelerator driver 320 in the target host 300 also need to perform some operations accordingly.

[0103] In S314 , the acceleration agent 310 obtains the image from the accelerator image library 230 .

[0104] Before S314, the method may further include: the acceleration agent 310 determines whether the image is cached locally according to the descriptor of the image, and if the image is not cached, executing S314.

[0105] In one embodiment of S314, the acceleration agent 310 sends an image request to the accelerator image library 230, and the image request includes a descriptor of the image. Then, the acceleration agent 310 receives the image sent by the accelerator image library 230; in another embodiment of S314, the acceleration agent 310 sends an image request to the acceleration management controller 220, and the image request includes a descriptor of the image. After receiving the image request, the acceleration management controller 220 accesses the accelerator image library 230 according to the descriptor of the image to obtain the image, and sends the obtained image to the acceleration agent 310.

[0106] Among them, the accelerator image library 230 is used to store images and image information, and the image information of each image includes the descriptor of the image, the accelerator model corresponding to the image, the acceleration function that the image can provide, and the acceleration performance that the image can provide. Among them, the image refers to the code that can execute a certain function after loading, and the descriptor of the image is at least one of the identifier of the image and the location of the image. The location of the image refers to the location where the image is stored in the accelerator image library 230. The accelerator model refers to a string of letters and numbers used to indicate a certain type of accelerator, which is represented by M11, M12 and M13 in Figure 4. Figure 4A As shown, it is a schematic diagram of the structure of the accelerator image library 230. The accelerator image library 230 may include a first storage area and a second storage area. The first storage area is used to store image information. Figure 4A Mirror information of mirrors i1, i2 and i3 is provided exemplarily. The second storage area is used to store the mirror. In one embodiment, the second storage area may include multiple data blocks. The location of the mirror refers to the data block occupied by the mirror in the second storage area. For example, mirrors i1 to 13 are stored in each data block of block 1 to block 3, respectively.

[0107] When the target accelerator is A12, the acceleration management controller 220 searches the accelerator image library 230 according to the accelerator model M12 corresponding to the accelerator identifier A12, and determines that the image corresponding to the accelerator model M12 is i2, that is, determines that the image that meets the acceleration requirement is i2. The acceleration management controller 220 obtains the descriptor of the image i2, and the descriptor can be at least one of the identifier and the position of the image i2.

[0108] like Figure 3 As shown, in order to correctly load the image onto the accelerator, the method further includes S316 and S318.

[0109] In S316 , the acceleration agent 310 receives the image, and sends the image to the accelerator driver 320 corresponding to the target accelerator.

[0110] In S318 , the accelerator driver 320 loads the image so that the target accelerator can implement the acceleration function.

[0111] Furthermore, in order to manage the accelerator more accurately, Figure 3 As shown, the method further comprises:

[0112] In S320 , the accelerator driver 320 sends the corresponding relationship between the identifier of the target accelerator, the acceleration function of the virtual machine to be created, and the acceleration performance of the virtual machine to be created to the acceleration agent 310 .

[0113] In S322 , the acceleration agent 310 sends a notification message to the acceleration management controller 220 , where the notification message includes the identifier of the target host, the identifier of the target accelerator, the acceleration function of the virtual machine to be created, and the acceleration performance of the virtual machine to be created.

[0114] The identifier of the target host may be an Internet Protocol (IP) address or a media access control (MAC) address of the host, or other information that can uniquely identify the target host.

[0115] In S324 , after receiving the notification message, the acceleration management controller 220 sends an accelerator allocation message to the computing management function 210 , where the accelerator allocation message includes the identifier of the target host.

[0116] The accelerator allocation message is used to notify the computing management function 210 that an image has been loaded for the accelerator on the target host.

[0117] In S326 , after receiving the notification message, the acceleration management controller 220 may also update the acceleration database 240 according to the notification message.

[0118] Specifically, the acceleration function and acceleration performance corresponding to the target accelerator are updated in the acceleration database 240 to the acceleration function and acceleration performance of the virtual machine to be created in the notification message, the state of the target accelerator is modified to be locked, and the acceleration function of the virtual machine to be created is set as the current function of the target accelerator. Figure 5B As shown, it is the updated acceleration database 240. Since the accelerator A12 has been loaded with the image that can provide VXLAN forwarding with an acceleration performance of 20 Gbps, the state corresponding to the feature group {VLAN forwarding, 20 Gbps} is changed to 1, and the state corresponding to the feature group {VXLAN forwarding, 10 Gbps} is changed to 0, indicating that the current function of the accelerator A12 is VXLAN forwarding in the feature group {VLAN forwarding, 20 Gbps}, and since the image corresponding to the feature group {VLAN forwarding, 20 Gbps} has not been allocated to a virtual machine for use, the accelerator state corresponding to the accelerator A12 is modified to locked. At this point, the accelerator A12 has been loaded and can be allocated to a virtual machine for use.

[0119] In addition, since developers will continuously develop new images to update the functions of the accelerator, the accelerator loading device 200 also receives the new image, stores the new image and the image information of the new image in the accelerator image library 230, and updates the acceleration database 240 according to the image information of the new image.

[0120] For example, when a developer (accelerator manufacturer) develops a new image i4 with an acceleration function of VXLAN forwarding and an acceleration performance of 40 Gbps for accelerator model M31, the developer will send the new image to the accelerator loading device 200, and the accelerator loading device 200 will update the accelerator image library 230 according to the new image. The updated accelerator image library 230 is as follows: Figure 4B As shown, it can be seen that Figure 4A compared to, Figure 4B The mirror image i4 and the mirror image information of i4 are added. Then, the acceleration management controller 220 traverses the acceleration database 230 according to the accelerator model M31 in the mirror image information of i4, finds the accelerator A31 corresponding to the accelerator model M31 in the acceleration database 230, and adds a feature group information for the accelerator A31. Figure 5C As shown, the acceleration database 240 is updated according to the image information of the new image. The updated accelerator A31 has an additional feature group {VXLAN forwarding, 40Gbps}, and the image descriptor corresponding to the feature group {VXLAN forwarding, 40Gbps} is D6, where D6 includes at least one of i4 or block 4, and the feature group corresponding to the feature group {VXLAN forwarding, 40Gbps} is marked as 0, indicating that VLXAN forwarding in the feature group {VXLAN forwarding, 40Gbps} is not the current function of the accelerator A31.

[0121] Through the above-mentioned method, the accelerator image library 230 and the acceleration database 240 can be dynamically updated, ensuring that the most suitable accelerator can be found when creating a virtual machine to realize the acceleration function.

[0122] Figure 2 and Figure 3 The numbering of each step is only for convenience of description and is not used to limit the execution order of each step.

[0123] based on Figure 2 and Figure 3 Another embodiment of the present invention provides an accelerator loading device. Figure 6As shown, the accelerator loading device includes a processor 601, a first memory 602, a second memory 603 and a communication interface 604, wherein the processor 601, the first memory 602, the second memory 603 and the communication interface 604 communicate with each other through a bus 605. The first memory 602 stores a computing management program code 6021 and an acceleration management program code 6022, and the second memory 603 stores an accelerator image library 230 and an acceleration database 240.

[0124] The processor 601 is used to call the computing management program code 6021 to execute Figure 2 and Figure 3 The steps performed by the computing management function 210 in the above example call the acceleration management program code 6022 to perform Figure 2 and Figure 3 The steps are performed by the computing acceleration management controller 220, and in the process of calling the computing management program code 6021 or the acceleration management program code 6022, the accelerator image library 230 and the acceleration database 240 are searched, read or updated.

[0125] The communication interface 604 is a collection of interfaces for communicating with external devices, including at least an interface for obtaining a request to create a virtual machine and an interface for communicating with a target host selected by the processor 601 by executing the computing management program code 6021 .

[0126] The computing management program code 6021 and the acceleration management program code 6022 may be two independent computer programs or two fragments of the same computer program.

[0127] In one implementation, the processor 601 in the embodiment of the present invention may include two processors, one of which is used to execute a computing management program code 6021 , and the other is used to execute an acceleration management program code 6022 .

[0128] The first memory 602 and the second memory 603 may be two physically independent memories or located on the same physical storage device. Similarly, the accelerator image library 230 and the acceleration database 240 may be located on the same memory or on different memories.

[0129] An embodiment of the present invention also provides a computer storage medium, which can store one or more programs, which, when executed, can implement some or all of the steps of the accelerator loading method recorded in the above method embodiment; or, when the one or more programs are executed by a computer device including one or more processors, the computer device executes the accelerator loading method as recorded in the above method embodiment.

[0130] In the present invention, when it is necessary to create a virtual machine, the accelerator loading device can determine the target host that can create the virtual machine based on the acceleration function and acceleration performance of the virtual machine to be created, as well as the computing resource requirements and storage resource requirements, and load the image used for acceleration onto the available accelerator of the target host, thereby realizing dynamic loading and deployment of the accelerator.

[0131] The above is only a preferred embodiment of the present invention. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principle of the present invention. These improvements and modifications should also be regarded as the scope of protection of the present invention.

Claims

1. An accelerator loading method, applied to an accelerator loading device, characterized in that: include: Acquire an acceleration requirement, where the acceleration requirement includes a first acceleration attribute of a virtual machine to be created and a second acceleration attribute of the virtual machine to be created; Searching an acceleration database according to the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created, determining at least one candidate host that can provide at least one available accelerator that satisfies the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created, and information about available accelerators of each candidate host; wherein the acceleration database is used to store acceleration information of each host managed by the accelerator loading device, the acceleration information of each host includes an identifier of the host, an identifier of each accelerator of the host, an accelerator model of the accelerator, a feature group of the accelerator, attributes of the accelerator and a status of the accelerator, the feature group of the accelerator includes a first acceleration attribute of the accelerator and a second acceleration attribute of the accelerator; the attributes of the accelerator are used to indicate whether the accelerator can dynamically load an image; Determine a candidate host among the at least one candidate host as a target host, and determine an available accelerator of the target host as a target accelerator; Determining an image corresponding to the target accelerator; An image loading command is sent to a target host where the target accelerator is located, wherein the image loading command includes a descriptor of the image and an identifier of the target accelerator, and the image loading command is used to enable the target host to load the image for the target accelerator according to the image loading command.

2. The method according to claim 1, characterized in that Determining at least one candidate host that can provide an available accelerator that satisfies the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created includes: Obtaining a host list corresponding to the acceleration requirement, the host list including an identifier of at least one host that meets the acceleration requirement; The acceleration database is searched according to the host list, the first acceleration attribute of the virtual machine to be created, and the second acceleration attribute of the virtual machine to be created, and at least one candidate host in the host list is determined that can provide an available accelerator that meets the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created.

3. The method according to claim 2, characterized in that The obtaining of the acceleration requirement comprises: Obtain a request for creating a virtual machine, wherein the request for creating a virtual machine includes a computing resource requirement of the virtual machine to be created, a storage resource requirement of the virtual machine to be created, and an acceleration requirement, wherein the acceleration requirement is an acceleration requirement of the virtual machine to be created; The obtaining of a host list corresponding to the acceleration requirement includes: According to the computing resource requirements and the storage resource requirements, one or more hosts that can meet the computing resource requirements and the storage resource requirements are searched from all hosts managed by the accelerator loading device, and according to the identifiers of the one or more hosts, the host list corresponding to the acceleration requirements is generated.

4. The method according to any one of claims 1 to 3, characterized in that: Determining one of the at least one candidate host as a target host comprises: According to the host filtering rule, a candidate host is selected from the at least one candidate host as a target host.

5. The method according to any one of claims 1 to 3, characterized in that: The acceleration database also includes a descriptor of the image corresponding to the characteristic group of each accelerator; Determining the image corresponding to the target accelerator includes: Determine a target characteristic group of the target accelerator and a descriptor of an image corresponding to the target characteristic group, and use the image corresponding to the target characteristic group as the image of the target accelerator; The first acceleration attribute of the target characteristic group is the first acceleration attribute of the virtual machine to be created, and the second acceleration attribute of the target characteristic group is the second acceleration attribute of the virtual machine to be created.

6. The method according to claim 5, characterized in that The acceleration database further includes a tag of each feature group, wherein the tag of the feature group is used to indicate whether a first acceleration attribute in the feature group is a current function of the accelerator corresponding to the feature group; Before searching the acceleration database to determine the target characteristic group of the target accelerator and the descriptor of the image corresponding to the target characteristic group, the method further includes: Searching the acceleration database to determine whether the target accelerator meets the loading condition; The target accelerator meets the loading conditions including: The first acceleration attribute of the target characteristic group is not a current function of the target accelerator and the state of the target accelerator is idle.

7. The method according to claim 6, characterized in that The method further comprises: Receiving a mirroring request sent by the target host, wherein the mirroring request includes a descriptor of the mirroring; Acquire the image from an accelerator image library according to the descriptor of the image and send the image to the target host; The accelerator image library is used to store images and image information, and the image information of each image includes the image descriptor, the accelerator model corresponding to the image, the first acceleration attribute that the image can provide, and the second acceleration attribute that the image can provide.

8. The method according to claim 7, characterized in that The method further comprises: receiving a notification message sent by the target host, the notification message including an identifier of the target host, an identifier of the target accelerator, a first acceleration attribute of the virtual machine to be created, and a second acceleration attribute of the virtual machine to be created; The acceleration database is updated according to the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created, the state of the target accelerator is modified to be locked, and the first acceleration attribute of the virtual machine to be created is set as the current function of the target accelerator.

9. An accelerator loading device, characterized in that: include: A computing management function module, used to obtain an acceleration requirement, wherein the acceleration requirement includes a first acceleration attribute of a virtual machine to be created and a second acceleration attribute of the virtual machine to be created; An acceleration management controller, configured to determine a target accelerator that satisfies the first acceleration attribute and the second acceleration attribute; determine an image corresponding to the target accelerator; and send an image loading command to a target host where the target accelerator is located, wherein the image loading command includes a descriptor of the image corresponding to the target accelerator and an identifier of the target accelerator, and the image loading command is configured to enable the target host to load the image for the target accelerator according to the image loading command. Also includes the acceleration database, The computing management function is further used to send the acceleration requirement to the acceleration management controller; When determining a target accelerator that satisfies the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created, the acceleration management controller is used to search the acceleration database according to the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created, and determine at least one candidate host that can provide an available accelerator that satisfies the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created, as well as information about available accelerators of each candidate host; Determine a candidate host among the at least one candidate host as a target host, and determine an available accelerator of the target host as a target accelerator; The acceleration database is used to store the acceleration information of each host managed by the accelerator loading device, and the acceleration information of each host includes the identification of the host, the identification of each accelerator of the host, the accelerator model of the accelerator, the feature group of the accelerator, the attributes of the accelerator and the status of the accelerator. The feature group of the accelerator includes the first acceleration attribute of the accelerator and the second acceleration attribute of the accelerator; the attributes of the accelerator are used to indicate whether the accelerator can dynamically load the image.

10. The accelerator loading device according to claim 9, characterized in that: When determining at least one candidate host that can provide an available accelerator that satisfies the first acceleration attribute and the second acceleration attribute, the acceleration management controller is configured to: Obtaining a host list corresponding to the acceleration requirement, the host list including an identifier of at least one host that meets the acceleration requirement; The acceleration database is searched according to the host list, the first acceleration attribute of the virtual machine to be created, and the second acceleration attribute of the virtual machine to be created, and at least one candidate host in the host list that can provide an available accelerator that satisfies the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created is determined.

11. The accelerator loading device according to claim 10, characterized in that: The computing management function is used to obtain a request for creating a virtual machine, wherein the request for creating a virtual machine includes the computing resource requirement of the virtual machine to be created, the storage resource requirement of the virtual machine to be created, and the acceleration requirement, wherein the acceleration requirement is the acceleration requirement of the virtual machine to be created; According to the computing resource requirement and the storage resource requirement, one or more hosts that can meet the computing resource requirement and the storage resource requirement are searched from all hosts managed by the accelerator loading device, and according to the identifiers of the one or more hosts, the host list corresponding to the acceleration requirement is generated; and the host list is sent to the acceleration management controller; The acceleration management controller is further configured to receive the host list sent by the computing management function.

12. The accelerator loading device according to claim 10, characterized in that: The acceleration requirement also includes the computing resource requirement of the virtual machine to be created and the storage resource requirement of the virtual machine to be created. When obtaining the host list corresponding to the acceleration requirement, the acceleration management controller is used to search for one or more hosts that can meet the computing resource requirement and the storage resource requirement from all hosts managed by the accelerator loading device according to the computing resource requirement and the storage resource requirement, and generate the host list according to the identifiers of the one or more hosts.

13. The accelerator loading device according to any one of claims 9 to 12, characterized in that: The acceleration requirement also includes host filtering rules. When it is determined that one of the at least one candidate host is the target host, the accelerator loading device is used to select one candidate host from the at least one candidate host as the target host according to the host filtering rule.

14. The accelerator loading device according to any one of claims 9 to 12, characterized in that: When it is determined that one of the at least one candidate host is the target host, The acceleration management controller is used to send a candidate host notification message to the computing management function, wherein the candidate host notification message includes information of each candidate host in the at least one candidate host, wherein the information of each candidate host includes at least an identifier of the candidate host; The computing management function is used to select a candidate host from the at least one candidate host as a target host according to the host filtering rule, and send an identifier of the target host to the acceleration management controller; The acceleration management controller is used to receive the identifier of the target host sent by the computing management function, and determine the target host according to the identifier of the target host.

15. The accelerator loading device according to claim 13, characterized in that: The acceleration database also includes a descriptor of the image corresponding to the characteristic group of each accelerator; When determining the image corresponding to the target accelerator, the acceleration management controller is used to: Determine a target feature group of the target accelerator and a descriptor of an image corresponding to the target feature group, and use the image corresponding to the target feature group as the image of the target accelerator; the first acceleration attribute of the target feature group is the first acceleration attribute of the virtual machine to be created, and the second acceleration attribute of the target feature group is the second acceleration attribute of the virtual machine to be created.

16. The accelerator loading device according to claim 15, characterized in that: The acceleration database further includes a tag of each feature group, wherein the tag of the feature group is used to indicate whether a first acceleration attribute in the feature group is a current function of the accelerator corresponding to the feature group; Before searching the acceleration database to determine the target characteristic group of the target accelerator and the descriptor of the image corresponding to the target characteristic group, the acceleration management controller is further used to: search the acceleration database to determine that the target accelerator meets the loading condition; The target accelerator meets the loading conditions including: The first acceleration attribute of the target characteristic group is not a current function of the target accelerator and the state of the target accelerator is idle.

17. The accelerator loading device according to claim 9, characterized in that: When sending an image loading command to the target host, The acceleration management controller is used to send the image loading command to the acceleration agent of the target host, and the image loading command is used to enable the acceleration agent to load the image for the accelerator driver corresponding to the target accelerator.

18. The accelerator loading device according to claim 17, characterized in that: The accelerator image library is used to receive an image request sent by the acceleration agent, wherein the image request includes a descriptor of the image; obtain the image according to the descriptor of the image and send the image to the acceleration agent; The accelerator image library is used to store images and image information, and the image information of each image includes the image descriptor, the accelerator model corresponding to the image, the first acceleration attribute that the image can provide, and the second acceleration attribute that the image can provide.

19. The accelerator loading device according to claim 17, characterized in that: The acceleration management controller is also used for: Receiving an image request sent by the acceleration agent, wherein the image request includes a descriptor of the image; Accessing an accelerator image library according to the descriptor of the image to obtain the image; as well as Sending the image to the acceleration agent; The accelerator image library is used to store images and image information, and the image information of each image includes the image descriptor, the accelerator model corresponding to the image, the first acceleration attribute that the image can provide, and the second acceleration attribute that the image can provide.

20. The accelerator loading device according to any one of claims 17 to 19, characterized in that: The acceleration management controller is also used for: receiving a notification message sent by the acceleration agent, the notification message including an identifier of the target host, an identifier of the target accelerator, a first acceleration attribute of the virtual machine to be created, and a second acceleration attribute of the virtual machine to be created; The acceleration database is updated according to the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created, the state of the target accelerator is set to be locked, and the first acceleration attribute of the virtual machine to be created is set as the current function of the target accelerator.

21. An accelerator loading system, characterized in that: The device comprises an accelerator loading device and at least one host: The accelerator loading device is used to: obtain an acceleration requirement, wherein the acceleration requirement includes a first acceleration attribute of a virtual machine to be created and a second acceleration attribute of the virtual machine to be created; determine a target accelerator that satisfies the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created; determine an image corresponding to the target accelerator; and send an image loading command to a target host where the target accelerator is located, wherein the image loading command includes a descriptor of the image and an identifier of the target accelerator; The target host is used to receive the image loading command, and load the image for the target accelerator according to the image loading command; When determining a target accelerator that satisfies the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created, the accelerator loading device is used to: Searching an acceleration database according to the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created, determining at least one candidate host that can provide an available accelerator that satisfies the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created, and information about available accelerators of each candidate host; Determine a candidate host among the at least one candidate host as a target host, and determine an available accelerator of the target host as a target accelerator; The acceleration database is used to store the acceleration information of each host managed by the accelerator loading device, and the acceleration information of each host includes the identification of the host, the identification of each accelerator of the host, the accelerator model of the accelerator, the feature group of the accelerator, the attributes of the accelerator and the status of the accelerator. The feature group of the accelerator includes the first acceleration attribute of the accelerator and the second acceleration attribute of the accelerator; the attributes of the accelerator are used to indicate whether the accelerator can dynamically load the image.

22. The system according to claim 21, characterized in that When at least one candidate host that can provide an available accelerator that satisfies the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created is determined, the accelerator loading device is used to: Obtaining a host list corresponding to the acceleration requirement, the host list including an identifier of at least one host that meets the acceleration requirement; The acceleration database is searched according to the host list, the first acceleration attribute of the virtual machine to be created, and the second acceleration attribute of the virtual machine to be created, and at least one candidate host in the host list is determined that can provide an available accelerator that meets the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created.

23. The system according to claim 22, characterized in that When the acceleration requirement is obtained, the accelerator loading device is used to: Obtain a request for creating a virtual machine, wherein the request for creating a virtual machine includes a computing resource requirement of the virtual machine to be created, a storage resource requirement of the virtual machine to be created, and an acceleration requirement, wherein the acceleration requirement is an acceleration requirement of the virtual machine to be created; When obtaining the host list corresponding to the acceleration requirement, the accelerator loading device is used to: According to the computing resource requirement of the virtual machine to be created and the storage resource requirement of the virtual machine to be created, searching from all hosts managed by the accelerator loading device for one or more hosts that can meet the computing resource requirement and the storage resource requirement; The host list corresponding to the acceleration requirement is generated according to the identifiers of the one or more hosts.

24. The system according to any one of claims 21 to 23, characterized in that: When it is determined that one of the at least one candidate host is the target host, the accelerator loading device is used to: select one candidate host from the at least one candidate host as the target host according to a host filtering rule.

25. The system according to any one of claims 21 to 23, characterized in that: The acceleration database also includes a descriptor of the image corresponding to the characteristic group of each accelerator; When the image corresponding to the target accelerator is determined, the accelerator loading device is used to: Determine a target feature group of the target accelerator and a descriptor of an image corresponding to the target feature group, and use the image corresponding to the target feature group as the image of the target accelerator; the first acceleration attribute of the target feature group is the first acceleration attribute of the virtual machine to be created, and the second acceleration attribute of the target feature group is the second acceleration attribute of the virtual machine to be created.

26. The system according to claim 25, characterized in that The acceleration database further includes a tag of each feature group, wherein the tag of the feature group is used to indicate whether a first acceleration attribute in the feature group is a current function of the accelerator corresponding to the feature group; Before searching the acceleration database to determine the target characteristic group of the target accelerator and the descriptor of the image corresponding to the target characteristic group, the accelerator loading device is further used to: search the acceleration database to determine that the target accelerator meets the loading condition; The target accelerator meets the loading conditions including: The first acceleration attribute of the target characteristic group is not a current function of the target accelerator and the state of the target accelerator is idle.

27. The system according to claim 26, characterized in that The target host is further used to send an image request to the accelerator loading device, wherein the image request includes a descriptor of the image; The accelerator loading device is also used to receive the image request, obtain the image from the accelerator image library according to the descriptor of the image, and send the image to the target host; The accelerator image library is used to store images and image information, and the image information of each image includes the image descriptor, the accelerator model corresponding to the image, the first acceleration attribute that the image can provide, and the second acceleration attribute that the image can provide.

28. The system according to claim 27, characterized in that The target host is further used to send a notification message to the accelerator loading device, wherein the notification message includes an identifier of the target host, an identifier of the target accelerator, a first acceleration attribute of the virtual machine to be created, and a second acceleration attribute of the virtual machine to be created; The accelerator loading device is also used to receive the notification message, update the acceleration database according to the first acceleration attribute of the virtual machine to be created and the second acceleration attribute of the virtual machine to be created, modify the state of the target accelerator to be locked, and set the first acceleration attribute of the virtual machine to be created as the current function of the target accelerator.

29. The system according to claim 27, characterized in that The accelerator loading device is also used for: Receive a new image, and store the new image and image information of the new image in the accelerator image library; the image information of the new image includes a descriptor of the new image, an accelerator model corresponding to the new image, a first acceleration attribute that the new image can provide, and a second acceleration attribute that the new image can provide; The acceleration database is searched according to the accelerator model corresponding to the new image, and a feature group including a first acceleration attribute of the new image and a second acceleration attribute of the new image and a descriptor of the new image are added in the acceleration database for each accelerator supporting the accelerator model corresponding to the new image.

Citation Information

Patent Citations

  • Method of upgrading network function virtualization application as well as method and device for forwarding business

    CN104410672A

  • Virtualization method and device for accelerator and centralized resource manager

    CN105159753A

  • System and method for mobile network function virtualization

    CN105900518A

  • Method, device and system for creating virtual machine

    CN106020937A

  • Hardware-Based Accelerator For Managing Copy-On-Write

    US20130346714A1