Computing node based on cloud computing technique, and server system

By setting up multiple offload cards on the computing nodes of the cloud computing data center and using the second offload card to generate a replacement device in the event of a failure, the problem of business interruption caused by offload card failure is solved, the system can be quickly restored and load balanced, and the user experience and business capabilities are improved.

WO2025213987A1PCT designated stage Publication Date: 2025-10-16HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/080266
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-04-29
Filing Date
2025-03-03
Publication Date
2025-10-16

AI Technical Summary

Technical Problem

In cloud computing data centers, offload card failures can cause server service failures, reducing overall system availability and user experience.

Method used

At least two offload cards are set on the computing node. When the first offload card fails, the second offload card is used to obtain the configuration parameters of the virtual instance or application, and a second virtual device is generated through virtualization processing to replace the first virtual device to achieve business recovery.

Benefits of technology

It improves the overall availability of the system and user experience, and enhances the business capabilities of virtual instances or applications through load balancing and rapid fault recovery.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025080266_16102025_PF_FP_ABST
    Figure CN2025080266_16102025_PF_FP_ABST
Patent Text Reader

Abstract

A computing node based on a cloud computing technique. The computing node is arranged in a data center providing cloud services, and a virtual instance or an application program runs on the computing node. At least two offload cards are inserted into the computing node. A first offload card among the at least two offload cards is used for performing virtualization processing on physical resources of the first offload card to generate a first virtual device, and the virtual instance or the application program is used for mounting and / or accessing the first virtual device. A second offload card among the at least two offload cards is used for acquiring, when the first offload card fails, configuration parameters of the virtual instance or the application program, and performing virtualization processing on physical resources of the second offload card on the basis of the configuration parameters, so as to generate a second virtual device for replacing the first virtual device, and the virtual instance or the application program is used for mounting and / or accessing the second virtual device. Rapid service recovery can be performed when a certain offload card fails, thereby improving the overall availability of a system.
Need to check novelty before this filing date? Find Prior Art

Description

Computing node and server system based on cloud computing technology

[0001] The present application claims priority to the Chinese patent application No. 202410410792.3, filed on April 7, 2024, entitled “Method and apparatus for data processing and computing device” and the Chinese patent application No. 202410532724.4, filed on April 29, 2024, entitled “Computing node and server system based on cloud computing technology”, the contents of which are incorporated herein by reference in their entirety. TECHNICAL FIELD

[0002] The present application relates to the field of cloud computing, and more particularly, to a computing node and server system based on cloud computing technology. BACKGROUND

[0003] In a cloud computing data center, in order to improve the hardware resource utilization rate of a server running a tenant service, the industry has proposed a new generation of technology based on hardware offloading, which can offload server services (such as network, storage, and IO services) to offload cards, so that the server can free up more physical resources for tenant use. Therefore, the offload card is a core component.

[0004] In the related technical solution, if the offload card fails, the corresponding server service will be invalid, thereby reducing the overall availability of the system and the user experience. SUMMARY

[0005] The present application provides a computing node and server system based on cloud computing technology and a data processing method, which can quickly recover services when a certain offload card fails, improve the overall availability of the system, and thereby improve the user experience.

[0006] In a first aspect, a computing node based on cloud computing technology is provided, the computing node is arranged in a data center providing cloud services, a virtual instance or an application program for remote use by a tenant is run on the computing node, at least two offload cards are inserted into the computing node, and the business of the computing node is offloaded to at least one of the at least two offload cards, wherein: a first offload card of the at least two offload cards is configured to perform virtualization processing on physical resources of the first offload card to generate a first virtual device; the virtual instance or the application program is configured to mount and / or access the first virtual device; a second offload card of the at least two offload cards is configured to, in the case of failure of the first offload card, obtain configuration parameters of the virtual instance or the application program, perform virtualization processing on physical resources of the second offload card according to the configuration parameters to generate a second virtual device for replacing the first virtual device; and the virtual instance or the application program is configured to mount and / or access the second virtual device.

[0007] The virtual instance can include, but is not limited to, a virtual machine (VM), a container, etc.

[0008] An exemplary scenario of the application program can be a bare metal server scenario. After a tenant purchases a bare metal server from a cloud service provider, the tenant can directly run an application program related to the tenant's business on an operating system of the bare metal server.

[0009] The physical resources on the first offload card can include, but are not limited to, computing resources (processors and memories), network resources (for example, network cards), and storage resources (for example, disks). For example, the disk can be accessed through a disk interface arranged on the first offload card, and the network card can be directly inserted into the first offload card through a card slot or integrated into the first offload card.

[0010] The virtualization processing can include, but is not limited to, single root I / O virtualization (SR-IOV) technology, pass-through technology, or time division multiplexing virtualization technology, etc.

[0011] For example, the first offload card provides the first virtual device to the virtual instance or the application program in a pass-through manner, and the first virtual device can perform at least one of the following services on the virtual instance or the application program: computing service, network service, storage service, security service, etc.

[0012] For example, the second offload card provides the second virtual device to the virtual instance or the application program through a pass-through mode, and the second virtual device can perform at least one service on the virtual instance or the application program, such as a computing service, a network service, a storage service, a security service, and the like.

[0013] For example, the first virtual device and / or the second virtual device can include, but are not limited to, a physical function (PF), a virtual function (VF), and the like. For example, the first offload card binds a logical disk in a storage resource to a VF, and provides the VF to a virtual instance or an application program running on a computing node for remote use by a tenant, and after the virtual instance or the application program mounts the VF, the virtual instance or the application program can access the logical disk as accessing a local disk. For another example, the first offload card binds a network card interface eth0 in a network resource to a VF, and provides the VF to a virtual instance or an application program, and after the virtual instance or the application program mounts the VF, the virtual instance or the application program can use the eth0 as using a local network card.

[0014] For example, the offload card can include, but is not limited to, a data processing unit (DPU), a smart network interface card (smartNIC), an intelligent processing unit (IPU), and the like.

[0015] In the technical solution, when the first offload card fails, the second offload card acquires configuration parameters of a virtual instance or an application program that mounts and / or accesses a first virtual device (generated by virtualizing a physical resource on the first offload card), and virtualizes a physical resource on the second offload card to generate a second virtual device to replace the first virtual device according to the configuration parameters of the virtual instance or the application program, and the virtual instance or the application program can mount and / or access the second virtual device. In this way, when it is determined that a certain offload card fails, the offload card that does not fail timely takes over and recovers the service of the virtual instance or the application program running on the computing node, improves the overall availability of the system, and thus improves the user experience.

[0016] In combination with the first aspect, in some implementations of the first aspect, the second offload card is specifically configured to acquire the configuration parameters of the virtual instance or the application program from the second offload card.

[0017] In the technical solution, the second offload card can obtain the configuration parameters of the virtual instance or the application from the second offload card in the case that the first offload card fails, so that the second offload card can quickly virtualize the physical resources of the second offload card according to the configuration parameters to generate a second virtual device to replace the first virtual device, thereby improving the efficiency of fault recovery.

[0018] With reference to the first aspect, in some implementations of the first aspect, a connection channel is arranged between the second offload card and the first offload card, and the first offload card is further configured to synchronize the configuration parameters of the virtual instance or the application to the second offload card through the connection channel; and the second offload card is further configured to store the configuration parameters of the virtual instance or the application.

[0019] For example, the first offload card synchronizes the configuration parameters of the virtual instance or the application to the second offload card through the connection channel between the first offload card and the second offload card, and the second offload card stores the configuration parameters of the virtual instance or the application after receiving the configuration parameters of the virtual instance or the application synchronized by the first offload card. In this way, after the first offload card fails, the second offload card can directly obtain the stored configuration parameters of the virtual instance or the application from the second offload card.

[0020] In the technical solution, the first offload card can synchronize the configuration parameters of the virtual instance or the application to the second offload card in advance through the connection channel, so that the second offload card can quickly obtain the configuration parameters of the virtual instance or the application in the case that the first offload card fails.

[0021] With reference to the first aspect, in some implementations of the first aspect, the second offload card is specifically configured to obtain the configuration parameters of the virtual instance or the application from the memory of the computing node.

[0022] For example, the first offload card can store the configuration parameters of the virtual instance or the application in the memory of the computing node. After the first offload card fails, the second offload card can obtain the stored configuration parameters of the virtual instance or the application from the memory of the computing node, for example, by using a direct memory access (DMA) technology.

[0023] With reference to the first aspect, in some implementations of the first aspect, the second offload card is further configured to determine that the first offload card fails based on a heartbeat detection mechanism.

[0024] As an example, the second offload card can establish a connection channel with the first offload card through a network, such as a network protocol of RDMA, TCP IP, etc.; or the second offload card can also establish a connection channel with the first offload card through a bus, such as a PCIE bus. The second offload card can obtain the running state of the first offload card based on the connection channel between the second offload card and the first offload card, such as obtaining whether the first offload card has a fault.

[0025] As an example, the second offload card can perform periodic heartbeat detection on the first offload card based on the connection channel between the second offload card and the first offload card, to monitor the running state of the first offload card in real time, so as to determine whether the first offload card has a fault. For example, the second offload card can periodically send a heartbeat detection packet to the first offload card based on the connection channel between the second offload card and the first offload card. After the first offload card receives the heartbeat detection packet sent by the second offload card, the first offload card sends a corresponding response packet to the second offload card. If the second offload card can receive the response packet sent by the first offload card after sending the heartbeat detection packet to the first offload card, it is considered that the first offload card does not have a fault at present. If the second offload card does not receive the response packet sent by the first offload card within a certain time period after sending the heartbeat detection packet to the first offload card, it is considered that the first offload card has a fault at present.

[0026] In combination with the first aspect, in some implementations of the first aspect, the second offload card is further configured to receive a fault notification, the fault notification being used to notify that the first offload card has a fault at present.

[0027] As an example, the centralized monitoring module is responsible for establishing a connection channel between the centralized monitoring module and each of the plurality of offload cards (including the first offload card and the second offload card), and performing tasks such as heartbeat detection and fault event notification on each of the plurality of offload cards (including the first offload card and the second offload card) through the connection channel. Therefore, the connection channel between each of the plurality of offload cards (including the first offload card and the second offload card) does not need to be established, but the connection channel between the centralized monitoring module and each of the plurality of offload cards (including the first offload card and the second offload card) is established by the centralized monitoring module.

[0028] As an example, the centralized monitoring module can perform periodic heartbeat detection on the first offload card based on the connection channel between the centralized monitoring module and the first offload card, to monitor the running state of the first offload card in real time, so as to determine whether the first offload card has a fault. If the centralized monitoring module monitors that the first offload card has a fault at a certain moment, the centralized monitoring module can send a notification to the second offload card that the first offload card has a fault at present.

[0029] The centralized monitoring module described above can be deployed on one computing node.

[0030] The technical solution can uniformly monitor the states of multiple offload cards by the centralized monitoring module, avoid establishing a connection channel and sending a heartbeat message between the offload cards, and thus improve the monitoring efficiency.

[0031] In some implementations of the first aspect, the configuration parameters of the virtual instance or the application program include at least one of the following information: physical resource information provided by the first virtual device to the virtual instance or the application program, state information of the virtual instance or the application program using the first virtual device, tenant information of a tenant to which the virtual instance or the application program belongs.

[0032] As an example, the second offload card can determine the physical resources on the second offload card for virtualization processing according to the obtained virtual instance or application program configuration parameters (for example, at least one of the following: physical resource information provided by the first virtual device to the virtual instance or the application program, state information of the virtual instance or the application program using the first virtual device, tenant information of a tenant to which the virtual instance or the application program belongs). The physical resources on the second offload card for virtualization processing are the same as the first virtual device after the second virtual device generated by the virtualization processing, so the generated second virtual device can replace the first virtual device, and the second virtual device can be provided to the virtual instance or the application program for use. That is, the virtual instance or the application program running on the computing node can mount and / or access the second virtual device at this time.

