Virtual machine construction method and device based on local disk pooling, electronic equipment and storage medium

Through Ethernet network and DPU offload technology, the problem of high cost of the cable disk ratio limit and the entire cabinet pooling solution is solved, low-cost and flexible local disk resource configuration is achieved, resource utilization and data transmission efficiency are improved, and the existing Ethernet environment is adapted.

CN120353537APending Publication Date: 2025-07-22BEIJING BAIDU NETCOM SCI & TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510417214.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-03
Publication Date
2025-07-22

AI Technical Summary

Technical Problem

In the prior art, the limitation of the cushion ratio leads to waste of resources, the entire cabinet pooling solution is expensive and incompatible, and the local disk pooling solution based on the IB network is costly and incompatible with the existing Ethernet environment, making it difficult to meet the needs of cloud manufacturers for efficient utilization and flexible configuration of hardware resources.

Method used

Local disk pooling is realized through Ethernet network, NVMe Over Fabric technology is used to use RoCE or TCP protocols, combined with the data processing unit (DPU) offload initiator service, to achieve low-cost and flexible local disk resource configuration, support the flexible provisioning of NVMe disk resources, and interact with other nodes in the Ethernet environment.

Benefits of technology

It improves resource utilization, reduces operation and maintenance and development costs, realizes compatibility with existing Ethernet networks, supports flexible configuration of different hardware, and improves data IO and transmission efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120353537A_ABST
    Figure CN120353537A_ABST
Patent Text Reader

Abstract

The invention provides a virtual machine construction method and device based on local disk pooling, electronic equipment and a storage medium, and relates to the technical field of cloud computing, in particular to the technical field of local disk pooling. The method comprises the following steps: allocating processor resources required by a virtual machine from a computing node, wherein the computing node has an initiator service; on the basis of the initiating end service, pooling disk resources are requested from a storage node with a target end service through the Ethernet; and obtaining a pooling disk resource returned by the target end service, and constructing a virtual machine based on the processor resource and the pooling disk resource.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of cloud computing technology, specifically to the field of local disk pooling technology, and particularly to a method, apparatus, electronic device, and storage medium for constructing virtual machines based on local disk pooling. Background Art

[0002] In the current field of cloud computing technology, especially when it comes to local disk pooling, the rationality and efficiency of resource allocation face many challenges.

[0003] First, the core-disk ratio limitation leads to resource waste. Due to the limitation of the core-disk ratio, there are often situations where the CPU or local disks are left over, resulting in a large amount of hardware resources being idled and wasted.

[0004] Second, existing whole rack pooling solutions have defects. Whole rack pooling solutions require special management and configuration by introducing large special equipment components, which undoubtedly greatly increases the operation and maintenance and development costs, and thus greatly limits the promotion of this solution in practical applications.

[0005] Finally, the local disk pooling solution based on the InfiniBand (IB) network has limitations. The local disk pooling solution based on the IB network requires the construction of a large-scale IB basic network, which is costly. Moreover, it is not compatible with the existing Ethernet network environment, which makes it unable to be promoted in the existing cloud environment.

[0006] In summary, the current technical solutions cannot well meet the requirements of cloud providers for the efficient utilization and flexible configuration of hardware resources, and there is an urgent need for a new local disk pooling solution to solve the problems of high cost, poor compatibility, and insufficient adaptability in the existing technology. Summary of the Invention

[0007] The present disclosure provides a method, apparatus, electronic device, and storage medium for constructing virtual machines based on local disk pooling.

[0008] According to one aspect of the present disclosure, there is provided a method for constructing a virtual machine based on local disk pooling, which is applied to a computing node. The method is characterized in that the method includes:

[0009] Allocating processor resources required for a virtual machine from the computing node, where the computing node has an initiator service;

[0010] Based on the initiator service, requesting pooled disk resources from a storage node having a target service through Ethernet;

[0011] Obtaining the pooled disk resources returned by the target service, and constructing a virtual machine based on the processor resources and the pooled disk resources.

[0012] Optionally, the computing node is an offloading computing node. The computing node has a data processing unit and a central processing unit. The initiator service is offloaded to the data processing unit for running, and the processor cores of the central processing unit are used to build virtual machines.

[0013] Optionally, offloading the initiator service to the data processing unit for running includes:

[0014] Implementing the NVMe-oF protocol on the data processing unit;

[0015] Implementing hard offloading of the RoCE protocol and the TCP protocol on the data processing unit.

[0016] Optionally, the initiator service establishes a connection with the target service by using a kernel module or a storage performance development kit.

[0017] Optionally, when the initiator service is connected to the target service through Ethernet, the transmission protocol used is RoCE or TCP.

[0018] Optionally, before requesting pooled disk resources, the computing node pre-detects and evaluates the network card bandwidth of the computing node to determine the upper limit of the number of pooled disks that can be requested.

[0019] Optionally, before requesting pooled disk resources, the computing node pre-determines the specification parameters of the virtual machine according to the service scenario, and determines the number of pooled disks required according to the specification parameters.

[0020] Optionally, after obtaining the pooled disk resources returned by the target service, perform initialization configuration on the pooled disk resources to ensure that they can be normally recognized and used by the virtual machine.

[0021] Optionally, after the virtual machine is built, the initiator service is configured to send data I / O requests to the target service through Ethernet, and the target service is configured to return the data obtained by processing the data I / O requests to the initiator service.

[0022] Optionally, after the virtual machine is built, perform performance monitoring on the virtual machine. When the performance does not meet the preset standard, dynamically adjust the allocation of processor resources and pooled disk resources.

[0023] According to another aspect of the present disclosure, a method for building a virtual machine based on local disk pooling is provided, which is applied to a storage node. The method is characterized in that the method includes:

[0024] Receiving a pooled disk resource request from a computing node from the storage node, where the storage node has a target service;

[0025] Allocate pooled disk resources from the storage node based on the pooled disk resource request;

[0026] Return the pooled disk resources to the computing node via Ethernet based on the target - end service; the pooled disk resources are used to build virtual machines on the computing node.

[0027] Optionally, the storage node pre - online at least one local disk deployed locally as a pooled disk.

[0028] Optionally, the storage node is a bare - metal product, the computing node has a data processing unit and a central processing unit, and the initiator service of the computing node is unloaded to run on the data processing unit; the initiator service supports the pooled disk of the bare - metal product through hardware emulation.

[0029] Optionally, allocating pooled disk resources from the storage node includes:

[0030] Use a polling, priority, or load - balancing allocation algorithm to determine the specifically allocated pooled disk.

[0031] Optionally, when the pooled disk resources of the storage node are insufficient, send a resource warning message to the initiator service.

[0032] According to another aspect of the present disclosure, there is provided a virtual machine construction device based on local disk pooling for a computing node, and the device includes:

[0033] A processor resource allocation module that allocates the processor resources required for a virtual machine from the computing node, and the computing node has an initiator service;

[0034] A pooled disk resource request module that requests pooled disk resources from a storage node with a target - end service via Ethernet based on the initiator service;

[0035] A virtual machine construction module that obtains the pooled disk resources returned by the target - end service and constructs a virtual machine based on the processor resources and the pooled disk resources.

[0036] According to another aspect of the present disclosure, there is provided a virtual machine construction device based on local disk pooling for a storage node, and the device includes:

