Method, device and system for accelerating virtual machine I / O of cloud platform

By creating virtual machines with shared massive page memory on the OpenStack cloud platform and creating a vhost-user-scsi controller on the host machine, the application limitations of Vhost-user technology on the OpenStack cloud platform are resolved, and virtual machine I/O acceleration and performance improvement are achieved.

CN114020406BActive Publication Date: 2025-11-04ZHENGZHOU YUNHAI INFORMATION TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202111264278.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-10-28
Publication Date
2025-11-04
Estimated Expiration
2041-10-28

AI Technical Summary

Technical Problem

Existing technologies cannot apply Vhost-user technology to the OpenStack cloud platform, resulting in limited improvements in virtual machine I/O performance.

Method used

By pre-creating a virtual machine with shared large page memory, the protocol and connection information of the target volume are obtained, and a vhost-user-scsi controller is created on the host machine. The SPDK bdve takes over the target volume and adds it to the vhost-user-scsi controller, associating the virtual machine with the controller so that the controller can be called through QUME to perform accelerated operations.

Benefits of technology

This technology enables the application of Vhost-user technology to the OpenStack cloud platform, improving the acceleration efficiency of virtual machine I/O and system performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114020406B_ABST
    Figure CN114020406B_ABST
Patent Text Reader

Abstract

The application discloses a kind of cloud platform accelerates the method, device, system and computer readable storage medium of virtual machine I / O, including pre-creation shared large page memory's virtual machine, and obtain the protocol and connection information of target volume;With the SPDK vhost-user service on the host corresponding to virtual machine sends the request of creating controller, to create vhost-user-scsi controller;According to the protocol and connection information of target volume makes SPDK bdve take over target volume, and SPDK bdve is added to vhost-user-scsi controller;Virtual machine is associated with vhost-user-scsi controller, so that the QUME in virtual machine is accelerated by calling vhost-user-scsi controller to target volume and operates;The application is conducive to improving acceleration efficiency and system performance.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of computer, in particular to a method, device and system for accelerating I / O of virtual machine in cloud platform and computer readable storage medium. BACKGROUND

[0002] In the cloud platform operating system, users can create cloud hard disks and mount them to cloud hosts through the Cinder service, and Virtio is a commonly used semi-virtualization scheme, which can be used to accelerate the I / O of virtual machines. Virtio provides a general interface for communication between the front end of the Guest kernel and the back end of the Guest kernel. The front end of the Guest kernel and the back end of the Guest kernel can specifically perform data transmission through Virtqueues in Virtio. First, the front end of the Guest kernel writes data into Virtqueues of Virtio, then QEMU obtains the data from Virtqueues, calls a system interface and writes the data into the kernel mode, and then the back end of the Guest kernel reads and writes the device according to the data, and notifies the front end of the Guest kernel after the reading and writing are completed.

[0003] With the development of technology, Hypervisor gradually puts forward Vhost-user technology. The Vhost-user technology can make the back end of the Guest kernel directly interact with the front end of the Guest kernel through Virtqueue, reduce the repeated copying of data between the user mode and the kernel mode, and the polling mode of vhost-user also reduces vm_exit. The Vhost-user technology can make the back end of the Guest kernel located in the user mode, which reduces the probability of downtime and increases the flexibility of the development of the back end program. The widely used back end program of the Guest kernel includes dpdk, spdk and the like, which can improve the performance of network and I / O by several times.

[0004] However, due to the preconditions and limiting factors of the Vhost-user technology, such as the need for virtual machines to use large page memory completely, the need for exclusive use of one or more CPUs, and the inability to automatically connect to remote disks of various protocols, the Vhost-user technology cannot be applied to the OpenStack cloud platform at present.

[0005] Therefore, how to apply the Vhost-user technology to the OpenStack cloud platform to accelerate the I / O of virtual machines has become a problem to be solved by those skilled in the art. SUMMARY

[0006] The embodiment of the present application aims to provide a method, device, system and computer readable storage medium for accelerating I / O of virtual machine of cloud platform, which can apply Vhost-user technology to OpenStack cloud platform to accelerate I / O of virtual machine, and is beneficial to improve acceleration efficiency and system performance.

[0007] To solve the above technical problems, the embodiment of the present application provides a method for accelerating I / O of virtual machine of cloud platform, comprising:

[0008] a virtual machine of shared huge page memory is created in advance, and protocol and connection information of a target volume are obtained;

[0009] a request for creating a controller is sent to an SPDK vhost-user service on a host corresponding to the virtual machine, so as to create a vhost-user-scsi controller;