[0033] In some implementations of the first aspect, the first virtual device and / or the second virtual device perform at least one of the following services of the virtual instance or the application program: a computing service, a network service, a storage service, and a security service.

[0034] In some implementations of the first aspect, the first offload card is a selected offload card with lower load among the at least two offload cards.

[0035] In the technical solution, the first offload card generating the first virtual device is a selected offload card with lower load among the at least two offload cards, so that load balancing between the at least two offload cards can be achieved. The performance bottleneck and the problem that new services cannot be expanded due to unbalanced load between the at least two offload cards are solved.

[0036] In some implementations of the first aspect, the at least two offload cards further include a third offload card, the third offload card is configured to perform virtualization processing on physical resources of the third offload card to generate a third virtual device; and the virtual instance or the application program is configured to mount and / or access a fourth virtual device generated by aggregation of the first virtual device and the third virtual device.

[0037] In the technical solution, at least two virtual devices (for example, a first virtual device and a third virtual device) generated by at least two offload cards (for example, a first offload card and a third offload card) are aggregated to generate a fourth virtual device, and the fourth virtual device is provided to a virtual instance or an application program running on a computing node for use, so that the maximum service performance of the virtual instance or the application program is not limited, thereby improving the service capability of the virtual instance or the application program.

[0038] With reference to the first aspect, in some implementations of the first aspect, the computing node is further provided with a management module, configured to obtain a virtual instance creation request sent by a cloud management platform, and create the virtual instance on the computing node according to the virtual instance creation request, wherein the virtual instance creation request carries a specification of the virtual instance configured by the tenant, and the first virtual device matches the virtual instance specification.

[0039] For example, the management module can be a virtual machine manager (VMM) on the computing node, which can also be referred to as a Hypervisor.

[0040] In a second aspect, a server system based on cloud computing technology is provided, including an offload card carrying node and a computing node, the offload card carrying node and the computing node are arranged in a data center providing cloud services, at least two offload cards are inserted into the offload card carrying node, and the service of the computing node is offloaded to at least one of the at least two offload cards, wherein: the computing node is configured to run a virtual instance or an application program for remote use by a tenant, and a connection channel is arranged between the offload card carrying node and the computing node; a first offload card of the at least two offload cards is configured to virtualize physical resources of the first offload card to generate a first virtual device; the virtual instance or the application program is configured to mount and / or access the first virtual device through the connection channel; a second offload card of the at least two offload cards is configured to obtain configuration parameters of the virtual instance or the application program in a case where it is determined that the first offload card fails, and virtualize physical resources of the second offload card according to the configuration parameters to generate a second virtual device for replacing the first virtual device, and the virtual instance or the application program is configured to mount and / or access the second virtual device through the connection channel.

[0041] With reference to the second aspect, in some implementations of the second aspect, the second offload card is specifically configured to obtain the configuration parameters of the virtual instance or the application program from the second offload card.

[0042] With reference to the second aspect, in some implementations of the second aspect, a connection channel is arranged between the second offload card and the first offload card, and the first offload card is further configured to synchronize the configuration parameters of the virtual instance or the application to the second offload card through the connection channel between the second offload card and the first offload card; and the second offload card is further configured to store the configuration parameters of the virtual instance or the application.

[0043] With reference to the second aspect, in some implementations of the second aspect, the second offload card is specifically configured to obtain the configuration parameters of the virtual instance or the application from the memory of the computing node through a connection channel between the offload card hosting node and the computing node.

[0044] With reference to the second aspect, in some implementations of the second aspect, the second offload card is further configured to determine that the first offload card has failed based on a heartbeat detection mechanism.

[0045] With reference to the second aspect, in some implementations of the second aspect, the configuration parameters of the virtual instance or the application include at least one of the following information: physical resource information provided by the first virtual device to the virtual instance or the application, state information of the virtual instance or the application using the first virtual device, tenant information of a tenant to which the virtual instance or the application belongs.

[0046] With reference to the second aspect, in some implementations of the second aspect, the first virtual device and / or the second virtual device performs at least one of the following services of the virtual instance or the application: a computing service, a network service, a storage service, and a security service.

[0047] With reference to the second aspect, in some implementations of the second aspect, the first offload card is a less loaded offload card selected from the at least two offload cards.

[0048] With reference to the second aspect, in some implementations of the second aspect, the at least two offload cards further include a third offload card, and the third offload card is configured to virtualize physical resources of the third offload card to generate a third virtual device; and the virtual instance or the application is configured to mount and / or access a fourth virtual device generated by aggregation of the first virtual device and the third virtual device.

[0049] With reference to the second aspect, in some implementations of the second aspect, the computing node is further provided with a management module, and the management module is configured to obtain a virtual instance creation request sent by a cloud management platform, and create the virtual instance on the computing node according to the virtual instance creation request, wherein the virtual instance creation request carries the virtual instance specification configured by the tenant, and the first virtual device matches the virtual instance specification.

[0050] It should be appreciated that the beneficial effects of the second aspect and the various implementations of the second aspect can refer to the beneficial effects of the first aspect and the various implementations of the first aspect, which will not be repeated here.

[0051] In a third aspect, a method for data processing is provided, the method comprising: a first offload card generating a first virtual device by virtualizing physical resources on the first offload card; a virtual instance or an application running on a compute node mounting and / or accessing the first virtual device; a second offload card obtaining configuration parameters of the virtual instance or the application running on the compute node in a case where the first offload card fails; the second offload card generating a second virtual device for replacing the first virtual device by virtualizing physical resources of the second offload card according to the configuration parameters of the virtual instance or the application running on the compute node; the virtual instance or the application running on the compute node mounting and / or accessing the second virtual device.

[0052] With reference to the third aspect, in some implementations of the third aspect, the second offload card obtaining the configuration parameters of the virtual instance or the application running on the compute node comprises: the second offload card obtaining the configuration parameters of the virtual instance or the application from the second offload card.

[0053] With reference to the third aspect, in some implementations of the third aspect, a connection channel is provided between the second offload card and the first offload card, and the method further comprises: the first offload card synchronizing the configuration parameters of the virtual instance or the application to the second offload card through the connection channel; and the second offload card storing the configuration parameters of the virtual instance or the application.

[0054] With reference to the third aspect, in some implementations of the third aspect, the second offload card obtaining the configuration parameters of the virtual instance or the application running on the compute node comprises: the second offload card obtaining the configuration parameters of the virtual instance or the application from a memory of the compute node.

[0055] With reference to the third aspect, in some implementations of the third aspect, the method further comprises: the second offload card receiving a failure notification, the failure notification being used to notify that the first offload card currently fails.

[0056] With reference to the third aspect, in some implementations of the third aspect, the configuration parameters of the virtual instance or the application comprise at least one of the following information: physical resource information provided by the first virtual device to the virtual instance or the application, state information of the virtual instance or the application using the first virtual device, and tenant information of a tenant to which the virtual instance or the application belongs.

[0057] With reference to the third aspect, in some implementations of the third aspect, the first virtual device and / or the second virtual device performs at least one service of the virtual instance or the application program, which is a computing service, a network service, a storage service, or a security service.

[0058] With reference to the third aspect, in some implementations of the third aspect, the first offload card is a less loaded offload card selected from the at least two offload cards.

[0059] With reference to the third aspect, in some implementations of the third aspect, the at least two offload cards further include a third offload card, and the method further includes: the third offload card virtualizes physical resources of the third offload card to generate a third virtual device; and the virtual instance or the application program mounts and / or accesses a fourth virtual device generated by aggregation of the first virtual device and the third virtual device.

[0060] With reference to the third aspect, in some implementations of the third aspect, the computing node is further provided with a management module, and the method further includes: the management module obtains a virtual instance creation request sent by a cloud management platform, and creates the virtual instance on the computing node according to the virtual instance creation request, wherein the virtual instance creation request carries a specification of the virtual instance configured by the tenant, and the first virtual device matches the specification of the virtual instance.

[0061] It should be understood that the beneficial effects of the third aspect and the various implementations of the third aspect are described in the first aspect and the various implementations of the first aspect, and will not be repeated here.

[0062] The fourth aspect provides a computing device, which includes a processor and a memory, and optionally further includes an input / output interface. The processor is configured to control the input / output interface to receive and send information, and the memory is configured to store a computer program. The processor is configured to call and run the computer program from the memory, so as to execute the method in the third aspect or any possible implementation manner of the third aspect.

[0063] Optionally, the processor can be a general-purpose processor, which can be implemented by hardware or software. When implemented by hardware, the processor can be a logic circuit, an integrated circuit, etc. When implemented by software, the processor can be a general-purpose processor, which is configured to read software codes stored in the memory to implement the processor. The memory can be integrated in the processor or exist independently outside the processor.

[0064] In a fifth aspect, a computing device cluster is provided, including at least one computing device, each computing device including a processor and a memory; the processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device to cause the computing device cluster to perform the method in the third aspect or any possible implementation of the third aspect.

[0065] In a sixth aspect, a chip is provided, which obtains instructions and executes the instructions to implement the method in the third aspect and any possible implementation of the third aspect.

[0066] Optionally, as an implementation, the chip includes a processor and a data interface, the processor reads instructions stored in a memory through the data interface, and executes the method in the third aspect and any possible implementation of the third aspect.

[0067] Optionally, as an implementation, the chip can further include a memory, the memory stores instructions, and the processor is configured to execute the instructions stored in the memory, and when the instructions are executed, the processor is configured to execute the method in the third aspect and any possible implementation of the third aspect.

[0068] In a seventh aspect, a computer program product including instructions is provided, when the instructions are executed by a computing device, the computing device executes the method in the third aspect and any possible implementation of the third aspect.

[0069] In an eighth aspect, a computer program product including instructions is provided, when the instructions are executed by a computing device cluster, the computing device cluster executes the method in the third aspect and any possible implementation of the third aspect.

[0070] In a ninth aspect, a computer readable storage medium is provided, including computer program instructions, when the computer program instructions are executed by a computing device, the computing device executes the method in the third aspect and any possible implementation of the third aspect.

[0071] As an example, the computer readable storage includes, but is not limited to, one or more of the following: read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), Flash memory, electrically EPROM (EEPROM), and hard drive.

[0072] Optionally, as an implementation, the storage medium can be a non-volatile storage medium.

[0073] In a tenth aspect, a computer-readable storage medium is provided, including computer program instructions, when the computer program instructions are executed by a computing device cluster, the computing device cluster executes the method according to the third aspect and any one of the implementation manners of the third aspect.

[0074] By way of example, such computer-readable storage includes one or more of the following: read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), Flash memory, electrically EPROM (EEPROM), and hard drives.

[0075] Optionally, as an implementation manner, the storage medium can be a non-volatile storage medium. BRIEF DESCRIPTION OF DRAWINGS

[0076] FIG. 1(a) is a schematic block diagram of a cloud scenario applied to the embodiments of the present application.

[0077] FIG. 1(b) is a schematic block diagram of another cloud scenario applied to the embodiments of the present application.

[0078] FIG. 2(a) is a schematic diagram of an offloading scenario applied to the embodiments of the present application.

[0079] FIG. 2(b) is a schematic diagram of another offloading scenario applied to the embodiments of the present application.

[0080] FIG. 3 is a schematic block diagram of a computing node under a conventional architecture provided by the embodiments of the present application.

[0081] FIG. 4 is a schematic block diagram of a server system under a pooling architecture provided by the embodiments of the present application.

[0082] FIG. 5 is a schematic flowchart of a data processing method provided by the embodiments of the present application.

[0083] FIG. 6 is a schematic diagram of a system under a conventional architecture provided by the embodiments of the present application.

[0084] FIG. 7 is a schematic flowchart of another data processing method provided by the embodiments of the present application.

[0085] FIG. 8 is a schematic diagram of another system under a conventional architecture provided by the embodiments of the present application.

[0086] FIG. 9 is a schematic flowchart of another data processing method provided by the embodiments of the present application.

[0087] FIG. 10 is a schematic diagram of a system under a pooling architecture according to an embodiment of the present application.

[0088] FIG. 11 is a schematic flowchart of another method of data processing according to an embodiment of the present application.

[0089] FIG. 12 is a schematic diagram of another system under a pooling architecture according to an embodiment of the present application.

[0090] FIG. 13 is a schematic flowchart of another method of data processing according to an embodiment of the present application.

[0091] FIG. 14 is a schematic flowchart of a method of offload card load balancing according to an embodiment of the present application.

[0092] FIG. 15 is a schematic diagram of another system under a conventional architecture according to an embodiment of the present application.

[0093] FIG. 16 is a schematic diagram of another system under a conventional architecture according to an embodiment of the present application.

[0094] FIG. 17 is a schematic flowchart of a method of offload card aggregation according to an embodiment of the present application.

[0095] FIG. 18 is a schematic diagram of another system under a pooling architecture according to an embodiment of the present application.

[0096] FIG. 19 is a schematic flowchart of another method of offload card aggregation according to an embodiment of the present application.

[0097] FIG. 20 is a schematic diagram of an architecture of a computing device 1500 according to an embodiment of the present application.

[0098] FIG. 21 is a schematic diagram of an architecture of a computing device cluster according to an embodiment of the present application.

[0099] FIG. 22 is a schematic diagram of a connection between computing devices 1500A and 1500B through a network according to an embodiment of the present application. DETAILED DESCRIPTION

[0100] The technical solutions in the present application will be described below with reference to the accompanying drawings.

[0101] The present application will present various aspects, embodiments or features around systems including a plurality of devices, components, modules, etc. It should be understood and appreciated that each system can include additional devices, components, modules, etc., and / or can not include all of the devices, components, modules, etc. discussed in connection with the accompanying drawings. In addition, combinations of these solutions can also be used.

[0102] In addition, in the embodiments of the present application, the words "example" and "for example" are used to mean serving as an example or illustration. Any embodiment or design presented as an "example" in the present application should not be construed as preferable or advantageous over other embodiments or design schemes. In fact, the word "example" is used to present the concept in a specific manner.

[0103] In the embodiments of the present application, "corresponding" and "relevant" can be used interchangeably, and it should be pointed out that when the distinction is not emphasized, the meanings expressed are consistent.

[0104] The business scenarios described in the embodiments of the present application are used to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided by the embodiments of the present application. Those skilled in the art can know that, with the evolution of network architecture and the appearance of new business scenarios, the technical solutions provided by the embodiments of the present application are also applicable to similar technical problems.

[0105] In the present specification, the reference to "one embodiment" or "some embodiments" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present application. Therefore, the statements "in one embodiment", "in some embodiments", "in other some embodiments", "in yet some embodiments", and the like appearing in various places in the specification are not necessarily all referring to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically noted. The terms "comprise", "include", "have" and their conjugates mean "including but not limited to", unless otherwise specifically noted.

[0106] In the present application, "at least one" means one or more, and "multiple" means two or more. The association relationship between the associated objects is described by "and / or", which means that there can be three kinds of relationships, for example, A and / or B can represent the following cases: A exists alone, A and B exist together, and B exists alone, where A and B can be singular or plural. The character " / " generally represents an "or" relationship between the associated objects before and after it. "At least one of the following" or similar expressions means any combination of these items, including any combination of single item or multiple items. For example, at least one of a, b, or c can represent a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, and c can be single or multiple.

[0107] An example, the present application can also be applied to a cloud scenario, the application in the cloud scenario applied to the embodiment of the present application is described in detail below in combination with FIG. 1(a) and FIG. 1(b).

[0108] For example, a virtual instance (for example, a virtual machine (VM)) running on a computing node for remote use by a tenant is taken as an example. As shown in FIG. 1(a), the cloud scenario can include the Internet, a client, and a data center providing cloud services. The various parts included in the cloud scenario are described in detail below.

[0109] For ease of description, a virtual instance is taken as a virtual machine in FIG. 1(a) for illustration.

[0110] It should be understood that a virtual machine (VM) refers to a complete computer system running in a completely isolated environment by software simulation with complete hardware system functions. The work that can be completed in a server (may also be referred to as a host) can be realized in a virtual machine. When a virtual machine is created in a server, part of the hard disk and memory capacity of the server needs to be used as the hard disk and memory capacity of the virtual machine. Each virtual machine has an independent hard disk and operating system, and a user of the virtual machine can operate the virtual machine as using a server.

[0111] The above-mentioned data center providing cloud services can include a plurality of servers and a cloud management platform (may also be referred to as a cloud management and control platform), wherein the cloud management platform can provide an access interface (such as an interface or an application programming interface (API), etc.). A tenant can remotely access the access interface by operating a client to register a cloud account and password in the cloud management platform and log in to the cloud management platform. After the cloud management platform successfully authenticates the cloud account and password, the tenant can further select and purchase a virtual machine of a specific specification (processor, memory, disk) by paying in the cloud management platform. After successful payment, the cloud management platform selects a suitable server according to the usage of hardware resources on each server in the data center and the specification of the virtual machine purchased by the tenant, and notifies the VMM on the server to create a virtual machine. After the virtual machine is created, the cloud management platform provides a remote login account and password of the purchased virtual machine and a connection entry. The tenant can log in to the virtual machine by clicking the connection entry through the client and inputting the account and password, and install and run the application of the tenant in the virtual machine.

[0112] The above-mentioned login mode can include command line login and desktop login, etc.

[0113] The logical functions divided by the cloud management platform can include, but are not limited to, a user console, a computing management service, a network management service, a storage management service, an authentication service, and an image management service. The user console provides an interface or an API for interaction with tenants, the computing management service is used to manage servers running virtual machines and containers, the network management service is used to manage network services (such as gateways, firewalls, etc.), the storage management service is used to manage storage services (such as data bucket services), the authentication service is used to manage the account and password of a tenant, and the image management service is used to manage virtual machine images.

[0114] For example, an application running on a computing node is used for remote use by a tenant. As shown in FIG. 1(b), the cloud scenario can include the Internet, a client, and a data center providing cloud services. The data center providing cloud services can include multiple servers and a cloud management platform (also referred to as a cloud management and control platform), and the cloud management platform can provide an access interface (such as an API, etc.). The tenant can remotely access the access interface to register a cloud account and password on the cloud management platform through the client, log in to the cloud management platform, and after the cloud management platform authenticates the cloud account and password successfully, the tenant can further pay for and select and purchase a bare metal server (also referred to as a bare machine) of a specific specification (processor, memory, disk) on the cloud management platform. After the payment and purchase are successful, the cloud management platform selects an appropriate server according to the usage of the hardware resources on each server in the data center to provide for the tenant, and the tenant can directly run its own business program on the operating system of the purchased bare machine.

[0115] In order to improve the utilization rate of the hardware resources of the server, a new generation of technology based on hardware offloading is proposed in the industry, which can offload the business (for example, at least one of computing, network, storage, security, etc.) of the server to the offloading card to run, so that the server can free up more physical resources for the tenant to use.

[0116] Implementation 1 takes a virtual instance (for example, a virtual machine) running on a server for remote use by a tenant as an example. As shown in FIG. 2(a), the server can include a hardware layer and a software layer. The hardware layer includes the physical hardware resources of the server, including computing resources (for example, a processor and a memory), storage resources (for example, a disk), network resources (for example, a network card), etc. The software layer includes an operating system installed and running on the server (the operating system of the server can be referred to as a host operating system relative to the operating system of the virtual machine), and a virtual machine manager (VMM) is set in the host operating system, which can also be referred to as a Hypervisor.

[0117] The VMM can perform compute virtualization on the compute resources (e.g., processors and memories) on the server, and the virtual machine 1 and the virtual machine 2 are not aware of the compute resources (e.g., processors and memories) on the server, but are only aware of the virtual compute resources (e.g., virtual processors and virtual memories) presented by the VMM, so that the virtual machine 1 and the virtual machine 2 use the compute resources on the server. The VMM on the server can also perform IO virtualization on the storage resources (e.g., disks) and the network resources (e.g., network cards) on the offload card, and the virtual machine 1 and the virtual machine 2 are not aware of the storage resources (e.g., disks) and the network resources (e.g., network cards) on the offload card, but are only aware of the virtual storage resources (e.g., virtual disks) and the virtual network resources (e.g., virtual network cards) presented by the VMM, so that the virtual machine 1 and the virtual machine 2 use part of the storage resources and part of the network resources on the offload card.

[0118] The compute virtualization refers to virtualizing the compute resources (e.g., processors and memories) on the server and providing the virtualized compute resources to the virtual machines, for example, the VMM in the server provides virtual processors and virtual memories to the virtual machine 1 and the virtual machine 2, and the virtual machine 1 and the virtual machine 2 are not aware of the processors and the memories on the server, but are only aware of the virtual processors and the virtual memories presented by the VMM.

[0119] The network virtualization refers to virtualizing part of the functions (e.g., bandwidth) of the network resources (e.g., network cards) on the server and providing the virtualized network resources to the virtual machines, for example, the VMM in the server provides virtual network cards to the virtual machine 1 and the virtual machine 2, and the virtual machine 1 and the virtual machine 2 are not aware of the network cards on the server, but are only aware of the virtual network cards presented by the VMM.

[0120] The storage virtualization refers to virtualizing the storage resources (e.g., disks) on the server and providing the virtualized storage resources to the virtual machines, for example, the VMM in the server provides virtual disks to the virtual machine 1 and the virtual machine 2, and the virtual machine 1 and the virtual machine 2 are not aware of the disks on the server, but are only aware of the virtual disks presented by the VMM.

[0121] It should be understood that the network virtualization and the storage virtualization can also be collectively referred to as IO virtualization.

[0122] It should be noted that one or more virtual machines can be created on one server, and the number of virtual machines created on the server is not limited in the embodiments of the present application. It should be understood that, in order to facilitate description, FIG. 2(a) is described by taking two virtual machines (the virtual machine 1 and the virtual machine 2) created on one server as an example.

[0123] The offload card itself is provided with a processor and a memory (not shown in FIG. 2(a)), and can perform basic operations (for example, the offload card can use an ARM processor to implement). The offload card is also provided with a disk interface to externally connect a disk, and the offload card can also integrate the function of a network card, or directly insert a network card into the offload card.

[0124] Implementation 2. Taking an example of an application program running on a server for remote use by a tenant, as shown in FIG. 2(b), the server can include a hardware layer and a software layer. The hardware layer includes physical hardware resources of the server, including computing resources (for example, a processor and a memory), storage resources (for example, a disk), network resources (for example, a network card), and the like. The software layer includes an operating system installed and running on the server, and the tenant can directly run its own business program on the operating system. For example, the tenant can use the computing resources on the server, part of the storage resources on the offload card, and part of the network resources to run its own business program.

[0125] In the above FIG. 2(a)-FIG. 2(b), the offload card and the server can have a fixed correspondence relationship, or can have a non-fixed correspondence relationship, which is not specifically limited by the embodiments of the present application, and two different architectures are introduced below.

[0126] 1. Traditional architecture

[0127] Under the traditional architecture, there is a fixed correspondence relationship between the offload card and the server. The offload card is inserted into the server and connected to the server through bus technology. The offload cards inserted on different servers cannot be mixed.

[0128] It should be understood that the above bus technology can include but is not limited to: an extended peripheral component interconnect express (PCIE) bus, a compute express link (CXL), or other types of buses.

[0129] 2. Pooling architecture

[0130] Under the pooling architecture, there is no fixed correspondence relationship between the offload card and the server. Multiple servers can share at least two offload cards included in an offload card resource pool. For example, the at least two offload cards are inserted into one or more physical nodes (which can also be referred to as offload card carrying nodes), and the at least two offload cards constitute a resource pool. The one or more offload card carrying nodes are respectively provided with connection channels with the multiple servers, and the multiple offload cards included in the resource pool are respectively connected with the multiple servers through the connection channels between the one or more offload card carrying nodes and the servers.

[0131] The connection channel can be an external high-speed interconnection bus, or can be other communication modes, and the embodiments of the present application do not make specific limitations.

[0132] The bus can include, but is not limited to, PCIE, CXL, remote direct memory access (RDMA).

[0133] The offload card is a core component of virtualization technology, and its responsibility is becoming more and more important. In the related technical solutions, if the offload card fails, the corresponding server business will be invalid, thereby reducing the overall availability of the system and the user experience is poor.

[0134] Therefore, the embodiments of the present application provide a computing node and a server system based on cloud computing technology, which can quickly recover the business when a certain offload card fails, improve the overall availability of the system, and improve the user experience.

[0135] Next, taking the traditional architecture as an example, the computing node provided by the embodiments of the present application is described in detail in combination with FIG. 3.

[0136] FIG. 3 is a schematic block diagram of a computing node based on cloud computing technology provided by the embodiments of the present application. As shown in FIG. 3, at least two offload cards are inserted into the computing node, and the business on the computing node can be offloaded to at least one of the at least two offload cards to run.

[0137] It should be understood that the computing node can offload at least one of the following businesses to at least one of the at least two offload cards to run: computing business, storage business, network business, security business, etc.

[0138] The computing node can be provided in a data center providing cloud services, for example, it can be a server of the cloud data center shown in FIG. 1. The computing node runs a virtual instance or an application program for remote use by a tenant. The virtual instance can include, but is not limited to, a virtual machine VM, a container, etc.

[0139] As an example, the at least two offload cards can be inserted into the computing node, and the connection between the at least two offload cards and the computing node is achieved through the connection channel between the at least two offload cards and the computing node. It should be understood that the connection channel between the at least two offload cards and the computing node can be a PCIE bus, or can be a compute express link (CXL), or can be other types of buses, and the embodiments of the present application do not make specific limitations.

[0140] The at least two offload cards can include a first offload card and a second offload card. The functions of the first offload card and the second offload card are described in detail below.

[0141] 1. The first offload card

[0142] The first offload card is configured to virtualize physical resources on the first offload card to generate a first virtual device, and provide the first virtual device to a virtual instance or an application running on a computing node. For example, the virtual instance or the application running on the computing node is configured to mount and / or access the first virtual device.

[0143] As an example, the physical resources on the first offload card can include, but are not limited to, computing resources (processors and memories), network resources (for example, network cards), and storage resources (for example, disks). For example, the disks can be accessed through disk interfaces provided on the first offload card, and the network cards can be directly inserted into the first offload card through card slots or integrated into the first offload card.

[0144] For example, the virtualization process can include, but is not limited to, single root I / O virtualization (SR-IOV) technology, pass-through technology, or time division multiplexing virtualization technology.

[0145] The SR-IOV technology is a hardware-accelerated virtualization technology that can virtualize a PCIe device (for example, the first offload card) into multiple function devices and assign them to different virtual instances or applications for direct access, thereby effectively improving the I / O performance and reducing the latency of each virtual instance or application. For example, the first offload card can divide the physical resources thereon into multiple virtual devices or virtual ports (for example, a physical network card can be virtualized into multiple virtual network cards for use by virtual instances or applications) through the SR-IOV technology, and provide independent physical channels for each virtual instance or application. In this way, each virtual instance or application can directly access an independent virtual device or virtual port.

[0146] For example, two key PCIe functions in the SR-IOV technology include a physical function (PF) and a virtual function (VF). The PF represents the actual function on the PCIe device (for example, the first offload card), has standard PCIe functions, and can be associated with multiple VFs. The VF is a virtual device created on the basis of the PF and assigned to a virtual instance or an application for use. The VF can be regarded as a copy of the PF.

[0147] The pass-through technology refers to that a PCIe device (e.g., the first offload card) can be directly presented to a virtual instance or an application for use, the PCIe device (e.g., the first offload card) is directly bound to the virtual instance or the application, and the virtual instance or the application is allowed to directly access the PCIe device without emulation or conversion of the virtualization layer.

[0148] For example, the first offload card provides a first virtual device to the virtual instance or the application in a pass-through manner, and the first virtual device can perform at least one service on the virtual instance or the application, such as a computing service, a network service, a storage service, a security service, and the like.

[0149] In the embodiments of the present application, the first virtual device can include but is not limited to a VF, a PF, and the like. For example, the first offload card binds a logical disk in a storage resource to a VF, and provides the VF to a virtual machine 1, and after the virtual machine 1 mounts the VF, the virtual machine 1 can access the logical disk as accessing a local disk. For another example, the first offload card binds a network card interface eth0 in a network resource to a VF, and provides the VF to the virtual machine 1, and after the virtual machine 1 mounts the VF, the virtual machine 1 can use the eth0 as using a local network card.

[0150] In some embodiments, the first offload card can be a less-loaded offload card selected from at least two offload cards.

[0151] For example, a tenant sends a virtual instance creation request through a cloud management platform, and the virtual instance creation request carries a specification of a virtual instance configured by the tenant. The cloud management platform sends the virtual instance creation request to a load balancing module (not shown in FIG. 3). The load balancing module selects a first offload card with lower load from at least two offload cards according to the load on each offload card and the physical resources of each offload card, and sends the virtual instance creation request to the first offload card. The first offload card virtualizes the physical resources of the first offload card according to the specification of the virtual instance configured by the tenant to generate a first virtual device, and the first virtual device matches the specification of the virtual instance to be created. The first offload card can also send the obtained virtual instance creation request to a management module (not shown in FIG. 3) on a computing node, and the management module is configured to create the virtual instance on the computing node according to the virtual instance creation request.

[0152] Optionally, in some embodiments, if the load balancing module determines that the aggregated virtual device obtained by aggregating the virtual device obtained by the first offload card and the virtual device obtained by the third offload card is required to match the specification of the virtual instance to be created according to the load on each of the at least two offload cards and the physical resources of each of the at least two offload cards. For example, the first offload card virtualizes the physical resources on the first offload card to obtain a first virtual device, and the third offload card virtualizes the physical resources on the third offload card to obtain a third virtual device, and the virtual instance created on the computing node is used to mount and / or access a fourth virtual device generated by aggregating the first virtual device and the third virtual device.

[0153] The management module described above may, for example, be a virtual machine manager (VMM) on the computing node, which may also be referred to as a Hypervisor.

[0154] 2, the second offload card

[0155] The second offload card is used to obtain the configuration parameters of the virtual instance or the application in the event of a failure of the first offload card, and to virtualize the physical resources on the second offload card according to the obtained configuration parameters of the virtual instance or the application to generate a second virtual device for replacing the first virtual device, and the virtual instance or the application mounts and / or accesses the second virtual device.

[0156] As an example, the physical resources on the second offload card may, but not limited to, include computing resources (processors and memories), network resources (for example, network cards), and storage resources (for example, disks).

[0157] In the embodiments of the present application, the second offload card can also determine that the first offload card has failed, and obtain the configuration parameters of the virtual instance or the application in the event of a failure of the first offload card.

[0158] There are many ways to achieve that the second offload card determines that the first offload card has failed, and the present application does not make specific limitations thereon, and several possible implementation manners are introduced below.

[0159] Implementation manner 1: The second offload card can determine that the first offload card has failed through the connection channel established between the first offload card and the second offload card.

[0160] As an example, the second offload card can establish a connection channel with the first offload card through a network, such as an RDMA, TCP IP, or other network protocol; or, the second offload card can also establish a connection channel with the first offload card through a bus, such as a PCIE bus. The second offload card can obtain the running state of the first offload card based on the connection channel between the second offload card and the first offload card, such as obtaining whether the first offload card has failed.

[0161] As an example, the second offload card can periodically perform heartbeat detection on the first offload card based on the connection channel between the second offload card and the first offload card, to monitor the running state of the first offload card in real time, so as to determine whether the first offload card has failed. For example, the second offload card can periodically send a heartbeat detection packet to the first offload card based on the connection channel between the second offload card and the first offload card. After the first offload card receives the heartbeat detection packet sent by the second offload card, the first offload card sends a corresponding response packet to the second offload card. If the second offload card can receive the response packet sent by the first offload card after sending the heartbeat detection packet to the first offload card, it is considered that the first offload card has not failed at present. If the second offload card does not receive the response packet sent by the first offload card within a certain time period after sending the heartbeat detection packet to the first offload card, it is considered that the first offload card has failed at present.

[0162] Implementation 2: The second offload card receives a failure notification sent by a centralized monitoring module (not shown in FIG. 3), and the failure notification is used to notify that the first offload card has failed at present.

[0163] As an example, the centralized monitoring module is responsible for establishing a connection channel between the centralized monitoring module and multiple offload cards (including the first offload card and the second offload card), and performing heartbeat detection, failure event notification, and other tasks on the multiple offload cards through the connection channel.

[0164] As an example, the centralized monitoring module can periodically perform heartbeat detection on the first offload card based on the connection channel between the centralized monitoring module and the first offload card, to monitor the running state of the first offload card in real time, so as to determine whether the first offload card has failed. If the centralized monitoring module monitors that the first offload card has failed at a certain moment, the centralized monitoring module can send a notification to the second offload card that the first offload card has failed at present.

[0165] It should be understood that the method of the centralized monitoring module for performing heartbeat detection on the first offload card is similar to the method of the second offload card for performing heartbeat detection on the first offload card, and for details, please refer to the method of the second offload card for performing heartbeat detection on the first offload card, which will not be described here.

[0166] It should be noted that in the above implementation manner 2, a connection channel does not need to be established between each offload card (including the first offload card and the second offload card), but the centralized monitoring module establishes a connection channel between each offload card (including the first offload card and the second offload card) respectively.

[0167] The centralized monitoring module can be deployed on another computing node (not shown in FIG. 3).

[0168] As an example, in the case of failure of the first offload card, the configuration parameters of the virtual instance or the application program obtained by the second offload card can include at least one of the following information:

[0169] 1. Physical resource information provided by the first virtual device to the virtual instance or the application program;

[0170] 2. State information of the virtual instance or the application program using the first virtual device;

[0171] 3. Tenant information of a tenant to which the virtual instance or the application program belongs.

[0172] The embodiments of the present application do not make specific limitations on the implementation manner of the second offload card obtaining the configuration parameters of the virtual instance or the application program, and the following introduces several possible implementation manners.

[0173] Implementation manner 1: The second offload card obtains the configuration parameters of the virtual instance or the application program from the second offload card.

[0174] In the above implementation manner 1, the first offload card synchronizes the configuration parameters of the virtual instance or the application program to the second offload card through the channel between the first offload card and the second offload card, and after the second offload card receives the configuration parameters of the virtual instance or the application program synchronized by the first offload card, the second offload card can store the configuration parameters of the virtual instance or the application program. In this way, after the first offload card fails, the second offload card can directly obtain the stored configuration parameters of the virtual instance or the application program from the second offload card.

[0175] Implementation manner 2: The second offload card obtains the configuration parameters of the virtual instance or the application program from the memory of the computing node.

[0176] In the above implementation manner 2, the first offload card can store the configuration parameters of the virtual instance or the application program in the memory of the computing node. After the first offload card fails, the second offload card can obtain the stored configuration parameters of the virtual instance or the application program from the memory of the computing node, for example, the second offload card obtains the stored configuration parameters of the virtual instance or the application program from the memory of the computing node through direct memory access (DMA) technology.

[0177] In the embodiments of the present application, after the second offload card obtains the configuration parameters of the virtual instance or the application program, the second offload card can perform virtualization processing on the physical resources on the second offload card according to the obtained configuration parameters of the virtual instance or the application program to generate a second virtual device for replacing the first virtual device.

[0178] For example, the virtualization processing process can include, but is not limited to, single root I / O virtualization (SR-IOV) technology, pass-through technology, or time division multiplexing virtualization technology. For specific descriptions of virtualization processing, please refer to the description in the foregoing, which will not be repeated here.

[0179] For example, the second offload card can determine the physical resources on the second offload card for virtualization processing according to the obtained configuration parameters of the virtual instance or the application program (for example, at least one of the following: physical resource information provided by the first virtual device to the virtual instance or the application program, state information of the virtual instance or the application program using the first virtual device, tenant information of the tenant to which the virtual instance or the application program belongs). The physical resources on the second offload card for virtualization processing generate a second virtual device after virtualization processing, which is the same as the first virtual device. Therefore, the generated second virtual device can replace the first virtual device, and the second virtual device can be provided to the virtual instance or the application program for use. That is, the virtual instance or the application program running on the computing node can mount and / or access the second virtual device at this time.

[0180] For example, the second offload card provides the second virtual device to the virtual instance or the application program in a pass-through manner. The second virtual device can perform at least one of the following services on the virtual instance or the application program: computing service, network service, storage service, security service, etc.

[0181] In the embodiments of the present application, the second virtual device can include, but is not limited to, VF, PF, etc.

[0182] In the above technical solution, in the case of failure of the first offload card, the second offload card obtains the configuration parameters of the virtual instance or the application program mounted and / or accessing the first virtual device (generated by virtualization processing on the physical resources on the first offload card), and generates a second virtual device for replacing the first virtual device by performing virtualization processing on the physical resources on the second offload card according to the configuration parameters of the virtual instance or the application program. The virtual instance or the application program can mount and / or access the second virtual device. In this way, when it is determined that a certain offload card fails, the offload card that does not fail can timely take over and restore the service of the virtual instance or the application program running on the computing node, thereby improving the overall availability of the system and improving the user experience.

[0183] The following describes a server system provided by an embodiment of the present application in detail in combination with FIG. 4, taking the above pooling architecture as an example.

[0184] FIG. 4 is a schematic block diagram of a server system based on cloud computing technology provided by an embodiment of the present application. As shown in FIG. 4, the server system includes an offload card bearing node and a computing node. At least two offload cards are inserted into the offload card bearing node, and the service of the computing node is offloaded to at least one of the at least two offload cards to run.

[0185] The above offload card bearing node and computing node can be arranged in a data center providing cloud services, for example, can be a server of the cloud data center shown in FIG. 1. The computing node runs a virtual instance or an application program for remote use by a tenant, and a connection channel is arranged between the computing node and the offload card bearing node. At least two offload cards are inserted into the offload card bearing node, for example, can be inserted into the offload card bearing node, and the computing node can offload at least one of the following services to at least one of the at least two offload cards to run: computing service, storage service, network service, security service, etc.

[0186] The above at least two offload cards can include a first offload card and a second offload card, and the functions of the first offload card and the second offload card are described in detail below.

[0187] 1. The first offload card

[0188] The first offload card is used to virtualize the physical resources on the first offload card to generate a first virtual device, and provide the first virtual device to the virtual instance or the application program running on the computing node. For example, the virtual instance or the application program running on the computing node is used to mount and / or access the first virtual device through the connection channel between the computing node and the offload card bearing node.

[0189] For detailed description of the first offload card, please refer to the description of the first offload card in FIG. 3 above, which will not be repeated here.

[0190] 2. The second offload card

[0191] The second offload card is used to obtain the configuration parameters of the virtual instance or the application program in the case of failure of the first offload card, and virtualize the physical resources on the second offload card according to the obtained configuration parameters of the virtual instance or the application program to generate a second virtual device for replacing the first virtual device. For example, the virtual instance or the application program running on the computing node is used to mount and / or access the second virtual device through the connection channel between the computing node and the offload card bearing node.

[0192] For detailed description of the second offload card, please refer to the description of the second offload card in FIG. 3 above, which will not be repeated here.

[0193] The method for data processing provided by the embodiment of the present application will be described in detail below in combination with FIG. 5.

[0194] FIG. 5 is a schematic flowchart of the method for data processing provided by the embodiment of the present application. As shown in FIG. 5, the method can include steps 510-550, which will be described in detail below respectively.

[0195] It should be understood that the method shown in FIG. 5 can be applied to the scenario of the conventional architecture shown in FIG. 3, and can also be applied to the scenario of the pooled architecture shown in FIG. 4, which is not specifically limited in the present application.

[0196] Step 510: The first offload card generates a first virtual device after virtualizing the physical resources on the first offload card.

[0197] In some embodiments, the first offload card is a less-loaded offload card selected from the at least two offload cards.

[0198] Step 520: A virtual instance or an application running on the computing node mounts and / or accesses the first virtual device.

[0199] Step 530: The second offload card acquires configuration parameters of the virtual instance or the application running on the computing node in the case of failure of the first offload card.

[0200] Two implementation manners of the second offload card acquiring the configuration parameters of the virtual instance or the application will be introduced below.

[0201] Implementation manner 1: The second offload card acquires the configuration parameters of the virtual instance or the application from the second offload card. In this implementation manner, before step 530, the method further includes: the first offload card synchronizes the configuration parameters of the virtual instance or the application to the second offload card through a connection channel set between the second offload card and the first offload card; and the second offload card stores the configuration parameters of the virtual instance or the application.

[0202] Implementation manner 2: The second offload card acquires the configuration parameters of the virtual instance or the application from the memory of the computing node. In this implementation manner, before step 530, the method further includes: the first offload card synchronizes the configuration parameters of the virtual instance or the application to the computing node, and the computing node stores the configuration parameters of the virtual instance or the application in the memory of the computing node.

[0203] Step 540: The second offload card virtualizes the physical resources of the second offload card according to the configuration parameters of the virtual instance or application running on the computing node to generate a second virtual device to replace the first virtual device.

[0204] The configuration parameters of the above-mentioned virtual instance or application include at least one of the following information: physical resource information provided by the first virtual device to the virtual instance or application, status information of the virtual instance or application using the first virtual device, and tenant information of the tenant to which the virtual instance or application belongs.

[0205] The first virtual device and / or the second virtual device executes at least one of the following services of the virtual instance or the application: computing service, network service, storage service, and security service.

[0206] Step 550: The virtual instance or application running on the computing node mounts and / or accesses the second virtual device.

[0207] Optionally, in some embodiments, the at least two offload cards also include a third offload card, and the method also includes: the third offload virtualizes the physical resources of the third offload card to generate a third virtual device; the virtual instance or the application mounts and / or accesses a fourth virtual device generated by the aggregation of the first virtual device and the third virtual device.

[0208] Optionally, in some embodiments, the method further includes: the management module on the computing node obtains a virtual instance creation request sent by the cloud management platform, and creates the virtual instance on the computing node according to the virtual instance creation request, wherein the virtual instance creation request carries the specifications of the virtual instance configured by the tenant, and the first virtual device matches the specifications of the virtual instance.

[0209] Below, in conjunction with Figures 6 to 13, different implementation processes of a method for data processing provided by Figure 5 are described in detail. It should be understood that the examples of Figures 6 to 13 are merely to help those skilled in the art understand the embodiments of the present application, and are not intended to limit the application embodiments to the specific numerical values ​​or specific scenarios illustrated in Figures 6 to 13. It is obvious that those skilled in the art can make various equivalent modifications or changes based on the following examples given in Figures 6 to 13, and such modifications and changes also fall within the scope of the embodiments of the present application.

[0210] It should be understood that for ease of description, the following embodiment takes a virtual instance running on a computing node for remote use by tenants, where the virtual instance is a virtual machine, as an example to describe in detail the data processing method provided in the embodiment of the present application.

[0211] It should also be understood that server 1 and server 2 in the following embodiments correspond to the computing nodes mentioned above.

[0212] Figure 6 is a schematic diagram of a system under a traditional architecture, in which each offload card can offload multiple types of business loads on a virtual machine. For ease of description, Figure 6 takes the offload card offloading the virtual machine's storage business and network business as an example for illustration.

[0213] Referring to Figure 6 , the system includes a server 1, an offload card 1 inserted into server 1, and an offload card 2. Server 1 runs virtual machines 1 through 4. The storage and network services of virtual machines 1 and 3 are offloaded to offload card 1. In other words, the storage and network resources on offload card 1 are virtualized and provided to virtual machines 1 and 3. The storage and network services of virtual machines 2 and 4 are offloaded to offload card 2. In other words, the storage and network resources on offload card 2 are virtualized and provided to virtual machines 2 and 4.

[0214] Taking FIG. 6 as an example, in combination with FIG. 7 , a specific implementation process of the data processing method provided in this application is described in detail.

[0215] Figure 7 is a schematic flow chart of another data processing method provided by an embodiment of the present application. As shown in Figure 7, the method may include steps 710-740, which are described in detail below.

[0216] Step 710: The dynamic interconnection module 1 of the offload card 1 determines that the offload card 2 is faulty through the channel between the dynamic interconnection module 1 and the dynamic interconnection module 2 of the offload card 2.

[0217] As an example, the dynamic interconnection module 1 in the unloading card 1 can perform periodic heartbeat detection on the unloading card 2 through the channel between it and the dynamic interconnection module 2. If the dynamic interconnection module 1 in the unloading card 1 sends a heartbeat detection message to the dynamic interconnection module 2 in the unloading card 2 and does not receive a response message fed back by the dynamic interconnection module 2 in the unloading card 2, it can be determined that the unloading card 2 has failed.

[0218] Step 720 : Uninstall the dynamic interconnection module 1 of the card 1 , and obtain the configuration parameters of the virtual machine 2 and the virtual machine 4 from the configuration management module 1 .

[0219] As an example, after offload card 2 creates virtual machines 2 and 4, configuration management module 2 stores the configuration parameters of virtual machines 2 and 4. Furthermore, configuration management module 2 synchronizes these configuration parameters with configuration management module 1, which then stores them locally. If offload card 2 fails, offload card 1 can retrieve the locally stored configuration parameters of virtual machines 2 and 4 from configuration management module 1 via dynamic interconnection module 1.

[0220] It should be understood that the description of the configuration parameters of the virtual machine can be found in the description in FIG5 , which will not be repeated here.

[0221] Step 730: The dynamic interconnection module 1 of the uninstall card 1 notifies the controller 1 to perform fault recovery.

[0222] As an example, after determining that the offload card 2 is faulty and obtaining configuration parameters of the virtual machines 2 and 4 , the dynamic interconnection module 1 may send a notification message to the controller 1 , which is used to notify the controller 1 to restore the service of the offload card 2 .

[0223] Step 740 : Controller 1 of offload card 1 sends a message to VMM of server 1 , instructing offload card 1 to take over services of virtual machine 2 and virtual machine 4 .

[0224] As an example, after receiving the notification message sent by the dynamic interconnection module 1, the controller 1 of the offload card 1 allocates corresponding resources to virtual machine 2 and virtual machine 4 according to the configuration parameters of virtual machine 2 and virtual machine 4, and notifies the VMM of server 1 to virtualize the resources allocated to virtual machine 2 and virtual machine 4 by the offload card 1, and provide them to virtual machine 2 and virtual machine 4 for use, so that the services carried by the offload card 2 on virtual machine 2 and virtual machine 4 are unloaded to the offload card 1, thereby realizing the takeover of the services on virtual machine 2 and virtual machine 4 by the offload card 1.

[0225] Figure 8 shows another system diagram under a traditional architecture. Each offload card in this system uses the same offload card hardware, but with different software. These software components are categorized as controllers (responsible for control plane logic), storage (responsible for offloading storage services), and network (responsible for offloading network services). In this way, various services on the virtual machine can be offloaded to the corresponding offload card based on service type.

[0226] It should be understood that, for the convenience of description, FIG8 is illustrated by taking the example of offloading the network service on the virtual machine to the offload card.

