Data Transmission Method, Device, Equipment and Storage Medium in Cloud Storage System

UCX-RDMA enables direct data transfer between cloud storage nodes, simplifying data transmission and improving performance by bypassing intermediate network layers, thus addressing resource-intensive copying issues in TCP/IP protocols.

CN115277805BActive Publication Date: 2025-07-15TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202110482750.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-04-30
Publication Date
2025-07-15
Estimated Expiration
2041-04-30

AI Technical Summary

Technical Problem

In cloud storage systems, when data transmission is carried out based on the socket-based TCP/IP protocol, it is necessary to copy between buffers of multiple network layers, resulting in a large amount of resource consumption and affecting data access performance.

Method used

UCX-RDMA method is adopted to establish a data connection between the transmitting device and the receiving device, and write the target data directly from the transmitting device's buffer to the receiving device's buffer, simplifying the data transmission process.

Benefits of technology

It simplifies the complexity of data transmission in cloud storage systems and improves data access performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115277805B_ABST
    Figure CN115277805B_ABST
Patent Text Reader

Abstract

The present application relates to a data transmission method, apparatus, device and storage medium in a cloud storage system, and pertains to the technical field of cloud applications. The method includes: when there is target data to be written from a sending-end device in the cloud storage system to a receiving-end device, a data connection can be established between the sending-end device and the receiving-end device, and the target data can be directly written from the buffer in the sending-end device to the buffer in the receiving-end device in a UCX-RDMA manner, thereby simplifying the complexity of data transmission in the cloud storage system and improving the data access performance of the cloud storage system during the process of file storage in the cloud storage system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of cloud applications, and particularly to a data transmission method, apparatus, device, and storage medium in a cloud storage system. Background Art

[0002] Cloud storage systems are widely used in industries such as healthcare, finance, government affairs, and gaming. In a cloud storage system, data transmission is usually required between computing node devices and storage node devices in the cloud.

[0003] In related technologies, data transmission between computing node devices and storage node devices in a cloud storage system is usually implemented through the Transmission Control Protocol (TCP) / Internet Protocol (IP) based on sockets.

[0004] However, in the above related technologies, when data is transmitted using the TCP / IP protocol based on sockets, the data to be transmitted needs to be copied between multiple network layer buffers, consuming a large amount of resources and affecting the data access performance of the cloud storage system. Summary of the Invention

[0005] Embodiments of the present application provide a data transmission method, apparatus, device, and storage medium in a cloud storage system, which can simplify the complexity of data transmission in the cloud storage system and improve the data access performance of the cloud storage system. The technical solution is as follows:

[0006] On the one hand, a data transmission method in a cloud storage system is provided. The method is executed by a sending-end device, and the method includes:

[0007] In response to the sending-end application having target data to be written to the receiving-end device, sending a connection establishment request to the receiving-end device; the sending-end application is an application running on the sending-end device;

[0008] In response to receiving a connection establishment response returned by the receiving-end device, establishing a data connection between the receiving-end device and the sending-end device;

[0009] Writing the target data into a sending buffer; the sending buffer is registered during the establishment of the data connection;

[0010] Based on the data connection, writing the target data into a receiving buffer in the receiving-end device by means of UCX-RDMA, so that the receiving-end application can process it; the receiving-end application is an application running on the receiving-end device.

[0011] On the one hand, a data transmission method in a cloud storage system is provided. The method is executed by a receiving-end device and includes:

[0012] In response to detecting, by a detection thread, a connection establishment request sent by a sending-end device, returning a connection establishment response to the receiving-end device; the connection establishment request is sent by the sending-end device in response to the existence of target data to be written to the receiving-end device in a sending-end application; the sending-end application is an application running on the sending-end device;

[0013] Establishing a data connection between the receiving-end device and the sending-end device;

[0014] Based on the data connection, writing the target data in the sending buffer of the sending-end device into the receiving buffer in the receiving-end device through the UCX-RDMA method for processing by a receiving-end application; the receiving buffer is registered during the establishment of the data connection; the receiving-end application is an application running on the receiving-end device.

[0015] On the other hand, a data transmission device in a cloud storage system is provided. The device is used in a sending-end device and includes:

[0016] A connection establishment request sending module, configured to send a connection establishment request to the receiving-end device in response to the existence of target data to be written to the receiving-end device in a sending-end application; the sending-end application is an application running on the sending-end device;

[0017] A connection establishment module, configured to establish a data connection between the receiving-end device and the sending-end device in response to receiving the connection establishment response returned by the receiving-end device;

[0018] A writing module, configured to write the target data into a sending buffer; the sending buffer is registered during the establishment of the data connection;

[0019] A transmission module, configured to write the target data into the receiving buffer in the receiving-end device through the UCX-RDMA method based on the data connection for processing by a receiving-end application; the receiving-end application is an application running on the receiving-end device.

[0020] In a possible implementation, the device further includes:

[0021] A creation module, configured to call a context establishment interface to create a first connection context before the connection establishment request sending module sends a connection establishment request to the receiving-end device;

[0022] The creation module is further configured to, before the connection establishment request sending module sends a connection establishment request to the receiving end device, call a thread creation interface to create a first connection thread;

[0023] The creation module is further configured to, before the connection establishment module establishes a data connection between the receiving end device and the sending end device, in response to the existence of target data in the sending end application to be written to the receiving end device, create the first network endpoint based on the first connection context and the first connection thread;

[0024] The connection establishment module is configured to, in response to receiving a connection establishment response returned by the receiving end device, establish the data connection based on the first network port.

[0025] In a possible implementation, the transmission module is configured to send a transmission request to the receiving end device based on the data connection, where the transmission request includes a transmission label; the transmission request is used to instruct the receiving end device to write the target data into the receiving buffer through the UCX-RDMA method based on the transmission label.

[0026] In a possible implementation, the transmission request includes a first transmission request, and the first transmission request further includes the target data.

[0027] In a possible implementation, the transmission request includes a second transmission request, and the second transmission request further includes the address of the sending buffer and the key of the sending buffer;

[0028] The transmission module is further configured to

[0029] receive a data reading request sent by the receiving end device through the data connection, where the data reading request includes the address of the buffer and the key of the sending buffer;

[0030] send the target data to the receiving end device based on the address of the buffer and the key of the sending buffer.

[0031] In a possible implementation, the transmission module is configured to

[0032] obtain a transmission mode of the target data based on a service requirement of the target data;

[0033] send the transmission request to the receiving end device based on the transmission mode.

[0034] In a possible implementation, the connection establishment request sending module is configured to

[0035] In response to the presence of the target data in the sending-end application, an input / output request is submitted to the transport layer through the storage service layer in the Storage Performance Development Kit (SPDK).

[0036] The transport layer is used to call a submission request instance to trigger the step of sending the connection establishment request to the receiving-end device.

[0037] In a possible implementation, the sending-end device is a computing node device in the cloud storage system, and the receiving-end device is a storage node device in the cloud storage system;

[0038] Or,

[0039] the sending-end device is a storage node device in the cloud storage system, and the receiving-end device is a computing node device in the cloud storage system.

[0040] On the other hand, a data transmission device in a cloud storage system is provided. The device is used in a receiving-end device and includes:

[0041] A connection establishment response return module, configured to return a connection establishment response to the receiving-end device in response to detecting, by a detection thread, a connection establishment request sent by a sending-end device; the connection establishment request is sent by the sending-end device in response to the presence of target data to be written to the receiving-end device in a sending-end application; the sending-end application is an application running on the sending-end device;

[0042] A connection establishment module, configured to establish a data connection between the receiving-end device and the sending-end device;

[0043] A transmission module, configured to write the target data in a sending buffer of the sending-end device to a receiving buffer in the receiving-end device based on the data connection through the UCX-RDMA method for processing by a receiving-end application; the receiving buffer is registered during the establishment of the data connection; the receiving-end application is an application running on the receiving-end device.

[0044] In a possible implementation, the device further includes:

[0045] A creation module, configured to call a context establishment interface to create a second connection context, call a thread creation interface to create a second connection thread, and call a detection thread creation interface to create the detection thread before the connection establishment response return module returns a connection establishment response to the receiving-end device in response to detecting, by the detection thread, a connection establishment request sent by the sending-end device;

[0046] The creation module is further configured to, before the connection establishment module establishes a data connection between the receiving device and the sending device, in response to detecting a connection establishment request sent by the sending device through a detection thread, create a second network endpoint based on the second connection context and the second connection thread;

[0047] The connection establishment module is configured to establish the data connection based on the second network endpoint.

[0048] In a possible implementation, the transmission module is configured to,

[0049] receive a transmission request sent by the sending device based on the data connection, where the transmission request includes a transmission label;

[0050] Based on the verification of the transmission label, write the target data into the receive buffer through the UCX-RDMA method.

[0051] On the other hand, a computer device is provided, which includes a processor and a memory. At least one computer instruction is stored in the memory, and the at least one computer instruction is loaded and executed by the processor to implement the data transmission method in the above cloud storage system.

[0052] On the other hand, a computer-readable storage medium is provided, in which at least one computer instruction is stored, and the computer instruction is loaded and executed by a processor to implement the data transmission method in the above cloud storage system.

[0053] On the other hand, a computer program product or a computer program is provided. The computer program product or the computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the data transmission method in the cloud storage system provided in the above various optional implementations.

[0054] The technical solution provided by this application may include the following beneficial effects:

[0055] When there is target data in the sending device in the cloud storage system to be written to the receiving device, a data connection can be established between the sending device and the receiving device, and the target data can be directly written from the buffer in the sending device to the buffer in the receiving device through the UCX-RDMA method, thereby simplifying the complexity of data transmission in the cloud storage system and improving the data access performance of the cloud storage system. Description of the Drawings

[0056] The accompanying drawings here are incorporated into the specification and constitute a part of this specification, showing embodiments consistent with this application, and are used together with the specification to explain the principles of this application.

[0057] Figure 1 It shows a schematic diagram of the principle of RDMA involved in an exemplary embodiment of this application;

[0058] Figure 2 It shows a schematic diagram of the structure of a cloud storage system provided by an exemplary embodiment of this application;

[0059] Figure 3 It shows a flowchart of a data transmission method in a cloud storage system provided by an exemplary embodiment of this application;

[0060] Figure 4 It shows a flowchart of a data transmission method in a cloud storage system provided by an exemplary embodiment of this application;

[0061] Figure 5 It shows a flowchart of a data transmission method in a cloud storage system provided by an exemplary embodiment of this application;

[0062] Figure 6 is Figure 5 It is an architecture diagram of a cloud node in a cloud storage system involved in the shown embodiment;

[0063] Figure 7 is Figure 5 It is a schematic diagram of request triggering involved in the shown embodiment;

[0064] Figure 8 is Figure 5 It is a schematic diagram of the connection establishment process involved in the shown embodiment;

[0065] Figure 9 is Figure 5 It is a schematic diagram of the connection closing process involved in the shown embodiment;

[0066] Figure 10 is Figure 5 It is a schematic diagram of a data transmission involved in the shown embodiment;

[0067] Figure 11 is Figure 5 It is a schematic diagram of a data transmission involved in the shown embodiment;

[0068] Figure 12 It shows a block diagram of a data transmission device in a cloud storage system provided by an exemplary embodiment of this application;

[0069] Figure 13 It shows a block diagram of a data transmission device in a cloud storage system provided by an exemplary embodiment of this application;

[0070] Figure 14 The block diagram of a computer device provided by an exemplary embodiment of the present application is shown. Detailed implementation manners

[0071] Here, the exemplary embodiments will be described in detail, and the examples are shown in the drawings. When the following description refers to the drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The implementation manners described in the following exemplary embodiments do not represent all implementation manners consistent with the present application. On the contrary, they are merely examples of devices and methods consistent with some aspects of the present application as detailed in the appended claims.

[0072] It should be understood that "a plurality of" mentioned herein refers to two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B may represent: A exists alone, A and B exist simultaneously, and B exists alone. The character " / " generally represents an "or" relationship between the associated objects before and after.

[0073] The embodiment of the present application provides a data transmission method in a cloud storage system, which can improve the data transmission efficiency between the computing node device and the storage node device in the cloud storage system, and further improve the data access performance of the cloud storage system. For ease of understanding, several terms related to the present application are explained below.

[0074] 1) Remote Direct Memory Access (RDMA)

[0075] RDMA is generated to solve the latency of data processing between the client and the server in network transmission. It directly transfers data from the memory of one computer to another computer without the intervention of the operating systems of both parties. RDMA allows high-throughput and low-latency network communication, and is especially suitable for use in large-scale parallel computer clusters. RDMA quickly moves data from one system to the memory of a remote system through the network without causing any impact on the operating system, so that little processing power of the computer is required. RDMA eliminates the overhead of copying, moving, and context switching of data packets between the user space and the kernel space, and thus can free up memory bandwidth and CPU cycles for improving the performance of the application system.

[0076] For example, please refer to Figure 1 , which shows a schematic diagram of the principle of RDMA related to an exemplary embodiment of the present application. As Figure 1As shown, when the sending device 10 and the receiving device 20 communicate via RDMA, the data corresponding to the application program in the sending device 10 is stored in the buffer 101. When writing this data to the receiving device 20, the data in the buffer 101 first skips the socket, transport layer, and network card driver layer, and is directly written into the buffer 102 in the network card of the sending device 10; then, the data is transmitted to the buffer 202 in the network card of the receiving device 20, and then the buffer 202 skips the socket, transport layer, and network card driver layer, and is directly written into the buffer 201 where the data corresponding to the application program in the receiving device 20 is stored.

[0077] 2) Cloud Technology

[0078] Cloud technology refers to a hosting technology that unifies a series of resources such as hardware, software, and network within a wide area network or local area network to achieve data computing, storage, processing, and sharing.

[0079] Cloud technology is the general term for network technology, information technology, integration technology, management platform technology, application technology, etc. applied based on the cloud computing business model. It can form a resource pool, be used on demand, and is flexible and convenient. Cloud computing technology will become an important support. The back-end services of the technical network system require a large amount of computing and storage resources, such as video websites, picture websites, and more portal websites. With the high development and application of the Internet industry, in the future, each item may have its own identification mark and needs to be transmitted to the back-end system for logical processing. Data at different levels will be processed separately, and various industry data requires a powerful system back-end support, which can only be achieved through cloud computing.

[0080] 3) Cloud Storage

[0081] Cloud storage is a new concept extended and developed from the cloud computing concept. A distributed cloud storage system (hereinafter referred to as the storage system) refers to a storage system that combines a large number of different types of storage devices (storage devices are also called storage nodes) in the network through functions such as cluster applications, grid technology, and distributed file systems, and works together through application software or application interfaces to jointly provide data storage and business access functions to the outside world.

[0082] Currently, the storage method of the storage system is as follows: Create a logical volume. When creating a logical volume, physical storage space is allocated for each logical volume. This physical storage space may be a certain storage device or the disks of several storage devices. When the client stores data on a certain logical volume, that is, stores the data on the file system. The file system divides the data into many parts, and each part is an object. The object not only contains the data but also contains additional information such as data identifiers (ID, ID entity), etc. The file system writes each object into the physical storage space of the logical volume respectively, and the file system will record the storage location information of each object. Thus, when the client requests to access the data, the file system can enable the client to access the data according to the storage location information of each object.

[0083] The process of the storage system allocating physical storage space for the logical volume is specifically as follows: According to the capacity estimation of the objects stored in the logical volume (this estimation often has a large margin relative to the actual capacity of the objects to be stored) and the group of the redundant array of independent disks (RAID, Redundant Array of Independent Disk), the physical storage space is pre-divided into stripes. A logical volume can be understood as a stripe, thus allocating physical storage space for the logical volume.

[0084] 4) Private Cloud

[0085] A private cloud (Private Cloud) is to create cloud infrastructure and software and hardware resources within the firewall for each department within an institution or enterprise to share the resources in the data center. To create a private cloud, in addition to hardware resources, there is generally also cloud device (IaaS, Infrastructure as a Service, Infrastructure as a Service) software.

[0086] Private cloud computing also includes three layers: cloud hardware, cloud platform, and cloud service. The difference is that the cloud hardware is the user's own personal computer or server, rather than the data center of a cloud computing manufacturer. The purpose of a cloud computing manufacturer to build a data center is to provide public cloud services for millions of users, so it needs to have hundreds of thousands of servers. For private cloud computing, for an individual, it only serves relatives and friends, and for an enterprise, it only serves the employees of the enterprise, as well as the customers and suppliers of the enterprise. Therefore, the individual's or enterprise's own personal computer or server is sufficient to provide cloud services.

[0087] 5) Public Cloud

[0088] A public cloud generally refers to a cloud that can be used provided by a third-party provider for users. A public cloud can generally be used via the Internet and may be free or inexpensive. The core attribute of a public cloud is shared resource services. There are many instances of this type of cloud that can provide services across the entire open public network today.

[0089] 6) Hybrid Cloud

[0090] A hybrid cloud combines a public cloud and a private cloud and is the main model and development direction of cloud computing in recent years. A private cloud is mainly for enterprise users. Due to security considerations, enterprises are more willing to store data in a private cloud. However, at the same time, they also hope to obtain the computing resources of the public cloud. In this case, the hybrid cloud is being adopted more and more. It mixes and matches the public cloud and the private cloud to achieve the best results. This personalized solution achieves the goal of saving money and ensuring security.

[0091] Figure 2 The figure shows a schematic diagram of the cloud storage system structure provided by an exemplary embodiment of the present application, as Figure 2 shown, the system includes: a server 210 and a terminal 220.

[0092] Among them, the above-mentioned server 210 can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers. It can also be a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN (Content Delivery Network), as well as big data and artificial intelligence platforms. It can also be a node server on a blockchain network.

[0093] The above-mentioned terminal 220 is a terminal with network connection function. For example, the terminal 220 can be a smart phone, a tablet computer, an e-book reader, smart glasses, a smart watch, a smart TV, a smart in-vehicle device, an MP3 player (Moving Picture Experts Group Audio Layer III), an MP4 (Moving Picture Experts Group Audio Layer IV) player, a laptop computer, and a desktop computer, etc.

[0094] Optionally, the above system includes one or more servers 210 and multiple terminals 220. The embodiments of the present application do not limit the number of servers 210 and terminals 220.

[0095] The terminal and the server are connected through a communication network. Optionally, the communication network is a wired network or a wireless network.

[0096] Optionally, the above-mentioned wireless network or wired network uses standard communication technologies and / or protocols. The network is usually the Internet, but can also be any network, including but not limited to any combination of a Local Area Network (LAN), a Metropolitan Area Network (MAN), a Wide Area Network (WAN), a mobile, wired or wireless network, a private network or a virtual private network. In some embodiments, technologies and / or formats including Hyper Text Mark-up Language (HTML), Extensible Markup Language (XML), etc. are used to represent the data exchanged through the network. In addition, conventional encryption technologies such as Secure Socket Layer (SSL), Transport Layer Security (TLS), Virtual Private Network (VPN), Internet Protocol Security (IPsec), etc. can be used to encrypt all or some of the links. In other embodiments, customized and / or dedicated data communication technologies can also be used to replace or supplement the above data communication technologies. This application does not make any restrictions here.

[0097] In a possible implementation manner, the server 210 in the above cloud storage system can provide cloud storage services to the terminal 220. For example, it provides a Cloud Block Storage (CBS) product.

[0098] Among them, the server 210 may include several node devices, and the several node devices can be divided into computing node devices and storage node devices. Among them, virtual machines can run in the computing node devices, and access services for cloud hard disks are provided to users through the virtual machines; storage entities (such as solid-state drives) are provided in the storage node devices, and functions of data storage and access are provided. The terminal 220 realizes data storage and access to the cloud hard disk product by accessing the virtual machine of the computing node device.

[0099] Among them, in the cloud storage system, data needs to be transmitted between the above-mentioned computing node device and the storage node device. When the computing node device writes data to the storage node device, the computing node device is the sending-end device, and the storage node device is the receiving-end device; correspondingly, when the computing node device reads data from the storage node device, the computing node device is the receiving-end device, and the storage node device is the sending-end device. In the subsequent embodiments of this application, the solution will be mainly introduced and described with the sending-end device and the receiving-end device as the main body.

[0100] Figure 3 The flowchart of the data transmission method in the cloud storage system provided by an exemplary embodiment of this application is shown. This method is executed by a computing device, which can be implemented as a sending-end device. The sending-end device can be implemented as the computing node device or the storage node device in the server 210 in the system shown above, such as Figure 2 shown. The data transmission method in this cloud storage system includes the following steps: Figure 3 shown. The data transmission method in this cloud storage system includes the following steps:

[0101] Step 310, in response to the sending-end application having target data to be written to the receiving-end device, send a connection establishment request to the receiving-end device; the sending-end application is an application running on the sending-end device.

[0102] Among them, the above-mentioned sending-end application can be an application running on the sending-end device that implements the cloud hard disk function.

[0103] Step 320, in response to receiving the connection establishment response returned by the receiving-end device, establish a data connection between the receiving-end device and the sending-end device.

[0104] Step 330, write the target data into the sending buffer; the sending buffer is registered during the establishment of the data connection.

[0105] Among them, the above-mentioned sending buffer is a buffer registered for the target data in the network card of the sending-end device.

[0106] Step 340, based on the data connection, write the target data into the receiving buffer in the receiving-end device in the form of Unified Communication X-based Remote Direct Memory Access (UCX-RDMA) so that the receiving-end application can process it; the receiving-end application is an application running on the receiving-end device.

[0107] Among them, UCX-RDMA is an RDMA implemented based on Unified Communication X (UCX), and it is a communication component implemented based on RDMA.

[0108] In summary, in the solution shown in the embodiments of the present application, when there is target data in the sending device in the cloud storage system to be written to the receiving device, a data connection can be established between the sending device and the receiving device, and the target data can be directly written from the buffer in the sending device to the buffer in the receiving device through the UCX-RDMA method, thereby simplifying the complexity of data transmission in the cloud storage system and improving the data access performance of the cloud storage system.

[0109] Figure 4 The flowchart of the data transmission method in the cloud storage system provided by an exemplary embodiment of the present application is shown. This method is executed by a computing device, and this computing device can be implemented as a receiving device, and this receiving device can be implemented as a computing node device or a storage node device in the server 210 in the system shown above, as Figure 2 shown. The data transmission method in this cloud storage system includes the following steps: Figure 4 shown. The data transmission method in this cloud storage system includes the following steps:

[0110] Step 410, in response to detecting a connection establishment request sent by the sending device through a detection thread, return a connection establishment response to the receiving device; the connection establishment request is sent by the sending device in response to the existence of target data in the sending application to be written to the receiving device; the sending application is an application running on the sending device.

[0111] Step 420, establish a data connection between the receiving device and the sending device.

[0112] Step 430, based on the data connection, write the target data in the sending buffer of the sending device to the receiving buffer in the receiving device through the UCX-RDMA method for the receiving application to process; the receiving buffer is registered during the establishment of the data connection; the receiving application is an application running on the receiving device.

[0113] In summary, in the solution shown in the embodiments of the present application, when there is target data in the sending device in the cloud storage system to be written to the receiving device, a data connection can be established between the sending device and the receiving device, and the target data can be directly written from the buffer in the sending device to the buffer in the receiving device through the UCX-RDMA method, thereby simplifying the complexity of data transmission in the cloud storage system and improving the data access performance of the cloud storage system.

[0114] Figure 5The flowchart of the data transmission method in the cloud storage system provided by an exemplary embodiment of the present application is shown. This method is executed by a computing device, which can be implemented as a sending device and a receiving device in the cloud storage system. The sending device and the receiving device can be respectively implemented as the computing node device and the storage node device in the server 210 in the system shown above, as Figure 2 shown. The data transmission method in the cloud storage system includes the following steps: Figure 5 shown. The data transmission method in the cloud storage system includes the following steps:

[0115] Step 501, the sending device calls the context establishment interface to create a first connection context, and calls the thread creation interface to create a first connection thread.

[0116] In the embodiment of the present application, the sending device can pre-create a first connection context and a first connection thread through the context establishment interface and the thread creation interface, so as to establish a corresponding data connection when there is data to be transmitted later.

[0117] In the embodiment of the present application, the connection and transmission of RDMA can be implemented between the sending device and the receiving device through the unified communication X framework. Among them, the context establishment interface and the thread creation interface can be interfaces provided by the UCX framework.

[0118] For example, the above first connection context can be a ucp_context_h created through the ucp_init() interface; the above first connection thread can be a ucp_worker_h created through the ucp_worker_create() interface.

[0119] Step 502, the receiving device calls the context establishment interface to create a second connection context; calls the thread creation interface to create a second connection thread; calls the detection thread creation interface to create a detection thread.

[0120] The way for the receiving device to create the second connection context and the second connection thread is similar to the way for the sending device to create the first connection context and the first connection thread, which will not be elaborated here.

[0121] Among them, in addition to creating the second connection context and the second connection thread, the receiving device also creates a detection thread.

[0122] In the embodiment of the present application, the receiving device can create a detection thread through the UCX framework. For example, the above detection thread can be a ucp_listener_h created through the ucp_listener_create() interface.

[0123] Step 503, in response to the existence of target data in the sending device's application that needs to be written to the receiving device, the sending device sends a connection establishment request to the receiving device.

[0124] Wherein, the sending application is an application running on the sending device.

[0125] In the embodiments of the present application, when there is target data in the sending device that needs to be written to the receiving device, the sending device can send a connection establishment request to the receiving device based on the above-mentioned first connection context and the first connection thread.

[0126] Please refer to Figure 6 , which shows an architecture diagram of a cloud node in a cloud storage system involved in the embodiments of the present application. As Figure 6 shown, the computing node device 61 in the cloud server includes a virtual machine, a Storage Performance Development Kit (SPDK), a Software Development Kit (SDK), and a transport layer; the storage node device 62 includes an SDK, a transport layer, and a storage device (such as a solid-state drive).

[0127] Among them, the virtual machine runs on the computing node device 61. According to the server configuration and the tenant's requirements for the virtual machine, each computing node device can support running multiple virtual machines. In each virtual machine, virtio-blk (an implementation of a virtual disk under a virtualization platform) can be used to provide hard disk services for the guest virtual machine.

[0128] The above-mentioned SPDK is a background service running on the computing node device, implementing the backend of virtio-blk.

[0129] The above-mentioned SDK provides an API for accessing the storage node.

[0130] The transport layer Transport implements transport protocols, such as UCX-RDMA and TCP, and can support the extension of other protocols.

[0131] When the virtual machine has a hard disk operation and needs to access the backend storage, it can submit a request to the background SPDK service through virio-blk. The SPDK service then submits the request to the SDK. The SDK selects TCP or RDMA (such as UCX-RDMA) to transmit this request to the storage node device 62, triggering the connection establishment and data transfer process between the computing node device 61 and the storage node device 62.

[0132] In a possible implementation manner, the step of sending a connection establishment request to the receiving device in response to the existence of target data to be written to the receiving device by the sending-end application includes:

[0133] In response to the existence of the target data in the sending-end application, submit an input / output request to the transport layer through the storage service layer in the Storage Performance Development Kit (SPDK);

[0134] Call a submit request instance through the transport layer to trigger the execution of the step of sending the connection establishment request to the receiving device.

[0135] Please refer to Figure 7 , which shows a schematic diagram of request triggering involved in an embodiment of the present application. As Figure 7 shown, after a virtual machine triggers a request for data writing (S71), the request is processed by the backend (S72), such as calling blk_net_process_io_pkt(virtio_blk_req), and the storage service layer (bdev) of SPDK respectively executes an SPDK bdev layer write request, such as spdk_bdev_write (S73), an SPDK bdev layer write block request, such as spdk_bdev_write_blocks (S74), an SPDK bdev layer submit I / O request, such as spdk_bdev_io_submit (S75), and the transport layer calls a submit request instance (S76), such as calling fn_table→submit_request(ch, bdev_io), to implement the submission of the request. After the above-mentioned request submission, the UCX API ucp_tag_send_nb() will finally be called to send in the UCX-RDMA manner.

[0136] Step 504: In response to detecting, through a detection thread, a connection establishment request sent by the sending device, the receiving device returns a connection establishment response to the receiving device and establishes a data connection between the receiving device and the sending device.

[0137] In the embodiment of the present application, when the detection thread of the receiving device detects a connection establishment request sent by the sending device, a connection establishment response can be returned to the receiving device to establish a data connection between the two for subsequent data transmission.

[0138] In a possible implementation manner, before establishing the data connection between the receiving device and the sending device, it further includes:

[0139] In response to detecting, through a detection thread, a connection establishment request sent by the sending device, create a second network endpoint based on the second connection context and the second connection thread;

[0140] Establishing the data connection between the receiving end device and the sending end device includes:

[0141] Establishing the data connection based on the second network endpoint.

[0142] In an embodiment of the present application, after the connection establishment request sent by the sending end device is detected by the detection thread, the receiving end device can create a second network endpoint as the network endpoint in the data connection to be established subsequently.

[0143] In an embodiment of the present application, the receiving end device can create a second network endpoint through the UCX framework. For example, the second network endpoint can be a ucp_ep_h created through the ucp_ep_create() interface.

[0144] Step 505, the sending end device establishes the data connection between the receiving end device and the sending end device in response to receiving the connection establishment response returned by the receiving end device.

[0145] In an embodiment of the present application, when the sending end device receives the connection establishment response returned by the receiving end device, it can establish the above data connection for subsequent data transmission.

[0146] In a possible implementation manner, before establishing the data connection between the receiving end device and the sending end device in response to receiving the connection establishment response returned by the receiving end device, it further includes:

[0147] In response to the sending end application having target data to be written to the receiving end device, creating the first network endpoint based on the first connection context and the first connection thread;

[0148] Establishing the data connection between the receiving end device and the sending end device in response to receiving the connection establishment response returned by the receiving end device includes:

[0149] Establishing the data connection based on the first network port in response to receiving the connection establishment response returned by the receiving end device.

[0150] In an embodiment of the present application, upon receiving the connection establishment response returned by the receiving end device, the sending end device can create a first network endpoint as the network endpoint in the data connection to be established subsequently.

[0151] In an embodiment of the present application, the sending end device can also create a first network endpoint through the UCX framework.

[0152] In response to receiving the connection establishment response returned by the receiving end device, the sending end device can also send an acknowledgment response to the receiving end device to complete the handshake with the receiving end device.

[0153] Taking the sending device as the client and the receiving device as the server as an example, please refer to Figure 8 and Figure 9 , where Figure 8 shows a schematic diagram of the connection establishment process involved in the embodiments of the present application, Figure 9 shows a schematic diagram of the connection closing process involved in the embodiments of the present application.

[0154] As Figure 8 shown, during the connection establishment process, first, the client and the server complete a general initialization process, call ucp_init() to create a connection context 81 (i.e., ucp_conext), and call ucp_worker_create() to create a connection thread 82 (i.e., ucp_worker). Then the server calls ucp_listener_create() to create a detection thread 83 (i.e., ucp_listener), and starts to detect on the server side, waiting for the client to access.

[0155] Then, the client packs its private data into a connection request 84 (i.e., conn_request) and sends it to the server. The server responds to the request, packs its private data into a request response 85 and sends it to the client. After both parties complete the handshake, the connection is established, and the established connection corresponds to a network endpoint 86.

[0156] The main design goal of the connection closing process is to ensure network connection security and release all resources when the connection is torn down. Either party of the network can initiate the connection closing process. As Figure 9 shown, the sender calls ucp_ep_close_nb() to initiate the closing process to send a close request 91 and close the network endpoint. The remote receiver receives the close request 91, also closes its own network endpoint (endpoint) and releases all relevant resources thereon. For example, the remote receiver also calls ucp_ep_close_nb() to execute the closing process.

[0157] Optionally, after the remote receiver initiates the closing process, it can also return a close request 92 to the sender. After the sender receives the close request 92, it determines that the connection is closed.

[0158] Step 506, the sending device writes the target data into the sending buffer; the sending buffer is registered during the establishment process of the data connection.

[0159] In an embodiment of the present application, the above-mentioned sending buffer may be a buffer registered by the sending device for the target data. For example, the sending device may register the sending buffer before sending a connection establishment request, or before receiving a connection establishment response, or before or after establishing a data connection, in response to the presence of target data in the sending application that needs to be written to the receiving device.

[0160] Step 507, the sending device and the receiving device write the target data into the receiving buffer in the receiving device through the UCX-RDMA method based on the data connection; so that the receiving application can process it.

[0161] Wherein, the receiving application is an application running on the receiving device.

[0162] In an embodiment of the present application, the receiving device also registers a buffer for receiving data locally. Among them, the registration process of the receiving buffer is similar to that of the sending buffer, which will not be elaborated here.

[0163] In a possible implementation manner, the above-mentioned writing the target data into the receiving buffer in the receiving device through the UCX-RDMA method based on the data connection includes:

[0164] Sending a transmission request to the receiving device based on the data connection, where the transmission request contains a transmission tag; the transmission request is used to instruct the receiving device to write the target data into the receiving buffer through the UCX-RDMA method based on the transmission tag.

[0165] In an embodiment of the present application, the receiving device and the sending device assist in identifying and receiving the target data through a transmission tag (tag). That is to say, the receiving device can determine the receiving buffer corresponding to the target data of the current transmission through the transmission tag, and write the target data into the receiving buffer.

[0166] In an exemplary solution, the transmission request includes a first transmission request, and the first transmission request further contains the target data.

[0167] In another exemplary solution, the transmission request includes a second transmission request, and the second transmission request further contains the address of the sending buffer and the key of the sending buffer;

[0168] The above-mentioned writing the target data into the receiving buffer in the receiving device through the UCX-RDMA method based on the data connection further includes:

[0169] Receiving a data reading request sent by the receiving device through the data connection, where the data reading request contains the address of the buffer and the key of the sending buffer;

[0170] Send the target data to the receiving end device based on the address of the buffer and the key of the send buffer.

[0171] In the solution shown in the embodiments of the present application, sending the transmission request to the receiving end device includes:

[0172] Obtain the transmission mode of the target data based on the service requirements of the target data;

[0173] Send the transmission request to the receiving end device based on the transmission mode.

[0174] In the embodiments of the present application, there are two modes of UCX-RDMA, namely: Eager mode and Rendezvous mode. These two modes can be selected according to the needs of the service.

[0175] Please refer to Figure 10 , which shows a schematic diagram of data transmission involved in the embodiments of the present application. As Figure 10 shown, in Eager mode, first, the receiving end registers the receiving buf and address (S1001), for example, registers rbuf through rreq = ucp_taq_recv_nb(rbuf, tag), and sends rbuf / tag to the network card. Then, the sending end sends a message with a special header (S1002), for example, sends the message through sreq = ucp_tag_send_nb(sbuf, tag), and the message header carries tag, which is used to transfer (offload) to the network card hardware for processing. The receiving end network card hardware detects the received special header. If the tag in the message header matches the tag of the buf registered by the receiving end, the data is put into the previously registered buf (S1003), and then handed over to the upper-layer application for processing.

[0176] Please refer to Figure 11 , which shows another schematic diagram of data transmission involved in the embodiments of the present application. As Figure 11 shown, in Rendezvous mode, first, the receiving end registers the receiving buf and address (S1101). Then, the sending end sends an RTS message with a special header (S1102), which carries tag, the address of the local sending buf, and rkey. After receiving the RTS message, the receiving end initiates an RDMA_READ operation (S1103). Optionally, the receiving end network card hardware detects the received special header. If the tag in the message header matches the tag of the buf registered by the receiving end, the RDMA_READ operation is initiated. When the RDMA_READ operation is completed, the receiving end sends an acknowledgment message to confirm the completion of the operation (S1104).

[0177] In summary, in the solution shown in the embodiments of the present application, when there is target data to be written to the receiving device in the sending device in the cloud storage system, a data connection can be established between the sending device and the receiving device, and the target data can be directly written from the buffer in the sending device to the buffer in the receiving device through the UCX-RDMA method, thereby simplifying the complexity of data transmission in the cloud storage system and improving the data access performance of the cloud storage system.

[0178] Figure 12 The block diagram of the data transmission device in the cloud storage system provided by an exemplary embodiment of the present application is shown. This device can be used in the sending device; as Figure 12 shown, the data transmission device in the cloud storage system includes:

[0179] A connection establishment request sending module 1201, configured to send a connection establishment request to the receiving device in response to the existence of target data to be written to the receiving device by the sending application; the sending application is an application running on the sending device;

[0180] A connection establishment module 1202, configured to establish a data connection between the receiving device and the sending device in response to receiving the connection establishment response returned by the receiving device;

[0181] A writing module 1203, configured to write the target data into the sending buffer; the sending buffer is registered during the establishment process of the data connection;

[0182] A transmission module 1204, configured to write the target data into the receiving buffer in the receiving device through the UCX-RDMA method based on the data connection for processing by the receiving application; the receiving application is an application running on the receiving device.

[0183] In a possible implementation manner, the device further includes:

[0184] A creation module, configured to call a context establishment interface to create a first connection context before the connection establishment request sending module 1201 sends a connection establishment request to the receiving device;

[0185] The creation module is further configured to call a thread creation interface to create a first connection thread before the connection establishment request sending module 1201 sends a connection establishment request to the receiving device;

[0186] The creation module is further configured to, before the connection establishment module 1202 establishes a data connection between the receiving device and the sending device, in response to the presence of target data in the sending application that needs to be written to the receiving device, create the first network endpoint based on the first connection context and the first connection thread;

[0187] The connection establishment module 1202 is configured to, in response to receiving a connection establishment response returned by the receiving device, establish the data connection based on the first network port.

[0188] In a possible implementation, the transmission module 1204 is configured to send a transmission request to the receiving device based on the data connection, where the transmission request includes a transmission tag; the transmission request is used to instruct the receiving device to write the target data to the receiving buffer through the UCX-RDMA method based on the transmission tag.

[0189] In a possible implementation, the transmission request includes a first transmission request, and the first transmission request further includes the target data.

[0190] In a possible implementation, the transmission request includes a second transmission request, and the second transmission request further includes the address of the sending buffer and the key of the sending buffer.

[0191] The transmission module 1204 is further configured to

[0192] receive a data read request sent by the receiving device through the data connection, where the data read request includes the address of the buffer and the key of the sending buffer;

[0193] send the target data to the receiving device based on the address of the buffer and the key of the sending buffer.

[0194] In a possible implementation, the transmission module 1204 is configured to

[0195] obtain a transmission mode of the target data based on the service requirements of the target data;

[0196] send the transmission request to the receiving device based on the transmission mode.

[0197] In a possible implementation, the connection establishment request sending module 1201 is configured to

[0198] in response to the presence of the target data in the sending application, submit an input / output request to the transport layer through the storage service layer in the Storage Performance Development Kit (SPDK);

[0199] Invoke a submission request instance through the transport layer to trigger the step of sending the connection establishment request to the receiving device.

[0200] In a possible implementation, the sending device is a computing node device in the cloud storage system, and the receiving device is a storage node device in the cloud storage system;

[0201] Or,

[0202] The sending device is a storage node device in the cloud storage system, and the receiving device is a computing node device in the cloud storage system.

[0203] In summary, in the solution shown in the embodiments of the present application, when there is target data to be written to the receiving device in the sending device in the cloud storage system, a data connection can be established between the sending device and the receiving device, and the target data can be directly written from the buffer in the sending device to the buffer in the receiving device through the UCX-RDMA method, thereby simplifying the complexity of data transmission in the cloud storage system and improving the data access performance of the cloud storage system.

[0204] Figure 13 The block diagram of the data transmission device in the cloud storage system provided by an exemplary embodiment of the present application is shown. This device can be used in the receiving device; as Figure 13 shown, the data transmission device in this cloud storage system includes:

[0205] A connection establishment response return module 1301, configured to return a connection establishment response to the receiving device in response to detecting a connection establishment request sent by the sending device through a detection thread; the connection establishment request is sent by the sending device in response to the existence of target data to be written to the receiving device in the sending application; the sending application is an application running on the sending device;

[0206] A connection establishment module 1302, configured to establish a data connection between the receiving device and the sending device;

[0207] A transmission module 1303, configured to write the target data in the sending buffer of the sending device to the receiving buffer in the receiving device through the UCX-RDMA method based on the data connection for processing by the receiving application; the receiving buffer is registered during the establishment of the data connection; the receiving application is an application running on the receiving device.

[0208] In a possible implementation, the device further includes:

[0209] A creation module is used to call a context establishment interface to create a second connection context before a connection establishment response return module 1301 returns a connection establishment response to the receiving device in response to a connection establishment request detected by a detection thread from a sending device; call a thread creation interface to create a second connection thread; call a detection thread creation interface to create the detection thread;

[0210] The creation module is further used to create a second network endpoint based on the second connection context and the second connection thread before a connection establishment module 1302 establishes a data connection between the receiving device and the sending device in response to a connection establishment request detected by the detection thread from the sending device;

[0211] The connection establishment module 1302 is used to establish the data connection based on the second network endpoint.

[0212] In a possible implementation, the transmission module 1303 is used to,

[0213] Receive a transmission request sent by the sending device based on the data connection, where the transmission request includes a transmission label;

[0214] Based on the transmission label verification, write the target data into the receive buffer through the UCX-RDMA method.

[0215] In summary, in the solution shown in the embodiments of the present application, when there is target data to be written from a sending device in a cloud storage system to a receiving device, a data connection can be established between the sending device and the receiving device, and the target data can be directly written from the buffer in the sending device to the buffer in the receiving device through the UCX-RDMA method, thereby simplifying the complexity of data transmission in the cloud storage system and improving the data access performance of the cloud storage system.

[0216] Figure 14The block diagram of the computer device 1400 shown in an exemplary embodiment of the present application is shown. The computer device can be implemented as the applet background server or the device background server in the above solution of the present application. The computer device 1400 includes a central processing unit (CPU) 1401, a system memory 1404 including a random access memory (RAM) 1402 and a read-only memory (ROM) 1403, and a system bus 1405 connecting the system memory 1404 and the central processing unit 1401. The computer device 1400 further includes a mass storage device 1406 for storing an operating system 1409, application programs 1410 and other program modules 1411.

[0217] The mass storage device 1406 is connected to the central processing unit 1401 through a mass storage controller (not shown) connected to the system bus 1405. The mass storage device 1406 and its associated computer-readable medium provide non-volatile storage for the computer device 1400. That is to say, the mass storage device 1406 may include computer-readable media (not shown) such as a hard disk or a compact disc read-only memory (CD-ROM) drive.

[0218] Without loss of generality, the computer-readable medium may include a computer storage medium and a communication medium. The computer storage medium includes volatile and non-volatile, removable and non-removable media implemented by any method or technology for storing information such as computer-readable instructions, data structures, program modules or other data. The computer storage medium includes RAM, ROM, erasable programmable read-only registers (EPROM), electrically-erasable programmable read-only memory (EEPROM) flash memory or other solid-state storage technologies, CD-ROM, digital versatile disc (DVD) or other optical storage, magnetic tape cartridges, magnetic tapes, disk storage or other magnetic storage devices. Of course, those skilled in the art will know that the computer storage medium is not limited to the above several. The above system memory 1404 and mass storage device 1406 can be collectively referred to as memory.

[0219] In accordance with various embodiments of the present disclosure, the computer device 1400 may also run on a remote computer on the network via a network such as the Internet. That is, the computer device 1400 may be connected to the network 1408 through the network interface unit 1407 connected to the system bus 1405. Or rather, the network interface unit 1407 may also be used to connect to other types of networks or remote computer systems (not shown).

[0220] The memory further includes at least one instruction, at least one program, a code set or an instruction set. The central processing unit 1401 implements all or part of the steps in the methods shown in the above various embodiments by executing the at least one computer instruction.

[0221] In an exemplary embodiment, there is also provided a computer-readable storage medium for storing at least one computer instruction, and the at least one computer instruction is loaded and executed by a processor to implement all or part of the steps in the above method. For example, the computer-readable storage medium may be a read-only memory (ROM), a random access memory (RAM), a compact disc read-only memory (CD-ROM), magnetic tape, a floppy disk, and an optical data storage device, etc.

[0222] In an exemplary embodiment, there is also provided a computer program product or a computer program. The computer program product or the computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes all or part of the steps in the above method.

[0223] Those skilled in the art will readily conceive of other embodiments of the present application after considering the specification and practicing the invention disclosed herein. The present application is intended to cover any variations, uses, or adaptations of the present application, which follow the general principles of the present application and include known common general knowledge or conventional technical means in the technical field not disclosed in the present application. The specification and embodiments are only regarded as exemplary, and the true scope and spirit of the present application are pointed out by the following claims.

[0224] It should be understood that the present application is not limited to the exact structures described above and shown in the drawings, and various modifications and changes can be made without departing from its scope. The scope of the present application is only limited by the appended claims.

Claims

1. A data transmission method in a cloud storage system, characterized in that The method is executed by a sending-end device, and the method includes: In response to the sending-end application having target data to be written to the receiving-end device, trigger the storage service layer in the Storage Performance Development Kit (SPDK) through a virtual machine to submit an input / output request to the Software Development Kit (SDK). The SDK selects the UCX-RDMA transmission mode and submits the input / output request to the transport layer. The transport layer calls a request submission instance to trigger the sending of a connection establishment request to the receiving-end device. The virtual machine is used to provide hard disk services using the virtio-blk driver. The SDK is used to provide an API for accessing storage nodes. The transport layer supports a protocol for implementing UCX-RDMA transmission. The sending-end application is an application running in the sending-end device that implements the cloud hard disk function; In response to receiving the connection establishment response returned by the receiving-end device, establish a data connection between the receiving-end device and the sending-end device; Write the target data into a sending buffer. The sending buffer is registered during the establishment of the data connection; Based on the data connection, write the target data into a receiving buffer in the receiving-end device in a Unified Communication X-based Remote Direct Memory Access (UCX-RDMA) manner for processing by the receiving-end application. The receiving-end application is an application running on the receiving-end device.

2. The method according to claim 1, characterized in that, Before sending the connection establishment request to the receiving-end device, it further includes: Call a context establishment interface to create a first connection context; Call a thread creation interface to create a first connection thread; Before, in response to receiving the connection establishment response returned by the receiving-end device, establishing a data connection between the receiving-end device and the sending-end device, it further includes: In response to the sending-end application having target data to be written to the receiving-end device, create a first network endpoint based on the first connection context and the first connection thread; The step of, in response to receiving the connection establishment response returned by the receiving-end device, establishing a data connection between the receiving-end device and the sending-end device includes: In response to receiving the connection establishment response returned by the receiving-end device, establish the data connection based on the first network endpoint.

3. The method according to claim 1, wherein The step of, based on the data connection, writing the target data into the receiving buffer in the receiving-end device in a Unified Communication X-based Remote Direct Data Access (UCX-RDMA) manner includes: Send a transmission request to the receiving-end device based on the data connection. The transmission request contains a transmission label. The transmission request is used to instruct the receiving-end device to write the target data into the receiving buffer in a UCX-RDMA manner based on the transmission label.

4. The method according to claim 3, characterized in that The transmission request includes a first transmission request, and the first transmission request further contains the target data.

5. The method according to claim 3, wherein The transmission request includes a second transmission request, and the second transmission request further contains the address of the sending buffer and the key of the sending buffer. Based on the data connection, the target data is written into the receive buffer in the receiving device by means of Unified Communication X Remote Direct Memory Access (UCX-RDMA), and further includes: Receiving a data read request sent by the receiving device through the data connection, where the data read request includes the address of the send buffer and the key of the send buffer; Sending the target data to the receiving device based on the address of the send buffer and the key of the send buffer.

6. The method according to any one of claims 3 to 5, characterized in that, The sending of the transmission request to the receiving device includes: Obtaining the transmission mode of the target data based on the service requirements of the target data; Sending the transmission request to the receiving device based on the transmission mode.

7. The method according to claim 1, wherein The sending device is a computing node device in the cloud storage system, and the receiving device is a storage node device in the cloud storage system; Or The sending device is a storage node device in the cloud storage system, and the receiving device is a computing node device in the cloud storage system.

8. A data transmission method in a cloud storage system, characterized in that, The method is executed by a receiving device, and the method includes: In response to detecting, by a detection thread, a connection establishment request sent by a sending device, returning a connection establishment response to the sending device; the connection establishment request is sent by the sending device in response to the presence of target data to be written into the receiving device in a sending application. When there is target data to be written into the receiving device in the sending application, the sending device triggers an input / output request to be submitted to a software development kit (SDK) through a storage service layer in a storage performance development kit (SPDK) by means of a virtual machine. The SDK selects the UCX-RDMA transmission mode and submits the input / output request to a transport layer. After that, the transport layer calls a submit request instance to trigger the sending; the virtual machine is used to provide hard disk services using a virtio-blk driver, the SDK is used to provide an API for accessing a storage node, and the transport layer supports a protocol for implementing UCX-RDMA transmission; the sending application is an application running in the sending device that implements the function of a cloud hard disk; Establishing a data connection between the receiving device and the sending device; Based on the data connection, writing the target data in the send buffer of the sending device into the receive buffer in the receiving device by means of UCX-RDMA for processing by a receiving application; the receive buffer is registered during the establishment of the data connection; the receiving application is an application running on the receiving device.

9. The method according to claim 8, characterized in that Before the step of returning a connection establishment response to the sending device in response to detecting, by a detection thread, a connection establishment request sent by the sending device, further includes: Invoking a context establishment interface to create a second connection context; Invoking a thread creation interface to create a second connection thread; Invoking a detection thread creation interface to create the detection thread; Before the step of establishing a data connection between the receiving device and the sending device, further includes: In response to detecting a connection establishment request sent by a sending device through a detection thread, create a second network endpoint based on the second connection context and the second connection thread; Establishing a data connection between the receiving device and the sending device includes: Establishing the data connection based on the second network endpoint.

10. The method according to claim 8, wherein Based on the data connection, writing the target data in the sending buffer of the sending device into the receiving buffer in the receiving device by means of UCX-RDMA includes: Based on the data connection, receiving a transmission request sent by the sending device, where the transmission request contains a transmission label; Based on the transmission label, writing the target data into the receiving buffer by means of UCX-RDMA.

11. A data transmission device in a cloud storage system, characterized in that, The device is used in a sending device, and the device includes: A connection establishment request sending module, configured to, in response to the existence of target data in a sending application to be written into a receiving device, trigger, through a virtual machine, the storage service layer in the Storage Performance Development Kit (SPDK) to submit an input / output request to a Software Development Kit (SDK). The SDK selects the UCX-RDMA transmission mode and submits the input / output request to a transport layer, and calls a submit request instance through the transport layer to trigger sending a connection establishment request to the receiving device; the virtual machine is used to provide hard disk services using the virtio-blk driver, the SDK is used to provide an API for accessing a storage node, and the transport layer supports a protocol for implementing UCX-RDMA transmission; the sending application is an application running in the sending device that implements the cloud hard disk function; A connection establishment module, configured to establish a data connection between the receiving device and the sending device in response to receiving a connection establishment response returned by the receiving device; A writing module, configured to write the target data into a sending buffer; the sending buffer is registered during the establishment of the data connection; A transmission module, configured to, based on the data connection, write the target data into the receiving buffer in the receiving device by means of UCX-RDMA so that a receiving application can process it; the receiving application is an application running on the receiving device.

12. A data transmission device in a cloud storage system, characterized in that, The device is used in a receiving device, and the device includes: A connection establishment response return module, configured to return a connection establishment response to the sending device in response to detecting, by a detection thread, a connection establishment request sent by the sending device; the connection establishment request is triggered by the sending device when there is target data to be written to the receiving device in a sending application, through a virtual machine to trigger the storage service layer in the Storage Performance Development Kit (SPDK) to submit an input / output request to the Software Development Kit (SDK), the SDK selects the UCX-RDMA transmission mode, and after submitting the input / output request to the transport layer, the transport layer calls a submit request instance to trigger the sending; the virtual machine is used to provide hard disk services using the virtio-blk driver, the SDK is used to provide an API for accessing storage nodes, and the transport layer supports a protocol for implementing UCX-RDMA transmission; the sending application runs on the sending device and implements the cloud hard disk function. A connection establishment module, configured to establish a data connection between the receiving device and the sending device. A transmission module, configured to write the target data in the sending buffer of the sending device to the receiving buffer in the receiving device through the UCX-RDMA method based on the data connection, so that a receiving application can process it; the receiving buffer is registered during the establishment of the data connection; the receiving application runs on the receiving device.

13. A computer device, characterized in that, The computer device includes a processor and a memory, and the memory stores at least one computer instruction, and the at least one computer instruction is loaded and executed by the processor to implement the data transmission method in the cloud storage system according to any one of claims 1 to 10.

14. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores at least one computer instruction, and the at least one computer instruction is loaded and executed by a processor to implement the data transmission method in the cloud storage system according to any one of claims 1 to 10.