[0037] A pooled disk request receiving module that receives a pooled disk resource request from a computing node from the storage node, and the storage node has a target - end service;

[0038] A pooled disk resource allocation module that allocates pooled disk resources from the storage node based on the pooled disk resource request;

[0039] The pooled disk resource return module returns the pooled disk resource to the computing node via Ethernet based on the target-end service; the pooled disk resource is used to build virtual machines in the computing node.

[0040] According to another aspect of the present disclosure, there is provided an electronic device, including:

[0041] At least one processor; and

[0042] A memory communicatively connected to the at least one processor; wherein,

[0043] The memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the method described in any one of the above technical solutions.

[0044] According to another aspect of the present disclosure, there is provided a non-transitory computer-readable storage medium storing computer instructions, wherein the computer instructions are used to cause the computer to execute the method described in any one of the above technical solutions.

[0045] According to another aspect of the present disclosure, there is provided a computer program product, including a computer program, and the computer program implements the method described in any one of the above technical solutions when executed by a processor.

[0046] The beneficial technical effects of the present disclosure are as follows:

[0047] First, for the problem of resource waste caused by the core-disk ratio limitation, the present disclosure pools the local disk resources without binding them to the local processor, making the configuration of the sold virtual machine instances more flexible, supporting the control plane to allocate NVMe disk resources more flexibly, ultimately improving the resource sales rate, reducing costs, and increasing resource utilization.

[0048] Second, for the problem of defects in the existing whole cabinet pooling solution, the present disclosure applies the NVMe Over Fabric technology based on the Ethernet network with the help of the RoCE or TCP protocol to implement a low-cost local disk pooling solution, which does not rely on customized hardware, can adapt to most general-purpose server platforms, and avoids introducing components such as SAS Switch and SAS cards that are not common to ordinary servers and require special management and configuration, reducing the operation and maintenance and development costs.

[0049] Third, for the limitation problem of the local disk pooling solution based on the IB network, the present invention implements local disk pooling based on the Ethernet network, is compatible with the existing Ethernet network environment, and can select different communication links (RoCE or TCP links) according to different hardware supports to complete the interaction with other nodes, and can be promoted on the cloud.

[0050] Finally, to further improve the efficiency of data I / O and transmission in an Ethernet environment, the present invention offloads the initiator service and the target service to the DPU for execution, thereby greatly improving the efficiency of data I / O and transmission.

[0051] It should be understood that the content described in this part is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it used to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0052] The drawings are used to better understand the solution and do not constitute a limitation to the present disclosure. Among them:

[0053] Figure 1 is a schematic diagram of an exemplary computing node and a storage node;

[0054] Figure 2 is a schematic diagram of the steps of a virtual machine construction method based on local disk pooling applied to a computing node in an embodiment of the present disclosure;

[0055] Figure 3 is a schematic diagram of an exemplary data processing unit and related components;

[0056] Figure 4 is a schematic diagram of the steps of a virtual machine construction method based on local disk pooling applied to a storage node in an embodiment of the present disclosure;

[0057] Figure 5 The principle block diagram of a virtual machine construction device based on local disk pooling applied to a computing node in an embodiment of the present disclosure;

[0058] Figure 6 The principle block diagram of a virtual machine construction device based on local disk pooling applied to a storage node in an embodiment of the present disclosure;

[0059] Figure 7 is a block diagram of an electronic device used to implement the virtual machine construction method based on local disk pooling of the embodiments of the present disclosure. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0060] The following describes exemplary embodiments of the present disclosure in conjunction with the accompanying drawings. Various details of the embodiments of the present disclosure are included to assist understanding, and they should be considered merely exemplary. Therefore, those of ordinary skill in the art should recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of the present disclosure. Similarly, for clarity and conciseness, the description of well-known functions and structures is omitted below.

[0061] The following part explains some terms related to the present disclosure.

[0062] NVMe: Non-Volatile Memory Express, non-volatile memory host controller interface specification.

[0063] NVMe-oF: NVMe over Fabrics, uses the NVMe protocol to connect the host to the storage device through a network architecture or network structure. NVMe-oF can be implemented based on TCP / IP protocol, Fibre Channel (FC) protocol, InfiniBand (IB) protocol, RoCE protocol, etc. Abbreviated as NVMf.

[0064] NVMe transport layer: a protocol layer that provides reliable data, commands, and responses between the host and the NVM subsystem. It is located above the Internet Protocol (IP) layer and is independent of the underlying network protocol and the actual network connection. In the local disk scenario, the transmission type is PCIe (Peripheral Component Interconnect Express), and in the pooled scenario, the transmission type can be RDMA (Remote Direct Memory Access) or TCP, etc.

[0065] Storage node: A storage node can be a general-purpose server with multiple local storage disks mounted on it. For example, a platform with low computing power usually mounts multiple NVMe solid-state drives and is equipped with 100G to 200G network cards. It provides network-based (RDMA or TCP) disk export services for computing nodes and is the party that listens to the connection.

[0066] Local disk: A local disk is a storage device that comes with the server and is directly installed inside the server to provide local storage for the server. In the server sales scenario with a local disk, there is a limit on the core-to-disk ratio between the local disk and the CPU, which results in the CPU and local disk not being sold in perfect combination when selling virtual machines. There is often a situation where there is a surplus of CPU or local disk, resulting in a waste of resources. In the local disk pooling solution based on NVMe-oF, local disk resources are pooled, and storage nodes deploy multiple local disk NVMe SSDs (Solid State Drives). The local disks are provided to remote computing nodes through the Target service, realizing the decoupling of storage resources from the CPU and enabling flexible resource allocation.

[0067] Pooling: Pooling is a resource management and optimization technology in the computer field. It brings together multiple similar resources to form a "resource pool", and then dynamically allocates and manages them according to demand to improve resource utilization and overall system performance.

[0068] Pooling Disk: In the local disk pooling solution based on NVMe-oF, the pooling disk is a virtual disk resource formed by integrating the local disk resources of storage nodes, which can be flexibly allocated. In this solution, the storage node uses a low-computing-power platform and deploys multiple NVMe SSDs. These local disks are exported through the Target service and become resources that can be provided to remote computing nodes. When a customer requests a virtual machine with a certain pooling disk specification, the control plane will activate the corresponding number of pooling disks on the storage node. After the virtual machine is launched on the computing node, it connects to these pooling disks to form the target virtual machine. The emergence of the pooling disk releases the hardware resource binding between the CPU and the local disk, supports the control plane to allocate NVMe disk resources more flexibly, and improves resource utilization.

[0069] Data Processing Unit: The Data Processing Unit (DPU) is a component commonly equipped in new-generation servers. It can run certain control logic independently of the server. Cloud service providers usually offload their business logic to the card, no longer occupying server resources. In the offloading computing node, the DPU plays a significant role. It can take over the underlying data processing tasks such as connecting to the storage node and data transmission, allowing the CPU to focus on the computing tasks of the virtual machine, thereby improving the performance and efficiency of the computing node.

[0070] Computing Node: A computing node can be a device such as a server or a worker that needs to access storage resources. For example, the computing node can be platforms such as 8350C, 7W83, 6271, etc. The virtual machine runs on the computing node, and the remote pooling disk is mounted on the virtual machine. It is the party that initiates the connection actively. According to whether it is equipped with a DPU and the distribution method of computing and data processing tasks, the computing node can be divided into non-offloading type and offloading type.