[0227] For example, referring to FIG8 , the system includes a server 1, an offload card 1 inserted in the server 1, an offload card 2, and an offload card 3, wherein virtual machines 1 to 4 are running on the server 1. The offload card 1 carries controller-type services and is responsible for selecting another offload card (for example, offload card 2) through the controller to migrate network services when a certain offload card (for example, offload card 3) fails, thereby achieving rapid recovery. The network services on virtual machines 1 and 3 are offloaded to the offload card 2, that is, the network resources on the offload card 2 are virtualized and provided to virtual machines 1 and 3 for use. The network services on virtual machines 2 and 4 are offloaded to the offload card 3, that is, the network resources on the offload card 3 are virtualized and provided to virtual machines 2 and 4 for use.

[0228] Taking FIG8 as an example, in combination with FIG9 , another specific implementation process of the data processing method provided by the present application is described in detail.

[0229] Figure 9 is a schematic flow chart of another data processing method provided by an embodiment of the present application. As shown in Figure 9, the method may include steps 910-940, which are described in detail below.

[0230] Step 910: The dynamic interconnection module 1 of the offload card 1 determines that the offload card 3 is faulty through the channel between the dynamic interconnection module 1 and the dynamic interconnection module 3 of the offload card 3.

[0231] As an example, the dynamic interconnection module 1 in the unloading card 1 can perform periodic heartbeat detection on the unloading card 3 through the channel between it and the dynamic interconnection module 3. If the dynamic interconnection module 1 in the unloading card 1 sends a heartbeat detection message to the dynamic interconnection module 3 in the unloading card 3 but does not receive a response message fed back by the dynamic interconnection module 3 in the unloading card 3, it can be determined that the unloading card 3 has failed.

[0232] Step 920 : Uninstall the dynamic interconnection module 1 of the card 1 , and obtain the configuration parameters of the virtual machine 2 and the virtual machine 4 from the configuration management module 1 .

[0233] As an example, after offload card 2 creates virtual machine 1 and virtual machine 3, configuration management module 2 will store the configuration parameters of virtual machine 1 and virtual machine 3. After offload card 3 creates virtual machine 2 and virtual machine 4, configuration management module 3 will also store the configuration parameters of virtual machine 2 and virtual machine 4. Configuration management module 2 can also synchronize the configuration parameters of virtual machine 1 and virtual machine 3 with configuration management module 1 through dynamic interconnection module 2. Similarly, configuration management module 3 can also synchronize the configuration parameters of virtual machine 2 and virtual machine 4 with configuration management module 1 through dynamic interconnection module 3. Configuration management module 1 will then locally store the configuration parameters of virtual machines 1-4.

[0234] When the offload card 3 fails, the dynamic interconnection module 1 of the offload card 1 can obtain the locally stored configuration parameters of the virtual machine 2 and the virtual machine 4 from the configuration management module 1 through the dynamic interconnection module 1 .

[0235] Step 930: The dynamic interconnection module 1 of the uninstall card 1 notifies the controller 1 to perform fault recovery.

[0236] Similar to step 730, please refer to the description in step 730 for details, which will not be repeated here.

[0237] Step 940 : Controller 1 of offload card 1 sends a message to VMM of server 1 , requesting that network services of virtual machines 2 and 4 be taken over by offload card 2 .

[0238] As an example, after receiving a notification message from dynamic interconnect module 1, controller 1 of offload card 1 selects offload card 2 to migrate the network services of virtual machines 2 and 4. Offload card 2 allocates corresponding resources to virtual machines 2 and 4 based on the configuration parameters of virtual machines 2 and 4. Controller 1 of offload card 1 notifies the VMM of server 1 to virtualize the resources allocated by offload card 2 to virtual machines 2 and 4, and then provide them to virtual machines 2 and 4 for use. This allows the network services carried by offload card 3 on virtual machines 2 and 4 to be offloaded to offload card 2, thereby enabling offload card 2 to take over the network services on virtual machines 2 and 4.

[0239] Figure 10 is a schematic diagram of a system under a pooled architecture, in which each offload card can offload multiple types of business loads on a virtual machine. For ease of description, Figure 10 uses the offload card to offload the storage business and network business of the virtual machine as an example for illustration.

[0240] Referring to Figure 10 , the system includes server 1, server 2, and an offload card carrier node. The offload card carrier node is interconnected with server 1 and server 2 via an external high-speed interconnect bus or other communication methods. Server 1 runs virtual machines 1 and 2, and server 2 runs virtual machines 3 and 4. Offload cards 1 and 2 are inserted into the offload card carrier node, and offload cards 1 and 2 form an offload card resource pool. The storage and network services on virtual machines 1 and 2 are offloaded to offload card 1. That is, the storage and network resources on offload card 1 are virtualized and provided to virtual machines 1 and 2. The storage and network services on virtual machines 3 and 4 are offloaded to offload card 2. That is, the storage and network resources on offload card 2 are virtualized and provided to virtual machines 3 and 4.

[0241] Taking FIG. 10 as an example, in combination with FIG. 11 , another specific implementation process of the data processing method provided in the present application is described in detail.

[0242] Figure 11 is a schematic flow chart of another data processing method provided by an embodiment of the present application. As shown in Figure 11, the method may include steps 1110-1140, and steps 1110-1140 are described in detail below.

[0243] Step 1110 : The dynamic interconnection module 1 of the uninstall card 1 determines that the uninstall card 2 is faulty through the channel between the dynamic interconnection module 1 and the dynamic interconnection module 2 of the uninstall card 2 .

[0244] Similar to step 710, please refer to the description in step 710 for details, which will not be repeated here.

[0245] Step 1120 : Uninstall the dynamic interconnection module 1 of the card 1 , and obtain the configuration parameters of the virtual machine 3 and the virtual machine 4 from the configuration management module 1 .

[0246] For example, after offload card 2 creates virtual machines 3 and 4, configuration management module 2 stores the configuration parameters of virtual machines 3 and 4. Furthermore, configuration management module 2 synchronizes these configuration parameters with configuration management module 1, which then stores them locally. If offload card 2 fails, offload card 1 can retrieve the locally stored configuration parameters of virtual machines 3 and 4 from configuration management module 1 via dynamic interconnection module 1.

[0247] Step 1130: The dynamic interconnection module 1 of the uninstall card 1 notifies the controller 1 to perform fault recovery.

[0248] Similar to step 730, please refer to the description in step 730 for details, which will not be repeated here.

[0249] Step 1140 : Controller 1 of offload card 1 sends a message to VMM 2 of server 2 , requesting that services of virtual machines 3 and 4 be taken over by offload card 1 .

[0250] As an example, after receiving the notification message sent by the dynamic interconnection module 1, the controller 1 of the offload card 1 allocates corresponding resources to virtual machine 3 and virtual machine 4 according to the configuration parameters of virtual machine 3 and virtual machine 4, and notifies the VMM2 of server 2 to virtualize the resources allocated to virtual machine 3 and virtual machine 4 by the offload card 1, and provide them to virtual machine 3 and virtual machine 4 for use, so that the services carried by the offload card 2 on virtual machine 3 and virtual machine 4 are unloaded to the offload card 1, thereby realizing the takeover of the services on virtual machine 3 and virtual machine 4 by the offload card 1.

[0251] Figure 12 shows another system diagram for a pooled architecture. Each offload card in this system uses the same offload card hardware, but with different software. These software components are categorized as controllers (responsible for control plane logic), storage (responsible for offloading storage services), and network (responsible for offloading network services). In this way, various services on a virtual machine can be offloaded to the corresponding offload card based on service type.

[0252] Referring to Figure 12, the system includes server 1, server 2, and an offload card carrying node. The offload card carrying node is interconnected with server 1 and server 2 via an external high-speed interconnect bus or other communication methods. Among them, virtual machines 1 and 2 are running on server 1, and virtual machines 3 and 4 are running on server 2. Offload cards 1, 2, and 3 are inserted into the offload card carrying node. Offload cards 1, 2, and 3 constitute an offload card resource pool. Offload card 1 carries controller-type services and is responsible for selecting another offload card (e.g., offload card 2) through the controller to perform network service migration when a certain offload card (e.g., offload card 3) fails, thereby achieving rapid recovery. The network services on virtual machines 3 and 4 are offloaded from offload card 3 to offload card 2. That is, the network resources on offload card 2 are virtualized and provided to virtual machines 3 and 4 for use.

[0253] Taking FIG. 12 as an example, in combination with FIG. 13 , another specific implementation process of the data processing method provided in the present application is described in detail.

[0254] Figure 13 is a schematic flow chart of another data processing method provided by an embodiment of the present application. As shown in Figure 13, the method may include steps 1310-1340, and steps 1310-1340 are described in detail below.

[0255] Step 1310: The dynamic interconnection module 1 of the offload card 1 determines that the offload card 3 is faulty through the channel between the dynamic interconnection module 1 and the dynamic interconnection module 3 of the offload card 3.

[0256] Similar to step 910, please refer to the description in step 910 for details, which will not be repeated here.

[0257] Step 1320 : Uninstall the dynamic interconnection module 1 of the card 1 , and obtain the configuration parameters of the virtual machine 3 and the virtual machine 4 from the configuration management module 1 .

[0258] As an example, after creating virtual machine 1 and virtual machine 2, offload card 2 stores the configuration parameters of virtual machine 1 and virtual machine 2, and after creating virtual machine 3 and virtual machine 4, offload card 3 stores the configuration parameters of virtual machine 3 and virtual machine 4. Configuration management module 2 can also synchronize the configuration parameters of virtual machine 1 and virtual machine 2 to configuration management module 1 through dynamic interconnection module 2, and similarly, configuration management module 3 can also synchronize the configuration parameters of virtual machine 3 and virtual machine 4 to configuration management module 1 through dynamic interconnection module 3, and configuration management module 1 will store the configuration parameters of virtual machine 1-virtual machine 4 locally.

[0259] Step 1330: Dynamic interconnection module 1 of offload card 1 notifies controller 1 to perform fault recovery.

[0260] Similar to step 730, for details, please refer to the description in step 730, which will not be repeated here.

[0261] Step 1340: Controller 1 of offload card 1 sends a message to VMM 2 of server 2 to hand over the services of virtual machine 3 and virtual machine 4 to offload card 2.

[0262] Similar to step 1140, for details, please refer to the description in step 1140, which will not be repeated here.

[0263] In some related technical solutions, when the service loads on each offload card are unbalanced, the performance of the system will appear bottleneck, which further reduces the performance of the system. Therefore, the embodiment of the present application provides a method for balancing the load of offload cards, which can balance the service loads on each offload card, thereby further improving the performance of the system.

[0264] It should be understood that, for ease of description, in the following FIGS. 14-19, it is assumed that the virtual instances running on the computing nodes are virtual machines for remote use by tenants.

[0265] FIG. 14 is a schematic flowchart of a method for balancing the load of offload cards according to an embodiment of the present application. As shown in FIG. 14, the method can include steps 1410-1440, which will be described in detail below.

[0266] Step 1410: The load balancing scheduling module receives a request for creating a virtual machine.

[0267] In the embodiments of the present application, the load balancing scheduling module can receive a request for creating a virtual machine. For example, as shown in FIG. 15, the cloud management and control platform obtains a request for creating a virtual machine 4 by a tenant, and the request includes the specification of the virtual machine 4. The cloud management and control platform sends a request message to the load balancing scheduling module, and the request message includes the specification of the virtual machine 4 and the information of the server (for example, creating the virtual machine 4 on the server 1).

[0268] The load balancing scheduling module described above can be deployed on a server of a cloud data center.

[0269] Step 1420: The load balancing scheduling module selects the offload card 2 to carry part of the services on the virtual machine 4 according to the current load of each offload card.

[0270] In the embodiments of the present application, after receiving the request for creating a virtual machine, the load balancing scheduling module can select a target offload card from a plurality of offload cards according to the current load of each offload card and in combination with a load balancing scheduling algorithm.

[0271] The load balancing scheduling algorithm described above is not specifically limited in the embodiments of the present application, and the algorithm can include but is not limited to a hash algorithm, a round-robin algorithm, a least connection algorithm, etc.

[0272] Taking the system shown in FIG. 15 as an example, it is assumed that the system includes the server 1 and two offload cards (the offload card 1 and the offload card 2), and the server 1 has created the virtual machines 1-3, wherein the offload card 1 carries part of the services (for example, storage services and network services) on the virtual machines 1-2, and the offload card 2 carries part of the services (for example, storage services and network services) on the virtual machine 3. The load balancing scheduling module can select the offload card 2 to carry part of the services (for example, storage services and network services) on the virtual machine 4 according to the current load of the offload card 1 and the offload card 2 and in combination with a load balancing scheduling algorithm.

[0273] Step 1430: The controller 2 on the offload card 2 creates the virtual machine 4 through the VMM of the server 1.

[0274] The load balancing scheduling module described above can also send a request for creating the virtual machine 4 to the controller 2 on the offload card 2, and the controller 2 can allocate corresponding resources to the virtual machine 4 based on the specification of the virtual machine 4, and create the virtual machine 4 through the VMM of the server 1, so that part of the services on the virtual machine 4 are offloaded to the offload card 2. For example, the VMM of the server 1 virtualizes the resources allocated to the virtual machine 4 on the offload card 2, and provides the virtual machine 4 for use, so that part of the services on the virtual machine 4 are offloaded to the offload card 2.

[0275] Step 1440: The configuration management module 2 saves the configuration parameters of the virtual machine 4.

[0276] In some embodiments, after the virtual machine 4 is created, the configuration parameters of the virtual machine 4 (including but not limited to: the resource allocation of the offload card 2 for the virtual machine 4, the configuration information of the tenant using the virtual machine 4, etc.) can also be stored in the configuration management module 2.

[0277] In some embodiments, the configuration management module 2 can also synchronize the stored configuration parameters of the virtual machine 4 to the offload card 1, so as to be prepared for subsequent takeover of the related services of the virtual machine 4 by the offload card 1 if the offload card 2 fails. As an example, the configuration management module 2 can synchronize the configuration parameters of the virtual machine 4 to the configuration management module 1 of the offload card 1 through the channel between the dynamic interconnection module 2 and the dynamic interconnection module 1. If the offload card 2 fails subsequently, the offload card 1 can obtain the configuration parameters of the virtual machine 4 from the configuration management module 1, and take over the related services of the virtual machine 4 by the offload card 1. For the specific implementation process, please refer to the description in the method of data processing provided above, which will not be described here.

[0278] In some embodiments, the configuration management module 2 can also synchronize the stored configuration parameters of the virtual machine 4 to the memory of the server 1, so as to be prepared for subsequent takeover of the related services of the virtual machine 4 by the offload card 1 if the offload card 2 fails.

[0279] In the above technical solution, the load balancing scheduling module is arranged at the service request processing back end and the offload card processing front end. When a service request arrives, the service request is first hashed to multiple offload cards according to the deployed services on each offload card and combined with a proper load balancing algorithm, so that the offload services can be evenly run on multiple offload cards, thereby solving the problem of performance bottleneck caused by unbalanced load among multiple offload cards and the problem of new services unable to be expanded, and improving the performance of the system.

[0280] In some related technical solutions, the maximum service performance of the virtual machine is limited and cannot be expanded due to the upper limit of the performance of a single offload card, and the available virtual machine specifications of the service are limited. In order to solve this problem, the embodiment of the present application provides an offload card aggregation method, which can coordinate and aggregate multiple offload cards, so that the maximum service performance of the virtual machine is not limited, thereby improving the service capability of the virtual machine.

[0281] FIG. 17 is a schematic flowchart of an offload card aggregation method provided by an embodiment of the present application. As shown in FIG. 17, the method can include steps 1710-1730, which will be described in detail below.

[0282] Step 1710: The load balancing scheduling module receives a request for creating a virtual machine.

[0283] In the embodiment of the present application, the load balancing and scheduling module can receive a request for creating a virtual machine. For example, as shown in the conventional architecture of FIG. 16, the cloud management and control platform obtains a request for creating a virtual machine 1 by a tenant, and the request includes the specification of the virtual machine 1. The cloud management and control platform sends a request message to the load balancing and scheduling module, and the request message includes the specification of the virtual machine 1 and the information of the server (for example, creating the virtual machine 1 on the server 1).

[0284] Step 1720: The load balancing and scheduling module selects the offload card 1 and the offload card 2 to carry part of the services on the virtual machine 4 according to the specification of the virtual machine 1.

[0285] As an example, the load balancing and scheduling module identifies that two offload cards need to be aggregated to meet the service requirements in this scenario according to the specification of the single offload card and the specification of the virtual machine 1, and two offload cards need to be allocated to the virtual machine 1. The load balancing and scheduling module sends the service request to the controller 1 of the offload card 1 and the controller 2 of the offload card 2 respectively.

[0286] Step 1730: The controller 1 of the offload card 1 and the controller 2 of the offload card 2 create the virtual machine 1 through the VMM of the server 1.

[0287] As an example, after the controller 1 and the controller 2 receive the service request sent by the load balancing and scheduling module, it is perceived that the resources of the offload card 1 and the offload card 2 need to be aggregated and used to provide offload services to the virtual machine 1. The controller 1 allocates corresponding resources to the virtual machine 1 based on the specification of the virtual machine 1, the controller 2 allocates corresponding resources to the virtual machine 1 based on the specification of the virtual machine 1, and creates the virtual machine 1 through the VMM of the server 1, so that part of the services on the virtual machine 1 are offloaded to the offload card 1 and the offload card 2. For example, after the VMM of the server 1 allocates the resources of the offload card 1 and the offload card 2 to the virtual machine 1 respectively and virtualizes them, the virtual machine 1 is provided with the resources for use, so that part of the services on the virtual machine 1 are offloaded to the offload card 1 and the offload card 2.

[0288] FIG. 19 is a schematic flowchart of another method for aggregating offload cards provided by an embodiment of the present application. As shown in FIG. 19, the method can include steps 1910-1930, which are described in detail as follows.

[0289] Step 1910: The load balancing and scheduling module receives a request for creating a virtual machine.

[0290] In the embodiments of the present application, the load balancing scheduling module can receive a request for creating a virtual machine. For example, as shown in the pooling architecture of FIG. 18, the cloud management and control platform obtains a request for creating a virtual machine 1 by a tenant, and the request includes the specification of the virtual machine 1. The cloud management and control platform sends a request message to the load balancing scheduling module, and the request message includes the specification of the virtual machine 1 and the information of the server (for example, creating the virtual machine 1 on the server 1).

[0291] Step 1920: The load balancing scheduling module selects the offload card 1, the offload card 2 and the offload card 3 to carry part of the services on the virtual machine 4 according to the specification of the virtual machine 1.

[0292] As an example, the load balancing scheduling module identifies that two offload cards need to be aggregated to meet the service requirements in this scenario according to the specification of a single offload card and the specification of the virtual machine 1, and three offload cards need to be allocated to the virtual machine 1 for use. The load balancing scheduling module sends the service request to the controller 1 of the offload card 1, the controller 2 of the offload card 2 and the controller 3 of the offload card 3 respectively.

[0293] Step 1930: The controller 1 of the offload card 1, the controller 2 of the offload card 2 and the controller 3 of the offload card 3 create the virtual machine 1 through the VMM of the server 1.

[0294] As an example, after the controller 1, the controller 2 and the controller 3 respectively receive the service request sent by the load balancing scheduling module, it is perceived that the resources of the offload card 1, the offload card 2 and the offload card 3 need to be used in aggregation to provide offload services to the virtual machine 1. The controller 1 allocates corresponding resources to the virtual machine 1 based on the specification of the virtual machine 1, the controller 2 allocates corresponding resources to the virtual machine 1 based on the specification of the virtual machine 1, the controller 3 allocates corresponding resources to the virtual machine 1 based on the specification of the virtual machine 1, and creates the virtual machine 1 through the VMM of the server 1, so that part of the services on the virtual machine 1 are offloaded to the offload card 1 and the offload card 2. For example, after the VMM of the server 1 virtualizes the resources of the offload card 1, the offload card 2 and the offload card 3 allocated to the virtual machine 1 respectively, the virtual machine 1 is provided with the virtualized resources, so that part of the services on the virtual machine 1 are offloaded to the offload card 1, the offload card 2 and the offload card 3.

[0295] In the above technical solution, when the specification of a virtual machine exceeds the upper limit of the offload capacity of a single offload card, the multi-offload card aggregation mode is used to provide service offload to the virtual machine, thereby improving the service performance of the virtual machine.

[0296] The embodiments of the device of the present application will be described in detail below with reference to FIGS. 20-22. It should be understood that the description of the device embodiments corresponds to the description of the method embodiments, and therefore, the parts not described in detail can be referred to the foregoing method embodiments.

[0297] Next, a computing device provided by an embodiment of the present application is described in detail in combination with FIG. 20.

[0298] FIG. 20 is an architecture diagram of a computing device 1500 provided by an embodiment of the present application. The computing device 1500 can be a server or a computer or other device with computing capability. The computing device 1500 shown in FIG. 20 includes at least one processor 1510 and a memory 1520.

[0299] It should be understood that the present application does not limit the number of processors and memories in the computing device 1500.

[0300] The processor 1510 executes instructions in the memory 1520, so that the computing device 1500 implements the method provided by the present application. Alternatively, the processor 1510 executes instructions in the memory 1520, so that the computing device 1500 implements the various functional modules provided by the present application, thereby implementing the method provided by the present application.

[0301] Optionally, the computing device 1500 further includes a communication interface 1530. The communication interface 1530 uses a transceiving module such as but not limited to a network interface card, a transceiver, to implement communication between the computing device 1500 and other devices or communication networks.

