WO2017054691A1 - 一种加速管理节点、加速节点、客户端及方法 - Google Patents

一种加速管理节点、加速节点、客户端及方法 Download PDF

Info

Publication number
WO2017054691A1
WO2017054691A1 PCT/CN2016/100137 CN2016100137W WO2017054691A1 WO 2017054691 A1 WO2017054691 A1 WO 2017054691A1 CN 2016100137 W CN2016100137 W CN 2016100137W WO 2017054691 A1 WO2017054691 A1 WO 2017054691A1
Authority
WO
WIPO (PCT)
Prior art keywords
acceleration
target
acceleration device
bandwidth
type
Prior art date
Application number
PCT/CN2016/100137
Other languages
English (en)
French (fr)
Inventor
吴建邦
袁鹏
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP21217676.2A priority Critical patent/EP4040761A3/en
Priority to EP20174899.3A priority patent/EP3767912B1/en
Priority to EP16850315.9A priority patent/EP3337135B1/en
Publication of WO2017054691A1 publication Critical patent/WO2017054691A1/zh
Priority to US15/937,864 priority patent/US10628190B2/en
Priority to US16/852,408 priority patent/US11080076B2/en
Priority to US17/376,305 priority patent/US11579907B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5025Ensuring fulfilment of SLA by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5051Service on demand, e.g. definition and deployment of services in real time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Definitions

  • the present invention relates to the field of virtualization technologies, and in particular, to an acceleration management node, an acceleration node, a client, and a method thereof.
  • the application can usually allocate some services (or functions) in the program to the hardware acceleration device. Because the hardware acceleration device itself runs fast, the execution time of the application can be shortened.
  • Common acceleration services include encryption and decryption, compression, decompression, audio and video encoding and decoding.
  • Hardware acceleration devices include processors that provide special instructions, as well as other peripheral component interconnect (PCI) devices that provide acceleration, such as graphics processing units (GPUs), field-programmable gates. Field programmable gate array (FPGA), etc.
  • PCI peripheral component interconnect
  • NFV Network Function Virtualization
  • NFV Network Function Virtualization
  • network equipment based on dedicated hardware can be deployed on a general-purpose server using virtualization technology, and evolved from the traditional combination of "embedded software + dedicated hardware".
  • software + general hardware In the form of "software + general hardware”. That is to say, in order to achieve hardware generalization, it is necessary to separate the network function (NF) program in the traditional dedicated hardware to form a virtual network function (VNF) program, so that the traditional dedicated hardware becomes NFV.
  • VNF virtual network function
  • Embodiments of the present invention provide an acceleration management node, an acceleration node, a client, and a party that are applied to a virtualization scenario.
  • the method can accurately call the acceleration device according to the business needs of the client.
  • an embodiment of the present invention provides an acceleration management node, where the acceleration management node includes: a receiving unit, configured to respectively receive acceleration device information of respective acceleration devices reported by at least one acceleration node, where each acceleration node
  • the acceleration device includes: an acceleration type, an algorithm type, and an acquiring unit, configured to acquire a call request sent by the client, where the call request is used to invoke an acceleration device to accelerate the service of the client.
  • the calling request includes: a target acceleration type, a target algorithm type; an allocating unit, configured to query the acceleration device information, and determine, from the acceleration devices of the at least one acceleration node, a target acceleration that matches the call request And a pointing unit, configured to indicate that the target acceleration node where the target acceleration device is located responds to the call request.
  • the acceleration management node performs the acceleration device call according to the acceleration device information in each acceleration node, and can allocate the corresponding acceleration device to the application according to the requirements of the client application and the acceleration type and algorithm type of each acceleration device, thereby satisfying the service. demand.
  • the allocating unit is configured to query the acceleration device information, to determine an acceleration type and an algorithm type from the respective acceleration devices of the at least one acceleration node, respectively The target acceleration device of the target acceleration type and the target algorithm type.
  • the acceleration management node performs the acceleration device call according to the acceleration device information in each acceleration node, the acceleration type, the algorithm type, and the acceleration bandwidth are invoked according to the acceleration type of each acceleration device, thereby ensuring that the bandwidth of the acceleration device can meet the requirements of the service, thereby achieving accurate calling.
  • the acceleration information further includes: an acceleration bandwidth, where the acceleration bandwidth includes: total bandwidth, and occupied bandwidth
  • the calling request further includes: a target acceleration bandwidth; the allocation unit is specifically configured to query the acceleration device information to determine that the acceleration type and the algorithm type are the same as the target acceleration type and the target algorithm type, respectively, and remaining An alternative acceleration device having a bandwidth greater than or equal to the target acceleration bandwidth, and determining one of the candidate acceleration devices as the target acceleration device, wherein the remaining bandwidth is occupied according to the total bandwidth and the Bandwidth calculations are obtained.
  • the acceleration device information further includes: non-uniform memory access architecture NUMA information; the call request further includes: target NUMA information;
  • the allocation unit is specifically configured to query the acceleration device information to determine that the acceleration type and the algorithm type are the same as the target acceleration type and the target algorithm type, respectively, the remaining bandwidth is greater than or equal to the target acceleration bandwidth, and the NUMA information and An candidate acceleration device with the target NUMA information being consistent, and determining one of the candidate acceleration devices as the target acceleration device, wherein the remaining bandwidth is calculated according to the total bandwidth and the occupied bandwidth .
  • the allocation unit is specifically configured to be used in the preparation When the acceleration device is one, the candidate acceleration device is determined as the target acceleration device.
  • the allocating unit is specifically configured to: when the candidate acceleration device is multiple, according to The acceleration bandwidth determines a first acceleration device that has the largest remaining bandwidth among the plurality of candidate acceleration devices. If the first acceleration device is one, the first acceleration device is determined as the target acceleration device.
  • the allocating unit is specifically configured to determine, according to the VF number, when there are multiple first acceleration devices with the largest remaining bandwidth
  • the second acceleration device that has the largest number of VFs in the plurality of first acceleration devices, and if the second acceleration device is one, uses the second acceleration device as the target acceleration device.
  • the allocating unit is specifically configured to: when the second acceleration device with the largest number of VFs is multiple, the acceleration according to the query
  • the time sequence of the device information is the first acceleration device that is first queried as the target acceleration device.
  • the indication unit is specifically configured to send configuration indication information to the target acceleration node. Instructing the target acceleration node to respond to the call request, the configuration indication message indicating an acceleration type, an algorithm type of the target acceleration device that matches the call request, or the configuration indication message indicates The target accelerates the acceleration type, algorithm type, and acceleration bandwidth of the device.
  • the acceleration management node further includes: a storage unit, configured to store the acceleration Device Information.
  • the storage unit is further configured to update the previously saved and the The acceleration device information corresponding to the target acceleration device; and the allocation result of the indication unit is recorded.
  • the acceleration management node further includes: a release unit, configured to acquire the And releasing, by the client, a release request of the target acceleration device, and calling the target acceleration node to release the target acceleration device.
  • the releasing unit is further configured to: record, according to the storage unit, when an abnormality of the service of the client is detected The result of the allocation, find the target acceleration device, and call the target acceleration node to release the target acceleration device.
  • the storage unit is further configured to invalidate the allocation result.
  • an embodiment of the present invention provides an acceleration node, including: a proxy unit, a driver, and at least one acceleration device; the driver is configured to drive the at least one acceleration device, and the at least one acceleration device is configured to provide hardware An acceleration function; the proxy unit is configured to: invoke the driver to separately query the at least one acceleration device to obtain acceleration device information of each acceleration device, where the acceleration device information includes: an acceleration type, an algorithm type; The acceleration device information is reported to the acceleration management node. The acceleration node sends the acceleration device information of the acceleration device to the acceleration management node, so that the acceleration management node can configure the appropriate acceleration device according to the reported acceleration device information, thereby satisfying the service requirement and accurately calling.
  • the proxy unit is further configured to: accelerate the bandwidth.
  • the proxy unit is further configured to: receive a configuration indication message sent by the acceleration management node, where The configuration indication message indicates a target acceleration type of the target acceleration device that matches the invocation request of the client, a target algorithm type, or the configuration indication message indicates a target acceleration type of the target acceleration device that matches the invocation request of the client, a target algorithm type and a target acceleration bandwidth; and in response to the configuration indication message, invoking the driver to detect whether the target acceleration device is working normally; when the target acceleration device is working normally, configuring a target interface of the target acceleration device Give the client.
  • the acceleration device information further includes: non-uniform memory access architecture NUMA information.
  • the configuration indication message further indicates target NUMA information that matches the client's call request.
  • the proxy unit is further configured to use the target acceleration type, the target algorithm type, and the The target acceleration bandwidth is configured as a hardware attribute of the target interface.
  • the proxy unit is further configured to release the target acceleration device in response to the acceleration management node.
  • the proxy unit is further configured to set a hardware attribute of the target interface to be empty.
  • an embodiment of the present invention provides a client, including: a requesting unit, configured to generate a call request according to an acceleration requirement of a service, where the call request includes a target acceleration type and a target algorithm required to accelerate the service.
  • a sending unit configured to send the calling request to the acceleration management node, to apply for invoking a target acceleration device that matches the calling request to accelerate the service.
  • the application of the client can send the target acceleration type and the target algorithm type corresponding to the acceleration device that meets the requirements of the acceleration to the acceleration management node, and apply to the acceleration management node for the acceleration device, so that the acceleration management node needs to call the client.
  • the target accelerates the device it can be called more accurately.
  • the calling request further includes: a target acceleration bandwidth required to accelerate the service.
  • the calling request further includes target NUMA information required by the service.
  • the requesting unit is further configured to: when the client needs to release the acceleration device, Generating a release request for releasing the target acceleration device; the sending unit is further configured to send the release request to the acceleration management node.
  • an embodiment of the present invention provides an acceleration management method, including: respectively receiving acceleration device information of respective acceleration devices reported by at least one acceleration node, where each acceleration node includes at least one acceleration device, the acceleration
  • the device information includes: an acceleration type, an algorithm type, and a call request sent by the client, where the call request is used to invoke an acceleration device to accelerate the service of the client, where the call request includes: a target acceleration type and a target algorithm type; Querying the acceleration device information, determining, from the acceleration devices of the at least one acceleration node, a target acceleration device that matches the call request; and indicating that the target acceleration node where the target acceleration device is located is responsive to the call request.
  • the acceleration management node obtains the acceleration device information of each acceleration node and accelerates the device call, and can allocate the corresponding application according to the requirements of the application of the client, combined with the acceleration type and algorithm type of each acceleration device. Accelerate the device to ensure that the normal operation of the business is accelerated while accurately calling.
  • the step of querying the acceleration device information, determining, from the acceleration devices of the at least one acceleration node, the target acceleration device that matches the call request includes: Querying the acceleration device information to determine the target acceleration device whose acceleration type and algorithm type are the same as the target acceleration type and the target algorithm type, respectively.
  • the acceleration information further includes: an acceleration bandwidth, where the acceleration bandwidth includes: a total bandwidth and an occupied bandwidth;
  • the calling request further includes: a target acceleration bandwidth;
  • the querying the acceleration device information from the at least one acceleration node Determining, in the respective acceleration devices, the target acceleration device that matches the call request includes: querying the acceleration device information to determine that the acceleration type and the algorithm type are the same as the target acceleration type and the target algorithm type, respectively And an alternate acceleration device having a remaining bandwidth greater than or equal to the target acceleration bandwidth, and determining one of the candidate acceleration devices as the target acceleration device, wherein the remaining bandwidth is based on the total bandwidth and the The occupied bandwidth is calculated.
  • the acceleration device information further includes: non-uniform memory access architecture NUMA information; the call request further includes: target NUMA information;
  • the step of querying the acceleration device information and determining the target acceleration device that matches the call request from the acceleration devices of the at least one acceleration node specifically includes: querying the acceleration device information to determine an acceleration type and an algorithm. And an alternative acceleration device having the same type as the target acceleration type and the target algorithm type, and the remaining bandwidth is greater than or equal to the target acceleration bandwidth, and the NUMA information is consistent with the target NUMA information, and the candidate is One of the acceleration devices is determined to be the target acceleration device, wherein the remaining bandwidth is calculated based on the total bandwidth and the occupied bandwidth.
  • the fourth possible implementation manner when the candidate acceleration device is one, Determining the candidate acceleration device as the target acceleration device; when the candidate acceleration device is multiple, determining a first acceleration device having the largest remaining bandwidth among the plurality of candidate acceleration devices, if the If the acceleration device is one, the first acceleration device is determined as the target acceleration device bandwidth.
  • the acceleration device information further includes: a virtual function VF number; when the first acceleration device with the largest remaining bandwidth is multiple, determining The second acceleration device having the largest number of VFs among the plurality of first acceleration devices, if the second acceleration device is one, uses the second acceleration device as the target acceleration device.
  • a sixth possible implementation manner if the second acceleration device with the most VF number is multiple, according to the time sequence when the device information is accelerated, A second acceleration device that is first queried is used as the target acceleration device.
  • the method further includes: storing the acceleration device information.
  • the method further includes: corresponding to the target acceleration device saved before the update according to the target acceleration bandwidth Accelerated device information; and record assignment results.
  • the method further includes: acquiring, by the client, releasing the target acceleration device Release the request and invoke the target acceleration node to release the target acceleration device.
  • the method further includes: when detecting that an abnormality occurs in the service of the client, finding the target acceleration according to the recorded allocation result And calling the target acceleration node to release the target acceleration device.
  • the method further includes: setting the allocation result to be invalid.
  • an embodiment of the present invention provides an acceleration device configuration method, which is applied to an acceleration node, where the acceleration node includes: a driver and at least one acceleration device; and the method includes: calling the driver to separately query the at least one
  • the acceleration device is configured to obtain the acceleration device information of each acceleration device, and the acceleration device information includes: an acceleration type and an algorithm type; and the acceleration device information is reported to the acceleration management node.
  • the acceleration node sends the acceleration device information of the acceleration device to the acceleration management node, so that the acceleration management node can configure the appropriate acceleration device according to the reported acceleration device information, thereby satisfying the service requirement and accurately calling.
  • the acceleration device information further includes: an acceleration bandwidth.
  • the method further includes: receiving, by the acceleration management node, a configuration indication message, where the configuration indication message indicates The target acceleration type of the target acceleration device that matches the invocation request of the client, the target algorithm type, or the configuration indication message indicates the target acceleration type, the target algorithm type, and the target of the target acceleration device that match the invocation request of the client. Accelerating the bandwidth; and invoking the driver to detect whether the target acceleration device is working normally according to the configuration indication message; and configuring the target interface of the target acceleration device to the client when the target acceleration device is working normally .
  • the acceleration device information further includes: non-uniform memory access architecture NUMA information.
  • the configuration indication message further indicates target NUMA information that matches the calling request of the client.
  • the method further includes: performing the target acceleration type, The target algorithm type and the target acceleration bandwidth are configured as hardware attributes of the target interface.
  • the method further includes: releasing the target acceleration device in response to the acceleration management node.
  • the method further includes: setting a hardware attribute of the target interface to be empty.
  • an embodiment of the present invention provides a method for applying for an acceleration device, including: generating a call request according to an acceleration requirement of a service, where the call request includes a target acceleration type and a target algorithm type required to accelerate the service; The call request is sent to the acceleration management node to apply for invoking a target acceleration device that matches the call request to accelerate the service.
  • the application of the client can send the target acceleration type and the target algorithm type corresponding to the acceleration device that meets the requirements of the acceleration to the acceleration management node, and apply to the acceleration management node for the acceleration device, so that the acceleration management node needs to call the client.
  • the target accelerates the device it can be called more accurately while ensuring the normal operation of the business.
  • the calling request further includes: a target acceleration bandwidth required to accelerate the service.
  • the calling request further includes target NUMA information required by the service.
  • the method further includes: releasing the target acceleration when the service is accelerated a release request of the device; the release request is sent to the acceleration management node.
  • the embodiment of the present invention provides an acceleration management system, including: the acceleration management according to the first aspect and any one of the first to thirteenth possible implementation manners of the first aspect A node, and the acceleration management node of any of the first to seventh aspects of the second aspect and the second aspect.
  • the acceleration management system can accurately invoke the appropriate acceleration device to accelerate the service of the application according to the business requirements of the application of the client, and ensure the normal operation of the service.
  • FIG. 1 is a schematic diagram of an application scenario of a virtualization technology
  • FIG. 2 is a schematic structural diagram of an acceleration management node according to an embodiment of the present invention.
  • FIG. 3 is a schematic structural diagram of an acceleration node according to an embodiment of the present disclosure.
  • FIG. 4 is a schematic structural diagram of a client according to an embodiment of the present disclosure.
  • FIG. 5 is a flowchart of an acceleration management method according to an embodiment of the present invention.
  • FIG. 6 is a flowchart of a method for configuring an acceleration device according to an embodiment of the present invention.
  • FIG. 7 is a flowchart of a method for applying for an acceleration device according to an embodiment of the present invention.
  • FIG. 1 shows 3 in the client 300.
  • Virtual machines namely virtual machine 300a, virtual machine 300b and virtual machine 300c, each virtual machine can run on different operating systems, wherein each virtual machine can be regarded as a logical computer, because each virtual machine The applications can run in separate spaces without affecting each other, thus significantly improving the efficiency of the client 300.
  • FIG. 1 shows 3 in the client 300.
  • Virtual machines namely virtual machine 300a, virtual machine 300b and virtual machine 300c, each virtual machine can run on different operating systems, wherein each virtual machine can be regarded as a logical computer, because each virtual machine The applications can run in separate spaces without affecting each other, thus significantly improving the efficiency of the client 300.
  • the acceleration node 200 may include general purpose computer hardware, that is, an acceleration device, such as a CPU, a GPU, or the like, and each virtual machine in the client 300 may be implemented in the acceleration node 200 by accelerating the management node 100. Accelerate the call of the device.
  • Network Function Virtualization reduces the cost of network equipment by using general-purpose hardware such as x86 and virtualization technology to carry software processing for many functions.
  • the NFV can be regarded as a practical application of the virtualization technology.
  • the virtualization technology can be applied to the public cloud, the private cloud, the enterprise cloud, the cloud acceleration, and the like. Therefore, the solution of the embodiment of the present invention is not Limited to the NFV scenario, the scope of protection of the present invention should not be limited thereby.
  • the acceleration management node 100 includes: a receiving unit 101, an obtaining unit 103, an allocating unit 104, and an indicating unit 105;
  • the receiving unit 101 is configured to receive acceleration device information of the respective acceleration devices reported by the at least one acceleration node, where each acceleration node includes at least one acceleration device, where the acceleration device information includes: an acceleration type, an algorithm type, where The acceleration type indicates the type of acceleration function supported by each acceleration device.
  • the acceleration device information includes: an acceleration type, an algorithm type, where The acceleration type indicates the type of acceleration function supported by each acceleration device.
  • common acceleration functions may include: encryption and decryption, compression, decompression, audio and video codec, etc.
  • the algorithm type indicates that each acceleration device executes its The algorithm used to support the acceleration function;
  • each acceleration node may include at least one hardware acceleration device, such as a CPU, a GPU, a PCI device, etc., each acceleration device.
  • each acceleration device corresponds to an acceleration device information
  • the acceleration device information corresponding to different acceleration devices may be the same, or may be different when an acceleration node includes a CPU and
  • the acceleration node may separately report the acceleration device information of the CPU and the acceleration device information of the GPU to the acceleration management node 100 through the receiving unit 101.
  • the receiving unit 101 may be a reporting interface, which may specifically include Software Interface
  • the acceleration node 200a may be in a remote procedure call protocol (Remote Proced)
  • the ure call protocol invokes the reporting interface to report the acceleration device information of all the acceleration devices in the acceleration node 200a to the acceleration management node 100.
  • the other acceleration nodes 200b and 200c are similar to each other, and are not described again.
  • the acceleration management node 100 in the embodiment of the present invention may be a hypervisor running on a physical host, and the physical host may generally include a processor, a memory, and an input/output (I/O) interface, and the management program is saved in In memory, the processor can read and run the hypervisor in memory.
  • the receiving unit 101 may be a software I/O interface, and the acceleration node may remotely invoke the software I/O interface to communicate through a communication tool between various software I/O interfaces (for example, a communication tool Rabbit MQ).
  • a communication tool Rabbit MQ for example, a communication tool Rabbit MQ.
  • the software I/O interfaces can also communicate through other various message queues, which are not specifically limited herein;
  • the obtaining unit 103 is configured to acquire a call request sent by the client 300, where the call request is used to invoke an acceleration device to accelerate the service of the client 300, where the call request includes: a target acceleration type and a target algorithm type;
  • the client 300 may specifically be a physical host running an application.
  • the application When the application has a part of services (or functions) that need to be accelerated by the acceleration device to shorten the execution time of the application, the client 300 is in the client 300.
  • the application can notify the acceleration management node 100 by the acquisition unit 103 of the target acceleration type, the target algorithm type, and the like of the acceleration device required to accelerate the service, to apply to the acceleration management node 100.
  • An acceleration hardware resource ie, an acceleration device
  • the obtaining unit 103 can also be an application programming interface (API), and the application of the client 300 can communicate with the obtaining unit 103 by calling an application software programming interface.
  • API application programming interface
  • the allocating unit 104 is configured to query the acceleration device information, and determine, from the acceleration devices of the at least one acceleration node, a target acceleration device that matches the call request;
  • the allocating unit 104 may find the target acceleration type and the target algorithm type required to satisfy the call request from the acceleration device information of all the acceleration nodes stored in the storage unit 102.
  • Target acceleration device
  • the indication unit 105 is configured to indicate that the target acceleration node where the target acceleration device is located responds to the call request, and then configure the target acceleration device to the client 300.
  • the acceleration management node 100 further includes: a storage unit 102, configured to store the acceleration device information;
  • the storage unit 102 may store the acquired acceleration device information in a memory local to the acceleration management node 100, or may be stored in a network storage of the acceleration management node 100 through a network connection, which is not limited herein;
  • the storage unit 102 may store the accelerated device information in a list, a database, or other storage format known to those skilled in the art.
  • the acceleration management node 100 determines that the call of the client 300 is satisfied by querying the acceleration device information acquired from the acceleration nodes 200a, 200b, and 200c. If the target acceleration device required for the request is located in the acceleration node 200c, the indication unit 105 may invoke the configuration interface of the acceleration node 200c in an RPC manner, and assign the target acceleration type and the target algorithm type to the acceleration node 200c, so that the acceleration node 200c will respond accordingly. The target accelerates the configuration of the device to the client 300, thereby providing hardware acceleration for the business of the application of the client 300.
  • the acceleration management node performs the acceleration device call according to the acceleration device information in each acceleration node, and may allocate the corresponding acceleration to the application according to the requirements of the client application and the acceleration type and algorithm type of each acceleration device.
  • acceleration refers to allocating part of the application service to the hardware acceleration device for calculation. Since the logic operation efficiency of the hardware acceleration device is higher than the software algorithm, the operation time can be saved and the acceleration purpose can be achieved.
  • the prior art does not consider the specific acceleration type and algorithm type supported by the acceleration device when calling the acceleration device.
  • the prior art can only perceive the encryption and decryption type, for example: IPSec, and according to The decryption type IPSec is called, but in the encryption and decryption type IPSec, it is subdivided into 3DES (Triple Data Encryption Algorithm, Three sub-types of the triple-data encryption algorithm, DH (Diffie-Hellman Algorithm, DH algorithm), AES (Advanced Encryption Standard), if the IPSec-3DES type required by the service, the existing technology may call the IPSec-DH type.
  • 3DES Triple Data Encryption Algorithm, Three sub-types of the triple-data encryption algorithm, DH (Diffie-Hellman Algorithm, DH algorithm), AES (Advanced Encryption Standard), if the IPSec-3DES type required by the service, the existing technology may call the IPSec-DH type.
  • the acceleration device causes the call result not to meet the business requirements.
  • the allocating unit 104 may be specifically configured to query the acceleration device information to determine an acceleration type and an algorithm type from the respective acceleration devices of the at least one acceleration node, respectively, the target acceleration type and the target.
  • the target acceleration device of the same type of algorithm.
  • the acceleration information acquired by the receiving unit 101 may further include: an acceleration bandwidth, where the acceleration bandwidth may include a total bandwidth of the acceleration device, and a breakdown of the occupied bandwidth of the acceleration device at the current time.
  • the total bandwidth of the acceleration device refers to the maximum acceleration bandwidth that can be provided when the acceleration device is in a zero load state.
  • the calling request obtained by the obtaining unit 103 may further include: a target acceleration bandwidth, where the target acceleration bandwidth indicates a bandwidth required by the client 300 to request the accelerated service;
  • the allocating unit 104 may first query the acceleration device information to obtain an acceleration type and an algorithm type, respectively, and the target acceleration type.
  • the acceleration management node 100 can allocate corresponding acceleration devices to the application according to the acceleration bandwidth of each acceleration device, and ensure that the allocated acceleration device can provide sufficient acceleration bandwidth for the application service to achieve accurate calling;
  • the technology does not consider the acceleration bandwidth of the acceleration device.
  • the acceleration time may be prolonged or the acceleration failure may not be achieved.
  • the acceleration node 200 can provide separate processors to each processor through a non-uniform memory access architecture (NUMA), thereby avoiding multiple processors. Loss of performance caused by accessing the same memory. Therefore, the processors in the acceleration node 200 can be grouped according to NUMA information, the processors in different groups have different NUMA information, and in addition, the acceleration devices in the acceleration node 200 are usually attributed to different processors, and therefore, each acceleration A device may have the same NUMA information as the processor it belongs to.
  • the acceleration device information acquired by the receiving unit 101 may further include: NUMA information, and at the same time, the client 300 and the acceleration node may be located in the same object.
  • the virtual machine in which the application requesting acceleration in the client 300 is located also has the same NUMA information as the processor to which the virtual machine belongs. Therefore, when the client 300 invokes the acceleration device, the application can also be applied according to the application.
  • the business requirement of the program, that is, the service acceleration is not required to access the memory corresponding to other processors across NUMA, and the target NUMA information is specified in the call request, so that the allocating unit 105 can query the acceleration device information to determine the acceleration type and algorithm.
  • an alternative acceleration device having the same type as the target acceleration type and the target algorithm type, and the remaining bandwidth is greater than or equal to the target acceleration bandwidth, and the NUMA information is consistent with the target NUMA information, and the candidate is One of the acceleration devices is determined to be the target acceleration device, wherein the remaining bandwidth is calculated based on the total bandwidth and the occupied bandwidth.
  • the acceleration device that matches the NUMA information with the target NUMA information can be scheduled to the client, thereby ensuring that the process of the service and the acceleration device are on the same NUMA to improve the read and write performance during storage, and those skilled in the art should know that It is also called the affinity scheduling of the processor. For details, refer to the prior art, which will not be described in detail here.
  • the allocation unit 104 determines the target acceleration device from the candidate acceleration devices, the following situations may be included:
  • the allocation unit determines, according to the acceleration bandwidth, a first acceleration device that has the largest remaining bandwidth among the plurality of candidate acceleration devices, if the first acceleration device is And determining, by the first acceleration device, the target acceleration device bandwidth, where the remaining bandwidth of the candidate acceleration device can be calculated by using the total bandwidth and the occupied bandwidth; in addition, in this embodiment, if multiple devices are used
  • the third acceleration device having the remaining bandwidth and the target acceleration bandwidth is substantially equal to the target acceleration device, and the third acceleration device may be determined as the target acceleration device.
  • the method further includes: a virtual function (VF) number; the allocating unit determines, according to the VF number, a second acceleration device that has the largest number of virtual functions VF among the plurality of first acceleration devices, if the second acceleration device is one And using the second acceleration device as the target acceleration device;
  • VF virtual function
  • the allocation unit uses the first acceleration device that is first queried as the target acceleration device according to the time sequence when the device information is queried.
  • the acceleration management node 100 can determine an optimal target acceleration device for the client 300. And call to the client 300 to achieve an accurate call.
  • the indication unit 105 may specifically send a configuration indication message to the target acceleration node to indicate that the target acceleration node responds to the call request, and the configuration indication message is used to indicate the target acceleration.
  • the node configures the target acceleration device to the client 300, and the configuration indication message may specifically indicate an acceleration type, an algorithm type, or a configuration indication message indication of the target acceleration device that matches the call request.
  • the acceleration type, algorithm type, and acceleration bandwidth of the target acceleration device may specifically send a configuration indication message to the target acceleration node to indicate that the target acceleration node responds to the call request, and the configuration indication message is used to indicate the target acceleration.
  • the node configures the target acceleration device to the client 300, and the configuration indication message may specifically indicate an acceleration type, an algorithm type, or a configuration indication message indication of the target acceleration device that matches the call request.
  • the acceleration type, algorithm type, and acceleration bandwidth of the target acceleration device may specifically send a configuration indication message to the target acceleration node to indicate that the target acceleration node responds to the call request, and the
  • the storage unit 102 may be further configured to update the previously saved acceleration device information corresponding to the target acceleration device according to the target acceleration bandwidth; it should be known that the storage unit 102 saves the target acceleration.
  • the acceleration bandwidth before the device is configured to the client 300 including the total bandwidth before the target acceleration device is configured and the unoccupied bandwidth.
  • the service is provided for the client 300.
  • the target acceleration bandwidth should be subtracted from the occupied bandwidth before being configured, the new occupied bandwidth is obtained, and the new occupied bandwidth is utilized.
  • the acceleration bandwidth saved by the storage unit 102 is updated; the acceleration bandwidth of the target acceleration device is updated, so that the subsequent acceleration management node 100 can accelerate the call request of the client 300 according to the current acceleration bandwidth of the target acceleration device in real time. device.
  • the storage unit 102 can also be used to record the allocation result of the indication unit. It should be known that the allocation result specifically indicates which acceleration device is configured to the client 300, and the configured acceleration device information, etc., for subsequent acceleration.
  • the management node is regularly monitored, it is found that a certain service of the client 300 is abnormal, and the acceleration device corresponding to the abnormal service can be found, and the acceleration device is released.
  • the acceleration management node 100 further includes:
  • the release unit 106 is configured to acquire a release request sent by the client 300 to release the target acceleration device, and invoke the target acceleration node to release the target acceleration device; still take the acceleration node 200c as an example, because the acceleration node is located at the acceleration node
  • the target acceleration device in 200c is configured to the client 300.
  • the client 300 can notify the acceleration management node 100 to release the target acceleration device by releasing the request.
  • the storage unit 102 is further configured to invalidate the previously saved allocation result. Since the target acceleration device has been released, the allocation result of the target acceleration device also needs to be set. Invalid, so as not to affect the acceleration management node to continue to allocate acceleration devices to the client.
  • an embodiment of the present invention provides a schematic structural diagram of an acceleration node 200, where the acceleration node 200 is provided.
  • the proxy unit 201 the driver 202, and at least one acceleration device.
  • two acceleration devices are respectively represented by 203a and 203b, respectively, and the actual number of acceleration devices should not be limited by this; those skilled in the art should know
  • the driver 202 is used to drive the acceleration devices 203a and 203b, respectively, and the acceleration devices 203a and 203b are respectively used to provide a hardware acceleration function;
  • the proxy unit 201 is configured to:
  • the proxy unit 201 may periodically invoke The driver 202 queries each interface on the acceleration devices 203a and 203b to acquire acceleration device information of the acceleration devices 203a and 203b;
  • the acquiring the acceleration device information is reported to the acceleration management node 100.
  • the proxy unit 201 queries the acceleration device information the receiving unit 101 in the acceleration management node 100 may be invoked in an RPC manner.
  • the acceleration device information is reported to the acceleration management node 100.
  • the acceleration node 200 may specifically be a physical host, where the physical host may include a memory, a processor, and at least one acceleration device (also referred to as an accelerator), and the acceleration device.
  • the acceleration device information further includes: an acceleration bandwidth.
  • the acceleration node reports the acceleration device information of the acceleration device to the acceleration management node, so that the acceleration management node can configure the appropriate acceleration device to the client according to the reported acceleration device information, thereby satisfying the service requirement and realizing Called exactly.
  • the proxy unit 201 is further configured to:
  • the configuration indication message indicates the target acceleration device that matches the calling request of the client, in the case that the acceleration device information includes: an acceleration type and an algorithm type Target acceleration type, target algorithm type, or in the case where the acceleration device information includes: an acceleration type, an algorithm type, and an acceleration bandwidth
  • the configuration indication message indicates a target acceleration device that matches a call request of the client 300
  • the acceleration device information further includes: non-uniform memory access architecture NUMA information.
  • the configuration indication message further indicates target NUMA information that matches the client's call request.
  • the acceleration node reports the NUMA information of each acceleration device to the acceleration management node 100, so that the acceleration management node 100 allocates a suitable target acceleration device to the client 300 according to the NUMA information, and ensures that the service of the client is in the same NUMA as the target acceleration device. Medium to improve read and write performance during storage.
  • an acceleration device may include more than one interface, and the proxy unit 201 is configured to The interface acts as the target interface and is configured to the client.
  • the proxy unit 201 is further configured to configure the target acceleration type, the target algorithm type, and the target acceleration bandwidth as hardware attributes of the target interface, and it should be known that, in the foregoing description, After the target interface of the target acceleration device is configured to the client 300, the target acceleration device can provide the acceleration function to the client 300, and at the same time, if the acceleration bandwidth of the target acceleration device is not fully occupied, the target acceleration device theory The hardware acceleration function can also be provided to other client applications through other interfaces. However, since the proxy unit 201 configures the target acceleration device according to the configuration indication message sent by the acceleration management node 100, the acceleration management node determines the target acceleration.
  • the acceleration device and the algorithm type are respectively the same as the target acceleration type and the target algorithm type, and the acceleration device with the remaining bandwidth greater than or equal to the target acceleration bandwidth is used as the target acceleration device, thereby knowing if Put an unoccupied bandwidth much larger than the target required by the client Speed bandwidth target acceleration device configuration to the client, will result in waste of the acceleration target acceleration device.
  • the hardware attribute of the target interface may also be configured to the target acceleration type, the target algorithm type, and the target acceleration bandwidth, so that The subsequent proxy unit 201 can periodically invoke the driver 202 to query each interface of the target acceleration device, including the target interface, and acquire the acceleration device attribute of the target acceleration device in real time, so that the acceleration management node 100 can allocate the target acceleration device to Other clients to maximize the acceleration of the target acceleration device.
  • the client 300 sends a release request to the acceleration management node 100 to release the target acceleration device, and the acceleration management node 100 invokes the proxy unit 201.
  • the target acceleration device is released, and therefore, the proxy unit 201 is further configured to release the target acceleration device in response to the acceleration management node 100.
  • proxy unit 210 is further configured to set a hardware attribute of the target interface to be empty.
  • the proxy unit 210 configures the hardware attribute of the target interface to the target acceleration type, the target algorithm type, and the target acceleration zone. Width, when the proxy unit 201 responds to the acceleration management node 100 and releases the target acceleration device, correspondingly, the hardware attribute of the target interface needs to be set to be empty to indicate that the target interface is not occupied to avoid When the proxy unit 201 periodically queries the acceleration device information, the acquired acceleration device information of the target acceleration device has an error.
  • the embodiment of the present invention provides a schematic structural diagram of a client 300, where the client 300 includes:
  • the requesting unit 301 is configured to generate a call request according to an acceleration requirement of the service, where the call request includes a target acceleration type and a target algorithm type required to accelerate the service;
  • the sending unit 302 is configured to send the call request to the acceleration management node to apply for invoking a target acceleration device that matches the call request to accelerate the service.
  • the invoking request may further include a target acceleration bandwidth required to accelerate the service.
  • the invoking request may further include target NUMA information required by the service.
  • the client 300 may specifically be a physical host running an application, and the physical host may include a memory and a processor, and the processor reads an application in the memory to perform a corresponding function.
  • the application program may be divided into a request unit 301 and a sending unit 302 according to functions, and the request unit 301 generates an appropriate calling request according to an acceleration requirement of a service (ie, a part of functions of the application) that is unloaded to the hardware for acceleration.
  • the call request specifically includes a target acceleration type, a target algorithm type, and a target acceleration bandwidth required to accelerate the service, or may further include target NUMA information, and the sending unit 302 feeds back the acceleration through a communication interface with the acceleration management node 100.
  • the node 100 is managed to apply to the acceleration management node 100 for a target acceleration device that matches the call request.
  • the application of the client may send the target acceleration type, the target algorithm type, and the target acceleration bandwidth corresponding to the acceleration device that meets the requirements of the acceleration service to the acceleration management node, and apply for the acceleration device to the acceleration management node. So that the acceleration management node can call more accurately when calling the target acceleration device required by the client, and at the same time, the acceleration type, algorithm type, acceleration bandwidth and target NUMA information and the client of the acceleration device due to the acceleration of the management node call The target acceleration type, the target algorithm type, the target acceleration bandwidth, and the target NUMA information applied by the terminal can be adjusted to ensure the normal operation of the service.
  • the requesting unit 301 is further configured to: when the service completes acceleration, generate a release request for releasing the target acceleration device;
  • the sending unit 302 is further configured to send the release request to the acceleration management node 100, so that the acceleration management node invokes a target acceleration node where the target acceleration device is located to release the target acceleration device.
  • the acceleration management node needs to be instructed to release the corresponding target acceleration device to avoid invalid occupation of the target acceleration device.
  • FIG. 5-7 The method of the embodiment of the present invention is briefly described below with reference to FIG. 5-7. It should be noted that the method embodiments shown in FIG. 5-7 correspond to the device embodiments shown in FIG. 2-4, respectively. Reference, no further explanation.
  • an embodiment of the present invention provides a flowchart of an acceleration management method, which is applied to an acceleration management node (see FIG. 2), and the method may include the following steps:
  • each acceleration node includes at least one acceleration device, where the acceleration device information includes: an acceleration type, an algorithm type;
  • S402 storing the acceleration device information, it should be known that because the receiving unit receiving the acceleration device information may have a buffering capability, S402 is optional;
  • S403 Acquire a call request sent by the client, where the call request is used to invoke an acceleration device to accelerate the service of the client, where the call request includes: a target acceleration type and a target algorithm type;
  • the acceleration management node may give the target.
  • the acceleration node sends a configuration indication message, where the configuration indication message is used to instruct the target acceleration node to configure the target acceleration device to the client.
  • S404 may include: querying the acceleration device information to determine, from the respective acceleration devices of the at least one acceleration node, that the acceleration type and the algorithm type are the same as the target acceleration type and the target algorithm type, respectively.
  • the target accelerates the device.
  • the acceleration management node obtains the acceleration device information of each acceleration node and performs the acceleration device call, and may allocate the corresponding application according to the requirements of the application of the client, combined with the acceleration type and the algorithm type of each acceleration device.
  • the acceleration device implements the correct call to ensure the normal operation of the business.
  • the acceleration information further includes: an acceleration bandwidth, where the acceleration bandwidth of each acceleration device includes: a total bandwidth and an occupied bandwidth, and correspondingly, the call request further includes: a target acceleration bandwidth;
  • S404 may specifically include:
  • the acceleration device information Querying the acceleration device information to determine an acceleration class from respective acceleration devices of the at least one acceleration node And an alternative acceleration device having the same type and algorithm type as the target acceleration type and the target algorithm type, respectively, and the remaining bandwidth is greater than or equal to the target acceleration bandwidth, and determining one of the candidate acceleration devices as The target acceleration device, wherein the remaining bandwidth is calculated according to the total bandwidth and the occupied bandwidth.
  • acceleration device information received in S401 may further include: NUMA information
  • the call request acquired in S403 may further include: target NUMA information
  • the acceleration device information to determine, from the respective acceleration devices of the at least one acceleration node, that the acceleration type and the algorithm type are the same as the target acceleration type and the target algorithm type, respectively, and the remaining bandwidth is greater than or equal to the target Accelerating bandwidth, and an alternate acceleration device with NUMA information consistent with the target NUMA information, and determining one of the candidate acceleration devices as the target acceleration device, wherein the remaining bandwidth is based on the total bandwidth and The occupied bandwidth is calculated.
  • the method may include:
  • the candidate acceleration device is one, determining the candidate acceleration device as the target acceleration device;
  • the acceleration device information received by the acceleration management node includes, by the acceleration node, Accelerate the number of supported VFs for each acceleration device in the node;
  • the second acceleration is the most If there are multiple devices, the second acceleration device that is first queried is used as the target acceleration device according to the time sequence when the device information is queried.
  • S405 may include: sending a configuration indication message to the target acceleration node to indicate that the target acceleration node responds to the call request, where the configuration indication message is used to indicate the target acceleration node Configuring the target acceleration device to the client, the configuration indication message may specifically indicate an acceleration type, an algorithm type of the target acceleration device that matches the call request, or the configuration indication message indicates The target accelerates the acceleration type, algorithm type, and acceleration bandwidth of the device.
  • the method may further include:
  • the S406 may be performed after S405, or may be performed simultaneously with S405, which is not limited herein.
  • the method further includes:
  • S407b when detecting that the service of the client is abnormal, finding the target acceleration device according to the recorded allocation result, and calling the target acceleration node to release the target acceleration device, wherein the acceleration management node may cycle sexually monitor whether the services requested by each client are running normally.
  • the acceleration management node can find the target acceleration device configured for the abnormal service according to the distribution result recorded in S406, and call the target where the target acceleration device is located. The acceleration node releases the target acceleration device to prevent the target acceleration device from performing an invalid operation after the service abnormality.
  • the method further includes:
  • the target acceleration device allocation result also needs to be invalidated, so as not to affect the acceleration management node to continue to allocate acceleration devices to the client.
  • the embodiment of the present invention further provides a flowchart of a method for configuring an acceleration device, which is applied to an acceleration node (see FIG. 3), where the acceleration node includes: a driver and at least one acceleration device; and the method includes The following steps:
  • the driver is invoked to query the at least one acceleration device to obtain acceleration device information of each acceleration device, where the acceleration device information includes: an acceleration type and an algorithm type;
  • the acceleration device information is reported to the acceleration management node.
  • the acceleration node reports the acceleration device information of the acceleration device to the acceleration management node, so that the acceleration management node can configure the appropriate acceleration device to the client according to the reported acceleration device information, thereby satisfying the service requirement and realizing Called exactly.
  • the acceleration device information may further include: an acceleration bandwidth.
  • the method further includes:
  • the configuration indication message indicates a target acceleration that matches a call request of the client, where the acceleration device information includes: an acceleration type and an algorithm type. a target acceleration type of the device, a target algorithm type, or, in the case that the acceleration device information includes: an acceleration type, an algorithm type, and an acceleration bandwidth, the configuration indication message indicates a target acceleration device that matches a client's call request Target acceleration type, target algorithm type, and target acceleration bandwidth;
  • the client application can call the target interface to run the service that needs the application acceleration.
  • each acceleration device may be grouped according to the processor to which it belongs. Therefore, in S501, the acceleration device information may further include: NUMA information, where the NUMA information may indicate each acceleration device. Grouping situation.
  • the configuration indication message received in S503 may also indicate target NUMA information that matches the client's call request.
  • the embodiment of the present invention further provides a flowchart of a method for applying for an acceleration device, which is applied to a client, and the method includes:
  • S602. Send the call request to the acceleration management node to apply for calling a target acceleration device that matches the call request to accelerate the service.
  • the acceleration management node adjusts according to the target acceleration type and the target algorithm type. With the target acceleration device, the acceleration type of the target acceleration device and the algorithm type can be matched with the service acceleration requirement of the client to achieve accurate calling.
  • the call request generated by the client further includes: a target acceleration bandwidth required to accelerate the service.
  • the application of the client may send the target acceleration type, the target algorithm type, and the target acceleration bandwidth corresponding to the acceleration device that meets the requirements of the acceleration service to the acceleration management node, and apply for the acceleration device to the acceleration management node, thereby
  • the acceleration management node can call more accurately when calling the target acceleration device required by the client, and ensure the normal operation of the service.
  • the call request may further include target NUMA information required by the service, so that Configuring the target acceleration device required by the service to be in the same NUMA; in this embodiment, the client and the acceleration node may actually be the same physical host, but only in the application and the acceleration node.
  • the agent unit is a different process, or is a different software module. Therefore, the service and the target acceleration device are configured under the same NUMA, so that the service and the target acceleration device can read the memory under the same NUMA, which can be improved. Read performance.
  • the client may instruct the acceleration management node to release the corresponding target acceleration device through S603 and S604, thereby avoiding invalid occupation of the target acceleration device.
  • the embodiment of the present invention further provides an acceleration management system.
  • the acceleration management system includes an acceleration management node 100 and at least one acceleration node 200.
  • the acceleration management node 100 can refer to FIG. 2 and the corresponding embodiment.
  • the acceleration node 200 can refer to the acceleration node shown in FIG. 3 and the corresponding embodiment, and details are not described herein again.
  • the acceleration management system provided by the embodiment of the present invention can accurately invoke a suitable acceleration device to accelerate the service of the application according to the service requirement of the application of the client, and ensure the normal operation of the service.
  • the aforementioned program can be stored in a computer readable storage medium.
  • the course When the sequence is executed, the steps including the foregoing method embodiments are performed; and the foregoing storage medium includes various media that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disk.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种加速管理节点、加速节点、客户端及其方法,所述加速管理节点包括:接收单元,用于分别接收至少一个加速节点上报的各自的加速设备的加速设备信息,所述加速设备信息包括:加速类型、算法类型;获取单元,用于获取客户端发送的的调用请求,所述调用请求用于调用加速设备对所述客户端的业务进行加速,所述调用请求包括:目标加速类型、目标算法类型;分配单元,用于查询所述加速设备信息,从所述至少一个加速节点各自的加速设备中确定与所述调用请求相匹配的目标加速设备;指示单元,用于指示目标加速节点响应所述调用请求。

Description

一种加速管理节点、加速节点、客户端及方法
本申请要求于2015年9月28日提交中国专利局、申请号为201510628762.0、发明名称为“一种加速管理节点、加速节点、客户端及方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及虚拟化技术领域,尤其涉及一种加速管理节点、加速节点、客户端及其方法。
背景技术
应用程序为了缩短执行时间,提高运行效率,通常可以将程序中的部分业务(或者功能)分配到硬件加速设备上执行,由于硬件加速设备本身的运行速度快,因此可以缩短应用程序的执行时间。常见的加速业务有加解密、压缩、解压缩、音视频编解码等。硬件加速设备则包括提供特殊指令的处理器,以及其它可提供加速功能的外围部件互连标准(peripheral component interconnect,PCI)设备,比如:图形处理器(graphics processing unit,GPU)、现场可编程门阵列(field programmable gate array,FPGA)等。
目前,提出网络功能虚拟化(Network Function Virtualization,NFV)的目的是希望通过虚拟化技术,在通用的高性能服务器、交换机和存储中实现部分网络功能。在网络功能虚拟化(Network Function Virtualization,NFV)演进场景下,基于专用硬件的网络设备可以利用虚拟化技术部署在通用服务器之上,从传统的“嵌入式软件+专用硬件”的组合形态,演变成“软件+通用硬件”的组合形态。也就是说,为了实现硬件通用化,需要将传统的专用硬件中的网络功能(Network Function,NF)程序剥离出来,形成虚拟网络功能(Virtualization Network Function,VNF)程序,使得传统的专用硬件成为NFV通用硬件。
然而,NFV硬件通用化后,在调用NFV硬件时,如何根据应用程序的业务需求,对NFV硬件实现精确的调度,成为了亟待解决的问题。
发明内容
本发明实施例提供一种应用于虚拟化场景的加速管理节点、加速节点、客户端及方 法,可以实现根据客户端的业务需求,对加速设备进行精确调用。
第一方面,本发明实施例提供了一种加速管理节点,该加速管理节点包括:接收单元,用于分别接收至少一个加速节点上报的各自的加速设备的加速设备信息,其中,每个加速节点包括至少一个加速设备,所述加速设备信息包括:加速类型、算法类型;获取单元,用于获取客户端发送的的调用请求,所述调用请求用于调用加速设备对所述客户端的业务进行加速,所述调用请求包括:目标加速类型、目标算法类型;分配单元,用于查询所述加速设备信息,从所述至少一个加速节点各自的加速设备中确定与所述调用请求相匹配的目标加速设备;指示单元,用于指示所述目标加速设备所在的目标加速节点响应所述调用请求。加速管理节点根据各个加速节点中的加速设备信息进行加速设备调用,可以根据客户端的应用程序的需求,并结合各个加速设备的加速类型,算法类型,给应用程序分配相应的加速设备,从而满足业务需求。
在第一方面的第一种可能的实现方式中,所述分配单元用于查询所述加速设备信息,以从所述至少一个加速节点各自的加速设备中确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同的所述目标加速设备。加速管理节点根据各个加速节点中的加速设备信息进行加速设备调用时,根据各个加速设备的加速类型,算法类型以及加速带宽进行调用,保证了加速设备的带宽能够满足业务的需求,从而实现精确调用。
结合第一方面,或者第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述加速信息还包括:加速带宽,所述加速带宽包括:总带宽,以及被占用带宽;所述调用请求还包括:目标加速带宽;所述分配单元具体用于查询所述加速设备信息,以确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同,且剩余带宽大于或等于所述目标加速带宽的备选加速设备,并将所述备选加速设备中的一个确定为所述目标加速设备,其中,所述剩余带宽根据所述总带宽以及所述被占用带宽计算得到。
结合第一方面第二种可能的实现方式,在第三种可能的实现方式中,所述加速设备信息还包括:非统一内存访问架构NUMA信息;所述调用请求还包括:目标NUMA信息;所述分配单元具体用于查询所述加速设备信息,以确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同,剩余带宽大于或等于所述目标加速带宽,以及NUMA信息与所述目标NUMA信息一致的备选加速设备,并将所述备选加速设备中的一个确定为所述目标加速设备,其中,所述剩余带宽根据所述总带宽以及所述被占用带宽计算得到。
结合第一方面第二种可能的实现方式以及第三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,所述分配单元具体用于当所述备选加速设备为一个时,将所述备选加速设备确定为所述目标加速设备。
结合第一方面第二到第四种中任意一种可能的实现方式,在第五种可能的实现方式中,所述分配单元具体用于当所述备选加速设备为多个时,根据所述加速带宽确定所述多个备选加速设备中剩余带宽最大的第一加速设备,若所述第一加速设备为一个,则将所述第一加速设备确定为所述目标加速设备。
结合第一方面第五种可能的实现方式,在第六种可能的实现方式中,所述分配单元具体用于当剩余带宽最大的第一加速设备为多个时,根据所述VF数确定所述多个第一加速设备中VF数最多的第二加速设备,若所述第二加速设备为一个,则将所述第二加速设备作为所述目标加速设备。
结合第一方面第六种可能的实现方式,在第七种可能的实现方式中,所述分配单元具体用于当VF数最多的所述第二加速设备为多个时,根据查询所述加速设备信息时的时间顺序,将最先查询到的一个第二加速设备作为所述目标加速设备。
结合第一方面,或者第一方面第一至第七种任意一种可能的实现方式,在第八种可能的实现方式中,所述指示单元具体用于发送配置指示信息给所述目标加速节点,以指示所述目标加速节点响应所述调用请求,所述配置指示消息指示了与所述调用请求相匹配的所述目标加速设备的加速类型、算法类型,或者所述配置指示消息指示了所述目标加速设备的加速类型、算法类型以及加速带宽。
结合第一方面,或者第一方面第一至第八种任意一种可能的实现方式,在第九种可能的实现方式中,所述加速管理节点还包括:存储单元,用于存储所述加速设备信息。
结合第一方面第二到第九种中任意一种可能的实现方式,在第十种可能的实现方式中,所述存储单元还用于根据所述目标加速带宽,更新之前保存的与所述目标加速设备对应的加速设备信息;以及记录所述指示单元的分配结果。
结合第一方面,或者第一方面第一至第十种任意一种可能的实现方式,在第十一种可能的实现方式中,所述加速管理节点还包括:释放单元,用于获取所述客户端发送的释放所述目标加速设备的释放请求,并调用所述目标加速节点释放所述目标加速设备。
结合第一方面第十一种可能的实现方式,在第十二种可能的实现方式中,所述释放单元还用于,当监测到所述客户端的业务出现异常时,根据所述存储单元记录的所述分配结果,找到所述目标加速设备,并调用所述目标加速节点释放所述目标加速设备。
结合第一方面第九到第十二种中任意一种可能的实现方式,在第十三种可能的实现方式中,所述存储单元还用于将所述分配结果置为无效。
第二方面,本发明实施例提供了一种加速节点,包括:代理单元、驱动以及至少一个加速设备;所述驱动用于驱动所述至少一个加速设备,所述至少一个加速设备用于提供硬件加速功能;所述代理单元用于:调用所述驱动分别查询所述至少一个加速设备,以获取每个加速设备的加速设备信息,所述加速设备信息包括:加速类型、算法类型;将所述加速设备信息上报给加速管理节点。加速节点通过上报自身的加速设备的加速设备信息给加速管理节点,使得加速管理节点可以根据上报的加速设备信息,给客户端配置合适的加速设备,从而满足业务需求,并实现精确调用。
在第二方面的第一种可能的实现方式中,所述代理单元还用于:加速带宽。
结合第二方面,或者第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述代理单元还用于:接收所述加速管理节点发送的配置指示消息,其中,所述配置指示消息指示了与客户端的调用请求相匹配的目标加速设备的目标加速类型、目标算法类型,或者所述配置指示消息指示了与客户端的调用请求相匹配的目标加速设备的目标加速类型、目标算法类型以及目标加速带宽;并根据所述配置指示消息,调用所述驱动检测所述目标加速设备是否正常工作;当所述目标加速设备正常工作时,将所述目标加速设备的目标接口配置给所述客户端。
结合第二方面,或者第二方面第一至第二种任意一种可能的实现方式,在第三种可能的实现方式中,所述加速设备信息还包括:非统一内存访问架构NUMA信息。
结合第二方面第三种可能的实现方式,在第四种可能的实现方式中,所述配置指示消息还指示了与客户端的调用请求相匹配的目标NUMA信息。
结合第二方面第二到第四种中任意一种可能的实现方式,在第五种可能的实现方式中,所述代理单元还用于将所述目标加速类型、所述目标算法类型以及所述目标加速带宽配置为所述目标接口的硬件属性。
结合第二方面第二到第五种中任意一种可能的实现方式,在第六种可能的实现方式中,所述代理单元还用于响应所述加速管理节点,释放所述目标加速设备。
结合第二方面第六种可能的实现方式,在第七种可能的实现方式中,所述代理单元还用于将所述目标接口的硬件属性置为空。
第三方面,本发明实施例提供了一种客户端,包括:请求单元,用于根据业务的加速需求生成调用请求,所述调用请求包括加速所述业务所需的目标加速类型、目标算法 类型;发送单元,用于将所述调用请求发送给加速管理节点,以申请调用与所述调用请求相匹配的目标加速设备来加速所述业务。客户端的应用程序可以将满足加速自身业务需求的加速设备所对应的目标加速类型、目标算法类型发送给加速管理节点,向该加速管理节点申请加速设备,从而使得加速管理节点在调用客户端所需的目标加速设备时,可以更精确地调用。
在第三方面的第一种可能的实现方式中,所述调用请求还包括:加速所述业务所需的目标加速带宽。
结合第三方面,或者第三方面第一种可能的实现方式,在第二种可能的实现方式中,所述调用请求还包括所述业务所需的目标NUMA信息。
结合第三方面,或者第三方面第一至第二种任意一种可能的实现方式,在第三种可能的实现方式中,所述请求单元还用于,当客户端需要释放加速设备时,生成释放所述目标加速设备的释放请求;所述发送单元还用于将所述释放请求发送给所述加速管理节点。
第四方面,本发明实施例提供了一种加速管理方法,包括:分别接收至少一个加速节点上报的各自的加速设备的加速设备信息,其中,每个加速节点包括至少一个加速设备,所述加速设备信息包括:加速类型、算法类型;获取客户端发送的调用请求,所述调用请求用于调用加速设备对所述客户端的业务进行加速,所述调用请求包括:目标加速类型、目标算法类型;查询所述加速设备信息,从所述至少一个加速节点各自的加速设备中确定与所述调用请求相匹配的目标加速设备;指示所述目标加速设备所在的目标加速节点响应所述调用请求。本方法中,加速管理节点通过获取各个加速节点的加速设备信息,并进行加速设备调用,可以根据客户端的应用程序的需求,并结合各个加速设备的加速类型,算法类型,给应用程序分配相应的加速设备,从而保证加速业务的正常运行,同时实现精确调用。
在第四方面的第一种可能的实现方式中,所述查询所述加速设备信息,从所述至少一个加速节点各自的加速设备中确定与所述调用请求相匹配的目标加速设备的步骤包括:查询所述加速设备信息,以确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同的所述目标加速设备。
结合第四方面,或者第四方面第一种可能的实现方式,在第二种可能的实现方式中,所述加速信息还包括:加速带宽,所述加速带宽包括:总带宽以及被占用带宽;所述调用请求还包括:目标加速带宽;所述查询所述加速设备信息,从所述至少一个加速节点 各自的加速设备中确定与所述调用请求相匹配的目标加速设备的步骤包括:查询所述加速设备信息,以确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同,且剩余带宽大于或等于所述目标加速带宽的备选加速设备,并将所述备选加速设备中的一个确定为所述目标加速设备,其中,所述剩余带宽根据所述总带宽以及所述被占用带宽计算得到。
结合第四方面第二种可能的实现方式,在第三种可能的实现方式中,所述加速设备信息还包括:非统一内存访问架构NUMA信息;所述调用请求还包括:目标NUMA信息;所述查询所述加速设备信息,从所述至少一个加速节点各自的加速设备中确定与所述调用请求相匹配的目标加速设备的步骤具体包括:查询所述加速设备信息,以确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同,且剩余带宽大于或等于所述目标加速带宽,以及NUMA信息与所述目标NUMA信息一致的备选加速设备,并将所述备选加速设备中的一个确定为所述目标加速设备,其中,所述剩余带宽根据所述总带宽以及所述被占用带宽计算得到。
结合第四方面第二种可能的实现方式以及第三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,当所述备选加速设备为一个时,将所述备选加速设备确定为所述目标加速设备;当所述备选加速设备为多个时,确定所述多个备选加速设备中剩余带宽最大的第一加速设备,若所述第一加速设备为一个,则将所述第一加速设备确定为所述目标加速设备带宽。
结合第四方面第四种可能的实现方式,在第五种可能的实现方式中,所述加速设备信息还包括:虚拟功能VF数;当剩余带宽最大的第一加速设备为多个时,确定所述多个第一加速设备中VF数最多的第二加速设备,若所述第二加速设备为一个,则将所述第二加速设备作为所述目标加速设备。
结合第四方面第五种可能的实现方式,在第六种可能的实现方式中,若VF数最多的所述第二加速设备为多个,则根据查询所述加速设备信息时的时间顺序,将最先查询到的一个第二加速设备作为所述目标加速设备。
结合第四方面,或者第四方面第一至第六种任意一种可能的实现方式,在第七种可能的实现方式中,还包括:存储所述加速设备信息。
结合第四方面第二到第七种中任意一种可能的实现方式,在第八种可能的实现方式中,还包括:根据所述目标加速带宽,更新之前保存的与所述目标加速设备对应的加速设备信息;以及记录分配结果。
结合第四方面,或者第四方面第一至第八种任意一种可能的实现方式,在第九种可能的实现方式中,还包括:获取所述客户端发送的释放所述目标加速设备的释放请求,并调用所述目标加速节点释放所述目标加速设备。
结合第四方面第九种可能的实现方式,在第十种可能的实现方式中,还包括:当监测到所述客户端的业务出现异常时,根据记录的所述分配结果,找到所述目标加速设备,并调用所述目标加速节点释放所述目标加速设备。
结合第四方面第八到第十种中任意一种可能的实现方式,在第十一种可能的实现方式中,还包括:将所述分配结果置为无效。
第五方面,本发明实施例提供了一种加速设备配置方法,应用于加速节点,所述加速节点包括:驱动以及至少一个加速设备;所述方法包括:调用所述驱动分别查询所述至少一个加速设备,以获取每个加速设备的加速设备信息,所述加速设备信息包括:加速类型、算法类型;将所述加速设备信息上报给加速管理节点。加速节点通过上报自身的加速设备的加速设备信息给加速管理节点,使得加速管理节点可以根据上报的加速设备信息,给客户端配置合适的加速设备,从而满足业务需求,并实现精确调用。
在第五方面的第一种可能的实现方式中,所述加速设备信息还包括:加速带宽。
结合第五方面,或者第五方面第一种可能的实现方式,在第二种可能的实现方式中,还包括:接收所述加速管理节点发送的配置指示消息,其中,所述配置指示消息指示了与客户端的调用请求相匹配的目标加速设备的目标加速类型、目标算法类型,或者所述配置指示消息指示了与客户端的调用请求相匹配的目标加速设备的目标加速类型、目标算法类型以及目标加速带宽;并根据所述配置指示消息,调用所述驱动检测所述目标加速设备是否正常工作;当所述目标加速设备正常工作时,将所述目标加速设备的目标接口配置给所述客户端。
结合第五方面,或者第五方面第二种可能的实现方式,在第三种可能的实现方式中,所述加速设备信息还包括:非统一内存访问架构NUMA信息。
结合第五方面第三种可能的实现方式,在第四种可能的实现方式中,所述配置指示消息还指示了与客户端的调用请求相匹配的目标NUMA信息。
结合第五方面第二种可能的实现方式以及第四种可能的实现方式中的任意一种可能的实现方式,在第五种可能的实现方式中,还包括:将所述目标加速类型、所述目标算法类型以及所述目标加速带宽配置为所述目标接口的硬件属性。
结合第五方面第二到第五种中任意一种可能的实现方式,在第六种可能的实现方式 中,还包括:响应所述加速管理节点,释放所述目标加速设备。
结合第五方面第六种可能的实现方式,在第七种可能的实现方式中,还包括:将所述目标接口的硬件属性置为空。
第六方面,本发明实施例提供了一种申请加速设备的方法,包括:根据业务的加速需求生成调用请求,所述调用请求包括加速所述业务所需的目标加速类型、目标算法类型;将所述调用请求发送给加速管理节点,以申请调用与所述调用请求相匹配的目标加速设备来加速所述业务。客户端的应用程序可以将满足加速自身业务需求的加速设备所对应的目标加速类型、目标算法类型发送给加速管理节点,向该加速管理节点申请加速设备,从而使得加速管理节点在调用客户端所需的目标加速设备时,可以更精确地调用,同时保证业务的正常运行。
在第六方面的第一种可能的实现方式中,所述调用请求还包括:加速所述业务所需的目标加速带宽。
结合第六方面,或者第六方面第一种可能的实现方式,在第二种可能的实现方式中,所述调用请求还包括所述业务所需的目标NUMA信息。
结合第六方面,或者第六方面第一至第二种任意一种可能的实现方式,在第三种可能的实现方式中,还包括:当所述业务完成加速时,生成释放所述目标加速设备的释放请求;将所述释放请求发送给所述加速管理节点。
第七方面,本发明实施例提供了一种加速管理系统,包括:如第一方面以及第一方面的第一至第十三种可能的实施方式中的任一种实施方式所述的加速管理节点,以及,如第二方面以及第二方面的第一至第七种可能的任一所述的加速管理节点。该加速管理系统可以根据客户端的应用程序的业务需求,精确调用适合的加速设备给应用程序进行业务加速,并保障业务的正常运行。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为虚拟化技术的应用场景示意图;
图2为本发明实施例提供的一种加速管理节点的结构示意图;
图3为本发明实施例提供的一种加速节点的结构示意图;
图4为本发明实施例提供的一种客户端的结构示意图;
图5为本发明实施例提供的一种加速管理方法的流程图;
图6为本发明实施例提供的一种加速设备配置方法的流程图;
图7为本发明实施例提供的一种申请加速设备的方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先需要说明的是,本发明的技术方案可以应用在各种虚拟化场景中,所谓虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,示例性的,如图1所示,客户端300(也叫计算机或物理主机)中的计算管理模块(未示出)可以根据用户需求,创建至少一个虚拟机,示例性的,图1中示出了客户端300中的3个虚拟机,分别为虚拟机300a,虚拟机300b以及虚拟机300c,各个虚拟机可以运行在不同的操作系统之上,其中每个虚拟机可以视作一台逻辑计算机,由于各个虚拟机中的应用程序都可以在相互独立的空间内运行,互不影响,因而显著提高客户端300的工作效率。图1中,加速节点200可以包括通用的计算机硬件,也就是加速设备,例如CPU,GPU之类,客户端300中的各个虚拟机,可以通过加速管理节点100,来实现对加速节点200中的加速设备的调用。而网络功能虚拟化(Network Function Virtualization,NFV)则是通过使用x86等通用硬件以及虚拟化技术,来承载很多功能的软件处理,从而降低网络设备的成本。NFV可以看作是虚拟化技术的一种实际应用,除此之外,虚拟化技术还可以应用在公有云、私有云、企业云、云加速等场景下,因此,本发明实施例的方案不局限于NFV场景,不应以此限定本发明的保护范围。
为了更好地说明本发明的技术方案,下面将结合附图2-4,对本发明的技术方案进行详细说明。
如图2所示,本发明实施例提供的一种加速管理节点100的结构示意图。该加速管理节点100包括:接收单元101,获取单元103,分配单元104以及指示单元105;其中
接收单元101,用于分别接收至少一个加速节点上报的各自的加速设备的加速设备信息,其中,每个加速节点包括至少一个加速设备,所述加速设备信息包括:加速类型、算法类型,其中,加速类型指示了每个加速设备所支持的加速功能的类型,例如,常见的加速功能可以包括:加解密、压缩、解压缩、音视频编解码等,算法类型则指示了每个加速设备执行其支持的加速功能时所采用的算法;
为了更好地说明本发明的技术方案,如图2所示,在某些虚拟化场景下,示例性地,图2中给出了3个加速节点,即加速节点200a,加速节点200b以及加速节点200c,实际的加速节点数量可以根据网络需要进行部署,这里不做任何限制,每个加速节点中,可以包括至少一个硬件加速设备,例如:CPU、GPU、PCI设备等等,每个加速设备都有自己的加速类型以及算法类型等,也就是说,每个加速设备对应一个加速设备信息,不同的加速设备各自对应的加速设备信息可能相同,也可能不同当某个加速节点中包括CPU以及GPU两个加速设备时,该加速节点可以分别将CPU的加速设备信息、以及GPU的加速设备信息通过接收单元101上报给加速管理节点100;此外,接收单元101可以为一个上报接口,具体可以包括软件接口,示例性地,加速节点200a可以以远程过程调用协议(Remote Procedure Call Protocol,RPC)的方式调用该上报接口,将加速节点200a中的所有加速设备的加速设备信息上报给加速管理节点100,其他加速节点200b和200c与此类似,不再赘述;
应当知道,本发明实施例中的加速管理节点100,可以是运行在物理主机上的管理程序,该物理主机通常可以包括处理器、存储器以及输入输出(I/O)接口,该管理程序保存在存储器中,处理器可以读取并运行存储器中的管理程序。进一步地,接收单元101可以为软件I/O接口,加速节点可以通过各种软件I/O接口之间的通信工具(例如通信工具Rabbit MQ),远程调用该软件I/O接口以进行通信,本领域技术人员应当知道,软件I/O接口之间还可以通过其它各种消息队列进行通信,这里不作具体限定;
获取单元103,用于获取客户端300发送的调用请求,所述调用请求用于调用加速设备对所述客户端300的业务进行加速,所述调用请求包括:目标加速类型、目标算法类型;
需要说明的是,客户端300具体可以为运行应用程序的物理主机,当该应用程序有一部分业务(或者功能)需要通过加速设备进行加速,以缩短应用程序的执行时间时,该客户端300中的应用程序就可以将加速该业务所需的加速设备的目标加速类型、目标算法类型等信息通过获取单元103通知加速管理节点100,以向加速管理节点100申请 加速的硬件资源(即加速设备),其中,获取单元103也可以为应用软件编程接口(application programming interface,API),客户端300的应用程序可以通过调用应用软件编程接口与获取单元103进行通信,应当知道,应用程序的每种业务都需要与其业务规格相适应的目标加速类型、目标算法类型;
分配单元104,用于查询所述加速设备信息,从所述至少一个加速节点各自的加速设备中确定与所述调用请求相匹配的目标加速设备;
需要说明的是,在获取客户端300发送的调用请求之后,分配单元104可以从存储单元102所存储的所有加速节点的加速设备信息中查找到满足调用请求所需的目标加速类型、目标算法类型的目标加速设备;
指示单元105,用于指示所述目标加速设备所在的目标加速节点响应所述调用请求,进而将所述目标加速设备配置给所述客户端300。
可选地,加速管理节点100还包括:存储单元102,用于存储所述加速设备信息;
需要说明的是,存储单元102可以将获取的所述加速设备信息存储在加速管理节点100本地的存储器中,或者存储在通过网络连接加速管理节点100的网络存储器中,这里不做限定;另外,存储单元102在存储所述加速设备信息时,可以以列表、数据库或者本领域技术人员所公知的其它存储形式进行存储。
示例性的,假设客户端300向加速管理节点100请求调用加速设备对业务进行加速后,加速管理节点100通过查询从加速节点200a、200b以及200c获取的加速设备信息,确定满足客户端300的调用请求所需的目标加速设备位于加速节点200c中,则指示单元105可以以RPC的方式调用加速节点200c的配置接口,将目标加速类型、目标算法类型分配给加速节点200c,以便加速节点200c将相应的目标加速设备配置给客户端300,从而为客户端300的应用程序的业务提供硬件加速功能。
本实施例中,加速管理节点根据各个加速节点中的加速设备信息进行加速设备调用,可以根据客户端的应用程序的需求,并结合各个加速设备的加速类型,算法类型,给应用程序分配相应的加速设备,从而满足业务需求。本领域技术人员应当知道,加速是指将应用程序的部分业务分配到硬件加速设备上进行运算,由于硬件加速设备的逻辑运算效率高于软件算法,所以可以节约运算时间,实现加速目的。而现有技术在调用加速设备时,不会考虑加速设备所支持的具体的加速类型和算法类型,以加解密加速为例,现有技术只能感知加解密类型,例如:IPSec,并按照加解密类型IPSec进行调用,但是,在加解密类型IPSec里面其实又细分为3DES(Triple Data Encryption Algorithm, 三重数据加密算法)、DH(Diffie-Hellman Algorithm,D-H算法)、AES(Advanced Encryption Standard,高级加密标准)三种子类型,假如业务需要的IPSec-3DES类型,现有技术可能会调用IPSec-DH类型的加速设备,导致调用结果不能符合业务要求。相比现有技术,采用本发明的技术方案,可以保证调用结果的准确性,使得客户端300所调用的加速设备的属性能够满足应用程序的需求。
本实施例中,分配单元104在具体可以用于查询所述加速设备信息,以从所述至少一个加速节点各自的加速设备中确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同的所述目标加速设备。
本实施例中,进一步地,接收单元101获取的所述加速信息还可以包括:加速带宽,其中,加速带宽可以包括一个加速设备的总带宽,以及该加速设备在当前时刻被占用带宽的明细,其中,加速设备的总带宽是指加速设备处于零负荷状态时所能提供的最大加速带宽。相应的,获取单元103获取的所述调用请求还可以包括:目标加速带宽,其中,目标加速带宽指示了客户端300请求加速的业务所需要的带宽;
本实施例中,由于每个加速设备的加速带宽包括:总带宽,以及被占用带宽,因此,分配单元104首先可以查询所述加速设备信息,得到加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同,且剩余带宽大于或等于所述目标加速带宽的备选加速设备,也就是得到与调用请求相匹配的备选加速设备,并将所述备选加速设备中的一个确定为所述目标加速设备,其中,所述剩余带宽根据所述总带宽以及所述被占用带宽计算得到。
由此可见,加速管理节点100可以根据各个加速设备的加速带宽给应用程序分配相应的加速设备,保证了分配的加速设备能够给应用程序的业务提供充足的加速带宽,实现精确调用;而现有技术并不考虑加速设备的加速带宽,当加速设备的剩余的带宽不满足业务需求时,也会导致加速时间延长或者加速失败,达不到加速的目的。
进一步地,当加速节点200采用多处理器架构时,加速节点200可以通过非统一内存访问架构(Non Uniform Memory Access Architecture,NUMA),给各个处理器提供分离的存储器,从而避免因多个处理器访问同一个存储器而导致的性能损失。因此,加速节点200中的处理器可以根据NUMA信息进行分组,不同组中的处理器具有不同的NUMA信息,此外,加速节点200中的加速设备通常归属于不同的处理器,因此,每个加速设备可以具有与其归属的处理器相同的NUMA信息。相应的,接收单元101获取的加速设备信息中还可以包括:NUMA信息,与此同时,客户端300跟加速节点可以位于同一个物 理主机上,客户端300中请求加速的应用程序所在的虚拟机,也具有与该虚拟机所归属的处理器相同的NUMA信息,因此,客户端300在调用加速设备时,也可以根据其应用程序的业务需求,即保证业务加速时不需要跨NUMA访问其它处理器对应的存储器,在调用请求中指定目标NUMA信息,从而使得分配单元105可以查询所述加速设备信息,以确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同,且剩余带宽大于或等于所述目标加速带宽,以及NUMA信息与所述目标NUMA信息一致的备选加速设备,并将所述备选加速设备中的一个确定为所述目标加速设备,其中,所述剩余带宽根据所述总带宽以及所述被占用带宽计算得到。通过这种方式。可以将NUMA信息与目标NUMA信息一致的加速设备调度给客户端,从而确保业务的进程和加速设备在同一个NUMA上,以提高存储时的读写性能,本领域技术人员应当知道,这种方式也叫做处理器的亲和性调度,具体可以参考在先技术,这里不再详细描述。
因为备选加速设备的数量可能不止一个,分配单元104从备选加速设备中确定目标加速设备时,可以包括如下几种情况:
1)当所述备选加速设备为一个时,将所述备选加速设备确定为所述目标加速设备;
2)当所述备选加速设备为多个时,所述分配单元根据所述加速带宽确定所述多个备选加速设备中剩余带宽最大的第一加速设备,若所述第一加速设备为一个,则将所述第一加速设备确定为所述目标加速设备带宽,其中,备选加速设备的剩余带宽可以通过总带宽和被占用带宽计算得到;此外,本实施例中,如果多个备选加速设备中存在剩余带宽与目标加速带宽大致相等的第三加速设备,也可以将该第三加速设备确定为目标加速设备,本领域技术人员应当知道,这里的大致相等是指数值上允许有微小偏差;
3)当所述备选加速设备为多个且所述多个备选加速设备中剩余带宽最大的第一加速设备为多个时,加速节点200上报给加速管理节点100的所述加速设备信息还包括:虚拟功能(Virtual Function,VF)数;所述分配单元根据所述VF数确定所述多个第一加速设备中虚拟功能VF数最多的第二加速设备,若第二加速设备为一个,则将所述第二加速设备作为所述目标加速设备;
4)当所述备选加速设备为多个且所述多个备选加速设备中剩余带宽最大的第一加速设备为多个时,若所述多个第一加速设备中VF数最多的第二加速设备也为多个,则所述分配单元根据查询所述加速设备信息时的时间顺序,将最先查询到的一个第二加速设备作为所述目标加速设备。
通过以上方式,加速管理节点100可以给客户端300确定一个最佳的目标加速设备, 并调用给客户端300,实现精确调用。
本实施例中,示例性地,指示单元105具体可以给所述目标加速节点发送配置指示消息,以指示所述目标加速节点响应所述调用请求,所述配置指示消息用于指示所述目标加速节点将所述目标加速设备配置给所述客户端300,所述配置指示消息具体可以指示与所述调用请求相匹配的所述目标加速设备的加速类型、算法类型,或者所述配置指示消息指示了所述目标加速设备的加速类型、算法类型以及加速带宽。
进一步地,本实施例中,所述存储单元102还可以用于根据所述目标加速带宽,更新之前保存的与所述目标加速设备对应的加速设备信息;应当知道,存储单元102保存了目标加速设备被配置给客户端300之前的加速带宽,包括该目标加速设备被配置之前的总带宽以及未被占用带宽的明细,当该目标加速设备被配置给客户端300,为客户端300的业务提供硬件加速之后,相应的,该目标加速设备的被占用带宽会发生变化,应该在被配置之前的被占用带宽中减去目标加速带宽,得到的新的被占用带宽,并利用新的被占用带宽对存储单元102所保存的加速带宽进行更新;更新目标加速设备的加速带宽,是为了便于后续加速管理节点100可以实时根据目标加速设备当前的加速带宽,为客户端300新发出的调用请求分配加速设备。此外,存储单元102还可以用于记录所述指示单元的分配结果,应当知道,分配结果具体指示了哪一个加速设备被配置给了客户端300,以及配置后的加速设备信息等,以便后续加速管理节点定时监测时,发现客户端300的某个业务出现异常,可以找到该异常业务所对应的加速设备,并释放该加速设备。
进一步地,本实施例中,所述加速管理节点100还包括:
释放单元106,用于获取所述客户端300发送的释放所述目标加速设备的释放请求,并调用所述目标加速节点释放所述目标加速设备;仍然以加速节点200c为例,由于位于加速节点200c中的目标加速设备被配置给了客户端300,当客户端300中的应用程序的需要释放加速设备时,客户端300可以通过释放请求,告知加速管理节点100释放该目标加速设备。
更进一步地,在释放目标加速设备之后,所述存储单元102还用于将之前保存的所述分配结果置为无效,由于目标加速设备已经被释放,因此,目标加速设备的分配结果也需要置为无效,以免影响加速管理节点继续为客户端分配加速设备。
如图3所示,本发明实施例提供了一种加速节点200的结构示意图,该加速节点200 包括:代理单元201、驱动202以及至少一个加速设备,示例性的,这里分别用203a和203b来分别表示两个加速设备,实际的加速设备的数量不应受此限制;本领域技术人员应当知道,所述驱动202用于驱动加速设备203a和203b,加速设备203a和203b分别用于提供硬件加速功能;所述代理单元201用于:
调用所述驱动202分别查询所述至少一个加速设备,以获取每个加速设备的加速设备信息,所述加速设备信息包括:加速类型、算法类型,示例性的,代理单元201可以周期性地调用驱动202查询加速设备203a和203b上的各个接口,获取加速设备203a和203b的加速设备信息;
将查询到的所述加速设备信息上报给加速管理节点100,具体地,代理单元201查询到所述加速设备信息之后,可以以RPC的方式调用加速管理节点100中的接收单元101,将所述加速设备信息上报给加速管理节点100。
需要说明的是,本实施例中,本实施例中,加速节点200具体也可以为一个物理主机,该物理主机中可以包括存储器、处理器以及至少一个加速设备(也称为加速器),加速设备可以为处理器、GPU、FPGA、PCI设备等,其中,代理单元201以及驱动202可以是存储在存储器中的程序指令,处理器读取存储器中的程序指令以执行代理单元201以及驱动202相应的功能。
本实施例中,所述加速设备信息还包括:加速带宽。
本实施例中,加速节点通过上报自身的加速设备的加速设备信息给加速管理节点,使得加速管理节点可以根据上报的加速设备信息,给客户端配置合适的加速设备,从而满足业务需求,并实现精确调用。
进一步地,本实施例中,所述代理单元201还用于:
接收所述加速管理节点100发送的配置指示消息,其中,在所述加速设备信息包括:加速类型、算法类型的情况下,所述配置指示消息指示了与客户端的调用请求相匹配的目标加速设备的目标加速类型、目标算法类型,或者在所述加速设备信息包括:加速类型、算法类型以及加速带宽的情况下,所述配置指示消息指示了与客户端300的调用请求相匹配的目标加速设备的目标加速类型、目标算法类型以及目标加速带宽;并根据所述配置指示消息,调用所述驱动202检测所述目标加速设备是否正常工作;当所述目标加速设备正常工作时,将所述目标加速设备的目标接口配置给所述客户端300。
进一步地,本实施例中,当加速节点200与客户端300为同一个物理主机时,且该物理主机采用多核架构时,所述加速设备信息还包括:非统一内存访问架构NUMA信息。 相应的,所述配置指示消息还指示了与客户端的调用请求相匹配的目标NUMA信息。
加速节点将每个加速设备的NUMA信息上报给加速管理节点100,以便于加速管理节点100根据NUMA信息,给客户端300分配合适的目标加速设备,保证客户端的业务跟目标加速设备在同一个NUMA中,以提高存储时的读写性能。
需要说明的是,加速设备对客户端300提供加速功能时,具体是通过加速设备的接口与客户端300通信的,一个加速设备可能包括不止一个接口,代理单元201在配置时,是把其中一个接口作为目标接口,配置给客户端的。
更进一步地,所述代理单元201还用于将所述目标加速类型、所述目标算法类型以及所述目标加速带宽配置为所述目标接口的硬件属性,应当知道,在前面的描述中,当把目标加速设备的目标接口配置给了客户端300之后,该目标加速设备就可以给客户端300提供加速功能,与此同时,如果目标加速设备的加速带宽未被全部占用,该目标加速设备理论上还可以通过其它接口为别的客户端的应用程序提供硬件加速功能,但是,由于代理单元201是根据所述加速管理节点100发送的配置指示消息配置目标加速设备,而加速管理节点在确定目标加速设备时,是将加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同,且剩余带宽大于或等于所述目标加速带宽的加速设备作为目标加速设备的,由此可知,如果将一个未占用带宽远大于客户端所需的目标加速带宽的目标加速设备配置给了客户端,就会对该目标加速设备的加速能力造成浪费。因此,在本实施例中,代理单元201将目标接口配置给客户端300之后,还可以将目标接口的硬件属性配置成所述目标加速类型、所述目标算法类型以及所述目标加速带宽,以便后续代理单元201可以周期性的调用驱动202查询该目标加速设备包括目标接口在内的各个接口,实时获取该目标加速设备的加速设备属性,进而使得加速管理节点100可以将该目标加速设备分配给其它客户端,从而最大限度地发挥该目标加速设备的加速能力。
本实施例中,进一步地,当客户端300的业务完成加速后,客户端300会给加速管理节点100发送释放所述目标加速设备的释放请求,则加速管理节点100会调用所述代理单元201释放所述目标加速设备,因此,所述代理单元201还用于响应所述加速管理节点100,释放所述目标加速设备。
更进一步地,所述代理单元210还用于将所述目标接口的硬件属性置为空。
在前面的描述中,为了最大限度发挥目标加速设备的加速能力,代理单元210将目标接口的硬件属性配置成所述目标加速类型、所述目标算法类型以及所述目标加速带 宽,当代理单元201响应所述加速管理节点100,释放所述目标加速设备之后,相应的,也需要将所述目标接口的硬件属性置为空,以表示该目标接口未被占用,以避免代理单元201周期性地查询加速设备信息时,获取的目标加速设备的加速设备信息出现错误。
如图4所示,本发明实施例提供了一种客户端300的结构示意图,该客户端300包括:
请求单元301,用于根据业务的加速需求生成调用请求,所述调用请求包括加速所述业务所需的目标加速类型、目标算法类型;
发送单元302,用于将所述调用请求发送给加速管理节点,以申请调用与所述调用请求相匹配的目标加速设备来加速所述业务。
进一步地,所述调用请求还可以包括加速所述业务所需的目标加速带宽。
更进一步地,所述调用请求还可以包括所述业务所需的目标NUMA信息。
需要说明的是,本实施例中,客户端300具体可以是运行应用程序的物理主机,该物理主机可以包括存储器以及处理器,处理器通过读取存储器中的应用程序,以执行相应的功能,其中,应用程序根据功能可以分为请求单元301以及发送单元302,请求单元301是根据其需要卸载到硬件上进行加速的业务(即应用程序的部分功能)的加速需求,生成相应的调用请求,该调用请求具体包括加速该业务所需要的目标加速类型、目标算法类型以及目标加速带宽,或者还可以进一步包括目标NUMA信息,发送单元302则通过与加速管理节点100之间的通信接口反馈给加速管理节点100,以向加速管理节点100申请与所述调用请求相匹配的目标加速设备。
采用本发明实施例的方案,客户端的应用程序可以将满足加速自身业务需求的加速设备所对应的目标加速类型、目标算法类型以及目标加速带宽发送给加速管理节点,向该加速管理节点申请加速设备,从而使得加速管理节点在调用客户端所需的目标加速设备时,可以更精确地调用,同时,由于加速管理节点调用的目标加速设备的加速类型、算法类型、加速带宽以及目标NUMA信息与客户端所申请的目标加速类型、目标算法类型、目标加速带宽以及目标NUMA信息相适应,可以保证业务的正常运行。
进一步地,所述请求单元301还用于,当所述业务完成加速时,生成释放所述目标加速设备的释放请求;
所述发送单元302还用于将所述释放请求发送给所述加速管理节点100,以便所述加速管理节点调用所述目标加速设备所在的目标加速节点释放所述目标加速设备。
也就是说,即当客户端的应用程序的业务完成加速之后,需要指示加速管理节点释放相应的目标加速设备,避免对目标加速设备的无效占用。
以下结合附图5-7对本发明实施例的方法进行简要说明,应当知道,图5-7所示的方法实施例分别与图2-4所示的装置实施例一一对应,因此,可以相互参考,后续不再说明。
如图5所示,本发明实施例提供一种加速管理方法的流程图,应用于加速管理节点(参见图2),所述方法可以包括如下步骤:
S401,分别接收至少一个加速节点上报的各自的加速设备的加速设备信息,其中,每个加速节点包括至少一个加速设备,所述加速设备信息包括:加速类型、算法类型;
S402,存储所述加速设备信息,应当知道,因为接收加速设备信息的接收单元自身可能具有缓存能力,因此S402是可选的;
S403,获取客户端发送的的调用请求,所述调用请求用于调用加速设备对所述客户端的业务进行加速,所述调用请求包括:目标加速类型、目标算法类型;
S404,查询所述加速设备信息,从所述至少一个加速节点各自的加速设备中确定与所述调用请求相匹配的目标加速设备;
S405,指示所述目标加速设备所在的目标加速节点响应所述调用请求,以便所述目标加速节点将所述目标加速设备配置给所述客户端,示例性地,加速管理节点可以给所述目标加速节点发送配置指示消息,所述配置指示消息用于指示所述目标加速节点将所述目标加速设备配置给所述客户端。
更为具体地,S404可以包括:查询所述加速设备信息,以从所述至少一个加速节点各自的加速设备中确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同的所述目标加速设备。
本实施例中,加速管理节点通过获取各个加速节点的加速设备信息,并进行加速设备调用,可以根据客户端的应用程序的需求,并结合各个加速设备的加速类型以及算法类型,给应用程序分配相应的加速设备,实现正确调用,从而保证加速业务的正常运行。
进一步地,所述加速信息还包括:加速带宽,其中,每个加速设备的加速带宽包括:总带宽以及被占用带宽,相应的,所述调用请求还包括:目标加速带宽;
则S404具体可以包括:
查询所述加速设备信息,以从所述至少一个加速节点各自的加速设备中确定加速类 型和算法类型分别与所述目标加速类型和所述目标算法类型相同,且剩余带宽大于或等于所述目标加速带宽的备选加速设备,并将所述备选加速设备中的一个确定为所述目标加速设备,其中,所述剩余带宽根据所述总带宽以及所述被占用带宽计算得到。
更进一步地,S401中所接收的加速设备信息还可以包括:NUMA信息,S403中所获取的调用请求还可以包括:目标NUMA信息;则S404具体还可以包括:
查询所述加速设备信息,以从所述至少一个加速节点各自的加速设备中确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同,且剩余带宽大于或等于所述目标加速带宽,以及NUMA信息与所述目标NUMA信息一致的备选加速设备,并将所述备选加速设备中的一个确定为所述目标加速设备,其中,所述剩余带宽根据所述总带宽以及所述被占用带宽计算得到。
进一步地,在S404中,将所述备选加速设备中的一个确定为所述目标加速设备时,可以包括:
当所述备选加速设备为一个时,将所述备选加速设备确定为所述目标加速设备;
当所述备选加速设备为多个时,确定所述多个备选加速设备中剩余带宽最大的第一加速设备,若所述第一加速设备为一个,则将所述第一加速设备确定为所述目标加速设备,其中,备选加速设备的剩余带宽可以通过总带宽和被占用带宽计算得到;
当所述备选加速设备为多个且所述多个备选加速设备中剩余带宽最大的第一加速设备为多个时,确定若述多个第一加速设备中VF数最多的第二加速设备,若所述第二加速设备为一个,则将所述第二加速设备作为所述目标加速设备;其中,在S401中,加速管理节点接收的加速设备信息中包括,由加速节点上报的,加速节点中每个加速设备的所支持的VF数;
当所述备选加速设备为多个且所述多个备选加速设备中剩余带宽最大的第一加速设备为多个时,若所述多个第一加速设备中VF数最多的第二加速设备也为多个,则根据查询所述加速设备信息时的时间顺序,将最先查询到的一个第二加速设备作为所述目标加速设备。
本实施例中,示例性地,S405可以包括:给所述目标加速节点发送配置指示消息,以指示所述目标加速节点响应所述调用请求,所述配置指示消息用于指示所述目标加速节点将所述目标加速设备配置给所述客户端,所述配置指示消息具体可以指示与所述调用请求相匹配的所述目标加速设备的加速类型、算法类型,或者所述配置指示消息指示了所述目标加速设备的加速类型、算法类型以及加速带宽。
本实施例中,进一步地,所述方法还可以包括:
S406,根据所述目标加速带宽,更新之前保存的与所述目标加速设备对应的加速设备信息;以及记录分配结果,其中,分配结果指示了加速管理节点根据调用请求,具体将哪一个加速设备作为目标加速设备分配给客户端。需要说明的是,如果加速设备信息中只包括加速类型和算法类型,则S406中只记录加速管理节点的分配结果。
其中,S406可以在S405之后进行,也可以与S405同时进行,这里不做限定。
进一步地,所述方法还包括:
S407a,获取所述客户端发送的释放所述目标加速设备的释放请求,并调用所述目标加速节点释放所述目标加速设备;或者
S407b,当监测到所述客户端的业务出现异常时,根据记录的所述分配结果,找到所述目标加速设备,并调用所述目标加速节点释放所述目标加速设备,其中,加速管理节点可以周期性地监测各个客户端申请加速的业务是否正常运行,当业务出现异常时,加速管理节点可以根据S406中记录的分配结果,找到给异常业务配置的目标加速设备,并调用目标加速设备所在的目标加速节点释放所述目标加速设备,以避免目标加速设备在业务异常之后,仍然进行无效的运转。
更进一步地,在S407a或S407b之后,所述方法还包括:
S408,将所述分配结果置为无效。
由于目标加速设备已经被释放,因此,目标加速设备的分配结果也需要置为无效,以免影响加速管理节点继续为客户端分配加速设备。
如图6所示,本发明实施例还提供了一种加速设备配置方法的流程图,应用于加速节点(参见图3),所述加速节点包括:驱动以及至少一个加速设备;所述方法包括如下步骤:
S501,调用所述驱动分别查询所述至少一个加速设备,以获取每个加速设备的加速设备信息,所述加速设备信息包括:加速类型、算法类型;
S502,将所述加速设备信息上报给加速管理节点。
本实施例中,加速节点通过上报自身的加速设备的加速设备信息给加速管理节点,使得加速管理节点可以根据上报的加速设备信息,给客户端配置合适的加速设备,从而满足业务需求,并实现精确调用。
进一步地,所述加速设备信息还可以包括:加速带宽。
进一步地,本实施例中,所述方法还包括:
S503,接收所述加速管理节点发送的配置指示消息,其中,在所述加速设备信息包括:加速类型、算法类型的情况下,所述配置指示消息指示了与客户端的调用请求相匹配的目标加速设备的目标加速类型、目标算法类型,或者,在所述加速设备信息包括:加速类型、算法类型以及加速带宽的情况下,所述配置指示消息指示了与客户端的调用请求相匹配的目标加速设备的目标加速类型、目标算法类型以及目标加速带宽;
S504,并根据所述配置指示消息,调用所述驱动检测所述目标加速设备是否正常工作;
S505,当所述目标加速设备正常工作时,将所述目标加速设备的目标接口配置给所述客户端。
将目标加速设备的目标接口配置给客户端之后,客户端的应用程序就可以调用该目标接口,运行需要该应用程序加速的业务。
当加速节点采用多处理器架构时,各个加速设备可以根据各自归属的处理器进行分组,因此,在S501中,所述加速设备信息还可以包括:NUMA信息,其中,NUMA信息可以指示各个加速设备的分组情况。
相应的,S503中接收的所述配置指示消息还可以指示与客户端的调用请求相匹配的目标NUMA信息。
S506,将所述目标加速类型、所述目标算法类型以及所述目标加速带宽配置为所述目标接口的硬件属性,其中,配置目标接口的硬件属性可以便于加速节点后续查询该目标加速设备剩余的加速带宽,进而使得加速管理节点可以将该目标加速设备分配给其它客户端,从而最大限度地发挥该目标加速设备的加速能力。
S507,响应所述加速管理节点,释放所述目标加速设备。
S508,将所述所述目标接口的硬件属性置为空。
如图7所示,本发明实施例还提供了一种申请加速设备的方法的流程图,应用于客户端,所述方法包括:
S601,根据业务的加速需求生成调用请求,所述调用请求包括加速所述业务所需的目标加速类型、目标算法类型;
S602,将所述调用请求发送给加速管理节点,以申请调用与所述调用请求相匹配的目标加速设备来加速所述业务。加速管理节点根据目标加速类型以及目标算法类型,调 用目标加速设备,可以使目标加速设备的加速类型与算法类型与客户端的业务加速需求相匹配,实现准确调用。
进一步地,在S601中,在加速节点上报给加速管理节点的加速设备信息中包括加速带宽的情况下,客户端生成的所述调用请求还包括:加速所述业务所需的目标加速带宽。
本实施例中,客户端的应用程序可以将满足加速自身业务需求的加速设备所对应的目标加速类型、目标算法类型以及目标加速带宽发送给加速管理节点,向该加速管理节点申请加速设备,从而使得加速管理节点在调用客户端所需的目标加速设备时,可以更精确地调用,同时保证业务的正常运行。
本实施例中,当加速节点采用多处理器架构时,由于加速节点中的各个加速设备可以根据NUMA信息进行分组,因此,所述调用请求还可以包括所述业务所需的目标NUMA信息,以便将业务与该业务所需的目标加速设备配置在同一个NUMA下;需要说明的是,本实施例中,客户端和加速节点实际上可以是同一个物理主机,只是应用程序跟加速节点中的代理单元是不同的进程,或者,是不同的软件模块,因此,将业务与目标加速设备配置在同一个NUMA下,可以保证业务和目标加速设备是对同一NUMA下的存储器进行读取,可以提高读取性能。
S603,当所述业务完成加速时,生成释放所述目标加速设备的释放请求;
S604,将所述释放请求发送给所述加速管理节点。
当客户端的应用程序的业务完成加速之后,通过S603以及S604,客户端可以指示加速管理节点释放相应的目标加速设备,从而避免对目标加速设备的无效占用。
本发明实施例还提供了一种加速管理系统,参见图1,该加速管理系统包括加速管理节点100以及至少一个加速节点200,其中,加速管理节点100可以参考图2及相应的实施例所示的加速管理节点,加速节点200可以参考图3及相应的实施例所示的加速节点,这里不再赘述。采用本发明实施例所提供的加速管理系统,可以根据客户端的应用程序的业务需求,精确调用适合的加速设备给应用程序进行业务加速,并保障业务的正常运行。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程 序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (51)

  1. 一种加速管理节点,其特征在于,包括:
    接收单元,用于分别接收至少一个加速节点上报的各自的加速设备的加速设备信息,其中,每个加速节点包括至少一个加速设备,所述加速设备信息包括:加速类型、算法类型;
    获取单元,用于获取客户端发送的的调用请求,所述调用请求用于调用加速设备对所述客户端的业务进行加速,所述调用请求包括:目标加速类型、目标算法类型;
    分配单元,用于查询所述加速设备信息,从所述至少一个加速节点各自的加速设备中确定与所述调用请求相匹配的目标加速设备;
    指示单元,用于指示所述目标加速设备所在的目标加速节点响应所述调用请求。
  2. 如权利要求1所述的加速管理节点,其特征在于,所述分配单元用于查询所述加速设备信息,以从所述至少一个加速节点各自的加速设备中确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同的所述目标加速设备。
  3. 如权利要求1或2所述的加速管理节点,其特征在于,所述加速信息还包括:加速带宽,所述加速带宽包括:总带宽,以及被占用带宽;所述调用请求还包括:目标加速带宽;
    所述分配单元具体用于查询所述加速设备信息,以确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同,且剩余带宽大于或等于所述目标加速带宽的备选加速设备,并将所述备选加速设备中的一个确定为所述目标加速设备,其中,所述剩余带宽根据所述总带宽以及所述被占用带宽计算得到。
  4. 如权利要求3所述的加速管理节点,其特征在于,所述加速设备信息还包括:非统一内存访问架构NUMA信息;所述调用请求还包括:目标NUMA信息;
    所述分配单元具体用于查询所述加速设备信息,以确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同,剩余带宽大于或等于所述目标加速带宽,以及NUMA信息与所述目标NUMA信息一致的备选加速设备,并将所述备选加速设备中的一个确定为所述目标加速设备,其中,所述剩余带宽根据所述总带宽以及所述被占用带宽计算得到。
  5. 如权利要求3或4所述的加速管理节点,其特征在于,
    所述分配单元具体用于当所述备选加速设备为一个时,将所述备选加速设备确定为所述目标加速设备。
  6. 如权利要求3至5任一所述的加速管理节点,其特征在于,所述分配单元具体用于当所述备选加速设备为多个时,根据所述加速带宽确定所述多个备选加速设备中剩余带宽最大的第一加速设备,若所述第一加速设备为一个,则将所述第一加速设备确定为所述目标加速设备。
  7. 如权利要求6所述的加速管理节点,其特征在于,
    所述分配单元具体用于当剩余带宽最大的第一加速设备为多个时,根据所述VF数确定所述多个第一加速设备中VF数最多的第二加速设备,若所述第二加速设备为一个,则将所述第二加速设备作为所述目标加速设备。
  8. 如权利要求7所述的加速管理节点,其特征在于,所述分配单元具体用于当VF数最多的所述第二加速设备为多个时,根据查询所述加速设备信息时的时间顺序,将最先查询到的一个第二加速设备作为所述目标加速设备。
  9. 如权利要求1至8任一所述的加速管理节点,其特征在于,所述指示单元具体用于发送配置指示信息给所述目标加速节点,以指示所述目标加速节点响应所述调用请求,所述配置指示消息指示了与所述调用请求相匹配的所述目标加速设备的加速类型、算法类型,或者所述配置指示消息指示了所述目标加速设备的加速类型、算法类型以及加速带宽。
  10. 如权利要求1至9任一所述的加速管理节点,其特征在于,所述加速管理节点还包括:存储单元,用于存储所述加速设备信息。
  11. 如权利要求3至10任一所述的加速管理节点,其特征在于,所述存储单元还用于根据所述目标加速带宽,更新之前保存的与所述目标加速设备对应的加速设备信息;以及记录所述指示单元的分配结果。
  12. 如权利要求1至11任一所述的加速管理节点,其特征在于,所述加速管理节点还包括:
    释放单元,用于获取所述客户端发送的释放所述目标加速设备的释放请求,并调用所述目标加速节点释放所述目标加速设备。
  13. 如权利要求12所述的加速管理节点,其特征在于,所述释放单元还用于,当监测到所述客户端的业务出现异常时,根据所述存储单元记录的所述分配结果,找到所述目标加速设备,并调用所述目标加速节点释放所述目标加速设备。
  14. 根据权利要求10至13任一所述的加速管理节点,其特征在于,所述存储单元还用于将所述分配结果置为无效。
  15. 一种加速节点,其特征在于,包括:代理单元、驱动以及至少一个加速设备;所述驱动用于驱动所述至少一个加速设备,所述至少一个加速设备用于提供硬件加速功能;所述代理单元用于:
    调用所述驱动分别查询所述至少一个加速设备,以获取每个加速设备的加速设备信息,所述加速设备信息包括:加速类型、算法类型;
    将所述加速设备信息上报给加速管理节点。
  16. 如权利要求15所述的加速节点,所述加速设备信息还包括:加速带宽。
  17. 如权利要求15或16所述的加速节点,其特征在于,所述代理单元还用于:
    接收所述加速管理节点发送的配置指示消息,其中,所述配置指示消息指示了与客户端的调用请求相匹配的目标加速设备的目标加速类型、目标算法类型,或者所述配置指示消息指示了与客户端的调用请求相匹配的目标加速设备的目标加速类型、目标算法类型以及目标加速带宽;
    并根据所述配置指示消息,调用所述驱动检测所述目标加速设备是否正常工作;
    当所述目标加速设备正常工作时,将所述目标加速设备的目标接口配置给所述客户端。
  18. 如权利要求15至17任一所述的加速节点,其特征在于,所述加速设备信息还包括:非统一内存访问架构NUMA信息。
  19. 如权利要求18所述的加速节点,其特征在于,所述配置指示消息还指示了与客户端的调用请求相匹配的目标NUMA信息。
  20. 如权利要求17至19任一所述的加速节点,其特征在于,所述代理单元还用于将所述目标加速类型、所述目标算法类型以及所述目标加速带宽配置为所述目标接口的硬件属性。
  21. 如权利要求17至20任一所述的加速节点,其特征在于,所述代理单元还用于响应所述加速管理节点,释放所述目标加速设备。
  22. 如权利要求21所述的加速节点,其特征在于,所述代理单元还用于将所述目标接口的硬件属性置为空。
  23. 一种客户端,其特征在于,包括:
    请求单元,用于根据业务的加速需求生成调用请求,所述调用请求包括加速所述业务所需的目标加速类型、目标算法类型;
    发送单元,用于将所述调用请求发送给加速管理节点,以申请调用与所述调用请求 相匹配的目标加速设备来加速所述业务。
  24. 如权利要求23所述的客户端,其特征在于,所述调用请求还包括:加速所述业务所需的目标加速带宽。
  25. 如权利要求23或24所述的客户端,其特征在于,所述调用请求还包括所述业务所需的目标NUMA信息。
  26. 如权利要求23至25任一所述的客户端,其特征在于,所述请求单元还用于,当客户端需要释放加速设备时,生成释放所述目标加速设备的释放请求;
    所述发送单元还用于将所述释放请求发送给所述加速管理节点。
  27. 一种加速管理方法,其特征在于,包括:
    分别接收至少一个加速节点上报的各自的加速设备的加速设备信息,其中,每个加速节点包括至少一个加速设备,所述加速设备信息包括:加速类型、算法类型;
    获取客户端发送的调用请求,所述调用请求用于调用加速设备对所述客户端的业务进行加速,所述调用请求包括:目标加速类型、目标算法类型;
    查询所述加速设备信息,从所述至少一个加速节点各自的加速设备中确定与所述调用请求相匹配的目标加速设备;
    指示所述目标加速设备所在的目标加速节点响应所述调用请求。
  28. 如权利要求27所述的方法,其特征在于,所述查询所述加速设备信息,从所述至少一个加速节点各自的加速设备中确定与所述调用请求相匹配的目标加速设备的步骤包括:
    查询所述加速设备信息,以确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同的所述目标加速设备。
  29. 如权利要求27或28所述的方法,其特征在于,所述加速信息还包括:加速带宽,所述加速带宽包括:总带宽以及被占用带宽;所述调用请求还包括:目标加速带宽;
    所述查询所述加速设备信息,从所述至少一个加速节点各自的加速设备中确定与所述调用请求相匹配的目标加速设备的步骤包括:
    查询所述加速设备信息,以确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同,且剩余带宽大于或等于所述目标加速带宽的备选加速设备,并将所述备选加速设备中的一个确定为所述目标加速设备,其中,所述剩余带宽根据所述总带宽以及所述被占用带宽计算得到。
  30. 如权利要求29所述的方法,其特征在于,所述加速设备信息还包括:非统一 内存访问架构NUMA信息;所述调用请求还包括:目标NUMA信息;
    所述查询所述加速设备信息,从所述至少一个加速节点各自的加速设备中确定与所述调用请求相匹配的目标加速设备的步骤具体包括:
    查询所述加速设备信息,以确定加速类型和算法类型分别与所述目标加速类型和所述目标算法类型相同,且剩余带宽大于或等于所述目标加速带宽,以及NUMA信息与所述目标NUMA信息一致的备选加速设备,并将所述备选加速设备中的一个确定为所述目标加速设备,其中,所述剩余带宽根据所述总带宽以及所述被占用带宽计算得到。
  31. 如权利要求29或30所述的方法,其特征在于,
    当所述备选加速设备为一个时,将所述备选加速设备确定为所述目标加速设备;
    当所述备选加速设备为多个时,确定所述多个备选加速设备中剩余带宽最大的第一加速设备,若所述第一加速设备为一个,则将所述第一加速设备确定为所述目标加速设备带宽。
  32. 如权利要求31所述的方法,其特征在于,所述加速设备信息还包括:虚拟功能VF数;
    当剩余带宽最大的第一加速设备为多个时,确定所述多个第一加速设备中VF数最多的第二加速设备,若所述第二加速设备为一个,则将所述第二加速设备作为所述目标加速设备。
  33. 如权利要求32所述的方法,其特征在于,若VF数最多的所述第二加速设备为多个,则根据查询所述加速设备信息时的时间顺序,将最先查询到的一个第二加速设备作为所述目标加速设备。
  34. 如权利要求27至33任一所述的方法,其特征在于,还包括:
    存储所述加速设备信息。
  35. 如权利要求29至34任一所述的方法,其特征在于,还包括:
    根据所述目标加速带宽,更新之前保存的与所述目标加速设备对应的加速设备信息;以及记录分配结果。
  36. 如权利要求27至35任一所述的方法,其特征在于,还包括:
    获取所述客户端发送的释放所述目标加速设备的释放请求,并调用所述目标加速节点释放所述目标加速设备。
  37. 如权利要求36所述的方法,其特征在于,还包括:当监测到所述客户端的业务出现异常时,根据记录的所述分配结果,找到所述目标加速设备,并调用所述目标加 速节点释放所述目标加速设备。
  38. 根据权利要求35至37任一所述的方法,其特征在于,还包括:将所述分配结果置为无效。
  39. 一种加速设备配置方法,应用于加速节点,所述加速节点包括:驱动以及至少一个加速设备;所述方法包括:
    调用所述驱动分别查询所述至少一个加速设备,以获取每个加速设备的加速设备信息,所述加速设备信息包括:加速类型、算法类型;
    将所述加速设备信息上报给加速管理节点。
  40. 如权利要求39所述的方法,其特征在于,所述加速设备信息还包括:加速带宽。
  41. 如权利要求39或40所述的方法,其特征在于,还包括:
    接收所述加速管理节点发送的配置指示消息,其中,所述配置指示消息指示了与客户端的调用请求相匹配的目标加速设备的目标加速类型、目标算法类型,或者所述配置指示消息指示了与客户端的调用请求相匹配的目标加速设备的目标加速类型、目标算法类型以及目标加速带宽;
    并根据所述配置指示消息,调用所述驱动检测所述目标加速设备是否正常工作;
    当所述目标加速设备正常工作时,将所述目标加速设备的目标接口配置给所述客户端。
  42. 如权利要求39或41所述的方法,其特征在于,所述加速设备信息还包括:非统一内存访问架构NUMA信息。
  43. 如权利要求42所述的方法,其特征在于,所述配置指示消息还指示了与客户端的调用请求相匹配的目标NUMA信息。
  44. 如权利要求41至43任一所述的方法,其特征在于,还包括:
    将所述目标加速类型、所述目标算法类型以及所述目标加速带宽配置为所述目标接口的硬件属性。
  45. 如权利要求41至44任一所述的方法,其特征在于,还包括:
    响应所述加速管理节点,释放所述目标加速设备。
  46. 如权利要求45所述的方法,其特征在于,还包括:
    将所述目标接口的硬件属性置为空。
  47. 一种申请加速设备的方法,其特征在于,包括:
    根据业务的加速需求生成调用请求,所述调用请求包括加速所述业务所需的目标加速类型、目标算法类型;
    将所述调用请求发送给加速管理节点,以申请调用与所述调用请求相匹配的目标加速设备来加速所述业务。
  48. 如权利要求47所述的方法,其特征在于,所述调用请求还包括:加速所述业务所需的目标加速带宽。
  49. 如权利要求47或48所述的方法,其特征在于,所述调用请求还包括所述业务所需的目标NUMA信息。
  50. 如权利要求47至49任一所述的方法,其特征在于,还包括:
    当所述业务完成加速时,生成释放所述目标加速设备的释放请求;
    将所述释放请求发送给所述加速管理节点。
  51. 一种加速管理系统,其特征在于,包括:如权利要求1至14任一所述的加速管理节点,以及,如权利要求15至22任一所述的加速节点。