[0071] Non-offloading Computing Node: The non-offloading computing node is not equipped with a DPU, and all computing tasks and data processing tasks such as interacting with the storage node are mainly completed by traditional general-purpose processors (such as the CPU in an x86 physical machine). In the non-offloading computing node, an ordinary x86 physical machine undertakes multiple functions. It not only has to handle the regular computing work required for the virtual machine to run but also is responsible for communicating with the storage node to obtain and store data, etc.

[0072] Offloading Compute Node: The offloading compute node is equipped with a DPU. Some of the data processing and network tasks that were originally handled by the CPU are offloaded to the DPU for execution, and the CPU can then focus more on the computing tasks of the virtual machine. In the offloading compute node, the DPU can take over relatively low-level and complex data processing tasks such as connecting to the storage node and data transmission. In this way, the CPU can be freed from these heavy data processing tasks and invest more resources and energy in the core computing tasks of the virtual machine, thereby improving the performance and efficiency of the entire compute node. For example, in this solution, the offloading compute node server is equipped with a DPU, and operations such as connecting to the storage node are completed through the DPU, enabling the CPU to better provide computing support for the virtual machine.

[0073] Initiator and Target: The Target service is on the storage node. Its role is to receive requests from the Initiator, process the requests, and return the data to the Initiator. The Initiator usually runs on the compute node. The Initiator on the compute node converts the I / O requests of the local system into data packets in the NVMe-oF protocol format and then sends them to the storage device through the network.

[0074] Direct Memory Access: Direct Memory Access, DMA. In this article, direct memory access refers to the hardware device responsible for DMA, which is responsible for moving data from the DPU to the Host memory or from the Host memory to the DPU.

[0075] Storage Performance Development Kit: Storage Performance Development Kit, SPDK. SPDK is a set of tools and libraries for improving storage performance. In the local disk pooling scenario, SPDK can enable the compute node to efficiently connect to the storage node and obtain pooled disk resources. For the offloading compute node, although the initiator service is offloaded to the DPU for operation, SPDK is still involved. In processes such as pooling disk mounting, it assists related components to complete complex operations, access the remote initiator node, and establish an RDMA connection to mount the pooled disk.

[0076] CX5, CX6, CX7: A series of RDMA network cards from Mellanox under NVIDIA, which play an important role in cross-machine communication.

[0077] RDMA: RDMA stands for Remote Direct Memory Access, which is a computer network technology that enables computers in a network to directly access the memory of other computers without going through the regular data processing process of the operating system, achieving efficient data transmission.

[0078] RoCE: RDMA over Converged Ethernet, which is Remote Direct Memory Access over converged Ethernet. RoCE belongs to the specific implementation protocol of RDMA technology in the Ethernet environment. It utilizes the Ethernet infrastructure and, through special network adapters and drivers, realizes the RDMA function. In the local disk pooling solution of the document, RoCE can be used as a transport protocol option to achieve efficient data transmission between storage nodes and computing nodes by leveraging the extensive deployment advantages of Ethernet.

[0079] In the existing technologies for local disk pooling, the rationality and efficiency of resource allocation face severe challenges. The core-disk ratio limitation leads to idle waste of CPU or local disk resources; the whole cabinet pooling solution has high operation and maintenance and development costs due to the introduction of special components, restricting its promotion; the local disk pooling solution based on the IB network requires large-scale construction of the IB basic network, with high costs and incompatibility with the existing Ethernet environment, making it impossible to be promoted in the existing cloud environment. These problems make it difficult for the existing technologies to meet the requirements of cloud providers for the efficient utilization and flexible configuration of hardware resources.

[0080] See Figure 1 , Figure 1 is a schematic diagram of an exemplary computing node and storage node. Figure 1 Shows the interaction architecture and data transmission path between the computing node and the storage node, providing a visual reference for understanding the technical details of the solution.

[0081] Figure 1 Presents the collaboration architecture of the computing node and the storage node in the local disk pooling scenario. The computing node is responsible for running virtual machines and providing the Initiator service; the storage node is equipped with multiple NVMe SSDs and shares storage resources through the Target service. The two achieve remote access and pooling of storage resources through Ethernet with the help of the RDMA or TCP protocol.

[0082] Figure 1 The computing node of has the Initiator service. The Initiator service uses a kernel module or an SPDK component to connect to the storage node. The connection is made through a CX5 / 6 / 7 network card connected to the PCIe bus of the computing node.

[0083] Figure 1 The storage node of has the Target service. The Target service connects to the computing node through a kernel module or an SPDK component. The connection is made through a CX6 / 7 network card connected to the PCIe bus of the storage node. The storage node is connected to multiple SSD pooling disks through the PCIe bus.

[0084] Figure 1Data transfer path and protocol: The data transfer is based on the NVMe-oF protocol, and the protocol type is RoCE or TCP. For example, when using RoCE, the TCP / RoCE protocol implemented by SPDK's NVMe-oF connects to the target service of the storage node, and with the help of network card hardware such as CX5 / 6 / 7, data is transferred at high speed between the computing node and the storage node.

[0085] During Figure 1 the entire process, the virtual machine can perform various operations on the pooled disks of the remote storage node just like accessing local NVMe devices, such as reading and writing data, executing commands, etc., realizing the local access experience of the remote pooled disks in the virtual machine, and improving the utilization rate and flexibility of resources.

[0086] The present disclosure provides a method for constructing a virtual machine based on local disk pooling for a computing node, as shown in Figure 2 shown. Figure 2 is a schematic diagram of the steps of the method for constructing a virtual machine based on local disk pooling in an embodiment of the present disclosure. This method is applied to a computing node, and the method includes:

[0087] Step S201, allocate the processor resources required by the virtual machine from the computing node, and the computing node has an initiator service;

[0088] Step S202, based on the initiator service, request pooled disk resources from the storage node with a target service through Ethernet;

[0089] Step S203, obtain the pooled disk resources returned by the target service, and construct a virtual machine based on the processor resources and the pooled disk resources.

[0090] Figure 2 The technical solution shown has the beneficial effects of improving resource utilization rate, reducing costs, and enhancing configuration flexibility.

[0091] In step S201, the computing node allocates the processor resources required by the virtual machine, and its initiator service exists independently of the local disk resources. In step S202, the computing node requests pooled disk resources from the storage node based on the initiator service, which breaks through the fixed matching of the CPU and the local disk under the traditional core-disk ratio limit. Because in the traditional mode, the number of local disks is fixed, which may lead to the idle of CPU or local disk resources. In this solution, the computing node can flexibly obtain pooled disk resources according to actual needs. In step S203, after obtaining the pooled disk resources, a virtual machine is constructed with the processor resources, so that the originally idle resources can be utilized. Cloud providers can accurately combine processor resources and pooled disk resources according to the configuration requirements of different users for virtual machines, thereby reducing resource vacancy and waste and improving the overall utilization efficiency of hardware resources.

