Cloud service system and data processing method based on cloud service system
By introducing a smart NIC management module into the cloud service system, multiple smart NIC resources can be dynamically selected and managed, solving the problem that computing nodes cannot process multiple data simultaneously, and enabling stable business operations and efficient data processing for tenant applications.
Patent Information
- Application Number
- PCT/CN2024/138049
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-06-19
- Filing Date
- 2024-12-10
- Publication Date
- 2025-12-04
AI Technical Summary
In cloud service systems with a storage-compute separation architecture, the smart NICs of compute nodes cannot simultaneously meet multiple data processing needs, resulting in damage to application services. Furthermore, there are no backup resources available to replace the smart NICs when they fail, further impacting service stability.
By introducing a smart NIC management module into the compute node cluster, multiple smart NIC resources can be dynamically selected and managed, enabling the sharing and efficient allocation of smart NIC resources and ensuring that compute nodes can process multiple data requests simultaneously.
It improves the data processing capabilities of computing nodes, ensures the stability of tenant applications' business, and avoids the performance limitations and failures of a single smart NIC.
Smart Images

Figure CN2024138049_04122025_PF_FP_ABST
Abstract
Description
A cloud service system and a data processing method based on the cloud service system.
[0001] This application claims priority to Chinese Patent Application No. 202410707991.0, filed with the State Intellectual Property Office of China on May 31, 2024, entitled "A method, apparatus and other equipment for data processing", and to Chinese Patent Application No. 202410796617.2, filed with the State Intellectual Property Office of China on June 19, 2024, entitled "A cloud service system and a data processing method based on a cloud service system", the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of cloud technology, and in particular to a cloud service system and a data processing method based on the cloud service system. Background Technology
[0003] With the rapid development of cloud technology, cloud vendors are adopting a compute-storage separation architecture to build cloud service systems. This architecture can include isolated compute nodes and storage nodes. Compute nodes are used to deploy tenant applications, while storage nodes are used to store the data of these applications. When an application on a compute node needs to process data, the compute node can access the storage node to complete the data processing at the storage node.
[0004] In related technologies, cloud service systems built on a storage-compute separation architecture can include multiple computing nodes and multiple storage nodes. Each computing node is connected to an additional smart network interface card (NIC). Each computing node can offload certain operations in the data processing process to the smart NIC, which can reduce the processor resource consumption of the computing nodes, thereby improving the computing power and available resources of the computing nodes.
[0005] However, since the compute nodes and smart NICs are in a one-to-one configuration, when an application on a compute node needs to process multiple data, the performance of the smart NIC on that compute node is limited, and the smart NIC cannot meet the processing needs of multiple data at the same time, resulting in the loss of business services of the application on that compute node. Summary of the Invention
[0006] This application provides a cloud service system and a data processing method based on the cloud service system, which can simultaneously and quickly complete the processing needs of a tenant's application for several data items, thereby ensuring the business stability of the tenant's application.
[0007] The first aspect of this application provides a cloud service system. The cloud service system includes infrastructure that provides cloud services to tenants. The infrastructure includes a service and computing node cluster, a smart NIC cluster, and a storage node cluster. A first computing node in the computing node cluster includes a first application of the tenant and a first smart NIC management module for managing the first application. The storage node cluster is used to store multiple data of the first application.
[0008] When the first application of the first computing node needs to process the first data, the first application of the first computing node can send a first data processing request for the first data to the first smart network card management module of the first computing node. The first data processing request for the first data may include information about the first data to be processed and information such as the identifier of the first application.
[0009] After receiving the first data processing request for the first data, the first smart network card management module of the first computing node can first parse the first data processing request for the first data, and select the first smart network card from multiple smart network cards based on the parsed information of the first data and / or the identifier of the first application of the first computing node, and send the first data processing request for the first data to the first smart network card.
[0010] Upon receiving a first data processing request for the first data, the first smart network interface card (NIC) can determine the first storage node storing the first data among multiple storage nodes based on the first data processing request, and send a first notification to the first storage node so that the first storage node processes the first data based on the first notification, thereby obtaining the processing result of the first data.
[0011] As can be seen from the above method, even if a tenant's application (i.e., the aforementioned first application) on a certain computing node (i.e., the first computing node mentioned above) has the need to process multiple data (i.e., the aforementioned first data) simultaneously, the smart NIC management module of that computing node (i.e., the aforementioned first smart NIC management module mentioned above) can select one or more smart NICs (i.e., the aforementioned first smart NICs) from the smart NIC cluster to meet the need. Since there can be multiple smart NICs selected, these smart NICs combined together are equivalent to increasing the performance ceiling, no longer limited by the performance of a single smart NIC. This is conducive to simultaneously and quickly completing the tenant's application's processing needs for multiple data, thereby ensuring the stability of the tenant's application business.
[0012] In one possible implementation, a second compute node in the compute node cluster includes a tenant's second application and a second smart NIC management module that manages the second application. The second application sends a second data processing request to the second smart NIC management module, the request containing information about the second data to be processed and an identifier of the second application. The second smart NIC management module determines a second smart NIC from the smart NIC cluster based on the information about the second data and / or the identifier of the second application contained in the second data processing request, and sends the second data processing request to the second smart NIC. The second smart NIC sends a second notification to a second storage node in the storage node cluster based on the second data processing request. The second storage node processes the second data based on the second notification. Therefore, in the compute node cluster provided by the cloud service system, the operations performed by both the first and second compute nodes are similar. The smart NIC cluster allows for the sharing of smart NIC resources between the first and second compute nodes, thereby increasing the amount of smart NIC resources available to a single compute node.
[0013] In one possible implementation, a first smart NIC management module allocates multiple cloud disks to a first application. The first application triggers the first cloud disk among the multiple cloud disks to generate a first data processing request. The first cloud disk sends the first data processing request to the first smart NIC management module. The first data processing request includes information about the first data to be processed and the identifier of the first cloud disk. The information about the first data includes the address of the first data in the first cloud disk. In the aforementioned implementation, the first smart NIC management module of the first computing node can allocate multiple cloud disks to the first application of the first computing node. When the first application of the first computing node needs to process the first data in the first cloud disk among the multiple cloud disks, the first application of the first computing node can first trigger the first cloud disk to generate a first data processing request for the first data. The first data processing request for the first data may include the address of the first data in the first cloud disk and the identifier of the first cloud disk, etc. After receiving the first data processing request for the first data, the first cloud disk can send the first data processing request for the first data to the first smart NIC management module of the first computing node.
[0014] In one possible implementation, the first smart NIC management module includes a first mapping table, which records the binding relationships between the identifiers of multiple cloud disks and the addresses of multiple smart NICs. The first smart NIC management module is used to determine the address of the first smart NIC bound to the identifier of the first cloud disk from the first mapping table. The first smart NIC management module is also used to send a first data processing request to the first smart NIC based on the address of the first smart NIC. In the aforementioned implementation, the first smart NIC management module of the first computing node may include a first mapping table, which records the binding relationships between the identifiers of multiple cloud disks allocated to the first application of the first computing node and the addresses of multiple smart NICs. Since the first smart NIC management module of the first computing node can obtain the identifier of the first cloud disk from the first data processing request for the first data, the management module of the first computing node can determine the address of the first smart NIC bound to the identifier of the first cloud disk from the first mapping table. After obtaining the address of the first smart NIC, the first smart NIC management module of the first computing node can send a first data processing request for the first data to the first smart NIC based on the address of the first smart NIC. Therefore, the first smart network card management module of the first computing node can manage the relationship between the smart network card and the cloud disk through pre-binding, so as to achieve efficient management and selection of the smart network card.
[0015] In one possible implementation, the address of one of the multiple smart network interface cards (NICs) is bound to the identifier of at least one of the multiple cloud disks. In the aforementioned implementation, the binding relationship recorded in the first mapping table allows the address of one of the multiple smart NICs to be bound to the identifier of at least one of the multiple cloud disks allocated to the first application on the first computing node.
[0016] In one possible implementation, the first smart NIC management module includes a second mapping table, which records the calculated values of multiple smart NICs and the binding relationships between their addresses. The first smart NIC management module calculates the calculated value of the first smart NIC by analyzing the identifier of the first cloud disk and the address of the data within the first cloud disk. The first smart NIC management module then determines the address of the first smart NIC bound to its calculated value from the second mapping table. Finally, the first smart NIC management module sends a first data processing request to the first smart NIC based on its address. In the aforementioned implementation, the first smart NIC management module of the first computing node may include a second mapping table (view), which records the one-to-one binding relationships between the calculated values of multiple smart NICs and their addresses. Since the first smart NIC management module of the first computing node can obtain the identifier of the first cloud disk and the location of the first data in the first cloud disk from the first data processing request for the first data, the first smart NIC management module of the first computing node can calculate the identifier of the first cloud disk and the location of the first data in the first cloud disk to obtain the calculated value of the first smart NIC. Then, the first smart NIC management module of the first computing node can determine the address of the first smart NIC bound to the calculated value of the first smart NIC from the second mapping table. After obtaining the address of the first smart NIC, the first smart NIC management module of the first computing node can send the first data processing request for the first data to the first smart NIC based on the address of the first smart NIC. It can be seen that the first smart NIC management module of the first computing node can manage the relationship between the smart NIC and the cloud disk by combining advance view with real-time calculation to achieve efficient management and selection of the smart NIC.
[0017] In one possible implementation, the computation includes a hash operation, and the calculated value of the first smart network interface card (NIC) includes the hash value of the first smart NIC. In the aforementioned implementation, the first smart NIC management module of the first computing node can perform a hash calculation on the identifier of the first cloud disk and the location of the first data in the first cloud disk to obtain the hash value of the first smart NIC.
[0018] In one possible implementation, the compute node cluster contains multiple compute nodes, and the smart network interface card (NIC) cluster contains multiple smart NICs. Each compute node has one smart NIC installed, and these smart NICs are shared by multiple compute nodes. The first smart NIC is either installed on the first compute node or on the third compute node. In this implementation, there is a one-to-one correspondence between the multiple compute nodes in the compute node cluster and the multiple smart NICs in the smart NIC cluster. That is, each compute node has one smart NIC installed, and for any compute node (i.e., the aforementioned first compute node), the compute node can use not only its own smart NIC but also the smart NICs installed on other compute nodes (i.e., the aforementioned third compute node). In other words, the compute node can communicate with the other compute nodes or communicate with the smart NICs installed on other compute nodes.
[0019] In one possible implementation, the compute node cluster comprises multiple compute nodes, and the cloud service system further includes an offload card bearer node. This offload card bearer node has at least one smart network interface card (NIC) from the smart NIC cluster inserted into it. This smart NIC is shared by multiple compute nodes, and the first smart NIC is the one inserted into the offload card bearer node. In this implementation, the offload card bearer node acts as a channel between the compute node cluster and the smart NIC cluster, enabling the compute node cluster to share the smart NICs in the smart NIC cluster through the offload card bearer node.
[0020] In one possible implementation, a cluster of computing nodes is connected to a cluster of smart network interface cards (NICs) via a high-speed interconnect device. A first smart NIC management module is used to send the address of the first smart NIC and a first data processing request to the high-speed interconnect device. The address of the first smart NIC is used by the high-speed interconnect device to send the first data processing request to the first smart NIC. In the aforementioned implementation, the first computing node is connected to multiple smart NICs via the high-speed interconnect device. Therefore, the first smart NIC management module of the first computing node can first send the address of the first smart NIC and the first data processing request for the first data to the high-speed interconnect device. Then, the high-speed interconnect device can send the first data processing request to the first smart NIC based on the address of the first smart NIC.
[0021] In one possible implementation, the first smart NIC management module is further configured to obtain evaluation values for multiple smart NICs based on their performance metrics and status metrics in the smart NIC cluster; the first smart NIC management module is also configured to remove the addresses of third smart NICs whose evaluation values are less than or equal to the evaluation threshold from the first mapping table, and bind the identifier of the cloud disk bound to the address of the third smart NIC to the address of the fourth smart NIC; or, remove the calculated values and addresses of third smart NICs whose evaluation values are less than or equal to the evaluation threshold from the second mapping table. In the aforementioned implementation, the first smart NIC management module of the first computing node can collect the performance metrics and status metrics of multiple smart NICs in real time, and perform a series of calculations on the performance metrics and status metrics of multiple smart NICs to calculate the evaluation values of multiple smart NICs. When the first smart NIC management module of the first computing node contains a first mapping table, it can remove the address of the third smart NIC whose evaluation value is less than or equal to the evaluation threshold from the first mapping table, and bind the identifier of the cloud disk bound to the address of the third smart NIC to the address of the fourth smart NIC (excluding the third smart NIC). When the first smart NIC management module of the first computing node contains a second mapping table, it can remove the calculated value and address of the third smart NIC whose evaluation value is less than or equal to the evaluation threshold from the second mapping table. Therefore, the first smart NIC management module of the first computing node can calculate the evaluation values of multiple smart NICs in real time to determine their health status, thereby performing health management and scaling down of the multiple smart NICs.
[0022] In one possible implementation, the first smart NIC management module is further configured to, after detecting the addition of a fifth smart NIC to multiple smart NICs in the smart NIC cluster, generate a correspondence between the address of the fifth smart NIC and the identifier of at least one cloud disk among the multiple cloud disks in a first mapping table, thus obtaining an updated first mapping table; or, in a second mapping table, generate a correspondence between the address of the fifth smart NIC and the calculated value of the fifth smart NIC, thus obtaining an updated second mapping table. In the aforementioned implementation, when the first smart NIC management module of the first computing node detects the addition of a fifth smart NIC to multiple smart NICs, it indicates that the number of smart NICs has increased. When the first smart NIC management module of the first computing node has a first mapping table, it can generate a correspondence between the address of the fifth smart NIC and the identifier of at least one cloud disk among the multiple cloud disks of the first computing node in the first mapping table, thereby obtaining an updated first mapping table. When the first smart NIC management module of the first computing node has a second mapping table, it can generate a correspondence between the address of the fifth smart NIC and its calculated value in the second mapping table, thus obtaining an updated second mapping table. Therefore, the first smart NIC management module of the first computing node can update the contents of the first or second mapping table in real time after determining that multiple smart NICs need to be expanded, in order to manage the binding relationship between smart NICs and cloud disks.
[0023] A second aspect of this application provides a data processing method based on a cloud service system. The cloud service system includes infrastructure providing cloud services to tenants. The infrastructure includes a compute node cluster, a smart NIC cluster, and a storage node cluster. A first compute node in the compute node cluster includes a first application of the tenant and a first smart NIC management module for managing the first application. The storage node cluster is used to store multiple data sets of the first application. The method includes: the first application sending a first data processing request to the first smart NIC management module, the first data processing request including information about first data to be processed and an identifier of the first application; the first smart NIC management module determining a first smart NIC from the smart NIC cluster based on the information about the first data and / or the identifier of the first application included in the first data processing request, and sending the first data processing request to the first smart NIC; the first smart NIC sending a first notification to a first storage node in the storage node cluster based on the first data processing request; and the first storage node processing the first data based on the first notification, the multiple data sets including the first data set.
[0024] In one possible implementation, a second compute node in the compute node cluster includes a tenant's second application and a second smart NIC management module that manages the second application. The method further includes: the second application sending a second data processing request to the second smart NIC management module, the second data processing request including information about second data to be processed and an identifier of the second application; the second smart NIC management module determining a second smart NIC from the smart NIC cluster based on the information about the second data contained in the second data processing request and / or the identifier of the second application, and sending the second data processing request to the second smart NIC; the second smart NIC sending a second notification to a second storage node in the storage node cluster based on the second data processing request; and the second storage node processing the second data based on the second notification.
[0025] In one possible implementation, the first smart NIC management module allocates multiple cloud disks to the first application. The first application sending a first data processing request to the first smart NIC management module includes: the first application triggering the first cloud disk among the multiple cloud disks to generate a first data processing request; the first cloud disk sending the first data processing request to the first smart NIC management module, the first data processing request containing information about the first data to be processed and the identifier of the first cloud disk, the information about the first data containing the address of the first data in the first cloud disk.
[0026] In one possible implementation, the first smart NIC management module includes a first mapping table, which records the binding relationships between the identifiers of multiple cloud disks and the addresses of multiple smart NICs. The first smart NIC management module determines the first smart NIC from the smart NIC cluster based on the information contained in the first data processing request and / or the identifier of the first application, and sends the first data processing request to the first smart NIC. This includes: the first smart NIC management module determining the address of the first smart NIC bound to the identifier of the first cloud disk from the first mapping table; and the first smart NIC management module sending the first data processing request to the first smart NIC based on the address of the first smart NIC.
[0027] In one possible implementation, the address of one of the multiple smart network interface cards (NICs) is bound to the identifier of at least one of the multiple cloud disks.
[0028] In one possible implementation, the first smart NIC management module includes a second mapping table, which records the calculated values of multiple smart NICs and the binding relationships between the addresses of the multiple smart NICs. The first smart NIC management module determines the first smart NIC from the smart NIC cluster based on the information contained in the first data processing request and / or the identifier of the first application, and sends the first data processing request to the first smart NIC. This includes: the first smart NIC management module calculating the identifier of the first cloud disk and the address of the first data in the first cloud disk to obtain the calculated value of the first NIC; the first smart NIC management module determining the address of the first smart NIC bound to the calculated value of the first smart NIC from the second mapping table; and the first smart NIC management module sending the first data processing request to the first smart NIC based on the address of the first smart NIC.
[0029] In one possible implementation, the computation involves a hash operation, and the computed value of the first smart network interface card (NIC) contains the hash value of the first smart NIC.
[0030] In one possible implementation, the compute node cluster contains multiple compute nodes, the smart NIC cluster contains multiple smart NICs, each compute node has one smart NIC inserted, and the multiple smart NICs are shared by multiple compute nodes. The first smart NIC is either the smart NIC inserted in the first compute node or the smart NIC inserted in the third compute node.
[0031] In one possible implementation, the compute node cluster includes multiple compute nodes, and the cloud service system also includes an offload card bearer node. The offload card bearer node is equipped with at least one smart network card from the smart network card cluster. The at least one smart network card is shared by multiple compute nodes, and the first smart network card is the smart network card of the offload card bearer node.
[0032] In one possible implementation, the computing node cluster is connected to the smart NIC cluster via a high-speed interconnect device. The first smart NIC management module sends a first data processing request to the first smart NIC based on the address of the first smart NIC. This includes the first smart NIC management module sending the address of the first smart NIC and the first data processing request to the high-speed interconnect device. The address of the first smart NIC is used by the high-speed interconnect device to send the first data processing request to the first smart NIC.
[0033] In one possible implementation, the method further includes: a first smart NIC management module obtaining evaluation values of multiple smart NICs based on performance metrics and status metrics of multiple smart NICs in the smart NIC cluster; the first smart NIC management module removing the address of a third smart NIC whose evaluation value is less than or equal to the evaluation threshold from the first mapping table, and binding the identifier of the cloud disk bound to the address of the third smart NIC to the address of a fourth smart NIC; or removing the calculated value of the third smart NIC whose evaluation value is less than or equal to the evaluation threshold and the address of the third smart NIC from the second mapping table.
[0034] In one possible implementation, the method further includes: after the first smart network interface card (NIC) management module detects that the fifth smart NIC has been added to multiple smart NICs in the smart NIC cluster, it generates a correspondence between the address of the fifth smart NIC and the identifier of at least one cloud disk among the multiple cloud disks in a first mapping table to obtain an updated first mapping table; or, in a second mapping table, it generates a correspondence between the address of the fifth smart NIC and the calculated value of the fifth smart NIC to obtain an updated second mapping table.
[0035] A third aspect of this application provides a computing device cluster, the computing device cluster including at least one computing device, each computing device including a processor and a memory: the memory is used to store instructions; the processor is used to cause the computing device cluster to perform the method described in the second aspect or any possible implementation of the second aspect according to the instructions.
[0036] A fourth aspect of this application provides a computer storage medium storing one or more instructions that, when executed by one or more computers, cause the one or more computers to perform the method described in the second aspect or any possible implementation of the second aspect.
[0037] The fifth aspect of this application provides a computer program product that stores instructions that, when executed by a computer, cause the computer to perform the method described in the second aspect or any of the possible implementations of the second aspect.
[0038] In this embodiment, for a first computing node in a computing node cluster, the first smart NIC management module of the first computing node can manage the first application of the tenant in the first computing node. When the first application of the first computing node needs to process first data, the first application of the first computing node will forward the first data processing request for the first data to the first smart NIC management module of the first computing node. Since the first data processing request contains information about the first data and the identifier of the first application of the first computing node, the first smart NIC management module of the first computing node can select a first smart NIC from the smart NIC cluster based on the information about the first data and the identifier of the first application of the first computing node, and forward the first data processing request to the first smart NIC. Subsequently, the first smart NIC can notify the first storage node in the storage node cluster that stores the first data based on the first data processing request to complete the processing of the first data, thereby obtaining the processing result of the first data. Therefore, even if a tenant's application (i.e., the aforementioned first application) on a certain computing node (i.e., the first computing node mentioned above) has the need to process multiple data (i.e., the aforementioned first data) simultaneously, the smart NIC management module of that computing node (i.e., the aforementioned first smart NIC management module mentioned above) can select one or more smart NICs (i.e., the aforementioned first smart NICs) from the smart NIC cluster to meet the need. Since there can be multiple smart NICs selected, these smart NICs combined together are equivalent to increasing the performance ceiling, no longer limited by the performance of a single smart NIC. This is conducive to simultaneously and quickly completing the tenant's application's processing needs for multiple data, thereby ensuring the stability of the tenant's application business. Attached Figure Description
[0039] Figure 1 is a schematic diagram of a cloud service system provided in an embodiment of this application;
[0040] Figure 2 is another structural schematic diagram of the cloud service system provided in the embodiment of this application;
[0041] Figure 3 is a flowchart illustrating a data processing method based on a cloud service system provided in an embodiment of this application.
[0042] Figure 4 is another structural schematic diagram of the cloud service system provided in the embodiment of this application;
[0043] Figure 5 is another structural schematic diagram of the cloud service system provided in the embodiment of this application;
[0044] Figure 6 is a schematic diagram of view updating provided in an embodiment of this application;
[0045] Figure 7 is a schematic diagram of a computing device provided in an embodiment of this application;
[0046] Figure 8 is a schematic diagram of a computing device cluster provided in an embodiment of this application;
[0047] Figure 9 is a schematic diagram of computer devices in a computer cluster connected via a network according to an embodiment of this application. Detailed Implementation
[0048] This application provides a cloud service system and a data processing method based on the cloud service system, which can simultaneously and quickly complete the processing needs of a tenant's application for several data items, thereby ensuring the business stability of the tenant's application.
[0049] The terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such terms are interchangeable where appropriate; this is merely a way of distinguishing objects with the same attributes in the embodiments of this application. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion, so that a process, method, system, product, or apparatus that comprises a series of elements is not necessarily limited to those elements, but may include other elements not explicitly listed or inherent to those processes, methods, products, or apparatuses.
[0050] With the rapid development of cloud technology, cloud vendors are adopting a compute-storage separation architecture to build cloud service systems. This architecture can include isolated compute nodes and storage nodes. Compute nodes are used to deploy tenant applications, while storage nodes are used to store the data of these applications. When an application on a compute node needs to process data, the compute node can access the storage node to complete the data processing at the storage node.
[0051] In related technologies, cloud service systems built on a compute-deposit separation architecture can include multiple compute nodes and multiple storage nodes. Each compute node is connected to an additional smart network interface card (NIC). Each compute node can offload certain operations in its data processing to the smart NIC, thereby reducing the processor resource consumption of the compute nodes and improving their computing power and available resources. For example, when an application on a compute node needs to process certain data, the compute node can send a data processing request for that data to the smart NIC connected to it. The smart NIC, based on the data processing request, determines the storage node containing the data from among multiple storage nodes and instructs that storage node to complete the data processing.
[0052] However, since the compute nodes and smart NICs are in a one-to-one configuration, when an application on a compute node needs to process multiple data points, the performance of a single smart NIC (e.g., throughput) is limited, and the smart NIC cannot simultaneously meet the processing needs of multiple data points, resulting in the loss of business operations for the application on that compute node.
[0053] Furthermore, if a smart NIC on a computing node fails and there is no replacement smart NIC available for that computing node, the services provided by the applications on that computing node will also be affected.
[0054] To address the aforementioned problems, this application provides a data processing method based on a cloud service system. This method can be implemented through cloud services. Figure 1 is a schematic diagram of the structure of the cloud service system provided in this application embodiment. As shown in Figure 1, the cloud service system includes infrastructure that can provide cloud services and a cloud management platform that manages this infrastructure. The cloud management platform and the infrastructure are described in detail below:
[0055] A cloud management platform provides comprehensive management of the infrastructure across the entire cloud service system. It can also be accessible to tenants outside the cloud service system and respond to their requests. For example, the cloud management platform offers various interfaces, such as login and creation interfaces, for tenant clients (e.g., the terminal devices used by the tenant or the browsers on those devices) to access. The login interface allows the cloud management platform to authenticate tenant clients, granting them permission to log in upon successful authentication. Similarly, the creation interface allows tenant clients to send resource creation requests to the platform. Based on these requests, the platform can then create compute node clusters, smart network interface card clusters, and storage node clusters to serve the tenant. The compute nodes in the compute node cluster can be used to run applications specified by the tenant. When a tenant uses an application on a compute node in the compute node cluster to process certain data, the application can generate a data processing request for that data. The management model of the compute node selects a smart network interface card (NIC) from the smart NIC cluster and forwards the data processing request to that smart NIC. Based on the data processing request, the smart NIC determines the storage node where the data is located from the storage node cluster and notifies the storage node to complete the processing of the data, thereby obtaining the processing result of the data.
[0056] As shown in Figure 2 (Figure 2 is another structural schematic diagram of the cloud service system provided in this application embodiment), the infrastructure includes a cluster of computing nodes, a cluster of smart network interface cards, and a cluster of storage nodes serving tenants. The following sections will introduce these three resource pools respectively:
[0057] For any one of the multiple compute nodes in a compute node cluster, this compute node can deploy tenant applications and a smart NIC management module (also known as a virtualization management system) that manages these applications. The smart NIC management module of this compute node can include a resource allocation module, a NIC management submodule, and a data routing submodule. Specifically, the resource allocation module virtualizes the physical storage resources (i.e., the physical storage devices) of the storage node and allocates the virtualized storage resources (e.g., cloud disks) to the tenant applications. The smart NIC management module can sense the addresses, load metrics, and status metrics of each smart NIC in the smart NIC cluster, enabling dynamic management of all smart NICs in the cluster. The data routing module can submit data processing requests from applications to specific smart NICs (or smart NICs) in the smart NIC cluster for processing according to a certain routing strategy.
[0058] It should be noted that the computing node can connect to a high-speed interconnect device through its own local interconnect device (e.g., network interface in the computing node's physical network resources, etc.) to communicate with the smart NIC cluster through the high-speed interconnect device.
[0059] For any one of the multiple smart network interface cards (NICs) in a smart NIC cluster, a storage client can be deployed on that NIC. This storage client handles data processing requests for specific data sent from a compute node, notifying the storage node storing the data to complete the processing. The storage client can also collect real-time load metrics (e.g., resource utilization, request processing latency) and status metrics (e.g., whether the NIC is malfunctioning, whether the physical link between the NIC and the compute node cluster / storage node cluster is broken) from the NIC, reporting these metrics to the smart NIC management modules of each compute node, thus fulfilling the management requirements of each compute node's smart NIC management module.
[0060] It should be noted that the smart network interface cards (NICs) of a smart NIC cluster can communicate with the computing nodes in the computing node cluster through one or more high-speed interconnect devices (e.g., various types of switches, etc., where the high-speed interconnect device provides two sets of ports: one set for multiple computing nodes to connect to the high-speed interconnect device, and the other set for multiple smart NICs to connect to the high-speed interconnect device). In other words, the high-speed interconnect device can constitute the physical link between the smart NIC cluster and the computing node cluster. It is worth noting that smart NIC clusters can also be connected without a high-speed interconnect device. For example, the multiple computing nodes in a computing node cluster correspond one-to-one with the multiple smart NICs in the smart NIC cluster. That is, each computing node has one smart NIC installed, and for any given computing node, it can use not only its own smart NIC but also the smart NICs installed on other computing nodes. This means the computing node can communicate with other computing nodes or with the smart NICs installed on other computing nodes. For example, the cloud service system also includes an offload card bearer node, which is equipped with at least one smart network card from the smart network card cluster. This smart network card can be shared by multiple computing nodes in the computing node cluster. In other words, the offload card bearer node serves as a channel between the computing node cluster and the smart network card cluster, enabling the computing node cluster to share the smart network cards in the smart network card cluster through the offload card bearer node.
[0061] For any one of the multiple storage nodes in a storage node cluster, a storage service client can be deployed on that storage node to process one or more data items upon notification from the storage client of the smart network interface card. It is understood that the storage service client on that storage node can manage the physical storage devices on that storage node (e.g., hard disk drives and solid-state drives), for example, writing tenant application data to these physical storage devices, reading tenant application data from these physical storage devices, or modifying tenant application data on these physical storage devices, etc.
[0062] Furthermore, compute nodes in a compute node cluster and storage nodes in a storage node cluster typically refer to physical instances in the infrastructure. For example, compute nodes and storage nodes can be physical servers selected by a cloud management platform, or bare metal servers (BMS) selected by a cloud management platform, and so on.
[0063] Furthermore, tenant applications can take many forms. For example, a tenant application can be data processing software, such as a file management system, or a virtual instance in the infrastructure. For instance, a tenant application can be a virtual machine (VM) created on a computing node by a cloud management platform using virtualization technology, or a container (Docker) created on a computing node by a cloud management platform using virtualization technology, or a micro VM created on a computing node by a cloud management platform using virtualization technology, and so on.
[0064] Furthermore, for tenants' compute node clusters, smart NIC clusters, and storage node clusters, these resource pools can be deployed in the same site or different sites. Sites can be presented in various forms, such as a region in the infrastructure, an availability zone in the infrastructure, a data center (DC) in the infrastructure, a room in the infrastructure, a rack in the infrastructure, and so on.
[0065] Furthermore, the communication between the high-speed interconnect device and the computing node, as well as the communication between the high-speed interconnect device and the smart network card, both use proprietary communication protocols, which will not be elaborated here.
[0066] Furthermore, communication between the smart network interface card (NIC) and the storage node can employ standard communication protocols such as Transmission Control Protocol (TCP) and Remote Direct Memory Access over Converged Ethernet (RoCE).
[0067] Based on the aforementioned cloud service system, for any compute node in the compute node cluster, its smart NIC management module can allocate multiple dedicated cloud disks to the applications of tenants within that compute node. From the perspective of the tenant's application, its data is "stored" in the allocated cloud disks. Therefore, the tenant's application will trigger its cloud disk to generate a data processing request for a specific piece of data, causing the cloud disk to forward the data processing request to the compute node's smart NIC management module. Then, the compute node's smart NIC management module can select a smart NIC from the smart NIC cluster and forward the data processing request to that smart NIC. Subsequently, based on the data processing request, the smart NIC can determine the storage node storing the data from the storage node cluster and notify that storage node to complete the data processing, thereby obtaining the processing result. Therefore, even if a tenant's application on the compute node requires simultaneous processing of multiple data sets, the smart NIC management module of the compute node can select one or more smart NICs from the smart NIC cluster to meet this requirement. Since multiple smart NICs can be selected, combining them effectively increases the performance ceiling, no longer limiting the performance of a single smart NIC. This facilitates the simultaneous and rapid completion of the tenant's application's processing needs for multiple data sets, thereby ensuring the stability of the tenant's application business. To further understand the workflow of the aforementioned cloud service system, the following section provides a further description of the workflow in conjunction with Figure 3. Figure 3 is a flowchart illustrating a data processing method based on a cloud service system provided in this application embodiment. As shown in Figure 3, this method can be implemented through a cloud service system as shown in Figure 1. The cloud service system includes a compute node cluster, a smart NIC cluster, and a storage node cluster. The compute node cluster contains multiple compute nodes, the smart NIC cluster contains multiple smart NICs, and the storage node cluster contains multiple storage nodes. Since the operations performed by each of these multiple computing nodes are similar—for example, the operations performed by the first computing node and the second computing node are similar—the following description uses the first computing node (which can be any one of these multiple computing nodes; similarly, the second computing node can be any one of these multiple computing nodes other than the first computing node) as an example, and will not be elaborated further. Assume the first computing node includes a tenant's first application and a first smart NIC management module that manages the first application. The first computing node is connected to a storage node cluster via a smart NIC cluster, and multiple storage nodes in the storage node cluster can be used to store multiple data points of the tenant's first application. The method includes:
[0068] 301. The first application of the first computing node sends a first data processing request to the first smart network card management module of the first computing node. The first data processing request includes information about the first data to be processed and the identifier of the first application.
[0069] In this embodiment, when a tenant's first application in the first computing node needs to process first data (the first data being one or more data items from the tenant's first application's multiple data sets) (e.g., writing, reading, or modifying the first data), the first application of the first computing node can send a first data processing request for the first data to the first smart NIC management module of the first computing node. It should be noted that the first data processing request for the first data may include information associated with the first data and the identifier of the first application of the first computing node.
[0070] Specifically, the first application of the first computing node can generate and send a first data processing request for the first data in the following manner:
[0071] Since the first smart network interface card (NIC) management module of the first compute node can allocate multiple cloud disks to the first application of the first compute node, the first application of the first compute node processes data stored on these multiple cloud disks. Therefore, when the first application of the first compute node needs to process the first data on the first cloud disk among these multiple cloud disks, the first application of the first compute node can first trigger the first cloud disk to generate a first data processing request for the first data. It should be noted that the first data processing request for the first data may include information associated with the first data and the identifier of the first application of the first compute node. For example, the information associated with the first data may include the address of the first data on the first cloud disk, etc., and the identifier of the first application of the first compute node may include the unique identifier of the first cloud disk in the compute node cluster, etc.
[0072] After receiving the first data processing request for the first data, the first cloud disk can send the first data processing request for the first data to the first smart network card management module of the first computing node.
[0073] For example, as shown in Figure 4 (Figure 4 is another structural schematic diagram of the cloud service system provided in this application embodiment), a file system (i.e., the aforementioned first application) is deployed on compute node 1, and the virtualization management system of compute node 1 (i.e., the aforementioned first smart network card management module) allocates cloud disks C, D, and E to the file system. When the file system of compute node 1 needs to read the target file (i.e., the aforementioned first data) from the positions of lines 1 to 10 in cloud disk C, the file system of compute node 1 can trigger cloud disk C to generate a data processing request for the target file. This data processing request includes the position of the target file in cloud disk C (i.e., lines 1 to 10 of cloud disk C) and the unique identifier of cloud disk C (in the entire compute node cluster). It should be noted that the position of the target file in cloud disk C can be presented through logical block addressing (LBA) or other methods.
[0074] Then, cloud disk C can send data processing requests for the target file to the virtualization management system.
[0075] 302. The first smart network card management module determines the first smart network card from the smart network card cluster based on the information contained in the data processing request and / or the identifier of the first application, and sends the first data processing request to the first smart network card;
[0076] 303. The first smart network card sends a first notification to the first storage node in the storage node cluster based on the first data processing request;
[0077] 304. The first storage node processes the first data based on the first notification, and multiple data contain the first data.
[0078] Upon receiving a first data processing request for the first data, the first smart NIC management module of the first computing node can first parse the first data processing request for the first data to obtain information associated with the first data and the identifier of the first application of the first computing node. Then, based on at least one of the information associated with the first data and the identifier of the first application of the first computing node, the first smart NIC management module of the first computing node can select a first smart NIC in the smart NIC cluster and send the first data processing request for the first data to the first smart NIC.
[0079] Then, based on the first data processing request for the first data, the first smart network interface card (NIC) determines that the first data needs to be processed. Therefore, the first smart NIC can identify the first storage node storing the first data in the storage node cluster and send a first notification to the first storage node. The first notification instructs the first storage node to process the first data. In this way, the first storage node can process the first data based on the first notification, thereby obtaining the processing result of the first data.
[0080] Specifically, the first smart network interface card (NIC) management module of the first computing node can determine the first smart NIC in the following ways:
[0081] (1) The first smart NIC management module of the first computing node may include a first mapping table, which records the binding relationship between the identifiers of multiple cloud disks allocated to the first application of the tenant in the first computing node and the addresses of multiple smart NICs in the smart NIC cluster. Further, in this binding relationship, the address of one of the multiple smart NICs may be bound to the identifier of at least one cloud disk among the multiple cloud disks.
[0082] Since the first smart NIC management module of the first computing node has parsed the identifier of the first cloud disk from the first data processing request for the first data, the management module of the first computing node can determine the address of the first smart NIC bound to the identifier of the first cloud disk from the first mapping table. It should be noted that the number of first smart NICs can be one or more. For example, when there is only one first cloud disk, but the first data that the tenant's first application needs to process is a single piece of data on the first cloud disk, the first smart NIC can be one of these multiple smart NICs. Similarly, when there is only one first cloud disk, but the first data that the tenant's first application needs to process is several pieces of data on the first cloud disk, the first smart NIC can be one or more of these multiple smart NICs. Furthermore, when there are multiple first cloud disks (meaning the tenant's first application needs to process multiple pieces of data on different cloud disks), the first smart NIC can be one or more of these multiple smart NICs.
[0083] After obtaining the address of the first smart network card, the first smart network card management module of the first computing node can send a first data processing request for the first data to the first smart network card based on the address of the first smart network card.
[0084] Continuing with the example above, after receiving a data processing request for the target file, the virtualization management system can parse the request to obtain the location of the target file in cloud disk C and the identifier of cloud disk C. Because the virtualization management system has a mapping table that records the binding relationships between the identifiers of multiple cloud disks and the addresses of multiple smart network interface cards (NICs), for example, the address of smart NIC 1 is bound to the identifiers of cloud disks D and E, and the address of smart NIC 2 is bound to the identifier of cloud disk C.
[0085] Therefore, the virtualization management system can determine the address of the smart network card 2 that is bound to the identifier of cloud disk C in the mapping table. Thus, the virtualization management system can send data processing requests for the target file to smart network card 2 based on the address of smart network card 2.
[0086] (2) The first smart NIC management module of the first computing node may include a second mapping table (also called a view), which records the calculated values of multiple smart NICs and the one-to-one binding relationship between the addresses of the multiple smart NICs. It should be noted that the first smart NIC management module of the first computing node may pre-determine a range of calculated values, and this range is composed of the calculated values of these multiple smart NICs.
[0087] Since the first smart NIC management module of the first computing node has parsed the identifier of the first cloud disk and the location of the first data in the first cloud disk from the first data processing request for the first data, the first smart NIC management module of the first computing node can perform a series of calculations on the identifier of the first cloud disk and the location of the first data in the first cloud disk. This calculation process will ensure that the calculation result falls within the aforementioned calculation value range, so the calculated value of the first smart NIC can be obtained in the end. Then, the first smart NIC management module of the first computing node can determine the address of the first smart NIC bound to the calculated value of the first smart NIC from the second mapping table. Further, the calculated value range can be a circular hash value range, and the circular hash value range can be divided into multiple segmented value ranges connected end to end. Since each segmented value range is assigned to each smart NIC in multiple smart NICs, the hash value range can be regarded as containing the hash values of each smart NIC. Based on this, the first smart network card management module of the first computing node can perform hash calculation on the identifier of the first cloud disk and the location of the first data in the first cloud disk. This calculation process will make the calculation result fall within the aforementioned hash value range, so the hash value of the first smart network card can be obtained in the end.
[0088] After obtaining the address of the first smart network card, the first smart network card management module of the first computing node can send a first data processing request for the first data to the first smart network card based on the address of the first smart network card.
[0089] As in the example above, as shown in Figure 5 (Figure 5 is another structural schematic diagram of the cloud service system provided in this application embodiment), after receiving a data processing request for the target file, the virtualization management system can parse the first data processing request to obtain the location of the target file in cloud disk C and the identifier of cloud disk C. Since the virtualization management system has a view that presents a circular hash value range, this hash value range is divided into 8 value ranges, which are respectively assigned to the 8 smart network cards in the smart network card cluster, namely smart network card 1 to smart network card 8. Therefore, this hash value range can be understood as the hash value of smart network card 1 to the hash value of smart network card 8, and the hash value of smart network card 1 is bound to the address of smart network card 1, ..., the hash value of smart network card 8 is bound to the address of smart network card 8.
[0090] Then, the virtualization management system can perform a hash calculation on the location of the target file in cloud disk C and the identifier of cloud disk C. This hash calculation will ensure that the result falls within the range of hash values. Let's assume the result is the address of smart network interface card 2. Subsequently, the virtualization management system can send the data processing request for the target file to smart network interface card 2 based on the address of smart network interface card 2.
[0091] More specifically, the first smart network interface card (NIC) management module of the first computing node can send a first data processing request for the first data to the first smart NIC in the following manner:
[0092] Since the first computing node is connected to multiple smart network interface cards (NICs) via a high-speed interconnect device, the first smart NIC management module of the first computing node can send the address of the first smart NIC and the first data processing request for the first data to the high-speed interconnect device through the local interconnect device of the first computing node. Then, the high-speed interconnect device can send the first data processing request for the first data to the first smart NIC based on the address of the first smart NIC. It is worth noting that this process uses a proprietary communication protocol.
[0093] More specifically, the first smart network interface card (NIC) can enable the first storage node to process the first data in the following ways:
[0094] Upon receiving a first data processing request for the first data, the first smart network interface card (NIC) can parse the request to obtain the identifier of the first cloud disk and the location of the first data within it. Next, the NIC can translate the location of the first data within the first cloud disk into its location within the first storage node (i.e., the location of the first data within a specific storage device on the first storage node), effectively identifying the first storage node storing the first data. Then, the NIC can generate a first notification for the first data, which includes the identifier of the first cloud disk and the location of the first data within the first storage node. Subsequently, the NIC can send this first notification to the first storage node, enabling it to parse the notification, obtain the location of the first data within the node, and perform processing based on that location, thus obtaining a processing result indicating successful processing of the first data.
[0095] Continuing with the example above, after the service client of smart NIC 2 receives a data processing request for the target file, it can parse the request to obtain the identifier of cloud disk C and the location of the target file within cloud disk C, and then convert this into the location of the target file in storage node 1. Then, smart NIC 2 can generate a new data processing request for the target file (i.e., the aforementioned first notification). This new request includes the identifier of cloud disk C and the location of the target file in storage node 1, and sends the new request to storage node 1. The storage service client of storage node 1 can then parse the new request to obtain the location of the target file in storage node 1, and successfully read the target file based on this location. This target file represents the processing result, indicating that the target file has been successfully read.
[0096] More specifically, the first storage node can return the processing result of the first data in the following way:
[0097] After receiving the processing result of the first data, the first storage node can generate a data processing response for the first data. The data processing response includes the identifier of the first cloud disk and the processing result of the first data. Since the data processing response includes the identifier of the first cloud disk, the first storage node can first return the data processing response to the first smart network interface card (NIC) along the original communication path, so that the first smart NIC can return the data processing response to the first cloud disk of the first computing node, and finally provide the processing result of the first data in the data processing response to the tenant's first application.
[0098] As in the example above, after obtaining the target file, the storage service client of storage node 1 can generate a data processing response for the target file. This data processing response includes the identifier of cloud disk C and the target file. The data processing response is then returned to the storage client of smart network card 2, so that the storage client of smart network card 2 can return the data processing response to cloud disk C of the first computing node, thereby enabling cloud disk C to provide the target file in the response to the tenant's file system.
[0099] More specifically, the management of the first compute node can also perform the following operations:
[0100] The first smart NIC management module of the first computing node can collect performance indicators and status indicators of multiple smart NICs in the smart NIC cluster in real time, and perform a series of calculations on these indicators to obtain evaluation values for the smart NICs. These evaluation values indicate the health status of the smart NICs. Generally, the smaller the evaluation value, the less healthy the smart NIC is; conversely, the larger the evaluation value, the healthier the smart NIC is.
[0101] When the first smart NIC management module of the first computing node contains a first mapping table, the first smart NIC management module of the first computing node can remove the address of the third smart NIC whose evaluation value is less than or equal to the evaluation threshold (the size of the threshold can be set according to actual needs, and is not limited here) from the first mapping table, and bind the identifier of the cloud disk bound to the address of the third smart NIC to the address of the fourth smart NIC other than the third smart NIC.
[0102] When the first smart NIC management module of the first computing node contains a second mapping table, it can remove the calculated value and address of the third smart NIC (if its evaluated value is less than or equal to the evaluation threshold) from the second mapping table. Furthermore, when the calculated value of the third smart NIC is a hash value, since the hash values of multiple smart NICs form a circular hash value range, the first smart NIC management module can assign the hash value of the third smart NIC to a fourth smart NIC (other than the third smart NIC). This is equivalent to removing the hash value of the third smart NIC and adding the hash value of the fourth smart NIC, thus maintaining the circular hash value range.
[0103] For example, as shown in Figure 6 (Figure 6 is a schematic diagram of view update provided in an embodiment of this application, and Figure 6 is drawn based on the infrastructure in Figure 5), for any virtualized storage system of a computing node, the virtualized storage system of the computing node can detect the health of smart network interface cards 1 to 8 in real time. Suppose that the virtualized storage system detects that the health of smart network interface card 3 (i.e., the aforementioned evaluation value) is less than the health threshold (i.e., the aforementioned evaluation value threshold), since the virtualized storage system has a view, in this view, the virtualized storage system can hand over the hash value of smart network interface card 3 to smart network interface card 2, which is equivalent to removing the hash value of smart network interface card 3, while the hash value of smart network interface card 2 increases, so that the hash value range of the entire ring remains unchanged.
[0104] More specifically, the management of the first compute node can also perform the following operations:
[0105] When the first smart NIC management module of the first computing node detects that a fifth smart NIC has been added to multiple smart NICs, it is equivalent to detecting that the smart NIC cluster has been expanded, resulting in a new smart NIC cluster.
[0106] When the first smart NIC management module of the first computing node has a first mapping table, the first smart NIC management module of the first computing node can generate a correspondence between the address of the fifth smart NIC (i.e., the new smart NIC) and the identifier of at least one cloud disk among the multiple cloud disks of the first computing node in the first mapping table, so as to update the content of the first mapping table and obtain the updated first mapping table.
[0107] When the first smart NIC management module of the first computing node has a second mapping table, it can generate a correspondence between the address of the fifth smart NIC and its calculated value in the second mapping table to update the content of the second mapping table and obtain the updated second mapping table. Furthermore, when the calculated value of the fifth smart NIC is a hash value, the first smart NIC management module of the first computing node can use a portion of the hash value of the sixth smart NIC (i.e., one of the original smart NICs in the original smart NIC cluster) as the hash value of the fifth smart NIC. This is equivalent to adding a new hash value for the smart NIC and reducing the original hash values, thus maintaining the circular hash value range unchanged.
[0108] More specifically, this embodiment also includes:
[0109] The second compute node in the compute node cluster includes a tenant's second application and a second smart NIC management module that manages the second application. The second application sends a second data processing request to the second smart NIC management module, the second data processing request containing information about the second data to be processed and an identifier of the second application. The second smart NIC management module determines a second smart NIC from the smart NIC cluster based on the information contained in the second data processing request and / or the identifier of the second application, and sends the second data processing request to the second smart NIC. The second smart NIC sends a second notification to a second storage node in the storage node cluster based on the second data processing request. The second storage node processes the second data based on the second notification.
[0110] It should be noted that the above steps can be found in the relevant explanations of steps 301 to 304, and will not be repeated here.
[0111] In this embodiment, for a first computing node in a computing node cluster, the first smart NIC management module of the first computing node can manage the first application of the tenant in the first computing node. When the first application of the first computing node needs to process first data, the first application of the first computing node will forward the first data processing request for the first data to the first smart NIC management module of the first computing node. Since the first data processing request contains information about the first data and the identifier of the first application of the first computing node, the first smart NIC management module of the first computing node can select a first smart NIC from the smart NIC cluster based on the information about the first data and the identifier of the first application of the first computing node, and forward the first data processing request to the first smart NIC. Subsequently, the first smart NIC can notify the first storage node in the storage node cluster that stores the first data based on the first data processing request to complete the processing of the first data, thereby obtaining the processing result of the first data. Therefore, even if a tenant's application (i.e., the aforementioned first application) on a certain computing node (i.e., the first computing node mentioned above) has the need to process multiple data (i.e., the aforementioned first data) simultaneously, the smart NIC management module of that computing node (i.e., the aforementioned first smart NIC management module mentioned above) can select one or more smart NICs (i.e., the aforementioned first smart NICs) from the smart NIC cluster to meet the need. Since there can be multiple smart NICs selected, these smart NICs combined together are equivalent to increasing the performance ceiling, no longer limited by the performance of a single smart NIC. This is conducive to simultaneously and quickly completing the tenant's application's processing needs for multiple data, thereby ensuring the stability of the tenant's application business.
[0112] Furthermore, in this embodiment, since there are multiple smart network interface cards (NICs) that can serve the computing node, even if a single smart NIC fails and becomes unavailable, the remaining smart NICs can serve as backups for that smart NIC to provide corresponding data processing services for the tenant's applications in the computing node, thereby further ensuring the business stability of the tenant's applications.
[0113] Furthermore, in this embodiment of the application, the smart NIC management module of the computing node can manage multiple smart NICs through a view, thereby realizing health management, expansion, and scaling down of the smart NIC cluster, so that the smart NIC cluster can provide tenant applications with higher quality and more reliable data processing services.
[0114] The above is a detailed description of the data processing method based on a cloud service system provided in the embodiments of this application. The following will introduce the computing device and computing device cluster provided in the embodiments of this application. Please refer to Figure 7, which is a structural schematic diagram of the computing device provided in the embodiments of this application. As shown in Figure 7, the computing device 700 (which can be used to represent any one of the aforementioned computing nodes, any smart network cards, and any storage nodes in the cloud service system; for ease of explanation, the following description uses the computing device as the first computing node as an example) includes: a processor 701, a memory 702, a communication interface 703, and a bus 704. The processor 701, memory 702, and communication interface 703 are coupled through the bus (not labeled in the figure). The memory 702 stores instructions. When the execution instructions in the memory 702 are executed, the computing device 700 executes the method executed by the first computing node in the above method embodiments.
[0115] The computing device 700 may be one or more integrated circuits configured to implement the methods described above, such as: one or more application-specific integrated circuits (ASICs), or one or more digital signal processors (DSPs), or one or more field-programmable gate arrays (FPGAs), or a combination of at least two of these forms of integrated circuits. Furthermore, when the units in the device can be implemented in the form of a processing element scheduler, the processing element may be a general-purpose processor, such as a central processing unit (CPU) or other processor capable of calling programs. Alternatively, these units may be integrated together and implemented as a system-on-a-chip (SOC).
[0116] The processor 701 can be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. A general-purpose processor can be a microprocessor or any conventional processor.
[0117] The memory 702 can be volatile memory or non-volatile memory, or it can include both. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).
[0118] The memory 702 stores executable program code, and the processor 701 executes this executable program code to implement the functions of the aforementioned first application and the first smart network card management module, thereby realizing the aforementioned data processing method based on the cloud service system. That is, the memory 702 stores instructions for executing the aforementioned data processing method based on the cloud service system.
[0119] The communication interface 703 uses transceiver modules, such as, but not limited to, network interface cards and transceivers, to enable communication between the computing device 700 and other devices or communication networks.
[0120] In addition to the data bus, the 704 bus can also include a power bus, a control bus, and a status signal bus. The bus can be a Peripheral Component Interconnect Express (PCIe) bus, an Extended Industry Standard Architecture (EISA) bus, a Unified Bus (Ubus or UB), a Compute Express Link (CXL) bus, a Cache Coherent Interconnect for Accelerators (CCIX) bus, etc. The bus can be divided into address bus, data bus, and control bus.
[0121] Please refer to Figure 8, which is a schematic diagram of a computing device cluster provided in an embodiment of this application. As shown in Figure 8, the computing device cluster 800 includes at least one computing device 700.
[0122] As shown in Figure 8, the computing device cluster 800 includes at least one computing device 700. The memory 702 of one or more computing devices 700 in the computing device cluster 800 may store the same instructions for executing the data processing method described above based on the cloud service system.
[0123] In some possible implementations, the memory 702 of one or more computing devices 700 in the computing device cluster 800 may also store partial instructions for executing the data processing method based on the cloud service system described above. In other words, a combination of one or more computing devices 700 can jointly execute the data processing method based on the cloud service system described above.
[0124] It should be noted that the memory 702 in different computing devices 700 within the computing device cluster 800 can store different instructions, each used to execute a portion of the functions of the aforementioned cloud management platform. That is, the instructions stored in the memory 702 of different computing devices 700 can implement the functions of one or more modules, such as the first application and the first smart network card management module.
[0125] In some possible implementations, one or more computing devices 700 in the computing device cluster 800 can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc.
[0126] Please refer to Figure 9, which is a schematic diagram of computer devices in a computer cluster provided in an embodiment of this application being connected via a network. As shown in Figure 9, two computing devices 700A and 700B are connected via a network. Specifically, they are connected to the network through the communication interfaces in each computing device.
[0127] In one possible implementation, the memory in computing device 700A stores instructions for executing the functions of modules such as the first application. Simultaneously, the memory in computing device 700B stores instructions for executing the functions of modules such as the first smart network interface card management module.
[0128] It should be understood that the functions of computing device 700A shown in Figure 9 can also be performed by multiple computing devices. Similarly, the functions of computing device 700B can also be performed by multiple computing devices.
[0129] This application also relates to a computer storage medium storing a program for signal processing, which, when run on a computer, causes the computer to perform the method steps shown in the embodiment of FIG3.
[0130] This application also relates to a computer program product that stores instructions that, when executed by a computer, cause the computer to perform the method steps shown in the embodiment of FIG3.
[0131] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working process of the systems, devices and units described above can be referred to the binding process in the foregoing method embodiments, and will not be repeated here.
[0132] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection between apparatuses or units through some interfaces, and may be electrical, mechanical, or other forms.
[0133] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0134] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0135] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
Claims
1. A cloud service system, characterized by The cloud service system includes infrastructure that provides cloud services to tenants. The infrastructure includes a cluster of computing nodes, a cluster of smart NICs, and a cluster of storage nodes. The first computing node in the cluster of computing nodes includes the tenant's first application and a first smart NIC management module that manages the first application. The cluster of storage nodes is used to store multiple data of the first application. The first application is used to send a first data processing request to the first smart network card management module. The first data processing request includes information about the first data to be processed and the identifier of the first application. The first smart network interface card (NIC) management module is used to determine the first smart NIC from the smart NIC cluster based on the information of the first data contained in the first data processing request and / or the identifier of the first application, and to send the first data processing request to the first smart NIC. The first smart network interface card is used to send a first notification to the first storage node in the storage node cluster based on the first data processing request; The first storage node is configured to process the first data based on the first notification, wherein the plurality of data includes the first data.
2. The cloud service system of claim 1, wherein, The second computing node in the computing node cluster includes the tenant's second application and a second smart NIC management module that manages the second application. The second application is used to send a second data processing request to the second smart network card management module. The second data processing request includes information about the second data to be processed and the identifier of the second application. The second smart network interface card (NIC) management module is used to determine the second smart NIC from the smart NIC cluster based on the information of the second data contained in the second data processing request and / or the identifier of the second application, and to send the second data processing request to the second smart NIC. The second smart network interface card is used to send a second notification to the second storage node in the storage node cluster based on the second data processing request; The second storage node is used to process the second data based on the second notification.
3. The cloud service system according to claim 1 or 2, characterized by The first smart network card management module allocates multiple cloud hard drives for the first application; The first application is used to trigger the first cloud disk among the plurality of cloud disks to generate a first data processing request; The first cloud disk is used to send the first data processing request to the first smart network card management module. The first data processing request includes information about the first data to be processed and the identifier of the first cloud disk. The information about the first data includes the address of the first data in the first cloud disk.
4. The cloud service system of claim 3, wherein, The first smart network interface card (NIC) management module includes a first mapping table, which records the binding relationship between the identifiers of the multiple cloud disks and the addresses of the multiple smart NICs. The first smart network interface card (NIC) management module is used to determine, from the first mapping table, the address of the first smart NIC bound to the identifier of the first cloud hard drive; The first smart network interface card (NIC) management module is used to send the first data processing request to the first smart NIC based on the address of the first smart NIC.
5. The cloud service system of claim 4, wherein, The address of one of the multiple smart network cards is bound to the identifier of at least one of the multiple cloud hard drives.
6. The cloud service system of claim 3, wherein, The first smart network interface card (NIC) management module includes a second mapping table, which records the calculated values of the plurality of smart NICs and the binding relationships between the addresses of the plurality of smart NICs. The first smart network card management module is used to calculate the identifier of the first cloud disk and the address of the first data in the first cloud disk to obtain the calculated value of the first network card. The first smart network interface card (NIC) management module is used to determine, from the second mapping table, the address of the first smart network interface card that is bound to the calculated value of the first smart network interface card; The first smart network interface card (NIC) management module is used to send the first data processing request to the first smart NIC based on the address of the first smart NIC.
7. The cloud service system of claim 6, wherein, The calculation includes a hash operation, and the calculated value of the first smart network card includes the hash value of the first smart network card.
8. The cloud service system according to any one of claims 4 to 7, characterized in that, The computing node cluster includes multiple computing nodes, and the smart network card cluster includes multiple smart network cards. Each computing node has one smart network card installed, and the multiple smart network cards are shared by the multiple computing nodes. The first smart network card is either installed on the first computing node or installed on the third computing node.
9. The cloud service system according to any one of claims 4 to 7, characterized in that, The computing node cluster includes multiple computing nodes, and the cloud service system also includes an offload card bearer node. The offload card bearer node is equipped with at least one smart network card from the smart network card cluster. The at least one smart network card is shared by the multiple computing nodes, and the first smart network card is the smart network card installed in the offload card bearer node.
10. The cloud service system according to any one of claims 4 to 7, characterized in that, The computing node cluster is connected to the smart network card cluster via a high-speed interconnect device; The first smart network interface card (NIC) management module is used to send the address of the first smart NIC and the first data processing request to the high-speed interconnection device. The address of the first smart NIC is used by the high-speed interconnection device to send the first data processing request to the first smart NIC.
11. The cloud service system according to any one of claims 4 to 10, characterized in that, The first smart network interface card (NIC) management module is also used to obtain the evaluation value of the multiple smart NICs based on the performance indicators of the multiple smart NICs in the smart NIC cluster and the status indicators of the multiple smart NICs. The first smart network interface card (NIC) management module is further configured to remove the address of the third smart network interface card whose evaluation value is less than or equal to the evaluation threshold from the first mapping table, and bind the identifier of the cloud disk bound to the address of the third smart network interface card to the address of the fourth smart network interface card; or, remove the calculated value of the third smart network interface card whose evaluation value is less than or equal to the evaluation threshold and the address of the third smart network interface card from the second mapping table.
12. The cloud service system according to any one of claims 4 to 11, characterized in that, The first smart network interface card (NIC) management module is further configured to, after detecting that the fifth smart NIC has been added to multiple smart NICs in the smart NIC cluster, generate a correspondence between the address of the fifth smart NIC and the identifier of at least one cloud disk among the multiple cloud disks in the first mapping table to obtain an updated first mapping table; or, generate a correspondence between the address of the fifth smart NIC and the calculated value of the fifth smart NIC in the second mapping table to obtain an updated second mapping table.
13. A data processing method based on a cloud service system, characterized in that, The cloud service system includes infrastructure that provides cloud services to tenants. This infrastructure includes a compute node cluster, a smart NIC cluster, and a storage node cluster. A first compute node in the compute node cluster includes the tenant's first application and a first smart NIC management module that manages the first application. The storage node cluster is used to store multiple data sets of the first application. The method includes: The first application sends a first data processing request to the first smart network card management module. The first data processing request includes information about the first data to be processed and the identifier of the first application. The first smart network card management module determines the first smart network card from the smart network card cluster based on the information of the first data contained in the first data processing request and / or the identifier of the first application, and sends the first data processing request to the first smart network card. Based on the first data processing request, the first smart network card sends a first notification to the first storage node in the storage node cluster; The first storage node processes the first data based on the first notification, and the plurality of data includes the first data.
14. The method according to claim 13, characterized in that, The second computing node in the computing node cluster includes the tenant's second application and a second smart NIC management module for managing the second application; the method further includes: The second application sends a second data processing request to the second smart network card management module. The second data processing request includes information about the second data to be processed and the identifier of the second application. The second smart network interface card (NIC) management module determines the second smart NIC from the smart NIC cluster based on the information of the second data contained in the second data processing request and / or the identifier of the second application, and sends the second data processing request to the second smart NIC. The second smart network interface card sends a second notification to the second storage node in the storage node cluster based on the second data processing request; The second storage node processes the second data based on the second notification.
15. The method according to claim 13 or 14, characterized in that, The first smart network interface card (NIC) management module allocates multiple cloud disks to the first application. The first application sends a first data processing request to the first smart NIC management module, including: The first application triggers the first cloud disk among the plurality of cloud disks to generate a first data processing request; The first cloud disk sends the first data processing request to the first smart network card management module. The first data processing request includes information about the first data to be processed and the identifier of the first cloud disk. The information about the first data includes the address of the first data in the first cloud disk.
16. The method according to claim 15, characterized in that, The first smart network interface card (NIC) management module includes a first mapping table, which records the binding relationships between the identifiers of the plurality of cloud disks and the addresses of the plurality of smart NICs. Based on the information contained in the first data processing request and / or the identifier of the first application, the first smart NIC management module determines the first smart NIC from the smart NIC cluster and sends the first data processing request to the first smart NIC, including: The first smart network interface card management module determines the address of the first smart network interface card bound to the identifier of the first cloud hard drive from the first mapping table; The first smart network card management module sends the first data processing request to the first smart network card based on the address of the first smart network card.
17. The method according to claim 16, characterized in that, The address of one of the multiple smart network cards is bound to the identifier of at least one of the multiple cloud hard drives.
18. The method according to claim 15, characterized in that, The first smart NIC management module includes a second mapping table, which records the calculated values of the plurality of smart NICs and the binding relationships between the addresses of the plurality of smart NICs. Based on the information contained in the first data processing request and / or the identifier of the first application, the first smart NIC management module determines a first smart NIC from the smart NIC cluster and sends the first data processing request to the first smart NIC, including: The first smart network card management module calculates the identifier of the first cloud disk and the address of the first data in the first cloud disk to obtain the calculated value of the first network card. The first smart network card management module determines the address of the first smart network card that is bound to the calculated value of the first smart network card from the second mapping table; The first smart network card management module sends the first data processing request to the first smart network card based on the address of the first smart network card.
19. The method according to claim 18, characterized in that, The calculation includes a hash operation, and the calculated value of the first smart network card includes the hash value of the first smart network card.
20. The method according to any one of claims 16 to 19, characterized in that, The computing node cluster includes multiple computing nodes, and the smart network card cluster includes multiple smart network cards. Each computing node has one smart network card installed, and the multiple smart network cards are shared by the multiple computing nodes. The first smart network card is either installed on the first computing node or installed on the third computing node.
21. The method according to any one of claims 16 to 19, characterized in that, The computing node cluster includes multiple computing nodes, and the cloud service system also includes an offload card bearer node. The offload card bearer node is equipped with at least one smart network card from the smart network card cluster. The at least one smart network card is shared by the multiple computing nodes, and the first smart network card is the smart network card installed in the offload card bearer node.
22. The method according to any one of claims 16 to 19, characterized in that, The computing node cluster is connected to the smart network interface card (NIC) cluster via a high-speed interconnect device. The first smart NIC management module sends the first data processing request to the first smart NIC based on the address of the first smart NIC, including: The first smart network card management module sends the address of the first smart network card and the first data processing request to the high-speed interconnection device. The address of the first smart network card is used by the high-speed interconnection device to send the first data processing request to the first smart network card.
23. The method according to any one of claims 16 to 22, characterized in that, The method further includes: The first smart network interface card (NIC) management module obtains the evaluation values of the multiple smart NICs based on the performance indicators and status indicators of the multiple smart NICs in the smart NIC cluster. The first smart network interface card (NIC) management module removes the address of the third smart NIC whose evaluation value is less than or equal to the evaluation threshold from the first mapping table, and binds the identifier of the cloud disk bound to the address of the third smart NIC to the address of the fourth smart NIC. Alternatively, it removes the calculated value of the third smart NIC whose evaluation value is less than or equal to the evaluation threshold and the address of the third smart NIC from the second mapping table.
24. The method according to any one of claims 16 to 23, characterized in that, The method further includes: After the first smart NIC management module detects that the fifth smart NIC has been added to the smart NIC cluster, it generates a correspondence between the address of the fifth smart NIC and the identifier of at least one cloud disk among the multiple cloud disks in the first mapping table to obtain an updated first mapping table. Alternatively, it generates a correspondence between the address of the fifth smart NIC and the calculated value of the fifth smart NIC in the second mapping table to obtain an updated second mapping table.
25. A computing device cluster, characterized in that, The computing device cluster includes at least one computing device, each computing device including a processor and memory: The memory is used to store instructions; The processor is configured to, according to the instructions, cause the computing device cluster to perform the method of any one of claims 13 to 24.
26. A computer storage medium, characterized in that, The computer storage medium stores one or more instructions that, when executed by one or more computers, cause the one or more computers to perform the method of any one of claims 13 to 24.
27. A computer program product, characterized in that, The computer program product stores instructions that, when executed by a computer, cause the computer to perform the method described in any one of claims 13 to 24.
Citation Information
Patent Citations
Data processing method, device and system and network card
CN117472817A
Remote memory system based on intelligent network card unloading
CN117785789A
Accelerated data handling in cloud data storage system
US10592447B1
Data processing method and device
WO2024051259A1