PCT/CN2016/100137 2015-09-28 2016-09-26 一种加速管理节点、加速节点、客户端及方法 WO2017054691A1 (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
EP21217676.2A EP4040761A3 (en) 2015-09-28 2016-09-26 Acceleration management node, computer program product and non-transitory computer-readable medium
EP20174899.3A EP3767912B1 (en) 2015-09-28 2016-09-26 Acceleration management methods
EP16850315.9A EP3337135B1 (en) 2015-09-28 2016-09-26 Acceleration management node, acceleration node, client, and method
US15/937,864 US10628190B2 (en) 2015-09-28 2018-03-28 Acceleration management node, acceleration node, client, and method
US16/852,408 US11080076B2 (en) 2015-09-28 2020-04-18 Acceleration management node, acceleration node, client, and method
US17/376,305 US11579907B2 (en) 2015-09-28 2021-07-15 Acceleration management node, acceleration node, client, and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510628762.0 2015-09-28
CN201510628762.0A CN105357258B (zh) 2015-09-28 2015-09-28 一种加速管理节点、加速节点、客户端及方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/937,864 Continuation US10628190B2 (en) 2015-09-28 2018-03-28 Acceleration management node, acceleration node, client, and method

Publications (1)

Publication Number Publication Date
WO2017054691A1 true WO2017054691A1 (zh) 2017-04-06

Family

ID=55333117

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/100137 WO2017054691A1 (zh) 2015-09-28 2016-09-26 一种加速管理节点、加速节点、客户端及方法

Country Status (4)

Country Link
US (3) US10628190B2 (zh)
EP (3) EP3337135B1 (zh)
CN (2) CN111865657B (zh)
WO (1) WO2017054691A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111865657B (zh) 2015-09-28 2022-01-11 华为技术有限公司 一种加速管理节点、加速节点、客户端及方法
CN105893036B (zh) * 2016-03-30 2019-01-29 清华大学 一种嵌入式系统的兼容式加速器扩展方法
CN107493485B (zh) * 2016-06-13 2021-11-05 中兴通讯股份有限公司 一种资源控制方法、装置和iptv服务器
CN105979007B (zh) * 2016-07-04 2020-06-02 华为技术有限公司 加速资源处理方法、装置及网络功能虚拟化系统
CN106412063B (zh) * 2016-09-29 2019-08-13 赛尔网络有限公司 教育网内cdn节点检测与资源调度系统及方法
CN108121587B (zh) * 2016-11-30 2021-05-04 华为技术有限公司 一种数据加速方法及虚拟加速器
CN107436798A (zh) * 2017-08-15 2017-12-05 深信服科技股份有限公司 一种基于numa节点的进程访问方法及装置
US20190044809A1 (en) * 2017-08-30 2019-02-07 Intel Corporation Technologies for managing a flexible host interface of a network interface controller
CN108449273A (zh) * 2018-01-25 2018-08-24 上海连尚网络科技有限公司 一种网络加速方法及系统
EP3791274B1 (en) * 2018-05-08 2024-05-01 Telefonaktiebolaget LM Ericsson (publ) Method and node for managing a request for hardware acceleration by means of an accelerator device
CN111625585B (zh) * 2020-05-22 2021-08-31 中科驭数(北京)科技有限公司 硬件加速数据库的访问方法、装置、主机及存储介质
CN113014509B (zh) * 2021-05-26 2021-09-17 腾讯科技(深圳)有限公司 应用程序加速方法和装置
CN117632457A (zh) * 2022-08-15 2024-03-01 华为技术有限公司 一种加速器调度方法及相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102650950A (zh) * 2012-04-10 2012-08-29 南京航空航天大学 一种支持多gpu虚拟化的平台架构及其工作方法
US20140241247A1 (en) * 2011-08-29 2014-08-28 Telefonaktiebolaget L M Ericsson (Publ) Implementing a 3g packet core in a cloud computer with openflow data and control planes
CN104050045A (zh) * 2014-06-27 2014-09-17 华为技术有限公司 基于磁盘io的虚拟资源分配方法及装置
CN105357258A (zh) * 2015-09-28 2016-02-24 华为技术有限公司 一种加速管理节点、加速节点、客户端及方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050276413A1 (en) * 2004-06-14 2005-12-15 Raja Neogi Method and apparatus to manage heterogeneous cryptographic operations
US8434087B2 (en) * 2008-08-29 2013-04-30 International Business Machines Corporation Distributed acceleration devices management for streams processing
EP2442228A1 (en) * 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof
CN102685162B (zh) 2011-03-11 2014-12-03 中国电信股份有限公司 云计算加速方法和系统
CN102148759A (zh) * 2011-04-01 2011-08-10 许旭 通过缓存加速系统节省主干网出口带宽的方法
KR101861742B1 (ko) * 2011-08-30 2018-05-30 삼성전자주식회사 이종의 가속기들 사이에서 스위칭할 수 있는 데이터 처리 시스템과 그 방법
CN104348677A (zh) * 2013-08-05 2015-02-11 华为技术有限公司 一种深度报文检测方法、设备及协处理器
CN103458029A (zh) * 2013-09-02 2013-12-18 百度在线网络技术(北京)有限公司 通过浏览器进行加速下载的方法、系统和装置
CN103596066B (zh) * 2013-11-28 2017-02-15 中国联合网络通信集团有限公司 一种数据处理方法及装置
CN104951353B (zh) 2014-03-28 2018-09-21 华为技术有限公司 一种对vnf实现加速处理的方法及装置
CN104102546B (zh) * 2014-07-23 2018-02-02 浪潮(北京)电子信息产业有限公司 一种实现cpu和gpu负载均衡的方法及系统
CN104503728B (zh) 2015-01-04 2017-11-24 华为技术有限公司 一种硬件加速器及芯片
CN104657308A (zh) * 2015-03-04 2015-05-27 浪潮电子信息产业股份有限公司 一种用fpga实现的服务器硬件加速的方法
CN104765613B (zh) * 2015-04-21 2017-09-12 华中科技大学 一种虚拟化环境下面向任务并行编程模型的优化方法
CN104899085B (zh) 2015-05-29 2018-06-26 华为技术有限公司 一种数据处理方法和装置
US10540588B2 (en) * 2015-06-29 2020-01-21 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
US20160379109A1 (en) * 2015-06-29 2016-12-29 Microsoft Technology Licensing, Llc Convolutional neural networks on hardware accelerators

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140241247A1 (en) * 2011-08-29 2014-08-28 Telefonaktiebolaget L M Ericsson (Publ) Implementing a 3g packet core in a cloud computer with openflow data and control planes
CN102650950A (zh) * 2012-04-10 2012-08-29 南京航空航天大学 一种支持多gpu虚拟化的平台架构及其工作方法
CN104050045A (zh) * 2014-06-27 2014-09-17 华为技术有限公司 基于磁盘io的虚拟资源分配方法及装置
CN105357258A (zh) * 2015-09-28 2016-02-24 华为技术有限公司 一种加速管理节点、加速节点、客户端及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3337135A4 *

Also Published As

Publication number Publication date
EP3337135A4 (en) 2018-09-26
EP3337135B1 (en) 2020-08-12
EP3337135A1 (en) 2018-06-20
CN105357258A (zh) 2016-02-24
US11579907B2 (en) 2023-02-14
US20180217856A1 (en) 2018-08-02
EP4040761A2 (en) 2022-08-10
US11080076B2 (en) 2021-08-03
CN111865657B (zh) 2022-01-11
CN111865657A (zh) 2020-10-30
CN105357258B (zh) 2020-06-26
US20210342170A1 (en) 2021-11-04
US10628190B2 (en) 2020-04-21
US20200293345A1 (en) 2020-09-17
EP3767912A1 (en) 2021-01-20
EP3767912B1 (en) 2022-06-22
EP4040761A3 (en) 2022-08-24

Similar Documents

Publication Publication Date Title
WO2017054691A1 (zh) 一种加速管理节点、加速节点、客户端及方法
EP3281360B1 (en) Virtualized network function monitoring
WO2018006676A1 (zh) 加速资源处理方法、装置及网络功能虚拟化系统
US20130036208A1 (en) Systems and methods for automatic hardware provisioning based on application characteristics
US20200356402A1 (en) Method and apparatus for deploying virtualized network element device
US10235047B2 (en) Memory management method, apparatus, and system
WO2018040525A1 (zh) 资源池的处理方法、装置和设备
US9104501B2 (en) Preparing parallel tasks to use a synchronization register
EP3617877A1 (en) Cloud migration
US20220244998A1 (en) Method and apparatus for acquiring device information, storage medium and electronic device
US11902382B2 (en) Cloud migration between cloud management platforms
US10686884B2 (en) Method for managing sessions using web sockets
US11799743B2 (en) Node addition in cloud networks
US10397071B2 (en) Automated deployment of cloud-hosted, distributed network monitoring agents
US10944814B1 (en) Independent resource scheduling for distributed data processing programs
US11614957B1 (en) Native-hypervisor based on-demand code execution system
US9959097B2 (en) SVN interface system for heterogeneous development environments
US10313429B2 (en) Distributed resource management method and system
US9633120B2 (en) Continuously blocking query result data for a remote query
US20190317789A1 (en) Cluster check services for computing clusters
WO2021080722A1 (en) Security risk load balancing systems and methods

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16850315

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2016850315

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE