A method, apparatus and medium for file read operation in a distributed storage system
By employing remote direct memory access technology and erasure coding in a distributed storage system, the problem of low read operation efficiency is solved, achieving efficient file read operations and improved data reliability.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- JINAN INSPUR DATA TECH CO LTD
- Filing Date
- 2022-08-19
- Publication Date
- 2026-06-30
AI Technical Summary
In distributed storage systems, the efficiency of read operations is limited by data copying and latency on the network link, resulting in a bottleneck for performance improvement.
By employing Remote Direct Memory Access (RDMA) technology, a communication link is established between the client and the object storage device, allowing data to be transferred directly between memory locations. This reduces the number of times data is copied between memory locations and improves data reliability through erasure coding technology.
It improves the performance and data reliability of file read operations, reduces network transmission latency, and enhances the overall efficiency and quality of the storage system.
Smart Images

Figure CN115525218B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communications, and in particular to a file read operation method, apparatus and medium for a distributed storage system. Background Technology
[0002] In a distributed storage system, files read and written by users through the kernel client have their data stored on the object-based storage device (OSD) at the cluster end, while metadata is stored on the metadata server (MDS) at the cluster end. Communication between the kernel client and the object-based storage device and metadata server at the cluster end is based on the Transmission Control Protocol (TCP). When a user issues a read command, it is encapsulated into a request by the virtual file system (VFS) layer and the read operation application programming interface (API). The kernel client sends a read request to the object-based storage device at the cluster end. The request is sent as a message through the network card on the kernel client side to the network card at the cluster end. The network card at the cluster end then sends the data back to the client. During this process, the network card at the cluster end needs to inform the central processing unit (CPU) of its data transmission request. The Direct Memory Access (DMA) controller copies the data from the buffer to the storage space of the input / output (I / O) device. The CPU controls the sending and receiving of data.
[0003] The data sent to the object storage device includes data and control data. In normal TCP communication mode, the data and control data are packaged together and sent to the object storage device. Therefore, a large number of copies of the data will be made in memory. As a result, the latency of message transmission on the network link between the kernel client and the storage node is a major bottleneck that limits performance improvement.
[0004] Therefore, improving the efficiency of read operations in distributed storage systems is a technical problem that urgently needs to be solved by those in the field. Summary of the Invention
[0005] The purpose of this application is to provide a method, apparatus, and medium for file read operations in a distributed storage system that improves the efficiency of read operations in a distributed storage system.
[0006] To address the aforementioned technical problems, this application provides a file read operation method for a distributed storage system, comprising:
[0007] Receive read operation requests;
[0008] Request memory space according to the read operation request;
[0009] The read operation request and the address information of the memory space are packaged into a read operation message;
[0010] The read operation message is sent to the object storage device in the form of remote memory direct access communication, so that the object storage device writes the requested data into the memory space according to the read operation message.
[0011] Preferably, in the file read operation method of the above-mentioned distributed storage system, requesting memory space according to the read operation request includes:
[0012] Memory space is allocated based on read operation requests and erasure coding. The memory space includes data memory and redundant memory.
[0013] Preferably, in the file read operation method of the above-described distributed storage system, after sending the read operation message to the object storage device in the form of remote memory direct access communication, so that the object storage device writes the requested data into the memory space according to the read operation message, the method further includes:
[0014] Receive a response message from the object storage device indicating that the data write is complete.
[0015] Preferably, in the file read operation method of the above-mentioned distributed storage system, before receiving the read operation request, the method further includes:
[0016] Receive read operation commands from the user;
[0017] Wrap the read operation instruction into a read operation request.
[0018] Preferably, in the file read operation method of the above-mentioned distributed storage system, after receiving the data write completion response message sent by the object storage device, the method further includes:
[0019] The request data stored in the memory space is sent to the user.
[0020] Preferably, in the file read operation method of the above-described distributed storage system, before sending the read operation message to the object storage device in the form of remote memory direct access communication, so that the object storage device writes the requested data into the memory space according to the read operation message, the method further includes:
[0021] Check whether the communication link for direct access to remote memory is normal;
[0022] If so, proceed to the step of sending the read operation message to the object storage device in the form of remote memory direct access communication.
[0023] Preferably, in the above-described file read operation method of the distributed storage system, if the communication link for direct access to remote memory is abnormal, the method further includes:
[0024] Re-establish the communication link for direct remote memory access with the object storage device.
[0025] To address the aforementioned technical problems, this application also provides a file read operation device for a distributed storage system, comprising:
[0026] The receiving module is used to receive read operation requests;
[0027] The request module is used to request memory space based on the read operation request;
[0028] The packaging module is used to package the read operation request and the address information of the memory space into a read operation message;
[0029] The sending module is used to send the read operation message to the object storage device in the form of remote memory direct access communication, so that the object storage device writes the requested data into the memory space according to the read operation message.
[0030] The application module includes an application subunit, which is used to apply for memory space based on read operation requests and erasure codes. The memory space includes data memory and redundant memory.
[0031] The response module is used to receive a response message sent by the object storage device indicating that the data writing is complete.
[0032] The instruction receiving module is used to receive read operation instructions issued by the user.
[0033] The initial packaging module is used to package read operation instructions into read operation requests.
[0034] The return module is used to send the request data stored in the memory space to the user.
[0035] The detection module is used to detect whether the communication link for direct remote memory access is normal.
[0036] If so, the triggering module will send the read operation message to the object storage device in the form of remote memory direct access communication.
[0037] If not, trigger the establishment module to re-establish the communication link for direct remote memory access with the object storage device.
[0038] To address the aforementioned technical problems, this application also provides a file read operation device for a distributed storage system, comprising:
[0039] Memory, used to store computer programs;
[0040] A processor is used to implement the file read operation method of the above-described distributed storage system when executing a computer program.
[0041] To address the aforementioned technical problems, this application also provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps of the file read operation method of the distributed storage system described above.
[0042] The file read operation method for a distributed storage system provided in this application involves receiving a read operation request; allocating memory space according to the read operation request; packaging the read operation request and the address information of the memory space into a read operation message; and sending the read operation message to an object storage device using remote direct memory access (RDM) communication, so that the object storage device writes the requested data into the memory space according to the read operation message. The client sends a read operation message containing control data of the read operation request and the address information of the memory space to the object storage device using RDM communication, and the object storage device at the cluster end writes the requested data into the specified memory space using RDM communication. This read operation method reduces the number of data copies between memory locations and improves network transmission efficiency by applying RDM technology, thereby improving the performance of file read operations and enhancing data reliability.
[0043] In addition, this application also provides a file read operation device and medium for a distributed storage system, which corresponds to the file read operation method of the above-mentioned distributed storage system and has the same effect. Attached Figure Description
[0044] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0045] Figure 1 A flowchart of a file read operation method for a distributed storage system provided in this application embodiment;
[0046] Figure 2 A structural diagram of a file read operation device for a distributed storage system provided in an embodiment of this application;
[0047] Figure 3This is a structural diagram of a file read operation device for another distributed storage system provided in an embodiment of this application. Detailed Implementation
[0048] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.
[0049] The core of this application is to provide a method, apparatus, and medium for file reading operations in a distributed storage system that improves the efficiency of read operations in a distributed storage system.
[0050] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0051] With the rapid development of cloud computing technology and the explosive growth of data, distributed storage systems are gradually replacing traditional centralized storage solutions to improve storage reliability and security. Object-based storage is a new network storage architecture, and devices based on object storage technology are called object storage devices. In general, object storage combines the advantages of Network Attached Storage (NAS) and Storage Area Network (SAN), possessing the high-speed direct access of SAN and the distributed data sharing capabilities of NAS, providing a storage architecture with high performance, high reliability, cross-platform compatibility, and secure data sharing.
[0052] Currently, distributed storage systems employ a multi-replica strategy, mapping a file object to a sequence of object storage devices. Each object storage device stores a backup of the file object, ensuring data redundancy across the storage cluster. Typically, the first device in the sequence is selected as the primary object storage device, which queues read requests for processing. However, a large number of read requests on the primary object storage device can increase latency in its queue, leading to decreased system read performance.
[0053] In storage devices, every object has an object identifier, which is accessed via OSD commands. When a user issues a read command, it is encapsulated into a request, and the kernel client sends a read request to the object storage device on the cluster side. The request is sent as a message through the client's network card to the cluster's network card, which then sends the data back to the client. During this process, the network card needs to inform the CPU of its data transmission request, the DMA controller copies the data from the cache to the I / O device's storage space, and the CPU focuses on the transmission and reception of control data. The data sent to the OSD includes both data and control message data. In normal TCP communication mode, the data and control data are packaged together and sent to the object storage device. Therefore, a large amount of data is copied in memory. Consequently, the latency of message transmission over the network link between the kernel client and the storage node is a major bottleneck limiting performance improvements.
[0054] To address the aforementioned technical problems, this application provides a file read operation method for a distributed storage system. Figure 1 A flowchart of a file read operation method for a distributed storage system provided in this application embodiment is shown below. Figure 1 As shown, it includes:
[0055] S11: Receive read operation request;
[0056] S12: Request memory space based on the read operation request;
[0057] S13: Package the read operation request and the memory space address information into a read operation message;
[0058] S14: Send the read operation message to the object storage device in the form of remote memory direct access communication, so that the object storage device writes the requested data into the memory space according to the read operation message.
[0059] In this embodiment, the implementation is from the client's perspective. A communication link for direct remote memory access is established between the client and the object storage device. In this embodiment, the client can be a terminal device capable of using a communication link for direct remote memory access.
[0060] It's important to note that Remote Direct Memory Access (RDMA) can be simply understood as the network interface card (NIC) completely bypassing the CPU to exchange memory data between two servers. As a hardware-based network transmission technology, it can significantly improve network transmission efficiency, helping network I / O-intensive services (such as distributed storage and distributed databases) achieve lower latency and higher throughput. Specifically, RDMA requires a NIC that supports RDMA and its corresponding driver. Once the application allocates resources, it can directly provide the NIC with the memory address and length information of the data to be sent. The NIC retrieves the data from memory, performs hardware encapsulation of the packet, and then sends it to the corresponding receiving end. Upon receiving the RDMA packet, the receiving end directly decapsulates it using hardware, extracts the data, and places it directly into the memory location pre-specified by the application. Because the entire process requires no CPU or operating system kernel involvement, no system calls, no interrupts, and no memory copying, RDMA network transmission can achieve extremely high performance.
[0061] First, in this embodiment, a communication link based on direct remote memory access is pre-established between the client and all object storage servers in the cluster.
[0062] Step S11 receives a read operation request sent by the client. This read operation request includes information such as the file to be read, the starting offset of the read, and the length of the data to be read. The address information of the file to be read needs to be found based on this information. Preferably, before receiving the read operation request in step S11, the method further includes: receiving a read operation instruction from the user; and packaging the read operation instruction into a read operation request.
[0063] This step occurs on the client side. When a user issues a read operation command to the client, the command will invoke the operating system kernel (Linux) system call and pass it to the kernel client through the Linux VFS layer. The kernel client will then wrap the read operation command into a read operation request.
[0064] Step S12 requests memory space based on the read operation request to store the requested data. Preferably, requesting memory space based on the read operation request includes requesting memory space based on the read operation request and erasure coding. The memory space includes data memory and redundant memory.
[0065] For example, based on a 4:2 erasure ratio, six memory segments will be allocated, with the total space of the first four segments equal to the total data size, and the last two segments storing redundant data. Erasure coding is a mechanism to prevent equipment failure and large-scale data loss. Erasure coding itself is a fault-tolerant coding technique, originally used in the communications industry to address the problem of data loss during transmission. Its basic principle is to segment the transmitted signal, add certain checksums, and establish certain connections between the segments. Even if some signals are lost during transmission, the receiving end can still calculate the complete information through algorithms. Erasure coding not only has the function of identifying and correcting errors, but also can delete information that cannot be corrected when the errors exceed the correction range. Erasure coding technology mainly uses erasure coding algorithms to encode the original data to obtain redundancy, and stores the data and redundancy together to achieve fault tolerance. Compared with multi-copy methods, erasure coding-based methods have advantages such as low redundancy and high disk utilization, making them a mainstream approach in distributed storage systems.
[0066] Additionally, it should be noted that the address information requested for memory space based on the read operation request includes the CPU address and the DMA address.
[0067] Throughout the message sending process, client software operates on the CPU address, while object storage devices and client network cards directly operate on the DMA address. Direct Memory Access (DMA) is a mechanism for fast data transfer. Data can be transferred from adapter card to memory, from memory to adapter card, or from one memory segment to another. DMA operation refers to the use of a DMA controller to directly transfer data between peripheral devices and system memory. It greatly reduces the load on the central processing unit (CPU) and significantly improves CPU utilization, making it widely used in systems with large amounts of data transfer. The DMA controller and CPU are two parallel units. During the brief period at the start of a DMA transfer, essentially two processors work for it: one executes program code, and the other transfers data. Another advantage of using DMA for data transfer is that data is transferred directly between the source and destination addresses without an intermediate medium. If a byte is transferred from an adapter card to memory via the CPU, it requires two steps. First, the CPU reads the byte from the adapter card into an internal register, and then transfers it from the register to the appropriate address in memory. The DMA controller simplifies these operations into one step; it manipulates control signals on the bus to complete the byte write in one operation. This greatly improves computer speed and work efficiency.
[0068] Step S13 packages the read operation request and the memory space address information into a read operation message. The read operation request in step S11 is passed down to the Messenger layer via the OnScreen Display Controller (OSDC). In the Messenger layer, it is further packaged into a message read operation message. The read operation message contains the control message header of the read operation request, which is the address information of the memory space requested in step S12.
[0069] Read operation messages are sent to the object storage device via remote direct memory access (RDA), enabling the object storage device to write the requested data into memory based on the read operation messages. This reduces the number of data copies between memory locations during the read operation process and improves network transmission efficiency through RDA technology, thereby enhancing file read operation performance, data reliability, and the quality of the storage product.
[0070] In this embodiment, a read operation request is received; memory space is requested according to the read operation request; the read operation request and the address information of the memory space are packaged into a read operation message; the read operation message is sent to the object storage device in the form of remote direct memory access communication, so that the object storage device writes the requested data into the memory space according to the read operation message. The client sends a read operation message containing control data of the read operation request and the address information of the memory space to the object storage device in the form of remote direct memory access communication, and the object storage device on the cluster side writes the requested data into the specified memory space in the form of remote direct memory access communication. Through this read operation method, data control is separated, the number of times data is copied between memory is reduced, and the network transmission efficiency is improved through remote direct memory access technology, thereby improving the performance of file read operations and improving data reliability.
[0071] In practice, after all the requested data is written to the memory space, the object storage device sends a response message to the client indicating that the current data writing is complete. This embodiment provides a preferred solution: step S14 sends the read operation message to the object storage device in the form of remote memory direct access communication, so that after the object storage device writes the requested data to the memory space according to the read operation message, it further includes:
[0072] Receive an acknowledgment message from the object storage device indicating that the data write is complete.
[0073] That is, after the requested data is written to the memory space via remote direct access, the object storage device sends a response message to the client indicating that the data writing is complete. Preferably, after receiving the response message indicating that the data writing is complete from the object storage device, the process further includes:
[0074] Send the requested data stored in memory to the user.
[0075] When a user issues a read operation command, the command invokes a system call in the operating system kernel (Linux) and is passed to the client through the Linux VFS layer. The client packages the read operation command into a read operation request, requests memory space to store the requested data, and sends a read operation message containing control data and memory address information to the object storage device via remote direct memory access (RDA). The object storage device on the cluster side writes the requested data to the specified memory space using RDA and responds to the client. After receiving the response message indicating that the data writing is complete, the client returns the requested data stored in the specified memory space to the user. This approach reduces the number of data copies between memory locations, achieves separation of data control and storage, and improves network transmission efficiency through RDA technology, thereby enhancing file read operation performance, data reliability, and the quality of the storage product.
[0076] According to the above embodiments, this application establishes a communication link for remote direct memory access between the client and the object storage device. To ensure successful data transmission, this embodiment provides a preferred solution: step S14 sends the read operation message to the object storage device in the form of remote direct memory access communication. Before the object storage device writes the requested data into the memory space according to the read operation message, the method further includes:
[0077] Check if the communication link for direct access to remote memory is normal;
[0078] If so, proceed to the step of sending the read operation message to the object storage device in the form of remote memory direct access communication;
[0079] If not, re-establish the communication link for remote direct memory access with the object storage device.
[0080] Ensure the communication link between the client and the object storage device for remote direct memory access is normal. If normal, proceed to the step of sending read operation messages to the object storage device in the form of remote direct memory access. The client sends the read operation message containing control data for the read operation request and the address information of the memory space to the object storage device in the form of remote direct memory access. The object storage device on the cluster side writes the requested data to the specified memory space in the form of remote direct memory access. If the communication link is broken, it is necessary to re-establish the remote direct memory access communication link with the object storage device to ensure the smooth progress of the read operation.
[0081] In the above embodiments, the file read operation method of the distributed storage system has been described in detail. This application also provides embodiments corresponding to the file read operation device of the distributed storage system. It should be noted that this application describes the embodiments of the device part from two perspectives: one is based on the functional module, and the other is based on the hardware.
[0082] Figure 2 A structural diagram of a file read operation device for a distributed storage system provided in this application embodiment is shown below. Figure 2 As shown, it includes:
[0083] Receiver module 21 is used to receive read operation requests;
[0084] Module 22 is used to request memory space based on read operation requests;
[0085] The packaging module 23 is used to package the read operation request and the address information of the memory space into a read operation message;
[0086] The sending module 24 is used to send the read operation message to the object storage device in the form of remote memory direct access communication, so that the object storage device writes the requested data into the memory space according to the read operation message.
[0087] Specifically, receiving module 21 receives read operation requests; requesting module 22 requests memory space based on the read operation request; packaging module 23 packages the read operation request and the memory space address information into a read operation message; sending module 24 sends the read operation message to the object storage device using remote direct memory access communication, so that the object storage device writes the requested data into the memory space according to the read operation message. The client sends a read operation message containing control data and memory space address information, along with the request, to the object storage device using remote direct memory access communication. The cluster-side object storage device then writes the requested data into the specified memory space using the same communication method. This read operation method achieves separation of data control and memory, reduces the number of data copies between memory locations, and improves network transmission efficiency through the application of remote direct memory access technology, thereby improving file read operation performance and data reliability.
[0088] Preferably, it further includes:
[0089] The application module 22 includes an application subunit, which is used to apply for memory space based on read operation requests and erasure codes. The memory space includes data memory and redundant memory.
[0090] The response module is used to receive a response message sent by the object storage device indicating that the data writing is complete.
[0091] The instruction receiving module is used to receive read operation instructions issued by the user.
[0092] The initial packaging module is used to package read operation instructions into read operation requests.
[0093] The return module is used to send the request data stored in the memory space to the user.
[0094] When a user issues a read operation command, the command invokes a system call in the operating system kernel (Linux) and is passed to the client through the Linux VFS layer. The client packages the read operation command into a read operation request, requests memory space to store the requested data, and sends a read operation message containing control data and memory space address information to the object storage device via remote direct memory access (RDA). The object storage device on the cluster side writes the requested data to the specified memory space using RDA and responds to the client. After receiving the response message indicating that the data writing is complete, the client returns the data from the specified memory space to the user. This approach reduces the number of data copies between memory locations and improves network transmission efficiency through RDA technology, thereby enhancing file read operation performance, data reliability, and the quality of the storage product.
[0095] The detection module is used to detect whether the communication link for direct remote memory access is normal.
[0096] If so, the trigger sending module 24 will send the read operation message to the object storage device in the form of remote memory direct access communication.
[0097] If not, the establishment module is triggered to re-establish the communication link for remote direct memory access between the client and the object storage device. Ensuring the normal operation of the communication link between the client and the object storage device guarantees successful read operations.
[0098] Since the embodiments of the apparatus and the embodiments of the method correspond to each other, please refer to the description of the embodiments of the method for the embodiments of the apparatus, which will not be repeated here.
[0099] Figure 3 A structural diagram of a file read operation device for another distributed storage system provided in this application embodiment is shown below. Figure 3 As shown, the file read operation device of the distributed storage system includes: a memory 30 for storing computer programs;
[0100] The processor 31 is used to implement the steps of the method for obtaining user operation habit information as described in the above embodiment (file read operation method of distributed storage system) when executing a computer program.
[0101] The file read operation device for the distributed storage system provided in this embodiment may include, but is not limited to, smartphones, tablets, laptops, or desktop computers.
[0102] The processor 31 may include one or more processing cores, such as a quad-core processor or an octa-core processor. The processor 31 may be implemented using at least one of the following hardware forms: Digital Signal Processor (DSP), Field-Programmable Gate Array (FPGA), or Programmable Logic Array (PLA). The processor 31 may also include a main processor and a coprocessor. The main processor, also known as the Central Processing Unit (CPU), is used to process data in the wake-up state; the coprocessor is a low-power processor used to process data in the standby state. In some embodiments, the processor 31 may integrate a Graphics Processing Unit (GPU), which is responsible for rendering and drawing the content to be displayed on the screen. In some embodiments, the processor 31 may also include an Artificial Intelligence (AI) processor, which handles computational operations related to machine learning.
[0103] The memory 30 may include one or more computer-readable storage media, which may be non-transitory. The memory 30 may also include high-speed random access memory and non-volatile memory, such as one or more disk storage devices or flash memory devices. In this embodiment, the memory 30 is used to store at least the following computer program 301, which, after being loaded and executed by the processor 31, is capable of implementing the relevant steps of the file read operation method of the distributed storage system disclosed in any of the foregoing embodiments. In addition, the resources stored in the memory 30 may also include an operating system 302 and data 303, etc., and the storage method may be temporary storage or permanent storage. The operating system 302 may include Windows, Unix, Linux, etc. The data 303 may include, but is not limited to, the data involved in implementing the file read operation method of the distributed storage system.
[0104] In some embodiments, the file read operation device of the distributed storage system may further include a display screen 32, an input / output interface 33, a communication interface 34, a power supply 35, and a communication bus 36.
[0105] Those skilled in the art will understand that Figure 3 The structure shown does not constitute a limitation on the file read operation device of the distributed storage system and may include more or fewer components than shown.
[0106] The file read operation device for a distributed storage system provided in this application includes a memory and a processor. When the processor executes a program stored in the memory, it can implement the following method: a file read operation method for a distributed storage system, which includes receiving a read operation request; requesting memory space according to the read operation request; packaging the read operation request and the address information of the memory space into a read operation message; and sending the read operation message to an object storage device in the form of remote direct memory access communication, so that the object storage device writes the requested data into the memory space according to the read operation message. The client sends a read operation message containing control data of the read operation request and the address information of the memory space to the object storage device in the form of remote direct memory access communication, and the object storage device at the cluster end writes the requested data into the specified memory space in the form of remote direct memory access communication. This read operation method achieves separation of control and data processing, reduces the number of data copies between memory locations, and improves network transmission efficiency through remote direct memory access technology, thereby improving the performance of file read operations and data reliability.
[0107] Finally, this application also provides an embodiment corresponding to a computer-readable storage medium. The computer-readable storage medium stores a computer program, which, when executed by a processor, implements the steps described in the above embodiment of the file read operation method for a distributed storage system.
[0108] It is understood that if the methods in the above embodiments are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and executes all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0109] The computer-readable storage medium provided in this embodiment stores a computer program. When the processor executes the program, it can implement the following method: a file read operation method for a distributed storage system, which includes receiving a read operation request; requesting memory space according to the read operation request; packaging the read operation request and the address information of the memory space into a read operation message; and sending the read operation message to an object storage device in the form of remote direct memory access communication, so that the object storage device writes the requested data into the memory space according to the read operation message. The client sends a read operation message containing control data of the read operation request and the address information of the memory space to the object storage device in the form of remote direct memory access communication, and the object storage device at the cluster end writes the requested data into the specified memory space in the form of remote direct memory access communication. This read operation method achieves separation of data control and memory, reduces the number of data copies between memory locations, and improves network transmission efficiency by applying remote direct memory access technology, thereby improving the performance of file read operations and data reliability.
[0110] The file read operation method, apparatus, and medium of the distributed storage system provided in this application have been described in detail above. The various embodiments in the specification are described in a progressive manner, with each embodiment focusing on its differences from other embodiments. Similar or identical parts between embodiments can be referred to interchangeably. For the apparatus disclosed in the embodiments, since it corresponds to the method disclosed in the embodiments, the description is relatively simple; relevant parts can be referred to in the method section. It should be noted that those skilled in the art can make several improvements and modifications to this application without departing from the principles of this application, and these improvements and modifications also fall within the protection scope of the claims of this application.
[0111] It should also be noted that, in this specification, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
Claims
1. A file read operation method of a distributed storage system, characterized by, include: Receive read operation requests; Request memory space according to the read operation request; The read operation request and the address information of the memory space are packaged into a read operation message; The read operation message is sent to the object storage device in the form of remote direct memory access communication, so that the object storage device writes the requested data into the memory space according to the read operation message in the form of remote direct memory access communication; The step of requesting memory space according to the read operation request includes: The process requests memory space based on the read operation request and erasure coding, and the memory space includes data memory and redundant memory. 2.The file read operation method of the distributed storage system according to claim 1, wherein, After sending the read operation message to the object storage device in the form of remote memory direct access communication, so that the object storage device writes the requested data into the memory space according to the read operation message, the method further includes: Receive a response message from the object storage device indicating that the data write is complete. 3.The file read operation method of the distributed storage system according to claim 2, wherein, Before receiving the read operation request, the method further includes: Receive read operation commands from the user; The read operation instruction is packaged into the read operation request.
4. The file read operation method of the distributed storage system according to claim 3, characterized in that, After receiving the data write completion response message sent by the object storage device, the method further includes: The request data stored in the memory space is sent to the user.
5. The file read operation method of the distributed storage system according to any one of claims 1 to 4, characterized in that, Before sending the read operation message to the object storage device in the form of remote memory direct access communication, so that the object storage device writes the requested data into the memory space according to the read operation message, the method further includes: Check whether the communication link for direct access to remote memory is normal; If so, proceed to the step of sending the read operation message to the object storage device in the form of remote memory direct access communication.
6. The file read operation method of the distributed storage system according to claim 5, characterized in that, If the communication link for direct access to remote memory is faulty, then the following is also included: Re-establish the communication link for direct remote memory access with the object storage device.
7. A file read operation device for a distributed storage system, characterized in that, include: The receiving module is used to receive read operation requests; The request module is used to request memory space based on the read operation request; The packaging module is used to package the read operation request and the address information of the memory space into a read operation message; The sending module is used to send the read operation message to the object storage device in the form of remote direct memory access communication, so that the object storage device writes the requested data into the memory space according to the read operation message in the form of remote direct memory access communication; The application module includes an application subunit, which is used to apply for memory space based on read operation requests and erasure codes. The memory space includes data memory and redundant memory.
8. A file read operation device for a distributed storage system, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the steps of the file read operation method of the distributed storage system as described in any one of claims 1 to 6 when executing the computer program.
9. 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 file read operation method of the distributed storage system as described in any one of claims 1 to 6.