[0092] As can be seen from steps S201 - S203, this technical solution does not require the introduction of special large components (such as SAS Switch and SAS card) like the whole cabinet pooling solution, nor does it need to build a large - scale special basic network like the local disk pooling solution based on IB network. In step S202, resource requests are made through Ethernet, utilizing the general network infrastructure. This avoids the high management, configuration, operation, maintenance, and development costs brought by special components and networks, as well as the network construction cost, thereby saving a large amount of capital investment for cloud providers and improving economic efficiency.

[0093] For users with high CPU resource requirements and low storage requirements, more processor resources can be allocated, paired with fewer pooled disks; for users with high storage requirements and relatively low CPU requirements, the configuration is the opposite, so as to meet the differentiated requirements of different business scenarios for virtual machine configurations and make the configurations of sold virtual machine instances more diverse.

[0094] In one implementation, the computing node is an offloading computing node. The computing node has a data processing unit and a central processor. The initiator service is offloaded to the data processing unit for operation, and the processor cores of the central processor are used to build virtual machines.

[0095] By offloading the initiator service to the data processing unit, resource utilization and performance are optimized. Among them, the data processing unit is an important component specifically used to share specific tasks. When the initiator service is offloaded to the DPU for operation, the hardware accelerator is used to accelerate IO, thereby greatly improving the IO performance of the device. The data processing unit can efficiently complete these complex arithmetic operations with its own hardware acceleration function. For example, in a cloud computing environment, the data uploaded by users needs to be encrypted for storage to ensure data security. The data processing unit can quickly encrypt the data and transfer the encrypted data to the central processor for subsequent storage operations. Similarly, when users download data, the data processing unit is responsible for decompression operations, enabling the data to be presented to users in its original form. The processor cores of the central processor are mainly responsible for building virtual machines. These cores provide powerful computing and control capabilities for virtual machines, ensuring the efficient operation of virtual machines. When running complex database management systems or large - scale applications in virtual machines, the cores of the central processor can quickly process a large number of data requests and arithmetic tasks, guaranteeing the performance of virtual machines and meeting the requirements of users for the computing power of virtual machines.

[0096] In one implementation, the offloading of the initiator service to the data processing unit for operation includes:

[0097] Implement the NVMe - oF protocol on the data processing unit;

[0098] Implement the hard offloading of the RoCE protocol and the TCP protocol on the data processing unit.

[0099] The data processing unit (DPU) implements the NVMe-oF protocol through the collaborative work of multiple internal components. The specific process is as follows:

[0100] The NVMf accelerator performs protocol conversion: The NVMf Accelerater (NVMf protocol accelerator) in the DPU uses a programmable data processing chip to support the conversion between NVMe instructions and NVMf protocol data. NVMf is the abbreviation of NVMe over Fabrics (NVMe-oF). After configuration, it can independently process data plane IO instructions and support linkage with other accelerators to obtain data from other accelerators or forward data to other accelerators 1.

[0101] The network switching chip is responsible for communication: The Network eSwitch (programmable network switching chip) of the DPU provides Ethernet and IB network communication capabilities, is responsible for processing and distributing network data packets, and supports obtaining flow tables and pipeline configuration customization functions from the control plane. When implementing the NVMe-oF protocol, it is used to communicate with the remote Target node to ensure data transmission 2.

[0102] Related components collaborate to complete the operation: When the customer purchases a pooled disk, the control plane notifies the DPU to start the pooled disk mounting process. The NVMf Initiator Controller is responsible for interacting with the Target node, communicating through the Network eSwitch, completing the handshake and initial configuration with the Target node after the DPU allocates the pooled disk, and sending the configuration to the NVMf Accelerater to complete the data plane configuration. After that, the DMA device transfers the IO to the DPU card and passes it into the NVMf accelerator. The accelerator encapsulates the IO and sends it to the remote Target node for processing through the Network eSwitch, and reversely returns the response to the customer to complete the IO link.

[0103] Compared with traditional computing nodes, this solution has the following advantages:

[0104] (1) Less server resource occupancy. The initiator service runs on the DPU and does not occupy the high-performance CPU cores on the server. Moreover, the DPU has a higher energy efficiency ratio, so the overall resource overhead will be lower; with hardware acceleration, supporting TCP and RoCE protocols, the pooled disk is directly processed by hardware during IO, which can further reduce the IO latency and improve the IO performance, achieving a performance similar to that of a local disk.

[0105] (2) Platform independence: The business logic is deployed in a unified DPU operating environment, enabling adaptation to more server platforms and vendors.

[0106] As Figure 3 shown, the data processing unit has a DMA device, a PCI (Peripheral Component Interconnect) device simulator, an NVMf accelerator, and a network device. The data processing unit also has a software layer, including a simulation manager and an NVMf initiator controller. The data processing unit interacts with the NVMe driver via the PCIe bus.

[0107] The simulation manager is used to encapsulate the hardware simulation device capabilities of the data processing unit, manage resources such as Message Signaled Interrupts-Extended (MSI-x) and Hardware Queue on the data processing unit, and is responsible for processing various control instructions received by the data processing unit simulation device, completing the initialization and interactive configuration with the host driver, and finishing the control plane work.

[0108] The NVMf initiator controller is responsible for interacting with the Target node, conducting network communication through the network device, completing the handshake and initial configuration with the Target node after the DPU allocates the pooled disk, and sending the configuration to the NVMf accelerator to complete the data plane configuration.

[0109] In an exemplary pooled disk mounting process, when a customer purchases a pooled disk, the control plane immediately notifies the data processing unit (DPU) to start the pooled disk mounting process.

[0110] First, the NVMf initiator controller actively accesses the remote Target node, establishes a Remote Direct Memory Access (RDMA) connection, and mounts the corresponding pooled disk. Subsequently, the controller sends the connection information to the firmware, which is then unloaded into the NVMf accelerator. At this time, the status of the hardware accelerator is configured, and the corresponding context is encapsulated as an NVMf block device and marked as having hardware acceleration enabled.

[0111] Next, the NVMf initiator controller notifies the simulation manager to start creating a Physical Function (PF). The simulation manager interacts with the DPU firmware to simulate a new PCI device for the host. After the host senses the Hot-Plug event of the PCI device, it registers the PCI device with the kernel and initializes it. Then, the kernel sends a probe instruction to the PCI device and waits for a response.

[0112] The NVMf initiator controller configures the physical function to associate it with the NVMf block device, thus completing the configuration of the PCI device. The physical function responds to the kernel's probing instruction, informing the host that the device is a Non-Volatile Memory Host Controller Interface Specification (NVMe) device. After receiving the response, the kernel starts to load the NVMe driver and completes the negotiation process with the DPU. At this point, the host (i.e., the customer's environment) can sense that a new NVMe disk has been connected.

[0113] When the customer performs read and write operations on the NVME device, the Direct Memory Access (DMA) device transfers the IO data to the DPU card and passes it to the NVMf accelerator. The accelerator encapsulates the IO data and then sends it to the remote Target node for processing through the network device (NetworkeSwitch). Finally, the target node sends the processed response back to the customer in reverse, thus completing the operation of the entire IO link.

[0114] In one implementation, the initiator service establishes a connection with the target service using a kernel module or a Storage Performance Development Kit.

[0115] In the process of the initiator service establishing a connection with the target service, the Storage Performance Development Kit (SPDK) plays a key role. SPDK is a set of tools and libraries designed specifically to improve storage I / O performance. In traditional storage I / O operations, data transfer often requires a large amount of CPU participation, which occupies a large amount of system resources, resulting in low data transfer efficiency and high latency. However, SPDK deeply optimizes the network transport protocol stack, reducing the degree of CPU intervention in the data transfer process. It adopts user-mode driver technology, bypassing the complex overhead of traditional kernel-mode drivers, enabling data to be transferred between the initiator and the target more quickly. In the scenario of constructing virtual machines based on local disk pooling, the initiator service of the computing node uses SPDK to establish a connection with the target service of the storage node. Through the optimization of SPDK, the initiator service can quickly send requests for pooled disk resources to the target service and quickly receive the resource information returned by the target service, greatly improving the efficiency of resource request and acquisition, and laying a solid foundation for quickly constructing virtual machines subsequently.

[0116] In one implementation, when the initiator service is connected to the target service through Ethernet, the transport protocol used is RoCE or TCP.

[0117] When the initiator service is connected to the target service through Ethernet, the choice of transmission protocol has an important impact on the performance and stability of data transmission. RoCE protocol, namely RDMA protocol based on Ethernet, is an efficient data transmission protocol. It takes advantage of the widespread deployment of Ethernet and implements the remote direct data access (RDMA) function through specially designed network adapters and drivers. During the data transmission process, RoCE protocol can reduce the number of data copies between the kernel space and user space of the operating system, and directly transfer data from the source memory to the target memory, thereby significantly reducing the data transmission delay and improving the transmission speed. For scenarios with extremely high requirements for data transmission performance, such as large-scale data processing and high-performance computing, RoCE protocol can give full play to its advantages and ensure fast and stable data transmission. TCP protocol, as a widely used transmission control protocol, has extremely high reliability and compatibility. In a complex network environment, TCP protocol establishes a reliable connection through a three-way handshake and adopts a confirmation retransmission mechanism to ensure accurate data transmission. For some scenarios with high requirements for data accuracy and relatively less stringent requirements for transmission speed, such as file transfer, database backup and other services, TCP protocol can ensure data integrity and reliability. In the process of building a virtual machine based on local disk pooling, the computing node can flexibly choose RoCE or TCP protocol according to actual business needs and network conditions. If the business scenario has extremely high requirements for the startup speed and data loading speed of the virtual machine, and the network environment is relatively stable, the RoCE protocol can be selected to achieve high-speed data transmission; if the business has more critical requirements for data accuracy and reliability, or the network environment is relatively complex and there are network packet loss, etc., the TCP protocol can be selected to ensure the stability and accuracy of data transmission and ensure the smooth progress of the pooled disk resource request and acquisition process.

[0118] The connection is made via a CX5 / 6 / 7 network card connected to the PCIe bus of the computing node.

[0119] The initiator service uses kernel modules or SPDK components to connect to storage nodes. The target service uses kernel modules or SPDK components to connect to computing nodes.

[0120] For kernel modules, the kernel nvmet module can be selected for connection. For SPDK modules, the SPDK NVMe over Fabrics Target module can be selected for connection. Using SPDK has advantages in terms of performance, debuggability, and performance tuning. nvmet is a module used to implement the NVMe over Fabrics function and can be used in the Target service of storage nodes. Data travels from the NVMe SSD through the NVMe PCIe driver and PCIe bus to the SPDK for processing, and then is transmitted to the compute node via the TCP or RDMA protocol.

[0121] In one implementation, before the compute node requests pooled disk resources, it pre-detects and evaluates the network card bandwidth of the compute node to determine the upper limit of the number of pooled disks that can be requested.

[0122] Before the compute node requests pooled disk resources from the storage node, detecting and evaluating its own network card bandwidth is a crucial step. The network card bandwidth, as the bottleneck for data interaction between the compute node and the external network, directly determines its data transmission ability with the storage node. Through professional network detection tools and algorithms, the compute node can accurately obtain the real-time bandwidth information of its own network card, including the current available bandwidth, maximum bandwidth, and bandwidth fluctuation conditions, etc. After understanding this information, the compute node can accurately calculate the upper limit of the number of pooled disks that can be requested based on historical data and the actual business demand model while ensuring the stable operation of the network. In a typical cloud computing environment, if the network card bandwidth of the compute node is 1 Gbps, after detection, evaluation, and model calculation, it is found that when requesting more than 5 pooled disk resources simultaneously, the network transmission delay will increase significantly, resulting in a serious impact on the construction and subsequent operation performance of the virtual machine. Therefore, the compute node sets the upper limit of the number of pooled disks that can be requested to 5 to ensure that during the acquisition of pooled disk resources and the subsequent operation of the virtual machine, data transmission can remain stable and efficient, avoiding a decline in overall performance due to network bottlenecks and ensuring the quality of cloud computing services and user experience.

[0123] In one implementation, before the compute node requests pooled disk resources, it pre-determines the specification parameters of the virtual machine according to the business scenario and determines the number of pooled disks required according to the specification parameters.

[0124] Before requesting pooled disk resources, the computing node fully considers the diversity and complexity of the business scenarios to determine the specification parameters of the virtual machine. There are significant differences in the performance requirements for virtual machines in different business scenarios. Due to the need to handle a large number of real-time graphics rendering, user interaction, and data transmission tasks, the online gaming business has extremely high requirements for the graphics processing ability, network response speed, and data storage read / write speed of the virtual machine. This requires allocating a relatively large number of CPU cores to the virtual machine to ensure the efficient execution of complex graphics operations and business logic processing; at the same time, equipping a large amount of memory to cache a large amount of data during the operation of the game; and requiring high-performance pooled disk resources to quickly store and read game data, reduce the loading time, and improve the smoothness and user experience of the game. In contrast, the data storage business focuses more on the capacity and read / write performance of the pooled disk resources. When handling large-scale data storage and backup tasks, the virtual machine needs to have sufficient storage capacity to accommodate massive amounts of data and be able to ensure the rapid read / write of data to meet the high-efficiency requirements of data storage and retrieval. The computing node accurately determines the specification parameters of the virtual machine according to these business requirements, including key indicators such as the number of CPU cores, memory size, and storage capacity. Then, based on these specification parameters and combined with the actual capacity and performance characteristics of the pooled disk, the number of pooled disks to be requested is calculated. If it is determined that the virtual machine requires 100 GB of storage capacity and the capacity of each pooled disk is 20 GB, then the computing node can clearly request 5 pooled disk resources to meet the storage requirements of the virtual machine in a specific business scenario, ensuring the efficient operation of the virtual machine and providing strong support for the business.

[0125] In one implementation, after obtaining the pooled disk resources returned by the target-end service, the pooled disk resources are initialized and configured to ensure that they can be normally recognized and used by the virtual machine.

[0126] After obtaining the pooled disk resources returned by the target - end service, initializing the configuration of the pooled disk resources is a crucial step to ensure that they can be recognized and used by virtual machines normally. The initialization configuration covers multiple important aspects. First is the partitioning operation. The computing node divides the pooled disk into different regions according to the actual needs of the virtual machine. A dedicated partition is allocated for the operating system of the virtual machine to ensure the stable installation and operation of the operating system; separate partitions are set for application programs and user data respectively, which is convenient for data management and maintenance, and at the same time improves the security and read - write efficiency of the data. After the partitioning is completed, the formatting operation needs to be carried out. According to the type of operating system used by the virtual machine and application requirements, an appropriate file - system format is selected. For example, the ext4 format is suitable for most Linux systems and has efficient file storage and management capabilities; the NTFS format is widely used in Windows systems and supports functions such as large - file storage and permission management. Through the formatting operation, the pooled disk can perform data read - write operations according to the corresponding file - system rules, ensuring smooth data interaction between the virtual machine and the pooled disk. Setting the access permissions of the pooled disk resources is also an important part of the initialization configuration. The computing node ensures that only authorized virtual machines or processes can access the corresponding pooled disk resources by setting permission policies. Read - only or read - write permissions are granted to specific virtual - machine user groups to prevent unauthorized access and data tampering, ensuring the integrity and security of the data and providing a reliable storage foundation for the stable operation of the virtual machine.

[0127] In one implementation, after the virtual machine is constructed, the initiator service is configured to send data I / O requests to the target - end service via Ethernet, and the target - end service is configured to return the data obtained by processing the data I / O requests to the initiator service.

[0128] After the virtual machine is constructed, the initiating service plays a key role in the process of data I / O request handling. When an application in the virtual machine generates a data read or write requirement, the initiating service responds quickly. It packages these data I / O requests, encapsulates them according to a specific protocol format, and then sends the requests to the target service of the storage node via Ethernet. When a database application in the virtual machine needs to read a large amount of data stored on the pooled disk to respond to a user query request, the initiating service will encapsulate the detailed information of the read request, including the storage location of the data, the read length, etc., into a standard request data packet, and quickly transmit it to the target service via Ethernet. After receiving the request, the target service immediately processes the data. It locates the corresponding data in the storage device according to the content of the request and performs a read or write operation. If it is a read request, after reading the data from the storage device, the target service packages the data and returns it to the initiating service via Ethernet. After receiving the returned data, the initiating service unpacks the data and passes the data to the application in the virtual machine, completing a complete data I / O operation, ensuring the normal operation of the virtual machine and the data processing requirements, ensuring that the application can obtain the required data in a timely manner, and improving the operation efficiency of the business system.

[0129] In one implementation, after the virtual machine is constructed, performance monitoring is performed on the virtual machine. When the performance does not meet the preset standard, the allocation of processor resources and pooled disk resources is dynamically adjusted.

[0130] After the virtual machine is constructed, performance monitoring of the virtual machine is an important means to ensure its efficient and stable operation. By deploying professional performance monitoring tools, various performance index data of the virtual machine can be collected in real time. In terms of CPU usage rate, the monitoring tool can accurately count the proportion of CPU resources occupied by the virtual machine in different time periods, understand the CPU usage of each process in the virtual machine, and judge whether there is excessive consumption or unreasonable allocation of CPU resources. Memory usage monitoring focuses on the size of the memory occupied by the virtual machine and the memory usage efficiency, and timely discovers problems such as memory leaks or insufficient memory. Monitoring of disk I / O read and write speeds can obtain the speed index when the virtual machine performs data read and write operations on the pooled disk resources, and evaluate whether the storage performance meets the business requirements. Network bandwidth utilization monitoring reflects the usage of network bandwidth by the virtual machine during network communication, and judges whether there is network congestion or bandwidth waste. When it is monitored that the performance of the virtual machine does not meet the preset standard, the system will automatically trigger a dynamic adjustment mechanism. If it is found that the CPU usage rate continues to be too high, reaching or exceeding the preset threshold, it indicates that the processor resources currently allocated to the virtual machine are insufficient to meet its business load requirements. At this time, the system can dynamically allocate more resources for the virtual machine from the idle processor cores of the computing node, improve the computing power of the virtual machine, reduce the CPU usage rate, and ensure the smooth operation of the business. If it is monitored that the disk I / O read and write speed is too slow, it may be due to insufficient or unreasonable configuration of the pooled disk resources. The system can increase the number of pooled disks according to the actual situation to improve the storage capacity and read and write performance; or optimize the configuration of the pooled disks, such as adjusting file system parameters, optimizing the storage queue depth, etc., to improve disk I / O performance, meet the storage requirements of the virtual machine, and ensure that the virtual machine can maintain good performance in various business scenarios and provide users with high-quality cloud computing services.

[0131] The present disclosure provides a method for constructing a virtual machine based on local disk pooling, which is used for a storage node. See Figure 4 as shown. Figure 4 is a schematic diagram of the steps of the method for constructing a virtual machine based on local disk pooling in an embodiment of the present disclosure. The method is applied to a storage node, and the method includes:

[0132] Step 301, receiving a pooled disk resource request from a computing node from the storage node, where the storage node has a target-end service;

[0133] Step 302, allocating pooled disk resources from the storage node based on the pooled disk resource request;

[0134] Step 303, returning the pooled disk resources to the computing node through Ethernet based on the target-end service; the pooled disk resources are used to construct a virtual machine in the computing node.

[0135] Figure 4 The virtual machine construction method based on local disk pooling shown in the figure is applied to storage nodes, and its beneficial effects are mainly reflected in three aspects: improving resource utilization rate, reducing costs, and enhancing configuration flexibility. It helps cloud providers make more efficient use of hardware resources, reduce operating costs, and meet the diverse needs of different users for virtual machine configurations.

[0136] In a cloud computing environment, the local disk resources of storage nodes in the traditional mode are often restricted by the core-disk ratio, resulting in resource idleness. In step 301, the storage node receives a pooling disk resource request from the computing node, which makes the disk resources of the storage node no longer limited to the local fixed usage mode. Then, in step 302, the pooling disk resources are allocated based on the request, and the originally idle disk resources are allocated as needed. Finally, through step 303, the pooling disk resources are returned to the computing node for virtual machine construction, realizing the full utilization of the disk resources of the storage node and improving the utilization rate of the overall hardware resources.

[0137] This technical solution does not need to introduce special and non-universal large components (such as SAS Switch and SAS card) like the whole cabinet pooling solution, nor does it need to build a large-scale, costly and incompatible IB basic network with the existing network like the local disk pooling solution based on IB network. From the perspective of the storage node, in the whole process of steps 301 - 303, only the target-end service and Ethernet of itself are needed to receive, allocate and return resources, avoiding the high management, configuration, operation and maintenance, and development costs brought by special components, as well as the special network construction cost, saving a large amount of money for cloud providers.

[0138] The pooling disk resource requests received by the storage node are diverse because the computing node issues different requests according to the configuration requirements of different users for virtual machines. The storage node allocates the pooling disk resources based on these diverse requests, and can flexibly adjust the quantity and specifications of the allocation, thus enhancing the flexibility of virtual machine configuration.

[0139] In one implementation, the storage node pre-puts at least one local disk deployed locally online as a pooling disk.

[0140] During the system initialization phase or after receiving a specific instruction, the storage node starts the process of bringing local disks online as pooled disks. The storage node traverses all the NVMe SSDs deployed locally and, through the Target service it carries (which can be based on the kernel nvmet module or the SPDK NVMe over Fabrics Target module), marks at least one local disk that meets the conditions as a shareable pooled disk and registers the information of these pooled disks with the control plane, including the disk capacity, performance parameters, health status, etc. For example, if the storage node mounts 10 NVMe SSDs, 5 of them can be selected to go online as pooled disks according to pre-set rules, such as the remaining space being greater than a certain threshold.

[0141] The storage node pre-brings local disks online as pooled disks, enabling more efficient sharing and utilization of storage resources. Different computing nodes can dynamically obtain pooled disk resources according to their needs, avoiding the resource waste caused by the binding of local disks to CPUs in the traditional mode, improving the utilization rate of storage resources, and reducing the hardware cost.

[0142] In one implementation, the storage node is a bare-metal product, the computing node has a data processing unit and a central processing unit, and the initiator service of the computing node is offloaded to the data processing unit for operation; the initiator service supports the pooled disks of the bare-metal product through hardware emulation.

[0143] The data processing unit (DPU) emulates the behavior of an NVMe device through hardware logic circuits, including processes such as device initialization, command response, and data transmission. This module maintains a virtual NVMe device table to record the status and configuration information of each pooled disk, ensuring that the computing node can access the pooled disks just like accessing local NVMe devices.

[0144] Supporting the pooled disks of the bare-metal product through hardware emulation can significantly improve the I / O performance of the system. At the same time, the high-speed network connection between the computing node and the storage node, such as the use of the RoCE protocol, further increases the data transmission bandwidth, enabling the system to handle a larger scale of concurrent I / O requests and meet the requirements of high-performance computing scenarios.

[0145] In one implementation, allocating pooled disk resources from the storage node includes:

[0146] Using a polling, priority, or load-balancing allocation algorithm to determine the specific pooled disks to be allocated.

[0147] Through various allocation algorithms such as polling, priority, and load balancing, the most suitable pooled disk resources can be allocated to computing nodes according to different business requirements and system states. For example, critical services can obtain high-performance pooled disks preferentially to ensure stable operation of the services; the load balancing algorithm can make the system resources be utilized more evenly, avoid excessive load on some storage nodes and affect the overall performance, improve the rationality and flexibility of resource allocation, and thus enhance the overall business processing ability of the system.

[0148] Polling allocation algorithm: The control plane maintains a list of pooled disks of storage nodes. When a computing node (CN) initiates a request for pooled disk resources, the control plane sequentially selects a pooled disk from the list and allocates it to the computing node. For example, if there are pooled disks A, B, and C in the list, the first request is allocated to A, the second to B, the third to C, and so on in a cycle. This method is simple and direct, can evenly allocate resources, and is suitable for scenarios where the resource performance requirements do not vary much.

[0149] Priority allocation algorithm: Set priorities for different requests according to business requirements or the attributes of computing nodes. For example, for virtual machine requests of some critical services, set a higher priority; for ordinary services, set a lower priority. The control plane preferentially allocates pooled disks with better performance and larger capacity to high-priority requests according to the priority order. When allocating, first check the high-priority request queue and select the most suitable pooled disk from the pooled disks of the storage node for allocation; if the high-priority queue is empty, then process the low-priority requests.

[0150] Load balancing allocation algorithm: The control plane monitors the load conditions of each storage node in real time, including CPU usage rate, network bandwidth occupancy rate, pooled disk I / O load, etc. When a computing node requests pooled disk resources, the control plane selects the storage node with the lowest load according to the load balancing algorithm and selects a suitable pooled disk from this node for allocation. For example, by calculating the comprehensive load index of each storage node (such as the weighted sum of 40% CPU usage rate, 30% network bandwidth occupancy rate, and 30% pooled disk I / O load), select the storage node with the lowest comprehensive load index for allocation to ensure overall system load balancing and improve performance.

[0151] In one implementation, when the pooled disk resources of the storage node are insufficient, a resource warning message is sent to the initiating end service.

[0152] The storage node continuously monitors the status of its pooled disk resources, including the number of allocated disks, the number of remaining allocable disks, etc. When the number of remaining allocable pooled disks is lower than a preset threshold (e.g., the remaining number is less than 20% of the total number of pooled disks), the storage node sends a resource warning message to the initiator service (such as the control plane or the Initiator service of the compute node) through the network. The warning message includes the storage node identifier, the current number of remaining pooled disks, the expected business duration that can be maintained, etc. After receiving the warning message, the initiator service can take corresponding measures, such as suspending the resource allocation requests of some non-critical services, or notifying the administrator to increase the storage node resources, etc.

[0153] When the pooled disk resources of the storage node are insufficient, a warning message is sent in a timely manner, enabling the system to take countermeasures in advance to avoid service interruption caused by resource exhaustion. For example, before the resources are insufficient, the allocation requests of some non-critical services are suspended, giving priority to ensuring the operation of critical services, enhancing the reliability and stability of the system, and improving the user experience and business continuity.

[0154] The present disclosure also provides a virtual machine construction device 400 based on local disk pooling for a compute node, such as Figure 5 shown, including:

[0155] A processor resource allocation module 401 that allocates the processor resources required for the virtual machine from the compute node, where the compute node has an initiator service;

[0156] A pooled disk resource request module 402 that requests pooled disk resources from a storage node with a target-end service through Ethernet based on the initiator service;

[0157] A virtual machine construction module 403 that obtains the pooled disk resources returned by the target-end service and constructs a virtual machine based on the processor resources and the pooled disk resources.

[0158] The present disclosure also provides a virtual machine construction device 500 based on local disk pooling for a storage node, such as Figure 6 shown, including:

[0159] A pooled disk request receiving module 501 that receives the pooled disk resource requests from the compute node from the storage node, where the storage node has a target-end service;

[0160] A pooled disk resource allocation module 502 that allocates pooled disk resources from the storage node based on the pooled disk resource requests;

[0161] A pooled disk resource return module 503 that returns the pooled disk resources to the compute node through Ethernet based on the target-end service; the pooled disk resources are used to construct a virtual machine in the compute node.

[0162] Figure 7 FIG. shows a schematic block diagram of an exemplary electronic device 600 that can be used to implement embodiments of the present disclosure. The electronic device is intended to represent various forms of digital computers, such as, laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as, personal digital processors, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely exemplary and are not intended to limit the implementation of the present disclosure described and / or claimed herein.

[0163] As Figure 7 shown, the electronic device 600 includes a computing unit 601 that can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 602 or a computer program loaded from a storage unit 608 into a random access memory (RAM) 603. In the RAM 603, various programs and data required for the operation of the device 600 can also be stored. The computing unit 601, the ROM 602, and the RAM 603 are connected to each other via a bus 604. An input / output (I / O) interface 605 is also connected to the bus 604.

[0164] A plurality of components in the device 600 are connected to the I / O interface 605, including: an input unit 606, such as a keyboard, a mouse, etc.; an output unit 608, such as various types of displays, speakers, etc.; a storage unit 608, such as a magnetic disk, an optical disk, etc.; and a communication unit 609, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 609 allows the device 600 to exchange information / data with other devices via a computer network such as the Internet and / or various telecommunication networks.