[0010] the SPDK bdve is made to take over the target volume according to the protocol and connection information of the target volume, and the SPDK bdve is added to the vhost-user-scsi controller;

[0011] the virtual machine is associated with the vhost-user-scsi controller, so that QUME in the virtual machine can call the vhost-user-scsi controller to perform acceleration operation on the target volume.

[0012] Optionally, the process of obtaining the protocol and connection information of the target volume comprises:

[0013] a Nova mount volume interface is called according to a mount volume request;

[0014] a REST API request is sent to a Cinder through the Nova mount volume interface, so that the Cinder obtains the protocol and connection information of the target volume according to the REST API request;

[0015] the protocol and connection information of the target volume are received through the Nova mount volume interface.

[0016] Optionally, the process of sending a request for creating a controller to an SPDK vhost-user service on a host corresponding to the virtual machine to create a vhost-user-scsi controller comprises:

[0017] whether there is a virtual machine of shared huge page memory is judged by checking virtual machine metadata through a Nova, if there is, a connection volume request is sent to a cyborg through the Nova; the connection volume request comprises the protocol and connection information of the target volume.

[0018] The cyborg determines whether a vhost-user-scsi controller corresponding to the virtual machine exists, and if not, sends a request for creating a controller to an SPDK vhost-user service on a host corresponding to the virtual machine to create a vhost-user-scsi controller.

[0019] Optionally, the process of associating the virtual machine with the vhost-user-scsi controller so that the QUME in the virtual machine performs the acceleration operation on the target volume by calling the vhost-user-scsi controller is:

[0020] The path information of the vhost-user-scsi controller is obtained and returned to the Nova through the cyborg, so that the Nova outputs Libvirt xml through the vhost-user-scsi controller to call the QUME in the virtual machine to perform the acceleration operation on the target volume according to the path information.

[0021] Optionally, the vhost-user-scsi controller is created by:

[0022] The vhost-user-scsi controller is created by a vhost_create_scsi_controller command.

[0023] Optionally, the protocol is one of an iSCSI protocol, an rbd protocol, and an NVMe-oF protocol.

[0024] The embodiment of the application further provides a device for accelerating I / O of a virtual machine in a cloud platform, which comprises:

[0025] A creating module is configured to pre-create a virtual machine sharing a large page memory.

[0026] An obtaining module is configured to obtain a protocol and connection information of a target volume.

[0027] A sending module is configured to send a request for creating a controller to an SPDK vhost-user service on a host corresponding to the virtual machine to create a vhost-user-scsi controller.

[0028] A control module is configured to cause an SPDK bdve to take over the target volume according to the protocol and connection information of the target volume, and add the SPDK bdve to the vhost-user-scsi controller.

[0029] An association module is configured to associate the virtual machine with the vhost-user-scsi controller, so that the QUME in the virtual machine performs an acceleration operation on the target volume by calling the vhost-user-scsi controller.

[0030] Optionally, the obtaining module comprises:

[0031] A calling unit is configured to call a Nova mounting volume interface according to the mounting volume request.

[0032] A sending unit is configured to send a REST API request to the Cinder through the Nova mounting volume interface, so that the Cinder obtains the protocol and connection information of the target volume according to the REST API request.

[0033] A receiving unit is configured to receive the protocol and connection information of the target volume through the Nova mounting volume interface.

[0034] The embodiment of the application further provides a system for accelerating I / O of a virtual machine in a cloud platform, comprising:

[0035] A memory is configured to store a computer program.

[0036] A processor is configured to execute the computer program to implement the steps of the method for accelerating I / O of a virtual machine in a cloud platform.

[0037] The embodiment of the application provides a computer readable storage medium, wherein the computer readable storage medium stores a computer program, and the computer program is executed by a processor to implement the steps of the method for accelerating I / O of a virtual machine in a cloud platform.

[0038] The embodiment of the application provides a method, device, system and computer readable storage medium for accelerating I / O of a virtual machine in a cloud platform, and the method comprises the following steps: a virtual machine sharing a large page memory is created in advance, and the protocol and connection information of a target volume are obtained; a request for creating a controller is sent to an SPDK vhost-user service on a host corresponding to the virtual machine, so as to create a vhost-user-scsi controller; the SPDK bdve is caused to take over the target volume according to the protocol and connection information of the target volume, and the SPDK bdve is added to the vhost-user-scsi controller; the virtual machine is associated with the vhost-user-scsi controller, so that the QUME in the virtual machine performs an acceleration operation on the target volume by calling the vhost-user-scsi controller.

[0039] It can be seen that in the embodiment of the application, the virtual machine for sharing the large page memory is created in advance, the protocol and connection information of the target volume are obtained, then the vhost-user-scsi controller is created on the SPDK vhost-user service on the host corresponding to the virtual machine, the SPDK bdve takes over the target volume, then the SPDK bdve is added to the vhost-user-scsi controller, so as to bind the target volume with the vhost-user-scsi controller, then the virtual machine is associated with the vhost-user-scsi controller, so that the target volume can be accelerated by calling the vhost-user-scsi controller through the QUME in the virtual machine; the application can realize the application of the Vhost-user technology to the OpenStack cloud platform to accelerate the virtual machine I / O, and is beneficial to improving the acceleration efficiency and system performance. BRIEF DESCRIPTION OF DRAWINGS

[0040] In order to more clearly illustrate the technical solutions in the embodiments of the application, the drawings needed to be used in the prior art and the embodiments will be briefly introduced as follows. Obviously, the drawings in the following description are only some embodiments of the application, and other drawings can be obtained by those skilled in the art without creative effort on the basis of these drawings.

[0041] Figure 1 A flowchart of a method for accelerating virtual machine I / O of a cloud platform provided by the embodiment of the application is shown in the figure.

[0042] Figure 2 A schematic diagram of another method for accelerating virtual machine I / O of a cloud platform provided by the embodiment of the application is shown in the figure.

[0043] Figure 3 A structural schematic diagram of a device for accelerating virtual machine I / O of a cloud platform provided by the embodiment of the application is shown in the figure. DETAILED DESCRIPTION

[0044] The method, device, system and computer readable storage medium for accelerating virtual machine I / O of a cloud platform provided by the embodiment of the application can realize the application of the Vhost-user technology to the OpenStack cloud platform to accelerate the virtual machine I / O in use, and are beneficial to improving the acceleration efficiency and system performance.

[0045] In order to make the purposes, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are some but not all of the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative work fall within the protection scope of the present application.

[0046] Please refer to Figure 1 , Figure 1 A flowchart of a method for accelerating I / O of a virtual machine by a cloud platform according to an embodiment of the present application is shown in FIG. 1. The method comprises the following steps.

[0047] S110: A virtual machine with shared huge page memory is created in advance, and the protocol and connection information of a target volume are obtained;

[0048] It should be noted that the computer nodes in the embodiments of the present application have all deployed and installed the SPDK vhost-user service, and the cloud platform can create a virtual machine with shared huge page memory when receiving a virtual machine creation instruction. Specifically, the virtual machine with shared huge page memory can be created through the interface of Nova (such as the process ① in FIG. 2), and the vhost user driver shares its huge page memory so that the vhost device can directly locate the shared huge page memory, reducing data copying from the user mode to the kernel mode. Figure 2

[0049] Specifically, after the virtual machine is successfully created, the virtual machine information can also be obtained through the interface of Nova (such as the process ② in FIG. 2), wherein the virtual machine information can include the virtual machine name, the virtual machine ID, the user information, the hardware information, the network card information, the state information, the attribute information (for example, whether it is a shared huge page memory), and the like. Figure 2

[0050] It should be noted that the process of obtaining the protocol and connection information of the target volume in the embodiments of the present application can be specifically as follows:

[0051] The Nova mount volume interface is called according to the mount volume request;

[0052] The REST API request is sent to the Cinder through the Nova mount volume interface, so that the Cinder obtains the protocol and connection information of the target volume according to the REST API request;

[0053] The protocol and connection information of the target volume are received through the Nova mount volume interface.

[0054] ​​Specifically, the cloud platform of the embodiment of the present application can call a Nova mounting volume interface according to the mounting volume request when receiving the mounting volume request, send a REST API request to Cinder through cinderclient (such as the process ③ in Figure 2 The mounting volume request can include a target volume ID and an identifier. The identifier can indicate whether the target volume needs to be accelerated. When it is identified that the target volume needs to be accelerated through the identifier, the Nova mounting volume interface is called, and the REST API request including the target volume ID is sent to Cinder through cinderclient. After receiving the REST API request, the Cinder API calls a driver corresponding to the target volume ID to obtain the protocol and connection information of the target volume according to the REST API request (such as the process ④ in Figure 2 Then, the protocol and connection information of the target volume are returned to Nova through the Cinder API (such as the process ⑤ in Figure 2 The protocol in the embodiment of the present application can be, but is not limited to, one of an iSCSI protocol, an rbd protocol and an NVMe-oF protocol.

[0055] S120: sending a request for creating a controller to the SPDK vhost-user service on the host corresponding to the virtual machine to create a vhost-user-scsi controller;

[0056] It should be noted that after obtaining the protocol and connection information of the target volume, the embodiment of the present application can send a request for creating a controller to the SPDK vhost-user service on the host corresponding to the virtual machine. Specifically, before sending the request for creating a controller to the SPDK vhost-user service on the host corresponding to the virtual machine, it can be determined whether there is a vhost-user-scsi controller corresponding to the virtual machine sharing more than the memory. When there is not, the request for creating a controller is sent to the SPDK vhost-user service on the host corresponding to the virtual machine to create a vhost-user-scsi controller (vhost-user-scsi-controller).

[0057] Specifically, the process can be as follows:

[0058] The virtual machine metadata is checked through Nova to determine whether there is a virtual machine sharing a large page memory. If there is, a connection volume request is sent to cyborg through Nova. The connection volume request includes the protocol and connection information of the target volume.

[0059] The cyborg determines whether the vhost-user-scsi controller corresponding to the virtual machine exists, and if not, sends a request for creating the controller to the SPDK vhost-user service on the host corresponding to the virtual machine to create the vhost-user-scsi controller.

[0060] That is, first for Nova, Nova does not know whether a virtual machine sharing a large memory has been established, so after Nova receives the protocol and connection information of the target volume, Nova can detect the virtual machine metadata (or virtual machine metadata database), and of course, after the virtual machine sharing a large memory is established and created successfully, the virtual machine metadata is recorded, that is, the virtual machine information is recorded, which can be recorded in the virtual machine metadata database. When Nova determines through the detection of the virtual machine metadata that there is a virtual machine sharing a large page memory, Nova sends a connection volume request to the cyborg (such as the process ⑦ in Figure 2 After the cyborg receives the connection volume request, it determines whether the vhost-user-scsi controller corresponding to the virtual machine corresponding to the shared large page memory exists on the host corresponding to the virtual machine, and when it does not exist, it can send a request for creating the controller to the SPDK vhost-user service on the host corresponding to the virtual machine (such as the process ⑧ in Figure 2 The cyborg can send the request for creating the controller through json_rpc, and the SPDK vhost-user service can create the vhost-user-scsi controller through the vhost_create_scsi_controller command after receiving the request for creating the controller.

[0061] S130: According to the protocol and connection information of the target volume, the SPDK bdve takes over the target volume, and adds the SPDK bdve to the vhost-user-scsi controller.

[0062] Specifically, after the vhost-user-scsi controller is created, the target volume can be taken over by the SPDK bdve through the protocol and connection information of the target volume, and then the SPDK bdve can be added to the corresponding vhost-user-scsi controller through vhost_create_scsi_controller_add_target.

[0063] S140: Associate the virtual machine with the vhost-user-scsi controller, so that the QUME in the virtual machine can call the vhost-user-scsi controller to perform acceleration operations on the target volume.

[0064] Specifically, in the embodiment of the present application, after the vhost-user-scsi controller is created, the path information of the vhost-user-scsi controller can be obtained through the cyborg (such as the process 9 in Figure 2 ), and the path information is returned to the Nova through the cyborg (such as the process 10 in Figure 2 ), so that the Nova outputs the Libvirt xml through the vhost-user-scsi controller according to the path information to call the QUME to perform the acceleration operation on the target volume in the virtual machine.

[0065] The present application enables the cloud platform to extend the interfaces of Cinder, Nova and Cyborg when mounting the cloud disk (i.e. mounting the volume) directly, so that the user can perform the I / O acceleration on the remote disk of the common protocol through the SPDK vhost-user service on the virtual machine containing the shared large page memory, and the vhost-scsi-controller and the SPDK bdev can be automatically created through the self-developed Cyborg driver through the original mounting volume interface of Nova, which is convenient for the user to use the vhost-user to accelerate the I / O of the virtual machine.

[0066] It can be seen that, in the embodiment of the present application, the virtual machine with shared large page memory is created in advance, the protocol and connection information of the target volume are obtained, then the vhost-user-scsi controller is created on the SPDK vhost-user service on the host corresponding to the virtual machine, the SPDK bdve takes over the target volume, then the SPDK bdve is added to the vhost-user-scsi controller, so as to bind the target volume with the vhost-user-scsi controller, and then the virtual machine is associated with the vhost-user-scsi controller, so that the QUME in the virtual machine can call the vhost-user-scsi controller to perform the acceleration operation on the target volume; the present application can apply the Vhost-user technology to the OpenStack cloud platform to accelerate the I / O of the virtual machine, which is beneficial to improve the acceleration efficiency and system performance.

[0067] On the basis of the above embodiment, the embodiment of the present application further provides a device for accelerating the I / O of the virtual machine of the cloud platform, and the device specifically refers to Figure 3 , which comprises:

[0068] The creating module 21 is used for creating the virtual machine with shared large page memory in advance;

[0069] The obtaining module 22 is used for obtaining the protocol and connection information of the target volume;

[0070] The sending module 23 is configured to send a request for creating a controller to an SPDK vhost-user service on a host corresponding to the virtual machine, so as to create a vhost-user-scsi controller;

[0071] The control module 24 is configured to make the SPDK bdve take over the target volume according to the protocol and the connection information of the target volume, and add the SPDK bdve to the vhost-user-scsi controller;

[0072] The association module 25 is configured to associate the virtual machine with the vhost-user-scsi controller, so that the QUME in the virtual machine calls the vhost-user-scsi controller to perform an acceleration operation on the target volume.

[0073] Further, the obtaining module 22 comprises:

[0074] The calling unit is configured to call a Nova mounting volume interface according to the mounting volume request;

[0075] The sending unit is configured to send a REST API request to the Cinder through the Nova mounting volume interface, so that the Cinder obtains the protocol and the connection information of the target volume according to the REST API request;

[0076] The receiving unit is configured to receive the protocol and the connection information of the target volume through the Nova mounting volume interface.

[0077] It should be noted that the cloud platform accelerates the virtual machine I / O in the embodiment of the present application has the same beneficial effects as the method of accelerating the virtual machine I / O of the cloud platform provided in the above embodiment, and for the specific introduction of the method of accelerating the virtual machine I / O of the cloud platform involved in the embodiment of the present application, please refer to the above embodiment, which will not be repeated here.

[0078] On the basis of the above embodiment, the embodiment of the present application further provides a system for accelerating virtual machine I / O of a cloud platform, which comprises:

[0079] The memory is configured to store a computer program;

[0080] The processor is configured to execute the computer program to realize the steps of the method for accelerating virtual machine I / O of a cloud platform.

[0081] For example, the processor in the embodiment of the present application can be specifically used to implement the following steps: a virtual machine pre-created shared large page memory is obtained, and protocol and connection information of a target volume are obtained; a request of creating a controller is sent to an SPDK vhost-user service on a host corresponding to the virtual machine, so as to create a vhost-user-scsi controller; the SPDK bdve is caused to take over the target volume according to the protocol and the connection information of the target volume, and the SPDK bdve is added to the vhost-user-scsi controller; and the virtual machine is associated with the vhost-user-scsi controller, so that a QUME in the virtual machine performs an acceleration operation on the target volume by calling the vhost-user-scsi controller.

[0082] On the basis of the above-mentioned embodiments, the embodiment of the present application provides a computer readable storage medium, and the computer readable storage medium stores a computer program, and the computer program is executed by a processor to implement the steps of the method for accelerating I / O of a virtual machine in a cloud platform.

[0083] The computer readable storage medium can include a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and various media that can store program codes.

[0084] The embodiments in the specification are described in a progressive manner, and each embodiment focuses on the difference from other embodiments, and the same or similar parts of each embodiment can be referred to each other. For the device disclosed in the embodiments, since it corresponds to the method disclosed in the embodiments, the description is relatively simple, and the related parts can be referred to the method part.

[0085] It should also be noted that in the specification, the relationship terms such as first and second are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between the entities or operations. Moreover, the terms "include", "contain" or any other variants thereof are intended to cover non-exclusive inclusion, so that the process, method, article or device including a series of elements not only includes those elements, but also includes other elements not explicitly listed or inherent to such process, method, article or device. Without more limitations, the element defined by the statement "including a" does not exclude the presence of another same element in the process, method, article or device including the element.

[0086] The foregoing description of the disclosed embodiments enables a person skilled in the art to make or use the application. Modifications of these embodiments will occur to persons of skill in the art, and that the appended claims are intended to cover all such modifications that do not depart from the true spirit and scope of the application. Therefore, the application is not limited to the embodiments shown but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A method for cloud platform to accelerate virtual machine I / O, characterized in that, include: A virtual machine sharing massive page memory is pre-created, and the protocol and connection information of the target volume are obtained; Send a request to create a controller to the SPDK vhost-user service on the host machine corresponding to the virtual machine, so as to create a vhost-user-scsi controller; Based on the protocol and connection information of the target volume, the SPDK bdve takes over the target volume and adds the SPDK bdve to the vhost-user-scsi controller; The virtual machine is associated with the vhost-user-scsi controller so that QUME within the virtual machine can invoke the vhost-user-scsi controller to accelerate the target volume; wherein: The process of obtaining the protocol and connection information of the target volume is as follows: When determining whether to accelerate the target volume based on the mount volume request, the Nova mount volume interface is invoked; the mount volume request includes the target volume ID and an identifier indicating whether to accelerate the target volume. The Nova mount volume interface sends a REST API request to Cinder so that Cinder can obtain the protocol and connection information of the target volume based on the REST API request. The target volume's protocol and connection information are received through the Nova mount volume interface; The process of sending a request to create a controller to the SPDK vhost-user service on the host machine corresponding to the virtual machine to create a vhost-user-scsi controller is as follows: The Nova API is used to check the virtual machine metadata to determine if a virtual machine with shared massive page memory exists. If it does, a connection volume request is sent to cyborg via the Nova API. The connection volume request includes the protocol and connection information of the target volume. The cyborg determines whether a vhost-user-scsi controller exists corresponding to the virtual machine. If it does not exist, a request to create a controller is sent to the SPDK vhost-user service on the host machine corresponding to the virtual machine to create the vhost-user-scsi controller.

2. The method for cloud platform to accelerate virtual machine I / O according to claim 1, wherein, The process of associating the virtual machine with the vhost-user-scsi controller so that QUME within the virtual machine can accelerate the target volume by invoking the vhost-user-scsi controller is as follows: Obtain the path information of the vhost-user-scsi controller, and return the path information to the Nova through the cyborg, so that the Nova can output Libvirt xml through the vhost-user-scsi controller based on the path information to call QUME to perform acceleration operations on the target volume in the virtual machine.

3. The method for cloud platform to accelerate virtual machine I / O according to claim 1, wherein, The creation of the vhost-user-scsi controller is as follows: Create the vhost-user-scsi controller using the vhost_create_scsi_controller command.

4. The method for cloud platform to accelerate virtual machine I / O according to claim 1, wherein, The protocol is one of iSCSI, rbd, or NVMe-oF.

5. An apparatus for cloud platform to accelerate virtual machine I / O, characterized in that, include: Create a module for pre-creating virtual machines that share massive page memory; The acquisition module is used to obtain the protocol and connection information of the target volume; The sending module is used to send a request to create a controller to the SPDK vhost-user service on the host machine corresponding to the virtual machine, so as to create a vhost-user-scsi controller; The control module is used to enable the SPDK bdve to take over the target volume according to the protocol and connection information of the target volume, and to add the SPDK bdve to the vhost-user-scsi controller; The association module is used to associate the virtual machine with the vhost-user-scsi controller, so that QUME within the virtual machine can invoke the vhost-user-scsi controller to perform acceleration operations on the target volume; wherein: The acquisition module includes: The calling unit is used to call the Nova mount volume interface when it is determined that the target volume should be accelerated based on the mount volume request; the mount volume request includes the target volume ID and an identifier indicating whether the target volume should be accelerated. The sending unit is used to send a REST API request to Cinder through the Nova mount volume interface, so that Cinder can obtain the protocol and connection information of the target volume according to the REST API request; The receiving unit is used to receive the protocol and connection information of the target volume through the Nova mount volume interface; The sending module is specifically used to: check the virtual machine metadata through Nova to determine whether a virtual machine with shared massive page memory exists; if it exists, send a connection volume request to cyborg through Nova; the connection volume request includes the protocol and connection information of the target volume; and determine through cyborg whether a vhost-user-scsi controller corresponding to the virtual machine exists; if it does not exist, send a request to create a controller to the SPDKvhost-user service on the host machine corresponding to the virtual machine to create a vhost-user-scsi controller.

6. A system for accelerating virtual machine I / O on a cloud platform, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the steps of the method for accelerating virtual machine I / O on a cloud platform as described in any one of claims 1 to 4 when executing the computer program.

7. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the method for accelerating virtual machine I / O on a cloud platform as described in any one of claims 1 to 4.

Citation Information

Patent Citations

  • Storage gateway based on SPDK and implementation method thereof

    CN113242175A