[0302] Optionally, the computing device 1500 further includes a system bus 1540, wherein the processor 1510, the memory 1520 and the communication interface 1530 are respectively connected with the system bus 1540. The processor 1510 can access the memory 1520 through the system bus 1540, for example, the processor 1510 can read and write data or execute code in the memory 1520 through the system bus 1540. The system bus 1540 is a peripheral component interconnect express (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The system bus 1540 is divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one thick line is shown in FIG. 20, but it does not mean that there is only one bus or one type of bus.

[0303] In one possible implementation, the function of the processor 1510 is mainly to interpret instructions (or code) of a computer program and process data in computer software. The instructions of the computer program and the data in the computer software can be saved in the memory 1520 or the cache 1516.

[0304] Optionally, the processor 1510 is a chip that has a processing capability of signals. As an example but not limitation, the processor 1510 is a general processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component. Among them, the general processor is a microprocessor and the like. For example, the processor 1510 is a central processing unit (CPU).

[0305] Optionally, each processor 1510 includes at least one processing unit 1512 and a memory control unit 1514.

[0306] Optionally, the processing unit 1512 is also called core or kernel, which is the most important component of the processor. The processing unit 1512 is manufactured by single crystal silicon with certain production process, and all the calculations, command receiving, command storage and data processing of the processor are executed by the core. The processing units respectively independently run program instructions, and use the parallel computing capability to speed up the program running. Various processing units have fixed logic structures, for example, the processing unit includes logic units such as a first level cache, a second level cache, an execution unit, an instruction stage unit and a bus interface.

[0307] In one implementation, the memory control unit 1514 is used to control the data interaction between the memory 1520 and the processing unit 1512. Specifically, the memory control unit 1514 receives a memory access request from the processing unit 1512, and controls the access to the memory based on the memory access request. As an example but not limitation, the memory control unit is a memory management unit (MMU) and the like.

[0308] In one implementation, each memory control unit 1514 addresses the memory 1520 through a system bus. And an arbiter (not shown in FIG. 20) is configured in the system bus, which is responsible for processing and coordinating the competitive access of multiple processing units 1512.

[0309] In one implementation, the processing unit 1512 and the memory control unit 1514 are communicatively connected through the internal connection line of the chip, such as the address line, so as to realize the communication between the processing unit 1512 and the memory control unit 1514.

[0310] Optionally, each processor 1510 also includes a cache 1516, which provides temporary storage of often-used data and instructions. Recent use of data can be stored in the cache 1516 for quick future use. The cache 1516 also decreases the number of times information is loaded from the main memory 1520 into the processor 1510, thus improving the processor's performance.

[0311] The memory 1520 can provide a space for processes in the computing device 1500 to run, for example, the memory 1520 stores computer programs (in particular, the codes of the programs) for generating the processes. After the computer programs are run by the processor to generate the processes, the processor allocates corresponding storage spaces in the memory 1520 for the processes. Further, the storage spaces further include a text segment, an initialized data segment, a bit initialized data segment, a stack segment, a heap segment, and the like. The memory 1520 stores data generated during the running of the processes, for example, intermediate data, or process data, and the like, in the storage spaces corresponding to the processes.

[0312] Optionally, the memory is also referred to as the internal memory, which is used to temporarily store the data for operation in the processor 1510, and exchange the data with the external memory such as the hard disk. As long as the computer is running, the processor 1510 will call the data needed for operation to the internal memory for operation, and the processing unit 1512 will transmit the results after the operation is completed.

[0313] By way of example, and not limitation, memory 1520 is volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory. By way of example, and not limitation, nonvolatile memory can be read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically EPROM (EEPROM), or flash memory. Volatile memory is random access memory (RAM), which acts as external cache. By way of example, and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double-data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct rambus RAM (DR RAM). The system and method described herein can be stored on or transmitted across one or more of these forms of RAM, or nonvolatile memory.

[0314] The structure of the computing device 1500 listed above is only exemplary, and the present application is not limited thereto. The computing device 1500 of the embodiments of the present application includes various hardware in the prior art computer system, for example, the computing device 1500 also includes other memories in addition to the memory 1520, such as disk memories and the like. Those skilled in the art should understand that the computing device 1500 can also include other devices necessary for normal operation. Meanwhile, according to specific needs, those skilled in the art should understand that the above-mentioned computing device 1500 can also include hardware devices for realizing other additional functions. In addition, those skilled in the art should understand that the above-mentioned computing device 1500 can also only include devices necessary for realizing the embodiments of the present application, and does not necessarily include all the devices shown in FIG. 20.

[0315] The embodiments of the present application also provide a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server. In some embodiments, the computing device can also be a desktop computer, a notebook computer, or a terminal device such as a smart phone.

[0316] As shown in FIG. 21, the computing device cluster includes at least one computing device 1500. The memory 1520 in one or more computing devices 1500 in the computing device cluster can have the same instructions for performing the above method.

[0317] In some possible implementation, the memory 1520 in one or more computing devices 1500 in the computing device cluster can also respectively have partial instructions for performing the above method. In other words, the combination of one or more computing devices 1500 can collectively perform the instructions of the above method.

[0318] It should be noted that the memory 1520 in different computing devices 1500 in the computing device cluster can store different instructions, respectively used for performing part of the functions of the above apparatus. That is, the instructions stored in the memory 1520 in different computing devices 1500 can implement the functions of one or more modules in the above apparatus.

[0319] In some possible implementation, one or more computing devices in the computing device cluster can be connected through a network. The network can be a wide area network, a local area network, or the like. FIG. 22 shows one possible implementation. As shown in FIG. 22, two computing devices 1500A and 1500B are connected through a network. Specifically, the computing devices are connected to the network through the communication interfaces in the computing devices.

[0320] It should be understood that the functions of the computing device 1500A shown in FIG. 22 can also be completed by multiple computing devices 1500. Similarly, the functions of the computing device 1500B can also be completed by multiple computing devices 1500.

[0321] In this embodiment, a computer program product including instructions is also provided. The computer program product can be software or a program product including instructions, which can be run on a computing device or stored in any available medium. When it is run on a computing device, it causes the computing device to perform the above-provided method, or causes the computing device to implement the functions of the above-provided apparatus.

[0322] In this embodiment, a computer readable storage medium is also provided. The computer readable storage medium can be any available medium or a data storage device including one or more available media in a data center, etc. The available medium can be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk), etc. The computer readable storage medium includes instructions, which, when executed on a computing device, cause the computing device to perform the above-provided method.

[0323] It should be understood that the size of the sequence number of the above processes does not mean the order of execution in various embodiments of the present application, and the execution order of the processes should be determined according to its function and inherent logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0324] Those skilled in the art can appreciate that the units and algorithm steps of the examples described in combination with the embodiments disclosed herein can be realized in electronic hardware or a combination of computer software and electronic hardware. Whether the functions are realized in hardware or software depends on the specific application and design constraints of the technical solution. The skilled person can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.

[0325] Those skilled in the art can clearly understand that, for the convenience and brevity of the description, the specific working process of the above-described system, device and unit can refer to the corresponding process in the foregoing method embodiments, which will not be repeated here.

[0326] In several embodiments provided in the present application, it should be understood that the disclosed system, device and method can be implemented in other ways. For example, the above-described device embodiments are only schematic, for example, the division of the units is only a logical function division, and actual implementation can have another division manner, for example, a plurality of units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the units shown or discussed can be indirect coupling or communication connection through some interface, device or unit, and can be electrical, mechanical or other forms.

[0327] The units described as separate components can or can not be physically separated, and the components shown as units can or can not be physical units, that is, they can be located in one place, or can be distributed on a plurality of network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the embodiment.

[0328] In addition, each functional unit in each embodiment of the present application can be integrated in one processing unit, or each unit can exist physically, or two or more units can be integrated in one unit.

[0329] If the functions are implemented in the form of software function units and sold or used as independent products, they can be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the present application essentially or the parts that contribute to the prior art or parts of the technical solutions can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes a plurality of instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present application. The aforementioned storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and various media that can store program codes.

[0330] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art can easily think of changes or replacements within the technical scope disclosed in the present application, which should be covered within the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims

1. A computing node based on cloud computing technology, characterized in that: The computing node is set in a data center that provides cloud services. A virtual instance or application for remote use by a tenant runs on the computing node. At least two offload cards are inserted into the computing node. Services of the computing node are offloaded to at least one of the at least two offload cards for execution, wherein: A first offload card among the at least two offload cards is configured to virtualize physical resources of the first offload card to generate a first virtual device; The virtual instance or the application is used to mount and / or access the first virtual device; a second offload card among the at least two offload cards, configured to, in the event of a failure of the first offload card, obtain configuration parameters of the virtual instance or the application, and virtualize physical resources of the second offload card according to the configuration parameters to generate a second virtual device for replacing the first virtual device; The virtual instance or the application is used to mount and / or access the second virtual device.

2. The computing node according to claim 1, wherein: The second offload card is specifically used for: The configuration parameters of the virtual instance or the application are obtained from the second offload card.

3. The computing node according to claim 2, characterized in that A connection channel is provided between the second unloading card and the first unloading card, wherein: The first offload card is further configured to synchronize the configuration parameters of the virtual instance or the application to the second offload card through the connection channel; The second offload card is further used to store configuration parameters of the virtual instance or the application.

4. The computing node according to claim 1, wherein: The second offload card is specifically used for: The configuration parameters of the virtual instance or the application are obtained from the memory of the computing node.

5. The computing node according to any one of claims 1 to 4, characterized in that: The second unloading card is further configured to determine, based on a heartbeat detection mechanism, that a failure has occurred in the first unloading card.

6. The computing node according to any one of claims 1 to 5, characterized in that: The configuration parameters of the virtual instance or the application include at least one of the following information: physical resource information provided by the first virtual device to the virtual instance or the application, status information of the virtual instance or the application using the first virtual device, and tenant information of the tenant to which the virtual instance or the application belongs.

7. The computing node according to any one of claims 1 to 6, characterized in that: The first virtual device and / or the second virtual device executes at least one of the following services of the virtual instance or the application: computing service, network service, storage service, and security service.

8. The computing node according to any one of claims 1 to 7, characterized in that: The first unload card is an unload card selected from the at least two unload cards and having a lower load.

9. The computing node according to any one of claims 1 to 8, characterized in that: The at least two offload cards further include a third offload card, and the third offload card is used to virtualize the physical resources of the third offload card to generate a third virtual device; The virtual instance or the application is used to mount and / or access a fourth virtual device generated by aggregating the first virtual device and the third virtual device.

10. The computing node according to any one of claims 1 to 9, characterized in that: The computing node is also provided with a management module. The management module is used to obtain a virtual instance creation request sent by a cloud management platform, and create the virtual instance on the computing node according to the virtual instance creation request, wherein the virtual instance creation request carries the specifications of the virtual instance configured by the tenant, and the first virtual device matches the specifications of the virtual instance.

11. A server system based on cloud computing technology, characterized in that: The system comprises an offload card carrying node and a computing node, wherein the offload card carrying node and the computing node are arranged in a data center providing cloud services, at least two offload cards are inserted into the offload card carrying node, and the business of the computing node is offloaded to at least one of the at least two offload cards for execution, wherein: The computing node is used to run a virtual instance or application for remote use by a tenant, and a connection channel is provided between the offload card carrying node and the computing node; A first offload card among the at least two offload cards is configured to virtualize physical resources of the first offload card to generate a first virtual device; The virtual instance or the application is used to mount and / or access the first virtual device through the connection channel; The second offload card of the at least two offload cards is configured to obtain configuration parameters of the virtual instance or the application program when determining that the first offload card has failed, and to virtualize physical resources of the second offload card according to the configuration parameters to generate a second virtual device for replacing the first virtual device. The virtual instance or the application is used to mount and / or access the second virtual device through the connection channel.

12. The server system according to claim 11, wherein: The second offload card is specifically used for: The configuration parameters of the virtual instance or the application are obtained from the second offload card.

13. The server system according to claim 12, wherein: A connection channel is provided between the second unloading card and the first unloading card, wherein: The first offload card is further configured to synchronize the configuration parameters of the virtual instance or the application to the second offload card through a connection channel between the second offload card and the first offload card; The second offload card is further used to store configuration parameters of the virtual instance or the application.

14. The server system according to claim 11, wherein: The second offload card is specifically used for: The configuration parameters of the virtual instance or the application are obtained from the memory of the computing node through the connection channel between the offload card carrying node and the computing node.

15. The server system according to any one of claims 11 to 14, characterized in that: The second unloading card is further configured to determine, based on a heartbeat detection mechanism, whether the first unloading card has failed.

16. The server system according to any one of claims 11 to 15, characterized in that: The configuration parameters of the virtual instance or the application include at least one of the following information: physical resource information provided by the first virtual device to the virtual instance or the application, status information of the virtual instance or the application using the first virtual device, and tenant information of the tenant to which the virtual instance or the application belongs.

17. The server system according to any one of claims 11 to 16, characterized in that: The first virtual device and / or the second virtual device executes at least one of the following services of the virtual instance or the application: computing service, network service, storage service, and security service.

18. The server system according to any one of claims 11 to 17, characterized in that: The first unload card is an unload card selected from the at least two unload cards and having a lower load.

19. The server system according to any one of claims 11 to 18, characterized in that: The at least two offload cards further include a third offload card, and the third offload card is used to virtualize the physical resources of the third offload card to generate a third virtual device; The virtual instance or the application is used to mount and / or access a fourth virtual device generated by aggregating the first virtual device and the third virtual device.

20. The server system according to any one of claims 11 to 19, characterized in that: The computing node is also provided with a management module. The management module is used to obtain a virtual instance creation request sent by a cloud management platform, and create the virtual instance on the computing node according to the virtual instance creation request, wherein the virtual instance creation request carries the specifications of the virtual instance configured by the tenant, and the first virtual device matches the specifications of the virtual instance.

Citation Information

Patent Citations

  • Techniques for providing access to kernel and user space memory regions

    CN114662088A

  • Cloud resource acceleration method and device and medium

    CN115913953A

  • Virtual machine creation method, apparatus and device, and computer storage medium

    CN116521320A

  • Virtual instance creation method based on cloud computing technology and cloud management platform

    CN117632353A

  • Communication method, communication device and communication system

    CN117675583A