[0165] The computing unit 601 can be various general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 601 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 601 executes the various methods and processes described above, such as the virtual machine construction method based on local disk pooling. For example, in some embodiments, the virtual machine construction method based on local disk pooling can be implemented as a computer software program tangibly embodied in a machine-readable medium, such as the storage unit 608. In some embodiments, part or all of the computer program can be loaded and / or installed onto the device 600 via the ROM 602 and / or the communication unit 609. When the computer program is loaded into the RAM 603 and executed by the computing unit 601, one or more steps of the small program distribution described above can be executed. Alternatively, in other embodiments, the computing unit 601 can be configured to execute the virtual machine construction method based on local disk pooling in any other suitable manner (e.g., by means of firmware).

[0166] Various embodiments of the systems and techniques described above in this document can be implemented in digital electronic circuitry, integrated circuit systems, field-programmable gate arrays (FPGA), application-specific integrated circuits (ASIC), application-specific standard products (ASSP), system-on-a-chip systems (SOC), complex programmable logic devices (CPLD), computer hardware, firmware, software, and / or combinations thereof. These various embodiments can include: being implemented in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which can be a special-purpose or general-purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit the data and instructions to the storage system, the at least one input device, and the at least one output device.

[0167] The program code for implementing the methods of the present disclosure can be written in any combination of one or more programming languages. These program codes can be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable virtual machine construction devices based on local disk pooling, such that when the program code is executed by the processor or controller, the functions / operations specified in the flowchart and / or block diagram are implemented. The program code can be executed entirely on the machine, partially on the machine, as an independent software package partially on the machine and partially on a remote machine, or entirely on a remote machine or server.

[0168] In the context of this disclosure, a machine-readable medium can be a tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0169] In order to provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, speech input, or tactile input).

[0170] The systems and techniques described herein can be implemented in a computing system including backend components (e.g., as a data server), or a computing system including middleware components (e.g., an application server), or a computing system including frontend components (e.g., a user computer having a graphical user interface or a web browser through which the user can interact with an implementation of the systems and techniques described herein), or a computing system including any combination of such backend components, middleware components, or frontend components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), and the Internet.

[0171] A computer system can include a client and a server. The client and the server are generally far apart from each other and typically interact through a communication network. The client-server relationship is created by computer programs running on the respective computers and having a client-server relationship with each other. The server can be a cloud server, can also be a server of a distributed system, or a server incorporating a blockchain.

[0172] It should be understood that the various forms of processes shown above can be used, with steps reordered, added, or deleted. For example, the steps described in this disclosure can be executed in parallel, sequentially, or in a different order, as long as the desired results of the technical solution disclosed in this disclosure can be achieved, and no limitation is imposed herein.

[0173] In the technical solution of this disclosure, the acquisition, storage, and application of the user's personal information involved, etc., all comply with the provisions of relevant laws and regulations and do not violate public order and good customs.

[0174] The above specific embodiments do not constitute a limitation on the protection scope of this disclosure. Those skilled in the art should understand that various modifications, combinations, sub - combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this disclosure shall be included within the protection scope of this disclosure.

Claims

1. A method for constructing a virtual machine based on local disk pooling, which is applied to a computing node, and is characterized in that, The method includes: Allocating the processor resources required for a virtual machine from the computing node, where the computing node has an initiator service; Based on the initiator service, requesting pooled disk resources from a storage node with a target service via Ethernet; Obtaining the pooled disk resources returned by the target service, and constructing a virtual machine based on the processor resources and the pooled disk resources.

2. The method according to claim 1, characterized in that, The computing node is an offloading computing node, and the computing node has a data processing unit and a central processing unit; Offloading the initiator service to run on the data processing unit, and the processor cores of the central processing unit are used to construct a virtual machine.

3. The method according to claim 2, characterized in that, The offloading the initiator service to run on the data processing unit includes: Implementing the NVMe-oF protocol on the data processing unit; Implementing the hard offloading of the RoCE protocol and the TCP protocol on the data processing unit.

4. The method according to claim 3, wherein The initiator service establishes a connection with the target service by using a kernel module or a storage performance development kit.

5. The method according to claim 4, characterized in that, When the initiator service is connected to the target service via Ethernet, the transport protocol used is RoCE or TCP.

6. The method according to claim 2, wherein Before requesting pooled disk resources, the computing node pre-detects and evaluates the network card bandwidth of the computing node to determine the upper limit of the number of pooled disks that can be requested.

7. The method according to claim 6, characterized in that, Before requesting pooled disk resources, the computing node pre-determines the specification parameters of the virtual machine according to the service scenario, and determines the number of pooled disks required according to the specification parameters.

8. The method according to claim 6, wherein After obtaining the pooled disk resources returned by the target service, perform initialization configuration on the pooled disk resources to ensure that they can be normally recognized and used by the virtual machine.

9. The method according to claim 2, wherein After the virtual machine is constructed, the initiator service is configured to send data I / O requests to the target service via Ethernet, and the target service is configured to return the data obtained by processing the data I / O requests to the initiator service.

10. The method according to claim 9, wherein After the virtual machine is constructed, perform performance monitoring on the virtual machine. When the performance does not meet the preset standard, dynamically adjust the allocation of processor resources and pooled disk resources.

11. A virtual machine construction method based on local disk pooling, which is applied to a storage node, and is characterized in that, The method includes: Receiving a pooled disk resource request from a computing node from the storage node, where the storage node has a target service; Based on the pooled disk resource request, allocating pooled disk resources from the storage node; Based on the target service, returning the pooled disk resources to the computing node via Ethernet; the pooled disk resources are used to construct a virtual machine in the computing node.

12. The method according to claim 11, wherein The storage node pre-puts at least one locally deployed local disk online as a pooled disk.

13. The method according to claim 12, characterized in that The storage node is a bare metal product, the computing node has a data processing unit and a central processing unit, and the initiator service of the computing node is offloaded to run on the data processing unit; The initiator service supports the pooled disk of the bare metal product through hardware simulation.

14. The method according to claim 11, characterized in that, Allocating pooled disk resources from the storage node includes: Using a polling, priority or load balancing allocation algorithm to determine the specific pooled disks to be allocated.

15. The method according to claim 11, wherein When the pooled disk resources of the storage node are insufficient, send a resource warning message to the initiator service.

16. A virtual machine building device based on local disk pooling, for a computing node, characterized in that, The device includes: A processor resource allocation module that allocates the processor resources required by a virtual machine from the computing node, where the computing node has an initiator service; A pooled disk resource request module that requests pooled disk resources from a storage node with a target-end service via Ethernet based on the initiator service; A virtual machine construction module that obtains the pooled disk resources returned by the target-end service and constructs a virtual machine based on the processor resources and the pooled disk resources.

17. A virtual machine building device based on local disk pooling for a storage node, characterized in that, The device includes: A pooled disk request receiving module that receives a pooled disk resource request from a computing node from the storage node, where the storage node has a target-end service; A pooled disk resource allocation module that allocates pooled disk resources from the storage node based on the pooled disk resource request; A pooled disk resource return module that returns the pooled disk resources to the computing node via Ethernet based on the target-end service; the pooled disk resources are used to construct a virtual machine in the computing node.

18. An electronic device, including: At least one processor; And A memory communicatively connected to the at least one processor; wherein, The memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the method according to any one of claims 1-15.

19. A non-transitory computer-readable storage medium storing computer instructions, wherein, The computer instructions are used to cause the computer to execute the method according to any one of claims 1-15.

20. A computer program product, including a computer program, where the computer program implements the method according to any one of claims 1-15 when executed by a processor.