Public cloud technology-based cloud service system and cloud service provision method
By controlling cloud disk access permissions at the compute node level, the problem of cloud disk data consistency under the configuration of smart network interface card resource pool is solved, and accurate access and data consistency management of cloud disks are achieved.
Patent Information
- Application Number
- PCT/CN2025/073105
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-06-19
- Filing Date
- 2025-01-17
- Publication Date
- 2025-12-26
AI Technical Summary
When smart network cards are configured in a resource pool manner, the existing SCSI-3 locking mechanism cannot effectively guarantee the data consistency of cloud disks, resulting in data corruption when multiple virtual machines access cloud disks simultaneously.
By implementing access control for cloud disks at the granular level of compute nodes, the virtual machine manager adds the identifier of the target compute node to the access request, and performs permission verification and management through smart network cards and storage node clusters to ensure that only compute nodes with the necessary permissions can access cloud disks.
In the context of smart NIC pooling, ensuring data consistency of cloud disks enables accurate control and management of cloud disk access permissions, thus avoiding data corruption.
Smart Images

Figure CN2025073105_26122025_PF_FP_ABST
Abstract
Description
Cloud service systems and cloud service delivery methods based on public cloud technology
[0001] This application claims priority to Chinese Patent Application No. 202410796636.5, filed on June 19, 2024, entitled "Cloud Service System and Cloud Service Provision Method Based on Public Cloud Technology", the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of cloud service technology, and in particular to a cloud service system and cloud service provision method based on public cloud technology. Background Technology
[0003] In cloud disk use cases, multiple virtual machines may share the same cloud disk. In this scenario, different virtual machines can simultaneously mount the same cloud disk and read / write to it concurrently. To prevent data corruption caused by multiple virtual machines writing to the same cloud disk at the same time, a locking mechanism is needed to ensure data consistency. For example, a Small Computer System Interface (SCSI)-3 locking mechanism can be introduced. Through the SCSI-3 locking mechanism, virtual machines can use reservation and preemption commands to grant access permissions or exclusive permissions to a specific cloud disk.
[0004] Currently, servers are configured with a one-to-one correspondence with smart network interface cards (NICs), meaning all requests sent by a given server are forwarded through its corresponding smart NIC. Based on this, when implementing the SCSI-3 locking mechanism, cloud disk locking permissions are managed at the storage client level. When virtual machine 'a' on server 'a' has cloud disk access permissions, since the smart NIC configured for server 'a' is smart NIC 'a', the locking permission record indicates that smart NIC 'a' has the permission to access the cloud disk. At this time, all virtual machines using smart NIC 'a' on server 'a' can access the cloud disk, while all virtual machines on other servers cannot.
[0005] However, when smart network interface cards (NICs) serve servers in a resource pool manner, the correspondence between servers and smart NICs becomes many-to-many, causing the SCSI-3 locking mechanism to fail and making it difficult to ensure data consistency of cloud disks through the SCSI-3 locking mechanism. Summary of the Invention
[0006] This application provides a cloud service system and a cloud service provision method based on public cloud technology. This application implements access control for cloud disks at the granularity of computing nodes, ensuring data consistency of the cloud disks. The technical solution provided by this application is as follows:
[0007] Firstly, this application provides a cloud service system based on public cloud technology. This cloud service system includes: a compute node cluster, a smart NIC cluster, and a storage node cluster. The compute node cluster includes multiple compute nodes. The smart NIC cluster includes multiple smart NICs. The storage node cluster includes multiple storage nodes. The multiple compute nodes include a target compute node. A virtual machine manager and a virtual instance for implementing tenant services run on the target compute node. The virtual instance is mounted with a cloud disk obtained through device simulation based on the storage node. The virtual machine manager is used to obtain a first access request from the virtual instance for the cloud disk, add the identifier of the target compute node to the first access request to obtain a second access request, and send the second access request to a first smart NIC. The first and second access requests carry disk information of the cloud disk. The first smart NIC is one of the multiple smart NICs. The first smart NIC is used to forward the second access request to the target storage node indicated by the disk information, provided that the target compute node has access permissions to the cloud disk based on the identifier of the target compute node carried in the second access request. The target storage node is one of the multiple storage nodes. The target storage node is used to respond to the second access request and send an access response to the virtual instance through the first smart NIC and the virtual machine manager.
[0008] This demonstrates that because the virtual machine manager can add the target compute node's identifier to the first access request, and the first smart NIC can verify whether the target compute node has access to the cloud disk based on the identifier carried in the received second access request, it effectively controls access permissions to the cloud disk at the compute node level, rather than controlling access permissions at the smart NIC level or the storage client level within the smart NIC. Therefore, regardless of whether the smart NIC and compute node are configured in a one-to-one or many-to-many relationship, the storage client within the smart NIC can accurately determine the compute node with cloud disk access permissions and control access permissions to the cloud disk based on the compute node to which the access request belongs. This control over cloud disk access permissions ensures data consistency. Thus, this application can guarantee data consistency of cloud disks in smart NIC pooling scenarios.
[0009] In one possible implementation, the virtual machine manager is further configured to obtain a first permission acquisition request from a virtual instance, add the target compute node's identifier to the first permission acquisition request to obtain a second permission acquisition request, and send the second permission acquisition request to a second smart network interface card (NIC). Both the first and second permission acquisition requests are used to acquire access permissions to the cloud disk. The second smart NIC is one of multiple smart NICs. The second smart NIC forwards the second permission acquisition request to the management node of the storage node cluster. When the target compute node has the conditions to access the cloud disk, the management node sends a first notification to the multiple smart NICs based on the second permission acquisition request. The first notification indicates that the target compute node has access permissions to the cloud disk. The multiple smart NICs update their own configurations based on the first notification, and the updated configuration indicates that the target compute node has access permissions to the cloud disk. In this way, locking of the cloud disk can be achieved at the compute node level.
[0010] In one possible implementation, after determining that the target computing node has the conditions to access the cloud disk, the management node may first generate metadata indicating that the target computing node has access to the cloud disk based on the second permission acquisition request, persist the metadata, and send a first notification to multiple smart network interface cards after the metadata persistence is completed.
[0011] Since the metadata is used to indicate access permissions for the cloud disk, its primary purpose is to indicate access permissions. In one possible implementation, a third smart network interface card (NIC) is used to retrieve the metadata when the configuration information indicating access permissions for the cloud disk is lost, and to update the configuration indicating access permissions for the cloud disk based on the metadata. The third smart NIC is one of multiple smart NICs.
[0012] In one possible implementation, the virtual machine manager is further configured to obtain a first permission release request from a virtual instance, add the target compute node's identifier to the first permission release request to obtain a second permission release request, and send the second permission release request to a fourth smart network interface card (NIC). Both the first and second permission release requests indicate the cancellation of access permissions to the cloud disk. The fourth smart NIC is one of multiple smart NICs. The fourth smart NIC forwards the second permission release request to the management node of the storage node cluster. The management node, based on the second permission release request, sends a second notification to the multiple smart NICs, indicating the cancellation of access permissions to the cloud disk. The multiple smart NICs update their own configurations based on the second notification, with the updated configuration indicating that the target compute node does not have access permissions to the cloud disk. This allows for the release of the lock on the cloud disk at the compute node level.
[0013] In one possible implementation, the management node is specifically used to delete metadata indicating that the target compute node has access to the cloud disk based on a second permission release request, and to send a second notification to multiple smart network interface cards.
[0014] In one possible implementation, the virtual machine manager is further configured to receive a first permission clearing request from a virtual instance and send this request to a fifth smart network interface card (NIC). This first permission clearing request instructs the compute nodes hosting all virtual instances with mounted cloud disks to revoke their access permissions to the cloud disks. The fifth smart network interface card is one of multiple smart network interface cards (NICs). The fifth smart network interface card forwards the first permission clearing request to the management node of the storage node cluster. Based on the first permission clearing request, the management node sends a third notification to the multiple smart network interface cards. This third notification instructs the compute nodes hosting all virtual instances with mounted cloud disks to revoke their access permissions to the cloud disks. The multiple smart network interface cards update their configurations based on the third notification. The updated configuration indicates that all compute nodes hosting virtual instances with mounted cloud disks do not have access permissions to the cloud disks. This releases the access permissions of all compute nodes hosting virtual instances with mounted cloud disks to the cloud disks.
[0015] In one possible implementation, the management node is specifically used to delete all metadata indicating that the compute node has access to the cloud disk based on a first-permission cleanup request, and to send a third notification to multiple smart network interface cards.
[0016] Secondly, this application provides a cloud service provision method based on public cloud technology. This cloud service provision method is applied to a cloud service system. The cloud service system includes: a compute node cluster, a smart NIC cluster, and a storage node cluster. The compute node cluster includes multiple compute nodes. The smart NIC cluster includes multiple smart NICs. The storage node cluster includes multiple storage nodes. The multiple compute nodes include a target compute node. The target compute node runs a virtual machine manager and virtual instances for implementing tenant services. The virtual instances are mounted with cloud disks obtained by simulating devices based on the storage nodes. The cloud service provision method includes: a virtual machine manager obtaining a first access request from a virtual instance for a cloud disk, adding the identifier of the target compute node to the first access request to obtain a second access request, and sending the second access request to a first smart network interface card (NIC). The first and second access requests carry disk information of the cloud disk, and the first smart NIC is one of multiple smart NICs. The first smart NIC, based on the identifier of the target compute node carried in the second access request, determines that the target compute node has access permissions to the cloud disk, and forwards the second access request to the target storage node indicated by the disk information. The target storage node is one of multiple storage nodes. The target storage node responds to the second access request and sends an access response to the virtual instance through the first smart NIC and the virtual machine manager.
[0017] In one possible implementation, the cloud service provision method further includes: a virtual machine manager obtaining a first permission acquisition request sent by a virtual instance, adding the identifier of the target compute node to the first permission acquisition request to obtain a second permission acquisition request, and sending the second permission acquisition request to a second smart network interface card (NIC). Both the first and second permission acquisition requests are used to obtain access permissions to the cloud disk, and the second smart NIC is one of multiple smart NICs. The second smart NIC forwards the second permission acquisition request to the management node of the storage node cluster. When the target compute node has the conditions to access the cloud disk, the management node sends a first notification to the multiple smart NICs based on the second permission acquisition request. The first notification is used to indicate that the target compute node has access permissions to the cloud disk. The multiple smart NICs update their own configurations based on the first notification, and the updated configurations indicate that the target compute node has access permissions to the cloud disk.
[0018] In one possible implementation, when the target computing node has the conditions to access the cloud disk, the management node sends a first notification to multiple smart network interface cards based on a second permission acquisition request. This includes: when the target computing node has the conditions to access the cloud disk, the management node generates metadata indicating that the target computing node has access permissions to the cloud disk based on the second permission acquisition request, persists the metadata, and sends the first notification to multiple smart network interface cards after the metadata persistence is completed.
[0019] In one possible implementation, the cloud service provision method further includes: when a third smart network interface card (NIC) loses configuration information indicating access permissions to the cloud disk, it obtains metadata and updates the configuration indicating access permissions to the cloud disk based on the metadata, wherein the third smart NIC is one of a plurality of smart NICs.
[0020] In one possible implementation, the cloud service provision method further includes: a virtual machine manager obtaining a first permission release request sent by a virtual instance, adding the identifier of the target compute node to the first permission release request to obtain a second permission release request, and sending the second permission release request to a fourth smart network interface card (NIC). Both the first and second permission release requests are used to indicate the cancellation of access permissions to the cloud disk. The fourth smart NIC is one of multiple smart NICs. The fourth smart NIC forwards the second permission release request to the management node of the storage node cluster. Based on the second permission release request, the management node sends a second notification to the multiple smart NICs, which is used to indicate the cancellation of access permissions to the cloud disk. Based on the second notification, the multiple smart NICs update their own configurations, and the updated configurations indicate that the target compute node does not have access permissions to the cloud disk.
[0021] In one possible implementation, the management node sends a second notification to multiple smart network interface cards (NICs) based on a second permission release request. This notification includes: the management node deleting metadata indicating that the target compute node has access to the cloud disk based on the second permission release request, and sending the second notification to the multiple smart NICs.
[0022] In one possible implementation, the cloud service provision method further includes: a virtual machine manager obtaining a first permission clearing request sent by a virtual instance, and sending the first permission clearing request to a fifth smart network interface card (NIC). The first permission clearing request is used to instruct the compute nodes where all virtual instances with mounted cloud disks reside to revoke their access permissions to the cloud disks. The fifth smart network interface card is one of multiple smart network interface cards (NICs). The fifth smart network interface card forwards the first permission clearing request to the management node of the storage node cluster. Based on the first permission clearing request, the management node sends a third notification to the multiple smart network interface cards (NICs). The third notification is used to instruct the compute nodes where all virtual instances with mounted cloud disks reside to revoke their access permissions to the cloud disks. Based on the third notification, the multiple smart network interface cards update their own configurations. The updated configurations indicate that the compute nodes where all virtual instances with mounted cloud disks reside do not have access permissions to the cloud disks.
[0023] In one possible implementation, the management node sends a third notification to multiple smart NICs based on a first permission clearing request, including: the management node deleting all metadata indicating that the compute nodes have access to the cloud disk based on the first permission clearing request, and sending a third notification to multiple smart NICs.
[0024] Thirdly, this application provides a computing node based on public cloud technology. The computing node runs a virtual machine manager and a virtual instance for implementing tenant services. The virtual instance is mounted with a cloud disk obtained by simulating a device based on a storage node. The virtual machine manager is used to obtain a first access request from the virtual instance for the cloud disk, add the identifier of the computing node to the first access request to obtain a second access request, and send the second access request to a first smart network card. The first access request and the second access request carry disk information of the cloud disk. The virtual machine manager is also used to receive the access response sent by the first smart network card for the second access request.
[0025] In one possible implementation, the virtual machine manager is also used to obtain a first permission acquisition request sent by the virtual instance, add the identifier of the compute node to the first permission acquisition request to obtain a second permission acquisition request, and send the second permission acquisition request to the second smart network card. Both the first permission acquisition request and the second permission acquisition request are used to obtain access permissions to the cloud disk. The virtual machine manager is also used to receive the permission acquisition response sent by the second smart network card in response to the second permission acquisition request.
[0026] In one possible implementation, the virtual machine manager is also used to obtain a first permission release request sent by the virtual instance, add the identifier of the compute node to the first permission release request to obtain a second permission release request, and send the second permission release request to the fourth smart network interface card. Both the first permission release request and the second permission release request are used to indicate the cancellation of access permissions to the cloud disk. The virtual machine manager is also used to receive the permission release response sent by the fourth smart network interface card in response to the second permission release request.
[0027] In one possible implementation, the virtual machine manager is also used to obtain the first permission clearing request sent by the virtual instance, and send the first permission clearing request to the fifth smart network interface card. The first permission clearing request is used to instruct the compute nodes where all virtual instances with cloud disks are mounted to cancel their access permissions to the cloud disks. The fifth smart network interface card is one of multiple smart network interface cards. The virtual machine manager is also used to receive the permission clearing response sent by the fifth smart network interface card in response to the first permission clearing request.
[0028] Fourthly, this application provides a cloud service provision method based on public cloud technology. This cloud service provision method is applied to a computing node, on which a virtual machine manager and a virtual instance for implementing tenant services run. The virtual instance is mounted with a cloud disk obtained by simulating a storage node. The cloud service provision method includes: the virtual machine manager obtaining a first access request from the virtual instance for the cloud disk, adding the identifier of the computing node to the first access request to obtain a second access request, and sending the second access request to a first smart network interface card. The first access request and the second access request carry disk information of the cloud disk; the virtual machine manager receiving the access response sent by the first smart network interface card for the second access request.
[0029] In one possible implementation, the cloud service provision method further includes: the virtual machine manager obtaining a first permission acquisition request sent by the virtual instance, adding the identifier of the compute node to the first permission acquisition request to obtain a second permission acquisition request, and sending the second permission acquisition request to the second smart network card, wherein both the first permission acquisition request and the second permission acquisition request are used to obtain access permissions to the cloud disk; the virtual machine manager receiving the permission acquisition response sent by the second smart network card in response to the second permission acquisition request.
[0030] In one possible implementation, the cloud service provision method further includes: the virtual machine manager obtaining a first permission release request sent by the virtual instance, adding the identifier of the compute node to the first permission release request to obtain a second permission release request, and sending the second permission release request to the fourth smart network interface card (NIC), wherein both the first permission release request and the second permission release request are used to indicate the cancellation of access permissions to the cloud disk; and the virtual machine manager receiving the permission release response sent by the fourth smart network interface card in response to the second permission release request.
[0031] In one possible implementation, the cloud service provision method further includes: the virtual machine manager obtaining a first permission clearing request sent by a virtual instance, sending the first permission clearing request to a fifth smart network interface card (NIC), the first permission clearing request being used to instruct the compute nodes where all virtual instances mounted on cloud disks reside to cancel access permissions to the cloud disks, the fifth smart network interface card being one of multiple smart network interface cards; and the virtual machine manager receiving a permission clearing response sent by the fifth smart network interface card in response to the first permission clearing request.
[0032] Fifthly, this application provides a smart network interface card (NIC) based on public cloud technology. The smart NIC includes a transceiver module and a processing module. The transceiver module is used to receive a second access request sent by a virtual machine manager. The second access request carries disk information of a cloud disk requested by a virtual instance managed by the virtual machine manager and the identifier of the compute node where the virtual machine manager is located. The processing module is used to determine whether the compute node where the virtual machine manager is located has access rights to the cloud disk based on the identifier of the target compute node carried in the second access request. The transceiver module is also used to forward the second access request to the target storage node indicated by the disk information if the compute node where the virtual machine manager is located has access rights to the cloud disk. The transceiver module is also used to receive the access response from the target storage node in response to the second access request and send the access response to the virtual machine manager.
[0033] In one possible implementation, the processing module is further configured to, when the configuration information indicating access permissions to the cloud disk is lost, obtain metadata indicating that the compute node has access permissions to the cloud disk, and update the configuration indicating access permissions to the cloud disk based on the metadata.
[0034] Sixthly, this application provides a cloud service provision method based on public cloud technology. This method is applied to a smart network interface card (NIC). The method includes: the smart NIC receiving a second access request sent by a virtual machine manager (VM), the second access request carrying disk information of a cloud disk requested by a virtual instance managed by the VM manager and an identifier of the compute node where the VM manager resides; the smart NIC determining whether the compute node where the VM manager resides has access permissions to the cloud disk based on the identifier of the target compute node carried in the second access request; if the compute node where the VM manager resides has access permissions to the cloud disk, the smart NIC forwarding the second access request to the target storage node indicated by the disk information; and the smart NIC receiving an access response from the target storage node in response to the second access request and sending the access response to the VM manager.
[0035] In one possible implementation, the cloud service provision method further includes: when the smart network interface card loses the configuration information indicating access permissions to the cloud disk, it obtains metadata indicating that the computing node has access permissions to the cloud disk, and updates the configuration indicating access permissions to the cloud disk based on the metadata.
[0036] Seventhly, this application provides a storage node based on public cloud technology. The storage node includes a transceiver module and a processing module. The transceiver module is used to obtain a second permission acquisition request sent by a smart network interface card (NIC). The second permission acquisition request carries an identifier of a computing node and is used to obtain access permissions of the computing node to a cloud disk obtained by device simulation based on the storage node. The processing module is used to determine whether the computing node has the conditions to access the cloud disk based on the identifier of the computing node carried in the second permission acquisition request. The transceiver module is also used to send a first notification to the smart NIC based on the second permission acquisition request when the computing node has the conditions to access the cloud disk. The first notification is used to indicate that the computing node has access permissions to the cloud disk.
[0037] In one possible implementation, the processing module is further configured to generate metadata indicating that the computing node has access to the cloud disk based on the second permission acquisition request when the computing node has the conditions to access the cloud disk, persist the metadata, and send a first notification to the smart network card after the metadata persistence is completed.
[0038] In one possible implementation, the transceiver module is also used to obtain a second permission release request sent by the smart network card. The second permission release request carries the identifier of the computing node and is used to indicate the cancellation of the computing node's access to the cloud disk.
[0039] The transceiver module is also used to send a second notification to the smart network card based on the second permission release request. The second notification is used to instruct the computing node to cancel its access permissions to the cloud disk.
[0040] In one possible implementation, the transceiver module is specifically used to send a second notification to the smart network interface card (NIC) based on a second permission release request to delete metadata indicating that the compute node has access to the cloud disk.
[0041] In one possible implementation, the transceiver module is further configured to obtain a first permission clearing request sent by the smart network interface card (NIC), the first permission clearing request being used to instruct the compute nodes where all virtual instances mounted on the cloud disk are located to cancel their access permissions to the cloud disk; the transceiver module is further configured to send a third notification to the smart NIC based on the first permission clearing request, the third notification being used to instruct the compute nodes where all virtual instances mounted on the cloud disk are located to cancel their access permissions to the cloud disk.
[0042] In one possible implementation, the transceiver module is specifically used to delete all metadata indicating that the computing node has access to the cloud disk based on the first permission clear request, and send a third notification to the smart network card.
[0043] Eighthly, this application provides a cloud service provision method based on public cloud technology. This method is applied to a storage node and includes: the storage node receiving a second permission acquisition request sent by a smart network interface card (NIC), the second permission acquisition request carrying an identifier of a computing node, the second permission acquisition request being used to acquire access permissions of the computing node to a cloud hard drive obtained through device simulation based on the storage node; the storage node determining whether the computing node has the conditions to access the cloud hard drive based on the identifier of the computing node carried in the second permission acquisition request; and when the computing node has the conditions to access the cloud hard drive, the storage node sending a first notification to the smart NIC based on the second permission acquisition request, the first notification being used to indicate that the computing node has access permissions to the cloud hard drive.
[0044] In one possible implementation, when the computing node has the conditions to access the cloud disk, the storage node sends a first notification to the smart network interface card based on a second permission acquisition request, including: when the computing node has the conditions to access the cloud disk, the storage node generates metadata indicating that the computing node has access permissions to the cloud disk based on the second permission acquisition request, persists the metadata, and sends the first notification to the smart network interface card after the metadata persistence is completed.
[0045] In one possible implementation, the cloud service provision method further includes: a storage node receiving a second permission release request sent by a smart network interface card (NIC), the second permission release request carrying an identifier of a compute node, the second permission release request being used to indicate the cancellation of the compute node's access to the cloud disk; and the storage node sending a second notification to the smart NIC based on the second permission release request, the second notification being used to indicate the cancellation of the compute node's access to the cloud disk.
[0046] In one possible implementation, the storage node sends a second notification to the smart NIC based on a second permission release request, including: the storage node deleting metadata indicating that the compute node has access to the cloud disk based on the second permission release request, and sending the second notification to the smart NIC.
[0047] In one possible implementation, the cloud service provision method further includes: a storage node receiving a first permission clearing request sent by a smart network interface card (NIC), the first permission clearing request being used to instruct the compute nodes where all virtual instances mounted on the cloud disk are located to cancel their access permissions to the cloud disk; and the storage node sending a third notification to the smart NIC based on the first permission clearing request, the third notification being used to instruct the compute nodes where all virtual instances mounted on the cloud disk are located to cancel their access permissions to the cloud disk.
[0048] In one possible implementation, the storage node sends a third notification to the smart network interface card (NIC) based on a first permission clearing request, including: the storage node deleting all metadata indicating that the compute node has access to the cloud disk based on the first permission clearing request, and sending the third notification to the smart NIC.
[0049] Ninthly, this application provides a computing device including a memory and a processor, the memory storing program instructions, and the processor executing the program instructions to perform the methods provided in aspects four, six, and eight of this application and any possible implementation thereof.
[0050] In a tenth aspect, this application provides a computing device cluster including multiple computing devices, each computing device including multiple processors and multiple memories, the multiple memories storing program instructions, and the multiple processors executing the program instructions, causing the computing device cluster to perform the methods provided in aspects two, four, six, and eight of this application and any possible implementation thereof.
[0051] Eleventhly, this application provides a computer-readable storage medium, which is a non-volatile computer-readable storage medium, including program instructions that, when executed on a computing device, cause the computing device to perform the methods provided in aspects two, four, six, and eight of this application and any possible implementation thereof.
[0052] In a twelfth aspect, this application provides a computer program product containing instructions that, when run on a computer, cause the computer to perform the methods provided in aspects two, four, six, and eight of this application and any possible implementation thereof. Attached Figure Description
[0053] Figure 1 is a schematic diagram of a shared cloud hard drive provided in an embodiment of this application;
[0054] Figure 2 is a schematic diagram of a virtual machine a1 having access permissions to a cloud disk a1 according to an embodiment of this application;
[0055] Figure 3 is a schematic diagram of a virtual machine b1 having access to a cloud disk a1 according to an embodiment of this application;
[0056] Figure 4 is a schematic diagram of multiple smart network interface cards (NICs) grouped into one resource pool according to an embodiment of this application;
[0057] Figure 5 is a schematic diagram of an implementation scenario involving a cloud service provision method provided in an embodiment of this application;
[0058] Figure 6 is a schematic diagram of the deployment of basic resources provided in an embodiment of this application;
[0059] Figure 7 is a schematic diagram of a cloud service system provided in an embodiment of this application;
[0060] Figure 8 is a schematic diagram illustrating a method for determining whether access rights are granted according to an embodiment of this application;
[0061] Figure 9 is a schematic diagram of another cloud service system provided in an embodiment of this application;
[0062] Figure 10 is a schematic diagram illustrating an embodiment of this application for obtaining access permissions;
[0063] Figure 11 is a schematic diagram of releasing access permissions according to an embodiment of this application;
[0064] Figure 12 is a flowchart of a cloud service provision method provided in an embodiment of this application;
[0065] Figure 13 is a flowchart of another cloud service provision method provided in an embodiment of this application;
[0066] Figure 14 is a flowchart of another cloud service provision method provided in an embodiment of this application;
[0067] Figure 15 is a flowchart of another cloud service provision method provided in an embodiment of this application;
[0068] Figure 16 is a flowchart of another cloud service provision method provided in an embodiment of this application;
[0069] Figure 17 is a flowchart of another cloud service provision method provided in an embodiment of this application;
[0070] Figure 18 is a flowchart of another cloud service provision method provided in an embodiment of this application;
[0071] Figure 19 is a flowchart of another cloud service provision method provided in an embodiment of this application;
[0072] Figure 20 is a schematic diagram of the structure of a computing device provided in an embodiment of this application;
[0073] Figure 21 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of this application;
[0074] Figure 22 is a schematic diagram of another computing device cluster provided in an embodiment of this application. Detailed Implementation
[0075] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.
[0076] To facilitate understanding, the technologies and background involved in the embodiments of this application will be introduced below.
[0077] Cloud computing is a type of distributed computing that refers to a network that centrally manages and schedules a large number of computing and storage resources to provide on-demand services to users. These computing and storage resources are provided through clusters of computing devices located in data centers. Furthermore, cloud computing can provide users with various types of services, such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Infrastructure as a Service provides virtual machines or other resources as a service to tenants. Platform as a Service provides a development platform as a service to tenants. Software as a Service provides applications (Apps) as a service to customers.
[0078] An Internet Data Center (IDC) is a facility and related service system that provides operation and maintenance for equipment that centrally collects, stores, processes, and transmits data, based on the Internet. Conceptually, it can be understood as a public, commercial Internet "server room," and it is also a professional IT service and a crucial infrastructure for the IT industry. IDC is not only a service concept but also a network concept; it constitutes part of the network infrastructure resources, like backbone networks and access networks, providing high-end data delivery and high-speed access services. Generally, a tenant's on-premises IDC can be understood as their physical server room, where the tenant utilizes existing Internet communication lines and bandwidth resources to establish a standardized, telecommunications-grade server room environment to provide comprehensive services such as server hosting, leasing, and related value-added services. A cloud data center is an Internet data center deployed using the infrastructure resources owned by cloud vendors.
[0079] A resource pool is a collection of various hardware and software resources involved in a cloud data center. Typically, resources in a resource pool can be categorized by type, such as computing resources, storage resources, and network resources.
[0080] Resource pooling refers to integrating various computing and storage resources into a unified resource pool for unified dynamic allocation and management. Resource pooling enables high resource sharing, improves resource utilization, simplifies resource management, and provides users with flexible on-demand allocation services.
[0081] A physical machine (PM) is the physical resource used to host virtualization technology. It is also called a physical server. Typically, a physical machine is used to deploy virtual instances. A physical machine has multiple physical devices. For example, a physical server has physical devices such as processors and memory. Multiple virtual instances can be deployed on a single physical machine, sharing the machine's physical resources. Depending on the use case, multiple virtual instances deployed on a single physical machine can belong to the same tenant or to different tenants.
[0082] Virtualization is a resource management technology. Virtualization abstracts and transforms various physical resources of a host, such as computing, network, and storage resources, breaking down the indivisible barriers between the host's physical structures. This allows tenants to utilize these resources in a better way than the original configuration. Resources obtained through virtualization are called virtualized resources, and virtualized resources are not limited by the existing physical resource deployment methods, geographical location, or physical configuration.
[0083] Virtualized resources are typically provided to tenants in the form of virtual instances. Virtual instances utilize the host's hardware resources and run on the host's operating system. Applications run within virtual instances to implement the tenant's business logic. The host's hardware resources can be allocated to one or more tenants at the virtual instance level. Different virtual instances are isolated from each other, allowing tenants to use physical resources conveniently and flexibly while maintaining security and isolation, significantly improving the utilization of physical resources. Typically, virtual instances can be virtual machines, containers, or independent processes (such as functions). Virtual instances can also be called Elastic Compute Service (ECS) or Elastic Instances (different cloud service providers may use different names).
[0084] A virtual machine (VM) is a complete computer system with full hardware system functionality, simulated using virtualization technology and running in a completely isolated environment. A subset of the instructions in a VM can be processed on the host machine, while other instructions can be executed in a simulated manner. A VM is also called a virtual server. A VM can be viewed as a collection of virtual devices, which possess full hardware system functionality and run in a completely isolated environment. Virtual devices are created by virtualizing physical devices that can share resources. For example, a virtual processor, created by virtualizing a processor, is a virtual device. Similarly, a training card, created by virtualizing a field-programmable gate array (FPGA), is also a virtual device. For instance, the VM in this application can be a kernel-based virtual machine (KVM). Any task that can be performed on a server can also be performed in a VM. When creating a virtual machine on a server, a portion of the physical machine's hard drive and memory capacity is used as the virtual machine's hard drive and memory capacity. Each virtual machine has its own independent hard drive and operating system, and virtual machine tenants can operate the virtual machine as if it were a server. The runtime environments (such as virtual machine applications, operating systems, and virtual hardware) in different virtual machines are completely isolated, and communication between different virtual machines requires the virtual machine manager to forward network packets.
[0085] Containers utilize the namespace and cgroup technologies supported by the Linux kernel to isolate application processes and their dependencies (the runtime environment's bins / libs, specifically all files required to run the application) within an independent runtime environment. Containers provide a lightweight virtual runtime environment. Containers are created by packaging all the code, libraries, and dependencies of a tenant's application into an image. When the image is executed, it runs in a virtual runtime environment. At this point, the container is a runtime instance of the image, similar to a lightweight sandbox, which can be started, stopped, and deleted. The infrastructure for containers can be server hardware or virtual machines in the cloud (i.e., containers can also be deployed within virtual machines). The operating system uses the Linux kernel and supports namespaces and cgroups. Namespaces are used to isolate processes, while cgroups are used to allocate process resources, specifically virtual processors and memory allocated to the process. The container engine, similar to a virtual machine manager, runs within the operating system and is used to manage containers. Compared to virtual machines, which come with their own operating system, containers do not have an operating system. Instead, containers run as processes within the host machine's operating system. As a result, containers start up faster than virtual machines, making them particularly suitable for lightweight applications. Furthermore, a single host machine can run thousands of containers (processes) simultaneously.
[0086] Network interface card (NIC): also known as network interface controller, network adapter, or local area network receiver, is a type of computer hardware designed to allow hosts or computing devices to communicate over a network.
[0087] Memory (RAM): Also known as internal memory or main memory, its function is to temporarily store the data processed by the CPU, as well as the data exchanged with external storage devices such as hard drives.
[0088] Quality of Service (QoS) is a technology for effectively managing network resources. QoS provides end-to-end quality of service guarantees to meet the diverse needs of various services. With limited bandwidth resources, QoS allows different traffic flows to compete for network resources unequally, enabling better service capabilities for specific network communications. For example, voice, video, and critical data applications can receive priority service in network devices.
[0089] In a cloud storage scenario, as shown in Figure 1, a server contains virtual machines (VMs), each with a cloud disk mounted on it. The cloud disk is obtained by simulating the storage capacity of storage nodes in a storage node cluster. Virtual machines' access requests to the cloud disk are transmitted to the storage node cluster via smart network interface cards (NICs), which then respond to the requests. The storage node cluster's response includes processing of the access request by the storage client within the cluster and the response from the storage medium. Currently, the storage client of the storage node cluster is typically offloaded to the smart NIC. Furthermore, since the cloud disk is actually a block device created by the storage client of the storage node cluster from the server's virtualization operating system, virtual machine access to the cloud disk is usually submitted by the virtualization operating system to the storage client on the smart NIC, and then the storage client submits the access to the storage node cluster. This technique of offloading the storage client to the smart NIC is also known as smart NIC-based storage client technology.
[0090] Smart network interface cards (NICs) integrate a central processing unit (CPU) and memory, offloading storage clients from the storage node cluster to the smart NIC. This allows storage clients to utilize the smart NIC's processing power to process virtual machine data. This feature enables smart NICs to process data without relying on the server's CPU. Therefore, this system architecture, which offloads storage clients to the smart NIC, reduces CPU consumption on the server, helping to improve server computing power and increase available server resources. For this reason, this system architecture is currently widely used in cloud vendor servers.
[0091] In cloud disk use cases, there are situations where multiple virtual machines (VMs) share the same cloud disk. This scenario is called a shared cloud disk scenario. In a shared cloud disk scenario, multiple VMs can simultaneously mount the same cloud disk and read and write to it concurrently. Shared cloud disk scenarios are common in clustered file system scenarios. Alternatively, in failover scenarios, when a VM in the cluster fails, if a new VM is used to replace the failed VM, the cloud disk originally mounted on the failed VM needs to be mounted on the new VM. This scenario is also a shared cloud disk scenario. In shared cloud disk scenarios, to prevent data corruption caused by multiple VMs simultaneously performing write operations on the same cloud disk, a locking mechanism is needed to ensure data consistency. For example, the Small Computer System Interface (SCSI)-3 locking mechanism can be introduced. Through the SCSI-3 locking mechanism, VMs can use reservation and preemption commands to obtain access permissions or exclusive permissions to the cloud disk.
[0092] Typically, the SCSI-3 locking mechanism has the following two types of commands:
[0093] 1. Persistent Reserve Out (PR OUT): Used to enable applications in virtual machines to perform operations such as registration, reservation, preemption, and cleanup on devices (referring to cloud disks in this application). These are lock permission modification operations, which require persistence of the data on the device by the storage node cluster.
[0094] 2. Persistent Reserve-in (PR IN): This is used to enable applications in virtual machines to read current registration and reservation information from the device (referring to cloud disk in this application). This operation does not require the storage node cluster to persist the information to its machine. Registration information indicates all compute nodes that have access to the device. Permission information indicates the compute nodes that have access to the device.
[0095] In a shared cloud disk scenario, virtual machine access requests to the cloud disk are handled by the storage client on the smart network interface card (NIC) that forwards the access requests for that virtual machine. For example, as shown in Figure 1, cloud disk 'a' is shared and mounted to virtual machines 'a' and 'b'. Virtual machine 'a' is hosted on server 'a'. Virtual machine 'b' is hosted on server 'b'. Server 'a' corresponds to smart NIC 'a', and virtual machine 'a's access requests to cloud disk 'a' are handled by storage client 'a' on smart NIC 'a'. Server 'b' corresponds to smart NIC 'b', and virtual machine 'b's access requests to cloud disk 'a' are handled by storage client 'b' on smart NIC 'b'. Since there is a one-to-one correspondence between servers and smart NICs, by introducing a SCSI-3 locking mechanism based on cloud disks, the locking permissions for cloud disks are managed at the storage client level. For example, as shown in Figure 2, when virtual machine 'a1' has access permissions to cloud disk 'a1', the locking permission record indicates that storage client 'a' on smart NIC 'a' has the permission to access cloud disk 'a1'. At this point, all virtual machines (i.e., a1 to an) storing client a on server a using smart NIC a can access cloud disk a1, while all virtual machines on other servers cannot access cloud disk a1. When access permissions for cloud disk a1 need to be switched to virtual machine b, as shown in Figure 3, virtual machine b will preempt the lock, acquire access permissions for cloud disk a1, and revoke virtual machine a's access permissions to cloud disk a1. Correspondingly, the lock permission record will switch to smart NIC b storing client b having permission to access cloud disk a1. At this point, all virtual machines (i.e., b1 to bm) storing client b on server b using smart NIC b can access cloud disk a1, while all virtual machines storing client a on server a using smart NIC a can no longer access cloud disk a1.
[0096] However, with the evolution of resource pooling, grouping smart NICs into a resource pool has become a trend. For example, the architecture shown in Figure 1 has evolved into the architecture shown in Figure 4. As shown in Figure 4, multiple smart NICs within the same rack are grouped into a smart NIC pool. Virtual machine access requests can be sent to any smart NIC in the smart NIC pool, and the storage client in the receiving smart NIC forwards the access request to the storage node cluster. Compared to the architecture shown in Figure 1, after smart NIC resource pooling, the correspondence between servers and smart NICs becomes a many-to-many relationship. Cloud disk access requests can be processed by any of the multiple smart NICs in the smart NIC pool. This causes the original SCSI-3 locking mechanism, which is based on storage client granularity, to become ineffective. For example, when the lock permission record shows that a certain storage client has lock permissions, since access requests from multiple servers may be processed by that storage client, the lock permission record cannot accurately determine the server with lock permissions, making it impossible to guarantee data consistency of cloud disks through the SCSI-3 locking mechanism.
[0097] In view of this, this application provides a cloud service provision method and cloud service system based on public cloud technology. The cloud service system includes: a compute node cluster, a smart network interface card (NIC) cluster, and a storage node cluster. The compute node cluster includes multiple compute nodes. The smart NIC cluster includes multiple smart NICs. The storage node cluster includes multiple storage nodes. The multiple compute nodes include a target compute node. A virtual machine manager and a virtual instance for implementing tenant services run on the target compute node. The virtual instance is mounted with a cloud disk obtained by simulating devices based on the storage node. In this cloud service system, after the virtual instance accesses the cloud disk, the virtual machine manager can obtain a first access request from the virtual instance for the cloud disk, add the identifier of the target compute node to the first access request to obtain a second access request, and send the second access request to a first smart NIC. Upon receiving the second access request, the first smart NIC can determine whether the target compute node has access permissions to the cloud disk based on the identifier of the target compute node carried in the second access request, and if the target compute node has access permissions to the cloud disk, forward the second access request to the target storage node indicated by the disk information carried in the second access request. Upon receiving the second access request, the target storage node responds to the second access request and sends an access response to the virtual instance through the first smart network interface card and the virtual machine manager.
[0098] This demonstrates that because the virtual machine manager can add the target compute node's identifier to the first access request, and the first smart NIC can verify whether the target compute node has access to the cloud disk based on the identifier carried in the received second access request, it effectively controls access permissions to the cloud disk at the compute node level, rather than at the smart NIC level or the storage client level within the smart NIC. Therefore, regardless of whether the smart NIC and compute node are configured in a one-to-one or many-to-many relationship, the storage client within the smart NIC can accurately determine the compute node with cloud disk access permissions and control access permissions to the cloud disk based on the compute node to which the access request belongs. This control over cloud disk access permissions ensures data consistency. Thus, this application can guarantee data consistency of cloud disks in smart NIC pooling scenarios. For example, this application enables storage node clusters to support SCSI-3 lock protocols in smart NIC pooling scenarios, ensuring the implementation of shared volume characteristics in smart NIC pooling scenarios, thereby guaranteeing data consistency based on cloud disks within the storage node cluster.
[0099] It should be noted that although this application describes the control of cloud disk access permissions using the compute node granularity as an example, it does not preclude the possibility of controlling cloud disk access permissions using virtual machines or other units with fixed configurations to the compute node as the granularity. This application does not specifically limit such control. Furthermore, when using other granularities to control cloud disk access permissions, the underlying principle is still to include a unique identifier for that other granularity in the access request sent by the compute node to the smart network card. For example, at the virtual machine granularity, the virtual machine identifier needs to be included, and the system determines whether access permissions to the cloud disk are granted at that other granularity based on this identifier. For the implementation principle, please refer to the relevant description of cloud disk access permission control using the compute node granularity as an example; this application will not elaborate on it further.
[0100] This article provides a detailed introduction to the technical solution of this application from multiple perspectives, including implementation scenarios, methods and processes, hardware devices, and software devices.
[0101] The following are examples illustrating the implementation scenarios of the embodiments of this application.
[0102] Figure 5 is a schematic diagram of an implementation scenario involving a cloud service provision method provided in this application. As shown in Figure 5, the implementation scenario includes: a data center 1 and a client 2. Data center 1 and client 2 can establish a communication connection through a network. Optionally, the network can be the Internet, or other networks; this application embodiment does not limit the specific network. Tenants can interact with data center 1 through client 2. For example, a tenant can send cloud service requests and other information to data center 1 through client 2. Data center 1 responds based on the information sent by client 2.
[0103] Data center 1 houses a large amount of infrastructure owned by the cloud service provider, such as computing resources, storage resources, and network resources. For example, computing resources can be computing devices (such as servers) capable of providing computing power. As shown in Figure 5, data center 1 includes a cloud management platform and infrastructure (not shown in Figure 5). The cloud management platform and infrastructure are connected via an internal data center network. The cloud management platform is used to manage the infrastructure. The infrastructure is used to provide public cloud services. In this application, the infrastructure includes servers, smart network interface cards (NICs), and storage. The servers in the infrastructure are used to implement the computing node cluster in the cloud service system of this application; the smart NICs in the infrastructure are used to implement the smart NIC cluster in the cloud service system of this application; and the storage in the infrastructure is used to implement the storage node cluster in the cloud service system of this application. Virtual instances used to implement tenant services are optionally deployed on the computing nodes of the computing node cluster. Tenants can send cloud service requests and related information to the computing nodes through their client 2. The computing nodes can process the cloud service requests and related information and provide cloud services to the tenants based on the processed cloud service requests and related information.
[0104] The cloud management platform can be logically divided into: tenant console, compute management service, network management service, storage management service, authentication service, and image management service. The tenant console provides a user interface or application programming interface (API) for interaction with tenants. The compute management service manages servers running virtual instances and bare metal servers. The network management service manages network services (such as gateways and firewalls). The storage management service manages storage services (such as data bucket services). The authentication service manages tenant accounts and passwords. The image management service manages virtual instance images.
[0105] In the implementation scenario shown in Figure 5, a data center contains multiple servers. The servers consist of a hardware layer and a software layer. The hardware layer comprises the standard server configuration, including hardware devices such as processors, memory, network interface cards (NICs), disks, and buses. The software layer includes the operating system installed and running on the server. The operating system relative to the virtual machine can be called the host operating system. The host operating system runs a virtual machine manager (VMM, also known as a hypervisor). The VMM's role is to implement compute virtualization, network virtualization, and storage virtualization for the virtual machines, and to manage the virtual machines.
[0106] The virtual machine manager runs a cloud management platform client. This client receives control plane commands from the cloud management platform, creates virtual instances on the server based on these commands, and manages the virtual instances throughout their lifecycle. For example, the client can monitor the hardware resource usage of the server in real time and report it to the cloud management platform. When the cloud management platform confirms that a virtual instance needs to be created on a specific server, it sends a virtual instance creation command to the client on that server. Upon receiving the command, the client creates the virtual instance on that server. In this way, tenants can create, manage, log in to, and operate virtual instances within the data center through the cloud management platform.
[0107] Servers can run virtual machines of different specifications. Virtual machine specifications are categorized as: general-purpose computing, memory-optimized, ultra-large memory, etc., with specific specifications under each type. After a tenant selects a virtual machine specification, the cloud management platform selects a server in the data center that supports that specification and ensures sufficient idle hardware resources on that server. Then, it creates and configures the virtual machine with that specification on that server. Configuring servers through the cloud management platform allows for the analysis and planning of server hardware resources. Based on the server's hardware performance, it plans the corresponding computing products for the physical hardware, such as planning virtual machines of different specifications, to meet the diverse needs of different tenants. Furthermore, differentiated pricing strategies can be implemented based on the performance differences of virtual machines of different specifications. For example, high-performance virtual instances can be sold at a higher price, while ordinary performance virtual instances can be sold at a lower price, allowing tenants to purchase virtual instances as needed.
[0108] In one implementation, as shown in Figure 6, the location of basic resources in a data center can be described by cloud resource deployment regions (regions) and availability zones (AZs). Tenants can choose to deploy cloud services based on resources in specific regions and AZs. Regions are defined based on geographical location and network latency. Using the same resource pool within the same region can be understood as sharing public services such as elastic computing, block storage, object storage, virtual private cloud (VPC) networks, elastic internet protocol (EIP) addresses, and images. Regions are divided into general regions and dedicated regions. General regions provide general cloud services to public tenants. Dedicated regions are dedicated regions that host the same type of business or provide business services to specific tenants. A region typically includes multiple AZs. Multiple AZs within a region are connected via high-speed fiber optic cables to meet the needs of tenants building high-availability systems across AZs. An AZ is a collection of one or more data centers as shown in Figure 6. Computing, network, and storage resources within an AZ are logically divided into multiple clusters.
[0109] Tenants can send instructions to the cloud management platform through their client 2 to create, manage, log in to, and operate virtual instances on the server, and use the cloud services provided by these virtual instances. For example, the cloud management platform can provide an access interface. This interface can be provided either as a user interface or an API. Tenants can operate their client to remotely access the access interface to register a cloud account and password on the cloud management platform, and then log in using these accounts and passwords. The cloud management platform can also authenticate the cloud account and password. After successful authentication, the tenant can further select and purchase a virtual instance with specific specifications (processor, memory, disk) on the cloud management platform. After the tenant successfully purchases the virtual instance, the cloud management platform provides the tenant with a remote login account and password for the purchased virtual instance. The tenant can use the remote login account and password to remotely log in to the virtual instance on their client, install and run their application within the virtual instance, and use the application to implement their business operations.
[0110] Client 2 can be selected from computers, personal computers, laptops, mobile phones, smartphones, tablets, cloud servers, portable mobile terminals, multimedia players, e-book readers, wearable devices, smart home appliances, artificial intelligence devices, smart wearable devices, smart in-vehicle devices, or Internet of Things devices, etc.
[0111] In one implementation, the cloud service provision method provided in this application embodiment can be implemented by running an executable program on a computing device in data center 1. Optionally, the cloud service provision method provided in this application embodiment can be applied to a cloud service system. This cloud service system can implement the cloud service provision method provided in this application embodiment by running the executable program. Furthermore, the executable program implementing the cloud service provision method can optionally be presented in the form of an application installation package. After the computing node installs the application installation package, it can implement the cloud service provision method provided in this application embodiment by running the executable program therein.
[0112] It should be understood that the above content is an exemplary description of the implementation scenarios of the cloud service provision method provided in the embodiments of this application, and does not constitute a limitation on the implementation scenarios of the cloud service provision method. As those skilled in the art will know, as business needs change, the implementation scenarios can be adjusted according to application requirements, and the embodiments of this application do not specifically limit them. For example, this application is also applicable to the process of sending and receiving network data in a pooled virtual network scenario.
[0113] The cloud service system based on public cloud technology provided in the embodiments of this application will be described below.
[0114] Figure 7 is a schematic diagram of a cloud service system based on public cloud technology provided in an embodiment of this application. As shown in Figure 7, the cloud service system includes: a compute node cluster, a smart network interface card (NIC) cluster, and a storage node cluster. The compute node cluster includes multiple compute nodes, which are used to provide computing resources to the cloud service. The smart NIC cluster includes multiple smart NICs, which are used to provide network resources to the cloud service. The storage node cluster includes multiple storage nodes, which are used to provide storage resources to the cloud service. The multiple compute nodes include a target compute node. The target compute node runs a virtual machine manager and a virtual instance used to implement tenant services. The virtual instance is mounted with a cloud disk obtained by simulating devices based on the storage node. The virtual instance can utilize the computing resources provided by the compute node to implement the tenant's services, utilize the cloud disk to store the data required to implement the tenant's services, and utilize the smart NIC to transmit the data required to implement the tenant's services over the network.
[0115] In this cloud service system, the virtual machine manager in the target compute node obtains the first access request from the virtual instance on the target compute node for the cloud disk, adds the identifier of the target compute node to the first access request to obtain a second access request, and sends the second access request to the first smart network interface card (NIC). The first and second access requests carry the disk information of the cloud disk and the logical address of the data that the virtual instance needs to access within the cloud disk. This logical address is, for example, the logical block address (LBA) of the cloud disk. The first smart NIC is one of multiple smart NICs.
[0116] Upon receiving a second access request, the first smart network interface card (NIC) determines, based on the identifier of the target computing node carried in the second access request, that the target computing node has access permissions to the cloud disk. If this is confirmed, the NIC then forwards the second access request to the target storage node indicated by the disk information of the cloud disk. Conversely, if the first smart NIC determines, based on the identifier of the target computing node, that the target computing node does not have access permissions to the cloud disk, it sends an access error message to the virtual instance, notifying the virtual instance that it cannot access the cloud disk.
[0117] The target storage node, upon receiving a second access request, responds to the second access request and sends an access response to the virtual instance via the first smart network interface card (NIC) and the virtual machine manager. The second access request can be either a read request or a write request. When the second access request is a read request, the target storage node's response includes: obtaining the logical address to be accessed carried in the second access request and reading the data recorded in the physical address corresponding to that logical address. When the second access request is a write request, and the second access request also carries data to be written, the target storage node's response includes: obtaining the logical address to be accessed and the data to be written carried in the second access request and writing the data to be written to the physical address corresponding to the logical address. The process of the target storage node sending an access response to the virtual instance via the first smart NIC and the virtual machine manager includes: the target storage node sending an access response to the first smart NIC, the first smart NIC sending an access response to the virtual machine manager, and the virtual machine manager sending an access response to the virtual instance. The process of sending an access response can be considered the reverse process of sending an access request. However, in the process of sending an access response, it is not necessary to verify the access permissions of the cloud disk. Therefore, the implementation process of sending an access response can be referenced accordingly to the implementation process of sending an access request, and will not be elaborated upon in this embodiment. It should be noted that when a storage client is deployed in the smart network interface card (NIC), all operations performed by the smart client in this application are performed by the storage client within that smart NIC. All operations targeting the smart NIC are operations targeting the storage client within that smart NIC, and will not be distinguished further below.
[0118] In one possible implementation, as shown in Figure 8, when a virtual instance in the target compute node needs to access the cloud disk, it can issue a first access request for the cloud disk through its virtual kernel (application I / O in Figure 8). This first access request is sent to the virtual machine manager of the target compute node. After receiving the first access request, the virtual machine manager first parses it, and then adds the identifier of the target compute node (host ID in Figure 8) to the parsed first access request to identify the source of the first access request through the identifier of the target compute node. Then, the virtual machine manager repackages the first access request with the identifier of the target compute node to obtain a second access request, and sends the second access request to the storage client in the first smart network interface card. After receiving the second access request, the storage client in the first smart network interface card (NIC) parses the request to obtain the identifier of the target compute node and the disk information and logical address of the cloud disk used to indicate the virtual instance's access. Then, based on the identifier, it determines whether the target compute node has access permissions to the cloud disk. If the target compute node does have access permissions, it re-encapsulates the second access request and forwards the re-encapsulated second access request to the target storage node indicated by the disk information. Upon receiving the second access request, the target storage node parses and responds to it, sending an access response to the virtual instance through the first smart NIC and the virtual machine manager.
[0119] When access permissions to the cloud disk are controlled via SCSI-3 locking, after a virtual instance accesses the cloud disk, its virtual kernel packages the first access request into a request conforming to the SCSI protocol. Correspondingly, upon receiving the first access request, the virtual machine manager parses it using the SCSI protocol, adds the target compute node identifier to the header of the first access request, and then repackages the first access request with the added target compute node identifier using the SCSI protocol to obtain the second access request. Upon receiving the second access request, the first smart network interface card (NIC) first parses it using the SCSI protocol, extracts the added target compute node identifier from the parsed second access request, removes the target compute node identifier from the second access request, and then parses the original SCSI protocol content in the second access request. Furthermore, since the storage node processes requests using the storage protocol, the first smart NIC also needs to repackage the second access request using the storage protocol before forwarding it to the target storage node. Correspondingly, upon receiving the second access request, the target storage node parses it using the storage protocol.
[0120] In smart NIC pooling scenarios, since a smart NIC cluster comprises multiple smart NICs, the virtual machine manager needs to determine the first smart NIC from among these before sending a second access request to it. There are several ways to determine the first smart NIC from among multiple smart NICs. For example, the virtual machine manager can use a load balancing strategy to determine the first smart NIC from among multiple smart NICs. For instance, if the first access request carries the logical address of the data the virtual instance needs to access in the cloud disk, and this logical address is represented by an LBA, the virtual machine manager can obtain the LBA from the first access request after acquiring it, and then use the LBA to perform address splitting to obtain the smart NIC (i.e., the first smart NIC) used to forward the second access request. One possible implementation method for address splitting using the LBA is: taking the modulo of a specified value using the LBA to obtain the modulo value, then querying the pre-set correspondence between multiple modulo values and multiple smart NICs based on the obtained modulo value, and determining the smart NIC corresponding to the obtained modulo value as the first smart NIC.
[0121] Optionally, as shown in Figures 8 and 9, each compute node may optionally include a data routing module. The data routing modules within the same compute node establish a communication connection with the virtual machine manager, and each data routing module establishes a communication connection with multiple smart network interface cards (NICs). In this case, the virtual machine manager sends a second access request to the first smart NIC in the following ways: the virtual machine manager sends a second access request to the data routing module, and the data routing module sends a second access request to the first smart NIC.
[0122] It should be noted that when the cloud service system includes a data routing module, the operation of determining the first smart network interface card (NIC) among multiple smart NICs can also be performed by the data routing module. For example, after receiving a second access request, the data routing module determines the first smart NIC among multiple smart NICs and then sends the second access request to the first smart NIC. The implementation method of the data routing module determining the first smart NIC among multiple smart NICs is similar to the implementation method of the virtual machine manager, and will not be elaborated here.
[0123] Furthermore, as shown in Figures 8 and 9, the cloud service system provided in this embodiment may optionally include a high-speed interconnect device. Each computing node establishes a communication connection with multiple smart network interface cards (NICs) through this high-speed interconnect device. The second access request sent by the virtual machine manager to the first smart NIC is then sent to the first smart NIC through the high-speed interconnect device. For example, when the computing node includes a data routing module and a high-speed interconnect device, the data routing module establishes a communication connection with the high-speed interconnect device, and the high-speed interconnect device establishes a communication connection with multiple smart NICs. After receiving the second access request sent by the virtual machine manager, the data routing module forwards the second access request to the high-speed interconnect device, and then the high-speed interconnect device sends the second access request to the first smart NIC. In one possible implementation, the high-speed interconnect device is implemented through a high-speed interconnect protocol bus. The high-speed interconnect protocol can be selected as the Compute Express Link (CXL) protocol or the Lingqu Bus (also known as the UB bus) protocol. In this case, the high-speed interconnect device enables fast transmission of the second access request, greatly reducing the protocol stack latency for sending the second access request.
[0124] Therefore, it can be seen that in the cloud service system provided in this application embodiment, since the virtual machine manager can add the identifier of the target computing node to the first access request, and the first smart network interface card (NIC) can verify whether the target computing node has access rights to the cloud disk based on the identifier of the target computing node carried in the received second access request, it is equivalent to implementing access control of the cloud disk at the granularity of the computing node, rather than controlling access rights of the cloud disk at the granularity of the smart NIC or the storage client in the smart NIC. In this way, regardless of whether the smart NIC and computing node are configured in a one-to-one correspondence or a many-to-many configuration, the storage client in the smart NIC can accurately determine the computing node with access rights to the cloud disk, and can control access rights of the cloud disk based on the computing node to which the access request belongs, thereby ensuring data consistency of the cloud disk through access control. Furthermore, the improvements in this application are mainly made on the virtual machine manager and smart NIC, and the virtual instance is not improved. This makes the improvements in this application transparent to the virtual instance, and the virtual instance does not need to be aware of the specific architecture of the virtual machine manager and storage system, and will not have a negative impact on the implementation of tenant services.
[0125] The above describes the process by which the cloud service system responds to a virtual instance's access request to the cloud disk based on the virtual instance's access permissions. Since controlling access permissions to the cloud disk also depends on acquiring and releasing access permissions, the following section explains the implementation process of the target compute node acquiring and releasing access permissions to the cloud disk. The process of the target compute node acquiring access permissions to the cloud disk will be explained first.
[0126] Before accessing the cloud disk, a virtual instance on the target compute node needs to obtain access permissions for the cloud disk from the target compute node. As shown in Figure 10, when a virtual instance needs to obtain access permissions for the cloud disk from the target compute node, it can trigger a first permission acquisition request and send it to the virtual machine manager. The virtual machine manager then receives the first permission acquisition request sent by the virtual instance, adds the identifier of the target compute node (i.e., the host ID in Figure 10) to the first permission acquisition request to obtain a second permission acquisition request (i.e., the first permission acquisition request + host ID in Figure 10), and sends the second permission acquisition request to the second smart network interface card (NIC). Both the first and second permission acquisition requests are used to obtain access permissions for the cloud disk from the target compute node. The second smart network interface card is one of multiple smart network interface cards. The second smart network interface card is used to forward the second permission acquisition request to the management node of the storage node cluster. When the target compute node has the conditions to access the cloud disk, the management node sends a first notification to multiple smart network interface cards based on the second permission acquisition request. The first notification is used to indicate that the target compute node has access permissions for the cloud disk. Multiple smart network interface cards (NICs) are used to update their own configurations based on the first notification. The updated configuration indicates that the target compute node has access to the cloud disk. The condition for the target compute node to access the cloud disk refers to the current state of the cloud disk allowing the target compute node to access it. For example, when the cloud disk is not locked by any compute node, its current state allows the target compute node to access it; in this case, the target compute node is considered to have the condition to access the cloud disk. For instance, when access to the cloud disk is controlled via SCSI-3 locks, a virtual instance can trigger a first permission acquisition request through a write lock / preemptive lock operation (PR OUT), and both the first and second permission acquisition requests are write lock requests using the SCSI-3 protocol.
[0127] It should be noted that the operation of determining whether a target computing node has the conditions to access the cloud disk can also be performed by the second smart network interface card (NIC), and this embodiment does not specifically limit it. For example, the second smart NIC is used to forward a second permission acquisition request to the management node of the storage node cluster when the target computing node has the conditions to access the cloud disk. After receiving the second permission acquisition request, the management node determines that the target computing node has the conditions to access the cloud disk, and then sends a first notification to multiple smart NICs based on the second permission acquisition request, so that the multiple smart NICs update their own configurations to indicate that the target computing node has access to the cloud disk based on the first notification. Furthermore, when the target computing node has the conditions to access the cloud disk, the second smart NIC may also choose to first update its own configuration based on the second permission acquisition request, so that the updated configuration indicates that the target computing node has access to the cloud disk, and then send the second permission acquisition request to the management node. Then, after receiving the second permission acquisition request, the management node sends the first notification to the other smart NICs among the multiple smart NICs except for the second smart NIC. Correspondingly, the smart network cards other than the second smart network card among the multiple smart network cards update their own configurations based on the first notification, and the updated configurations indicate that the target computing node has access to the cloud disk.
[0128] Optionally, after determining that the target compute node has the conditions to access the cloud disk, the management node may first generate metadata indicating that the target compute node has access to the cloud disk based on the second permission acquisition request, persist the metadata, and then send a first notification to multiple smart network interface cards (NICs) after completing the metadata persistence. Here, the management node persisting the metadata means storing the metadata in non-volatile storage media within the storage node cluster. It should be noted that before sending the first notification to the multiple smart NICs, the management node may also execute other configurations in the storage node cluster to indicate that the target compute node has access to the cloud disk; these will not be listed here.
[0129] Since metadata is used to indicate access permissions for cloud disks, its primary purpose is to indicate these permissions. In one possible implementation scenario, when the configuration information indicating cloud disk access permissions is lost, the third smart network interface card (NIC), which is one of multiple smart NICs, retrieves the metadata and updates the configuration accordingly. For example, when a smart NIC is powered off and restarted, it may lose the configuration information indicating cloud disk access permissions. In this case, since the management node has already persisted the metadata indicating that the target compute node has cloud disk access permissions, the smart NIC can read this metadata and update the configuration accordingly. It should be noted that other components that need to maintain cloud disk access permissions can also retrieve this metadata and configure themselves accordingly to maintain cloud disk access permissions as indicated by the metadata, thereby ensuring data consistency of the cloud disk.
[0130] After multiple smart network interface cards (NICs) have updated their configurations and all indicate that the target compute node has access to the cloud disk, the management node can send a permission acquisition response to the target compute node via a second smart NIC to indicate that the target compute node has obtained access to the cloud disk. In one possible implementation, after any one of the multiple smart NICs updates its own configuration based on the first notification, that smart NIC sends a notification to the management node indicating that the configuration update is complete. Upon receiving notifications from all the smart NICs indicating that the configuration update is complete, the management node determines that all the smart NICs have completed the configuration indicating that the target compute node has access to the cloud disk.
[0131] It should be noted that in the process of the target compute node obtaining access to the cloud disk, the implementation details from the virtual instance triggering the first access request to the management node sending the access response to the target compute node are detailed in the relevant descriptions of the process from the virtual instance triggering the first access request to the management node sending the access response to the virtual instance. For example, as shown in Figure 10, when the access permissions of the cloud disk are controlled through a SCSI-3 lock, after the virtual instance triggers the first access request, its virtual kernel will package the first access request into a request that conforms to the SCSI protocol. Correspondingly, after receiving the first access request, the virtual machine manager will parse the first access request using the SCSI protocol, and after adding the identifier of the target compute node to the first access request, it will re-encapsulate the first access request with the added identifier of the target compute node using the SCSI protocol. After receiving the second access request, the first smart network interface card will re-encapsulate the second access request using the storage protocol. Similarly, before sending a second permission acquisition request to the smart network interface card (NIC), it is necessary to determine which smart NIC will be used to transmit the request. This determination can be performed by the virtual machine manager or the data routing module. Likewise, when the cloud service system also includes a high-speed interconnect device, the second permission acquisition request can be transmitted quickly through this device.
[0132] The following explains the process of releasing access permissions for cloud disks. Releasing access permissions for cloud disks includes releasing the target compute node's own access permissions to the cloud disk and releasing the access permissions of all compute nodes hosting virtual instances with mounted cloud disks to the cloud disk. We will first explain the process of releasing the target compute node's own access permissions to the cloud disk.
[0133] As shown in Figure 11, when a virtual instance in the target compute node needs to release the target compute node's access to the cloud disk, the virtual instance can trigger a first permission release request and send it to the virtual machine manager. The virtual machine manager then obtains the first permission release request sent by the virtual instance, adds the target compute node's identifier to the first permission release request to obtain a second permission release request, and sends the second permission release request to the fourth smart network interface card (NIC). Both the first and second permission release requests are used to instruct the target compute node to cancel its access to the cloud disk. For example, when the cloud disk's access permissions are controlled via a SCSI-3 lock, the virtual instance can trigger the first permission release request through a PR OUT lock release operation, and both the first and second permission release requests are lock release requests using the SCSI-3 protocol. The fourth smart network interface card (NIC) is one of multiple smart network interfaces. The fourth smart network interface card is used to forward the second permission release request to the management node of the storage node cluster. The management node, based on the second permission release request, sends a second notification to multiple smart network interfaces, which instructs the target compute node to cancel its access to the cloud disk. Multiple smart network interface cards (NICs) are specifically used to update their own configurations based on the second notification. The updated configuration indicates that the target compute node does not have access to the cloud disk. It should be noted that the fourth smart NIC, after receiving the second permission release request, can also update its own configuration based on the second permission release request, with the updated configuration indicating that the target compute node does not have access to the cloud disk. The management node then sends the second notification to all smart NICs except the fourth smart NIC. The other smart NICs update their own configurations based on the second notification.
[0134] Optionally, when the management node has pre-persisted metadata indicating that the target compute node has access to the cloud disk, upon receiving the second permission release request, the management node may first delete the metadata indicating that the target compute node has access to the cloud disk based on the second permission release request. After completing the deletion of the metadata, the management node sends a second notification to multiple smart network interface cards (NICs). Here, "persisting metadata" means storing the metadata in non-volatile storage media within the storage node cluster, and "deleting metadata" means removing the metadata from that non-volatile storage media. It should be noted that before sending the second notification to multiple smart NICs, the management node may also execute other configurations in the storage node cluster to indicate the release of the target compute node's access to the cloud disk; these will not be listed here.
[0135] After multiple smart network interface cards (NICs) have completed their configuration updates based on the second notification, the management node can send a permission release response to the target compute node via a fourth smart NIC to indicate that the target compute node's access permissions to the cloud disk have been released. In one possible implementation, after any one of the multiple smart NICs updates its own configuration based on the second notification, that smart NIC sends a notification to the management node indicating that the configuration update is complete. Upon receiving notifications from all the smart NICs indicating that the configuration update is complete, the management node determines that all the smart NICs have completed the configuration indicating that the target compute node does not have access permissions to the cloud disk.
[0136] It should be noted that in the process of releasing the target compute node's access permissions to the cloud disk, the implementation details from the virtual instance triggering the first permission release request to the management node sending the permission release response to the target compute node should be referred to the relevant descriptions of the process from the virtual instance triggering the first access request to the management node sending the access response to the virtual instance. For example, when the access permissions of the cloud disk are controlled through a SCSI-3 lock, after the virtual instance triggers the first permission release request, its virtual kernel will package the first permission release request into a request that conforms to the SCSI protocol. Correspondingly, after receiving the first permission release request, the virtual machine manager will parse the first permission release request using the SCSI protocol, and after adding the identifier of the target compute node to the first permission release request, it will re-encapsulate the first permission release request with the identifier of the target compute node using the SCSI protocol. After receiving the second permission release request, the first smart network interface card (NIC) will re-encapsulate the second permission release request using the storage protocol. Similarly, before sending the second permission release request to the smart NIC, it is necessary to determine the smart NIC used to transmit the second permission release request from among multiple smart NICs, and this operation of determining the smart NIC can be performed by the virtual machine manager or the data routing module. Similarly, when the cloud service system may also include a high-speed interconnect device, the high-speed interconnect device can be used to quickly transmit the second permission release request.
[0137] The following describes the process of releasing the access permissions of all virtual instances with mounted cloud disks to the cloud disks on the target compute node.
[0138] When a virtual instance in a target compute node needs to release the access permissions of all compute nodes hosting virtual instances with attached cloud disks to the cloud disks, the virtual instance can trigger a first permission clearing request and send it to the virtual machine manager. The virtual machine manager then receives the first permission clearing request sent by the virtual instance and forwards it to the fifth smart network interface card (NIC). The first permission clearing request instructs all compute nodes hosting virtual instances with attached cloud disks to grant them access permissions to the cloud disks. The fifth smart network interface card is one of multiple smart network interface cards (NICs). The fifth smart network interface card forwards the first permission clearing request to the management node of the storage node cluster. The management node, based on the first permission clearing request, sends a third notification to multiple smart network interface cards. The third notification instructs all compute nodes hosting virtual instances with attached cloud disks to revoke their access permissions to the cloud disks. The multiple smart network interface cards update their configurations based on the third notification, with the updated configuration indicating that all compute nodes hosting virtual instances with attached cloud disks no longer have access permissions to the cloud disks. It should be noted that after receiving the first permission clearing request, the fifth smart NIC can also update its own configuration based on the request. The updated configuration indicates that all compute nodes hosting virtual instances with cloud disks do not have access to the cloud disks. The management node then sends a third notification to the other smart NICs besides the fifth smart NIC. The other smart NICs update their own configurations based on the third notification.
[0139] Optionally, when the management node has pre-persisted metadata indicating that compute nodes have access to cloud disks, upon receiving a first permission clearing request, the management node may first delete all metadata indicating that compute nodes have access to cloud disks based on the first permission clearing request. After completing the deletion of metadata, it sends a third notification to multiple smart NICs. It should be noted that before sending the third notification to multiple smart NICs, the management node may also execute other configurations in the storage node cluster to indicate the release of all compute nodes' access to cloud disks; these will not be listed here.
[0140] After multiple smart network interface cards (NICs) have completed their configuration updates based on the third notification, the management node can send a permission clearing response to the target compute nodes via the fifth smart NIC to indicate that all compute nodes' access permissions to the cloud disk have been cleared. In one possible implementation, after any one of the multiple smart NICs updates its own configuration based on the third notification, that smart NIC sends a notification to the management node indicating that the configuration update is complete. Upon receiving notifications from all the smart NICs indicating that the configuration update is complete, the management node determines that all smart NICs have completed the configuration indicating that all compute nodes do not have access permissions to the cloud disk.
[0141] The process of a target compute node releasing access permissions to cloud disks from all compute nodes hosting virtual instances with mounted cloud disks differs from the process of a target compute node releasing its own access permissions to cloud disks in that the virtual machine manager does not need to add the target compute node's identifier to the first-privilege clear request. Therefore, the process of a target compute node releasing access permissions to cloud disks from all compute nodes hosting virtual instances with mounted cloud disks should be referred to the relevant description of the process of a target compute node releasing its own access permissions to cloud disks; it will not be repeated here.
[0142] The operations described above regarding acquiring and releasing access permissions to cloud disks are all operations performed on cloud disk access permissions. These operations can be considered operations performed on reserved locks. For example, acquiring access permissions to a cloud disk is the operation of acquiring a reserved lock for the cloud disk, and releasing access permissions to a cloud disk is the operation of releasing a reserved lock for the cloud disk. Correspondingly, there are also operations on cloud disks such as acquiring and releasing registration locks. In the locking mechanism, a compute node can only acquire a reserved lock for a cloud disk after it has a registration lock for the cloud disk. Therefore, a compute node can also perform operations such as acquiring a reserved lock, releasing its own reserved lock, and releasing the registration locks of all compute nodes where virtual instances with cloud disks are mounted. For the implementation process of a target compute node acquiring a reserved lock, please refer to the relevant description of the implementation process of a target compute node acquiring access permissions to a cloud disk; it will not be repeated here. For the implementation process of a target compute node releasing its own reserved lock, please refer to the relevant description of the implementation process of a target compute node releasing its own access permissions to a cloud disk; it will not be repeated here. The process of the target compute node releasing the registration lock of all compute nodes containing virtual instances with cloud disks is described in the relevant section on the process of the target compute node releasing the access permissions of all compute nodes containing virtual instances with cloud disks to the cloud disks. It will not be repeated here.
[0143] This demonstrates that because the virtual machine manager can add the target compute node's identifier to the first access request, and the first smart NIC can verify whether the target compute node has access to the cloud disk based on the identifier carried in the received second access request, it effectively controls access permissions to the cloud disk at the compute node level, rather than at the smart NIC level or the storage client level within the smart NIC. Therefore, regardless of whether the smart NIC and compute node are configured in a one-to-one or many-to-many relationship, the storage client within the smart NIC can accurately determine the compute node with cloud disk access permissions and control access permissions to the cloud disk based on the compute node to which the access request belongs. This control over cloud disk access permissions ensures data consistency. Thus, this application can guarantee data consistency of cloud disks in smart NIC pooling scenarios. For example, this application enables storage node clusters to support SCSI-3 lock protocols in smart NIC pooling scenarios, ensuring the implementation of shared volume characteristics in smart NIC pooling scenarios, thereby guaranteeing data consistency based on cloud disks within the storage node cluster.
[0144] The cloud service system of this application embodiment has been described above. Correspondingly, this application embodiment also provides a computing node based on public cloud technology. The computing node runs a virtual machine manager and virtual instances for implementing tenant services. The virtual instances are mounted with cloud disks obtained by simulating devices based on storage nodes. The virtual machine manager is used to obtain a first access request from the virtual instance for the cloud disk, add the identifier of the computing node to the first access request to obtain a second access request, and send the second access request to a first smart network interface card (NIC). The first and second access requests carry disk information of the cloud disk. The virtual machine manager is also used to receive the access response sent by the first smart NIC for the second access request.
[0145] In one possible implementation, the virtual machine manager is also used to obtain a first permission acquisition request sent by the virtual instance, add the identifier of the compute node to the first permission acquisition request to obtain a second permission acquisition request, and send the second permission acquisition request to the second smart network card. Both the first permission acquisition request and the second permission acquisition request are used to obtain access permissions to the cloud disk. The virtual machine manager is also used to receive the permission acquisition response sent by the second smart network card in response to the second permission acquisition request.
[0146] In one possible implementation, the virtual machine manager is also used to obtain a first permission release request sent by the virtual instance, add the identifier of the compute node to the first permission release request to obtain a second permission release request, and send the second permission release request to the fourth smart network interface card. Both the first permission release request and the second permission release request are used to indicate the cancellation of access permissions to the cloud disk. The virtual machine manager is also used to receive the permission release response sent by the fourth smart network interface card in response to the second permission release request.
[0147] In one possible implementation, the virtual machine manager is also used to obtain the first permission clearing request sent by the virtual instance, and send the first permission clearing request to the fifth smart network interface card. The first permission clearing request is used to instruct the compute nodes where all virtual instances with cloud disks are mounted to cancel their access permissions to the cloud disks. The fifth smart network interface card is one of multiple smart network interface cards. The virtual machine manager is also used to receive the permission clearing response sent by the fifth smart network interface card in response to the first permission clearing request.
[0148] The cloud service system described above is an embodiment of this application. Correspondingly, this application also provides a smart network interface card (NIC) based on public cloud technology. The smart NIC includes a transceiver module and a processing module.
[0149] The transceiver module receives a second access request sent by the virtual machine manager. The second access request carries disk information of the cloud disk requested by the virtual instance managed by the virtual machine manager and the identifier of the compute node where the virtual machine manager is located. The processing module determines whether the compute node where the virtual machine manager is located has access rights to the cloud disk based on the identifier of the target compute node carried in the second access request. The transceiver module is also used to forward the second access request to the target storage node indicated by the disk information if the compute node where the virtual machine manager is located has access rights to the cloud disk. The transceiver module is also used to receive the access response from the target storage node in response to the second access request and send the access response to the virtual machine manager.
[0150] In one possible implementation, the processing module is further configured to, when the configuration information indicating access permissions to the cloud disk is lost, obtain metadata indicating that the compute node has access permissions to the cloud disk, and update the configuration indicating access permissions to the cloud disk based on the metadata.
[0151] The cloud service system described above is an embodiment of this application. Correspondingly, this application also provides a storage node based on public cloud technology. The storage node includes a transceiver module and a processing module.
[0152] The transceiver module is used to acquire a second permission acquisition request sent by the smart network card. The second permission acquisition request carries the identifier of the computing node and is used to acquire the computing node's access rights to the cloud disk obtained by device simulation based on the storage node. The processing module is used to determine whether the computing node has the conditions to access the cloud disk based on the identifier of the computing node carried in the second permission acquisition request. The transceiver module is also used to send a first notification to the smart network card based on the second permission acquisition request when the computing node has the conditions to access the cloud disk. The first notification is used to indicate that the computing node has the access rights to the cloud disk.
[0153] In one possible implementation, the processing module is further configured to generate metadata indicating that the computing node has access to the cloud disk based on the second permission acquisition request when the computing node has the conditions to access the cloud disk, persist the metadata, and send a first notification to the smart network card after the metadata persistence is completed.
[0154] In one possible implementation, the transceiver module is also used to obtain a second permission release request sent by the smart network card. The second permission release request carries the identifier of the computing node and is used to indicate the cancellation of the computing node's access to the cloud disk.
[0155] The transceiver module is also used to send a second notification to the smart network card based on the second permission release request. The second notification is used to instruct the computing node to cancel its access permissions to the cloud disk.
[0156] In one possible implementation, the transceiver module is specifically used to send a second notification to the smart network interface card (NIC) based on a second permission release request to delete metadata indicating that the compute node has access to the cloud disk.
[0157] In one possible implementation, the transceiver module is further configured to obtain a first permission clearing request sent by the smart network interface card (NIC), the first permission clearing request being used to instruct the compute nodes where all virtual instances mounted on the cloud disk are located to cancel their access permissions to the cloud disk; the transceiver module is further configured to send a third notification to the smart NIC based on the first permission clearing request, the third notification being used to instruct the compute nodes where all virtual instances mounted on the cloud disk are located to cancel their access permissions to the cloud disk.
[0158] In one possible implementation, the transceiver module is specifically used to delete all metadata indicating that the computing node has access to the cloud disk based on the first permission clear request, and send a third notification to the smart network card.
[0159] The functions of the aforementioned compute nodes, smart network interface cards (NICs), and storage nodes can all be implemented through software or hardware. For example, the implementation of a compute node will be described below. Similarly, the implementation methods for smart NICs and storage nodes can refer to those for compute node implementation.
[0160] As an example of a software functional unit, a compute node may include code running on a compute instance. A compute instance may include at least one of a physical host (compute device), a virtual machine, or a container. Furthermore, the aforementioned compute instance may be one or more. For example, a compute node may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code may be distributed within the same region or in different regions. Further, the multiple hosts / virtual machines / containers used to run the code may be distributed within the same availability zone (AZ) or in different AZs, each AZ comprising one cloud data center or multiple geographically proximate cloud data centers. Typically, a region may include multiple AZs.
[0161] Similarly, multiple hosts / virtual machines / containers used to run this code can be distributed within the same Virtual Private Cloud (VPC) or across multiple VPCs. Typically, a VPC is set up within a region. Communication between two VPCs within the same region, as well as between VPCs in different regions, requires a communication gateway to be set up within each VPC to enable interconnection between VPCs.
[0162] As an example of a hardware functional unit, a computing node may include at least one computing device, such as a server. Alternatively, a computing node may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The aforementioned PLD may be implemented using a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), generic array logic (GAL), or any combination thereof.
[0163] A compute node comprises multiple compute devices that can be distributed within the same region or across different regions. Similarly, these compute devices can be distributed within the same Availability Zone (AZ) or across different AZs. Likewise, they can be distributed within the same Virtual Private Cloud (VPC) or across multiple VPCs. These compute devices can be any combination of compute devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.
[0164] It should be noted that, in other embodiments, the steps implemented by the computing node, smart network card, and storage node can be specified as needed. The computing node, smart network card, and storage node can implement different functions in the cloud service system to achieve all the functions of the cloud service system.
[0165] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the various components described above can be found in the corresponding content of the aforementioned cloud service system embodiments, and will not be repeated here.
[0166] The above describes a cloud service system based on public cloud technology according to embodiments of this application. Correspondingly, embodiments of this application also provide a cloud service provision method based on public cloud technology. Figure 12 is a flowchart of a cloud service provision method based on public cloud technology provided by an embodiment of this application. As shown in Figure 12, the method includes:
[0167] Step 1201: The virtual machine manager obtains the first access request for the cloud disk in response to the virtual instance. It adds the identifier of the target computing node to the first access request to obtain the second access request, and sends the second access request to the first smart network card. The first access request and the second access request carry the disk information of the cloud disk. The first smart network card is one of multiple smart network cards.
[0168] Step 1202: The first smart network card, based on the identifier of the target computing node carried in the second access request and determining that the target computing node has access to the cloud disk, forwards the second access request to the target storage node indicated by the disk information. The target storage node is one of multiple storage nodes.
[0169] Step 1203: The target storage node responds to the second access request and sends an access response to the virtual instance through the first smart network card and the virtual machine manager.
[0170] Optionally, as shown in Figure 13, the method further includes:
[0171] Step 1204: The virtual machine manager obtains the first permission acquisition request sent by the virtual instance, adds the identifier of the target compute node to the first permission acquisition request to obtain the second permission acquisition request, and sends the second permission acquisition request to the second smart network interface card. Both the first permission acquisition request and the second permission acquisition request are used to obtain access permissions to the cloud disk. The second smart network interface card is one of multiple smart network interface cards.
[0172] Step 1205: The second smart network card forwards the second permission acquisition request to the management node of the storage node cluster.
[0173] Step 1206: When the target computing node has the conditions to access the cloud disk, the management node sends a first notification to multiple smart network cards based on the second permission acquisition request. The first notification is used to indicate that the target computing node has access permissions to the cloud disk.
[0174] Step 1207: Multiple smart network interface cards update their configurations based on the first notification. The updated configurations indicate that the target computing node has access to the cloud disk.
[0175] In one possible implementation, when the target computing node has the conditions to access the cloud disk, the management node sends a first notification to multiple smart network interface cards based on a second permission acquisition request. This includes: when the target computing node has the conditions to access the cloud disk, the management node generates metadata indicating that the target computing node has access permissions to the cloud disk based on the second permission acquisition request, persists the metadata, and sends the first notification to multiple smart network interface cards after the metadata persistence is completed.
[0176] Optionally, as shown in Figure 13, the method further includes:
[0177] Step 1208: When the configuration information indicating access permissions to the cloud disk is lost, the third smart network interface card (NIC) obtains metadata and updates the configuration indicating access permissions to the cloud disk based on the metadata. The third smart NIC is one of multiple smart NICs.
[0178] Optionally, as shown in Figure 13, the method further includes:
[0179] Step 1209: The virtual machine manager obtains the first permission release request sent by the virtual instance, adds the identifier of the target compute node to the first permission release request to obtain the second permission release request, and sends the second permission release request to the fourth smart network interface card. Both the first permission release request and the second permission release request are used to indicate the cancellation of access permissions to the cloud disk. The fourth smart network interface card is one of multiple smart network interface cards.
[0180] Step 1210: The fourth smart network card forwards the second permission release request to the management node of the storage node cluster.
[0181] Step 1211: Based on the second permission release request, the management node sends a second notification to multiple smart network cards. The second notification is used to indicate the cancellation of access permissions to the cloud disk.
[0182] Step 1212: Multiple smart network interface cards update their configurations based on the second notification. The updated configurations indicate that the target computing node does not have access to the cloud disk.
[0183] In one possible implementation, the management node sends a second notification to multiple smart network interface cards (NICs) based on a second permission release request. This notification includes: the management node deleting metadata indicating that the target compute node has access to the cloud disk based on the second permission release request, and sending the second notification to the multiple smart NICs.
[0184] Optionally, the method further includes:
[0185] Step 1213: The virtual machine manager obtains the first permission clearing request sent by the virtual instance and sends the first permission clearing request to the fifth smart network interface card. The first permission clearing request is used to instruct the compute nodes where all virtual instances with cloud disks are located to cancel their access permissions to the cloud disks. The fifth smart network interface card is one of multiple smart network interfaces.
[0186] Step 1214: The fifth smart network card forwards the first permission clearing request to the management node of the storage node cluster.
[0187] Step 1215: Based on the first permission clearing request, the management node sends a third notification to multiple smart network cards. The third notification is used to instruct the compute nodes where all virtual instances with cloud disks mounted to revoke their access permissions to the cloud disks.
[0188] Step 1216: Multiple smart network interface cards update their configurations based on third-party notifications. The updated configurations indicate that all virtual instances with cloud disks mounted on them are located on compute nodes that do not have access permissions to the cloud disks.
[0189] In one possible implementation, the management node sends a third notification to multiple smart NICs based on a first permission clearing request, including: the management node deleting all metadata indicating that the compute nodes have access to the cloud disk based on the first permission clearing request, and sending a third notification to multiple smart NICs.
[0190] The above describes a computing node based on public cloud technology in the embodiments of this application. Correspondingly, the embodiments of this application also provide a cloud service provision method based on public cloud technology. This cloud service provision method is applied to a computing node. A virtual machine manager and virtual instances for implementing tenant services run on the computing node. The virtual instances are mounted with cloud disks obtained by simulating devices based on storage nodes. Figure 14 is a flowchart of a cloud service provision method provided in the embodiments of this application. As shown in Figure 14, the method includes:
[0191] Step 1401: The virtual machine manager obtains the first access request for the cloud disk in response to the virtual instance. It adds the identifier of the compute node to the first access request to obtain the second access request, and sends the second access request to the first smart network card. The first access request and the second access request carry the disk information of the cloud disk.
[0192] Step 1402: The virtual machine manager receives the access response sent by the first smart network card in response to the second access request.
[0193] In one possible implementation, as shown in Figure 15, the cloud service provision method further includes: Step 1403: The virtual machine manager obtains a first permission acquisition request sent by the virtual instance, adds the identifier of the compute node to the first permission acquisition request to obtain a second permission acquisition request, and sends the second permission acquisition request to the second smart network card. Both the first permission acquisition request and the second permission acquisition request are used to obtain access permissions to the cloud disk; Step 1404: The virtual machine manager receives the permission acquisition response sent by the second smart network card in response to the second permission acquisition request.
[0194] In one possible implementation, as shown in Figure 15, the cloud service provision method further includes: Step 1405: The virtual machine manager obtains the first permission release request sent by the virtual instance, adds the identifier of the compute node to the first permission release request to obtain the second permission release request, and sends the second permission release request to the fourth smart network card. Both the first permission release request and the second permission release request are used to indicate the cancellation of access permissions to the cloud disk; Step 1406: The virtual machine manager receives the permission release response sent by the fourth smart network card in response to the second permission release request.
[0195] In one possible implementation, the cloud service provision method further includes: step 1407, the virtual machine manager obtains the first permission clearing request sent by the virtual instance, and sends the first permission clearing request to the fifth smart network interface card, the first permission clearing request being used to instruct the compute nodes where all virtual instances mounted on the cloud disk reside to cancel their access permissions to the cloud disk, the fifth smart network interface card being one of multiple smart network interface cards; step 1408, the virtual machine manager receives the permission clearing response sent by the fifth smart network interface card in response to the first permission clearing request.
[0196] The above describes a smart network interface card (NIC) based on public cloud technology according to embodiments of this application. Correspondingly, embodiments of this application also provide a cloud service provision method based on public cloud technology, which is applied to a smart NIC. Figure 16 is a flowchart of a cloud service provision method provided by an embodiment of this application. As shown in Figure 16, the method includes:
[0197] Step 1601: The smart network card receives a second access request sent by the virtual machine manager. The second access request carries the disk information of the cloud disk requested by the virtual instance managed by the virtual machine manager and the identifier of the computing node where the virtual machine manager is located.
[0198] Step 1602: The smart network card determines whether the computing node where the virtual machine manager is located has access to the cloud disk based on the identifier of the target computing node carried in the second access request.
[0199] Step 1603: Under the condition that the computing node where the virtual machine manager is located has access to the cloud disk, the smart network card forwards the second access request to the target storage node indicated by the disk information.
[0200] Step 1604: The smart network card receives the access response from the target storage node in response to the second access request and sends the access response to the virtual machine manager.
[0201] In one possible implementation, as shown in Figure 17, the cloud service provision method further includes: step 1605, when the smart network card loses the configuration information indicating the access permissions of the cloud disk, it obtains the metadata used to indicate that the computing node has access permissions to the cloud disk, and updates the configuration indicating the access permissions of the cloud disk based on the metadata.
[0202] The above describes a storage node based on public cloud technology according to embodiments of this application. Correspondingly, embodiments of this application also provide a cloud service provision method based on public cloud technology, which is applied to the storage node. Figure 18 is a flowchart of a cloud service provision method provided by an embodiment of this application. As shown in Figure 18, the cloud service provision method includes:
[0203] Step 1801: The storage node obtains the second permission acquisition request sent by the smart network card. The second permission acquisition request carries the identifier of the computing node and is used to obtain the computing node's access permissions to the cloud disk obtained by device simulation based on the storage node.
[0204] Step 1802: The storage node obtains the identifier of the compute node carried in the request based on the second permission, and determines whether the compute node has the conditions to access the cloud disk.
[0205] Step 1803: When the computing node has the conditions to access the cloud disk, the storage node sends a first notification to the smart network card based on the second permission acquisition request. The first notification is used to indicate that the computing node has access permissions to the cloud disk.
[0206] In one possible implementation, when the computing node has the conditions to access the cloud disk, the storage node sends a first notification to the smart network interface card based on a second permission acquisition request, including: when the computing node has the conditions to access the cloud disk, the storage node generates metadata indicating that the computing node has access permissions to the cloud disk based on the second permission acquisition request, persists the metadata, and sends the first notification to the smart network interface card after the metadata persistence is completed.
[0207] In one possible implementation, as shown in Figure 19, the cloud service provision method further includes: step 1804, whereby the storage node obtains a second permission release request sent by the smart network card, the second permission release request carrying the identifier of the computing node, the second permission release request being used to indicate the cancellation of the computing node's access to the cloud disk; step 1805, whereby the storage node sends a second notification to the smart network card based on the second permission release request, the second notification being used to indicate the cancellation of the computing node's access to the cloud disk.
[0208] In one possible implementation, the storage node sends a second notification to the smart NIC based on a second permission release request, including: the storage node deleting metadata indicating that the compute node has access to the cloud disk based on the second permission release request, and sending the second notification to the smart NIC.
[0209] In one possible implementation, the cloud service provision method further includes: step 1806, whereby the storage node obtains a first permission clearing request sent by the smart network card, the first permission clearing request being used to instruct the compute nodes where all virtual instances mounted on the cloud disk are located to cancel their access permissions to the cloud disk; and step 1807, whereby the storage node sends a third notification to the smart network card based on the first permission clearing request, the third notification being used to instruct the compute nodes where all virtual instances mounted on the cloud disk are located to cancel their access permissions to the cloud disk.
[0210] In one possible implementation, the storage node sends a third notification to the smart network interface card (NIC) based on a first permission clearing request, including: the storage node deleting all metadata indicating that the compute node has access to the cloud disk based on the first permission clearing request, and sending the third notification to the smart NIC.
[0211] It should be noted that the order of steps in the cloud service provision method provided in this application embodiment can be appropriately adjusted, and steps can also be added or removed as appropriate. Any variations that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the protection scope of this application, and therefore will not be elaborated further.
[0212] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working process of each step described above can be referred to the corresponding content in the aforementioned cloud service system embodiments, and will not be repeated here.
[0213] The following provides examples illustrating the basic hardware structures involved in the embodiments of this application.
[0214] This application also provides a computing device 2000. As shown in FIG20, the computing device 2000 includes: a bus 2002, a processor 2004, a memory 2006, and a communication interface 2008. The processor 2004, the memory 2006, and the communication interface 2008 communicate with each other via the bus 2002. The computing device 2000 can be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in the computing device 2000.
[0215] Bus 2002 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, only one line is used in Figure 20, but this does not imply that there is only one bus or one type of bus. Bus 2002 can include pathways for transmitting information between various components of computing device 2000 (e.g., memory 2006, processor 2004, communication interface 2008).
[0216] Processor 2004 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).
[0217] The memory 2006 may include volatile memory, such as random access memory (RAM). The processor 2004 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).
[0218] The memory 2006 stores executable program code, which the processor 2004 executes to implement the functions of the aforementioned computing node, smart network card, and storage node, thereby realizing the cloud service provision method. In other words, the memory 2006 stores instructions for executing the cloud service provision method.
[0219] The communication interface 2008 uses transceiver modules, such as, but not limited to, network interface cards and transceivers, to enable communication between the computing device 2000 and other devices or communication networks.
[0220] This application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.
[0221] As shown in Figure 21, the computing device cluster includes at least one computing device 2000. The memory 2006 of one or more computing devices 2000 in the computing device cluster may store the same instructions for executing cloud service provisioning methods.
[0222] In some possible implementations, the memory 2006 of one or more computing devices 2000 in the computing device cluster may also store partial instructions for executing cloud service provision methods. In other words, a combination of one or more computing devices 2000 can jointly execute instructions for executing cloud service provision methods.
[0223] It should be noted that the memory 2006 in different computing devices 2000 within the computing device cluster can store different instructions, each used to execute a portion of the functions of the cloud service providing device. That is, the instructions stored in the memory 2006 of different computing devices 2000 can implement the functions of one or more modules among the computing nodes, smart network interface cards, and storage nodes.
[0224] In some possible implementations, one or more computing devices in a computing device cluster can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc. Figure 22 illustrates one possible implementation. As shown in Figure 22, two computing devices 2000A and 2000B are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device. In this type of possible implementation, the memory 2006 in computing device 2000A stores instructions for performing the functions of a computing node and a smart network interface card (NIC). Simultaneously, the memory 2006 in computing device 2000B stores instructions for performing the functions of a storage node.
[0225] The connection method between the computing device clusters shown in Figure 22 can be considered as follows: taking into account that the cloud service provision method provided in this application requires a large amount of data storage, the function implemented by the storage node is to be performed by the computing device 2000B.
[0226] It should be understood that the functions of computing device 2000A shown in Figure 22 can also be performed by multiple computing devices 2000. Similarly, the functions of computing device 2000B can also be performed by multiple computing devices 2000.
[0227] This application also provides another computing device cluster. The connection relationship between the computing devices in this computing device cluster can be similarly referred to the connection method of the computing device clusters in Figures 21 and 22. The difference is that the memory 2006 of one or more computing devices 2000 in this computing device cluster can store the same instructions for executing the cloud service provision method.
[0228] In some possible implementations, the memory 2006 of one or more computing devices 2000 in the computing device cluster may also store partial instructions for executing cloud service provision methods. In other words, a combination of one or more computing devices 2000 can jointly execute instructions for executing cloud service provision methods.
[0229] This application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions capable of running on a computing device or stored on any usable medium. When the computer program product is run on at least one computing device, it causes the at least one computing device to perform a cloud service provisioning method.
[0230] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that a computing device can store, or a data storage device such as a data center that includes one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct the computing device to perform a cloud service provision method, or instruct the computing device to perform a cloud service provision method.
[0231] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.
[0232] It should be noted that all information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.), and signals involved in this application have been authorized by the user or fully authorized by all parties, and the collection, use, and processing of related data must comply with the relevant laws, regulations, and standards of the relevant countries and regions. For example, the raw data and executable code involved in this application were obtained with full authorization.
[0233] In the embodiments of this application, the terms "first," "second," and "third" are used for descriptive purposes only and should not be construed as indicating or implying relative importance. The term "at least one" refers to one or more, and the term "multiple" refers to two or more, unless otherwise expressly defined.
[0234] In this application, the term "and / or" is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, or B existing alone. Additionally, the character " / " in this document generally indicates that the preceding and following related objects have an "or" relationship.
[0235] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of this invention.
Claims
1. A cloud service system based on public cloud technology, characterized in that, The cloud service system includes: a computing node cluster, a smart network card cluster, and a storage node cluster. The computing node cluster includes multiple computing nodes, the smart network card cluster includes multiple smart network cards, the storage node cluster includes multiple storage nodes, and the multiple computing nodes include a target computing node. The target computing node runs a virtual machine manager and a virtual instance for implementing tenant services. The virtual instance is mounted with a cloud disk obtained by simulating the device based on the storage node. The virtual machine manager is used to obtain the first access request of the virtual instance for the cloud disk, add the identifier of the target computing node to the first access request to obtain a second access request, and send the second access request to the first smart network card. The first access request and the second access request carry the disk information of the cloud disk. The first smart network card is one of the plurality of smart network cards. The first smart network interface card is used to forward the second access request to the target storage node indicated by the disk information, provided that the target computing node has access to the cloud disk based on the identifier of the target computing node; the target storage node is one of the plurality of storage nodes. The target storage node is used to respond to the second access request and send an access response to the virtual instance through the first smart network card and the virtual machine manager.
2. The system as described in claim 1, characterized in that, The virtual machine manager is also used to obtain a first permission acquisition request sent by the virtual instance, add the identifier of the target computing node to the first permission acquisition request to obtain a second permission acquisition request, and send the second permission acquisition request to the second smart network card. Both the first permission acquisition request and the second permission acquisition request are used to obtain access permissions to the cloud disk. The second smart network card is one of the plurality of smart network cards. The second smart network interface card is used to forward the second permission acquisition request to the management node of the storage node cluster; When the target computing node has the conditions to access the cloud disk, the management node is used to send a first notification to the plurality of smart network cards based on the second permission acquisition request. The first notification is used to indicate that the target computing node has access to the cloud disk. The plurality of smart network interface cards are used to update their own configurations based on the first notification, and the updated configurations indicate that the target computing node has access to the cloud disk.
3. The system as described in claim 2, characterized in that, The management node is specifically used to generate metadata indicating that the target computing node has access to the cloud disk based on the second permission acquisition request when the target computing node has the conditions to access the cloud disk, persist the metadata, and send the first notification to the plurality of smart network cards after the persistence of the metadata is completed.
4. The system as described in claim 3, characterized in that, The third smart network interface card (NIC) is used to obtain the metadata when the configuration information indicating the access permissions of the cloud disk is lost, and to update the configuration indicating the access permissions of the cloud disk based on the metadata. The third smart NIC is one of the plurality of smart NICs.
5. The system as described in any one of claims 1 to 4, characterized in that, The virtual machine manager is also used to obtain a first permission release request sent by the virtual instance, add the identifier of the target computing node to the first permission release request to obtain a second permission release request, and send the second permission release request to the fourth smart network interface card. Both the first permission release request and the second permission release request are used to indicate the cancellation of access permissions to the cloud disk. The fourth smart network interface card is one of the plurality of smart network interface cards. The fourth smart network interface card is used to forward the second permission release request to the management node of the storage node cluster; The management node is used to send a second notification to the plurality of smart network cards based on the second permission release request, and the second notification is used to instruct the cancellation of access permissions to the cloud disk; The plurality of smart network interface cards are used to update their own configurations based on the second notification, and the updated configurations indicate that the target computing node does not have access to the cloud disk.
6. The system as described in claim 5, characterized in that, The management node is specifically used to delete metadata indicating that the target computing node has access to the cloud disk based on the second permission release request, and to send the second notification to the plurality of smart network cards.
7. The system as described in any one of claims 1 to 6, characterized in that, The virtual machine manager is also used to obtain the first permission clearing request sent by the virtual instance, and send the first permission clearing request to the fifth smart network card. The first permission clearing request is used to instruct the compute nodes where all virtual instances mounted on the cloud disk are located to cancel the access permissions of the cloud disk to the cloud disk. The fifth smart network card is one of the plurality of smart network cards. The fifth smart network interface card is used to forward the first permission clearing request to the management node of the storage node cluster; The management node is used to send a third notification to the plurality of smart network cards based on the first permission clearing request. The third notification is used to instruct the computing nodes where all virtual instances mounted on the cloud disk are located to cancel their access permissions to the cloud disk. The multiple smart network interface cards are used to update their own configurations based on the third notification. The updated configuration indicates that the computing nodes where all virtual instances mounted on the cloud disk reside do not have access permissions to the cloud disk.
8. The system as described in claim 7, characterized in that, The management node is specifically used to delete all metadata indicating that the computing node has access to the cloud disk based on the first permission clearing request, and to send the third notification to the multiple smart network cards.
9. A method for providing cloud services based on public cloud technology, characterized in that, The method is applied to a cloud service system, which includes: a compute node cluster, a smart NIC cluster, and a storage node cluster. The compute node cluster includes multiple compute nodes, the smart NIC cluster includes multiple smart NICs, and the storage node cluster includes multiple storage nodes. The multiple compute nodes include a target compute node. The target compute node runs a virtual machine manager and a virtual instance for implementing tenant services. The virtual instance is mounted with a cloud disk obtained by simulating devices based on the storage node. The method includes: The virtual machine manager obtains the first access request of the virtual instance for the cloud disk, adds the identifier of the target computing node to the first access request to obtain a second access request, and sends the second access request to the first smart network card. The first access request and the second access request carry the disk information of the cloud disk. The first smart network card is one of the plurality of smart network cards. If the first smart network card determines that the target computing node has access to the cloud disk based on the identifier of the target computing node carried in the second access request, the second access request is forwarded to the target storage node indicated by the disk information, and the target storage node is one of the plurality of storage nodes; The target storage node responds to the second access request and sends an access response to the virtual instance through the first smart network card and the virtual machine manager.
10. The method as described in claim 9, characterized in that, The method further includes: The virtual machine manager obtains the first permission acquisition request sent by the virtual instance, adds the identifier of the target computing node to the first permission acquisition request to obtain a second permission acquisition request, and sends the second permission acquisition request to the second smart network interface card. Both the first permission acquisition request and the second permission acquisition request are used to obtain access permissions to the cloud disk. The second smart network interface card is one of the plurality of smart network interface cards. The second smart network interface card forwards the second permission acquisition request to the management node of the storage node cluster; When the target computing node has the conditions to access the cloud disk, the management node sends a first notification to the plurality of smart network cards based on the second permission acquisition request. The first notification is used to indicate that the target computing node has access to the cloud disk. The multiple smart network interface cards update their configurations based on the first notification, and the updated configurations indicate that the target computing node has access to the cloud disk.
11. The method as described in claim 10, characterized in that, When the target computing node has the conditions to access the cloud disk, the management node sends a first notification to the plurality of smart network cards based on the second permission acquisition request, including: When the target computing node has the conditions to access the cloud disk, the management node generates metadata indicating that the target computing node has access to the cloud disk based on the second permission acquisition request, persists the metadata, and sends the first notification to the plurality of smart network cards after the metadata persistence is completed.
12. The method as described in claim 11, characterized in that, The method further includes: When the configuration information indicating access permissions to the cloud disk is lost, the third smart network interface card (NIC) obtains the metadata and updates the configuration indicating access permissions to the cloud disk based on the metadata. The third smart NIC is one of the plurality of smart NICs.
13. The method according to any one of claims 9 to 12, characterized in that, The method further includes: The virtual machine manager obtains the first permission release request sent by the virtual instance, adds the identifier of the target computing node to the first permission release request to obtain a second permission release request, and sends the second permission release request to the fourth smart network interface card. Both the first permission release request and the second permission release request are used to indicate the cancellation of access permissions to the cloud disk. The fourth smart network interface card is one of the plurality of smart network interface cards. The fourth smart network card forwards the second permission release request to the management node of the storage node cluster; Based on the second permission release request, the management node sends a second notification to the plurality of smart network cards, the second notification being used to instruct the cancellation of access permissions to the cloud disk; The multiple smart network interface cards update their configurations based on the second notification, and the updated configurations indicate that the target computing node does not have access to the cloud disk.
14. The method as described in claim 13, characterized in that, Based on the second permission release request, the management node sends a second notification to the plurality of smart network interface cards, including: The management node deletes the metadata indicating that the target computing node has access to the cloud disk based on the second permission release request, and sends the second notification to the plurality of smart network cards.
15. The method according to any one of claims 9 to 14, characterized in that, The method further includes: The virtual machine manager obtains the first permission clearing request sent by the virtual instance and sends the first permission clearing request to the fifth smart network interface card. The first permission clearing request is used to instruct the compute nodes where all virtual instances mounted on the cloud disk are located to cancel the access permissions of the cloud disk to the cloud disk. The fifth smart network interface card is one of the plurality of smart network interface cards. The fifth smart network card forwards the first permission clearing request to the management node of the storage node cluster; Based on the first permission clearing request, the management node sends a third notification to the plurality of smart network cards. The third notification is used to instruct the computing nodes where all virtual instances mounted on the cloud disk reside to cancel their access permissions to the cloud disk. The multiple smart network interface cards update their configurations based on the third notification. The updated configurations indicate that none of the computing nodes containing the virtual instances mounted on the cloud disk have access to the cloud disk.
16. The method as described in claim 15, characterized in that, Based on the first permission clearing request, the management node sends a third notification to the plurality of smart network interface cards, including: The management node deletes all metadata indicating that the computing node has access to the cloud disk based on the first permission clearing request, and sends the third notification to the multiple smart network cards.
17. A computing device cluster, characterized in that, The system includes multiple computing devices, each comprising multiple processors and multiple memories, the multiple memories storing program instructions, and the multiple processors executing the program instructions to cause the cluster of computing devices to perform the method of any one of claims 9 to 16.
18. A computer-readable storage medium, characterized in that, Includes program instructions that, when executed on a computing device, cause the computing device to perform the method as described in any one of claims 9 to 16.
19. A computer program product containing instructions, characterized in that, When the instruction is executed by the computing device cluster, the computing device cluster causes the computing device cluster to perform the method as described in any one of claims 9 to 16.
Citation Information
Patent Citations
Secure access method for virtual machine and virtual machine system
CN105303102A
Access object authentication method, device and system
CN116361845A
Method and device for accessing storage node and computer equipment
CN116560785A
Distributed storage system virtual and storage data migration
US20180329647A1