A data writing method, a data reading method and related equipment and system

By compatible with key -value storage interfaces and high -speed network storage protocols in the storage system, the writing and reading commands that meet the high -speed network storage protocols are generated to solve the problem of low data writing and reading efficiency in existing technologies, and achieve efficient The remote storage operation.

CN111752480BActive Publication Date: 2025-01-24HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202010420635.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2016-03-24
Publication Date
2025-01-24
Estimated Expiration
2036-03-24

AI Technical Summary

Technical Problem

The prior art is difficult to effectively compatible with key-value storage and high-speed network storage protocols in storage systems, resulting in inefficient data writing and reading.

Method used

By implement the compatibility of key value storage interface and high -speed network storage protocol (such as NVMe Over Fabric) between the host and the remote storage node, generate the writing command and reading command that conforms to the high -speed network storage protocol to achieve the remote storage node High -efficiency data is written and read.

Benefits of technology

It implements the key-value storage interface to be carried on the high-speed network storage protocol, allowing applications to efficiently write and read data from remote storage nodes through the key-value storage interface, and is compatible with the storage of key-value storage and high-speed network storage protocols. Advantages.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111752480B_ABST
    Figure CN111752480B_ABST
Patent Text Reader

Abstract

The embodiment of the present invention discloses a data writing method, a data reading method and related devices and systems. The data writing method includes: receiving a write request for a remote storage node initiated by an application calling a key-value storage interface for writing data, the write request carries a key-value pair consisting of a key and a value, wherein the key is used to indicate the destination address of the data to be written, and the value is used to indicate the source address of the data to be written and the size of the data to be written; generating a write command that complies with the high-speed network storage protocol according to the key-value pair; the write command includes: a first field for indicating the destination address of the data to be written, a second field for indicating the source address of the data to be written, and a third field for indicating the size of the data to be written; sending a write command to the remote storage node through the interface of the high-speed network storage protocol. The above scheme is compatible with the storage advantages of key-value storage and the high-speed network storage protocol.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of storage, and in particular to a data writing method, a data reading method, and related equipment and systems. Background Art

[0002] With the rapid development of information technology, the storage of massive data has put forward new requirements and challenges for storage systems. In order to meet this challenge, the storage management technology of key-value storage (i.e. Key-Value storage, referred to as KV storage) came into being. KV storage can meet the needs of efficient storage and access to massive data. In addition, the non-volatile memory standard (Non-Volatile Memory Express, NVMe) as an efficient storage protocol has been supported by many flash memory, server and storage manufacturers, and its ecology is becoming more and more mature. At the same time, a more efficient network storage protocol is also emerging with the evolution of flash memory technology, which is NVMe Over Fabric. NVMe Over Fabric replaces the iSCSI used by the previous front end (such as iSER under Linux or SMB3 under Windows), allowing end users to directly achieve fast and low-latency access to remote NVMe devices through the NVMe Over Fabric protocol.

[0003] Based on the advantages of NVMe Over Fabric in supporting remote storage and the advantages of KV storage management technology in supporting efficient storage management of massive data, the compatibility of KV interface and NVMe Over Fabric will play an important role in the future storage field and has a good and broad market prospect. Summary of the invention

[0004] The embodiments of the present invention provide a data writing method, a data reading method and related devices and systems, which can realize the key-value storage interface being carried on the high-speed network storage protocol used for network storage, and are compatible with the storage advantages of key-value storage and the high-speed network storage protocol.

[0005] In a first aspect, a data writing method is provided, which is applied to a host side and includes:

[0006] A write request for a remote storage node is received, the write request carries a key-value pair consisting of a key and a value, and a write command that complies with a high-speed network storage protocol is generated based on the key-value pair. Finally, the write command is sent to the remote storage node through an interface of the high-speed network storage protocol, triggering the remote storage node to respond to the write command and write the data to be written stored at the source address into the physical address mapped to the destination address.

[0007] Specifically, the write request is a request initiated by an application by calling a key-value storage interface for writing data, such as KV_write(); the input parameters of the key-value storage interface for writing data include the key-value pair, wherein the key is used to indicate the destination address of the data to be written, and the value is used to indicate the source address of the data to be written and the size of the data to be written.

[0008] Specifically, the write command may include: a first field for indicating a destination address of the data to be written, a second field for indicating a source address of the data to be written, and a third field for indicating a size of the data to be written.

[0009] It can be understood that, since the key-value pair includes the values ​​of the first field, the second field and the third field in the write command, the host can fill in the corresponding fields of the write command according to the key-value pair carried by the write request.

[0010] Implementing the data writing method described in the first aspect can realize the key-value storage interface used for writing data being carried on the high-speed network storage protocol used for network storage, so that the application can implement data writing operations on the remote storage node through the key-value storage interface, and is compatible with the respective storage advantages of the key-value storage interface and the high-speed network storage protocol.

[0011] In a second aspect, a data writing method is provided, which is applied to a remote storage node side, and includes:

[0012] A write command that complies with the high-speed network storage protocol and is sent by the host is received through the interface of the high-speed network storage protocol, the destination address of the data to be written and the metadata of the data to be written are stored one-to-one in a target database in a target cache area, and the physical address mapped by the destination address is analyzed, and then the write command is responded to to write the data to be written into the physical address mapped by the destination address.

[0013] Specifically, the write command may include: a first field for indicating a destination address of the data to be written, a second field for indicating a source address of the data to be written, a third field for indicating a size of the data to be written, and a fourth field for indicating metadata of the data to be written. The target database provides a metadata access interface to the host, such as an add, delete, modify, and query interface.

[0014] The data writing method described in the second aspect has the same beneficial effects as those achieved by implementing the data writing method described in the first aspect. Similarly, the key-value storage interface used for writing data can be carried on the high-speed network storage protocol used for network storage, so that the application can implement data writing operations on the remote storage node through the key-value storage interface, thereby being compatible with the respective storage advantages of the key-value storage interface and the high-speed network storage protocol.

[0015] Furthermore, it can be understood that the target database provided by the present invention can achieve: the host directly accesses the metadata of the data to be written from the memory of the remote storage node (i.e., the target database) without having to search for the metadata of the data to be written block by block on the storage hard disk, thereby achieving efficient access and management of the metadata of the data written to the storage hard disk.

[0016] In one implementation, after the remote storage node writes the data to be written into the physical address mapped by the destination address, the remote storage node may return a write response to the host through the interface of the high-speed network storage protocol.

[0017] Correspondingly, the host can receive the write response returned by the remote storage node through the interface of the high-speed network storage protocol.

[0018] In a specific implementation, after the host receives the write response, the host can convert the data format of the write response into a write response format that can be recognized by a key-value storage interface for receiving write responses, such as KV_Get_Response(), so that the application can recognize the write response by calling the key-value storage interface.

[0019] In one implementation, after receiving the write command sent by the host, the remote storage node may send an acquisition request for the data to be written to the host, and the acquisition request may include a source address of the data to be written.

[0020] Correspondingly, the host can receive an acquisition request for the to-be-written data sent by the remote storage node.

[0021] Afterwards, the host may respond to the acquisition request and send the to-be-written data stored at the source address to the remote storage node through the interface of the high-speed network storage protocol.

[0022] Correspondingly, the remote storage node can receive the to-be-written data sent by the host through the interface of the high-speed network storage protocol.

[0023] In a third aspect, a data reading method is provided, which is applied to a host side and includes:

[0024] A read request for a remote storage node is received, the read request carries a key-value pair consisting of a key and a value, and a read command that complies with a high-speed network storage protocol is generated based on the key-value pair. Finally, the read command is sent to the remote storage node through an interface of the high-speed network storage protocol, triggering the remote storage node to respond to the read command and read the data to be read from the physical address mapped by the source address.

[0025] Specifically, the read request is a request initiated by an application program by calling a key-value storage interface for reading data, such as KV_read(), and the input parameter of the key-value storage interface for reading data includes the key-value pair; the key is used to indicate a source address of the data to be read, and the value is used to indicate a destination address of the data to be read and a size of the data to be read;

[0026] Specifically, the read command may include: a first field for indicating a source address of the data to be read, a second field for indicating a destination address of the data to be read, and a third field for indicating a size of the data to be read.

[0027] It can be understood that, since the key-value pair includes the values ​​of the first field, the second field and the third field in the read command, the host can fill in the corresponding fields of the read command according to the key-value pair carried by the read request.

[0028] Implementing the data reading method described in the first aspect can realize the key-value storage interface used to read data being carried on the high-speed network storage protocol used for network storage, so that the application can implement data reading operations on the remote storage node through the key-value storage interface, and is compatible with the respective storage advantages of the key-value storage interface and the high-speed network storage protocol.

[0029] In a fourth aspect, a data reading method is provided, which is applied to a remote storage node side, and includes:

[0030] A read command compliant with the high-speed network storage protocol is received from the host through the interface of the high-speed network storage protocol, the physical address mapped by the source address is analyzed, and then the read command is responded to to read the data to be read from the physical address mapped by the source address.

[0031] Specifically, the read command may include: a first field for indicating a source address of the data to be read, a second field for indicating a destination address of the data to be read, and a third field for indicating a size of the data to be read.

[0032] The data reading method described in the fourth aspect has the same beneficial effects as those of the data reading method described in the third aspect. Similarly, the key-value storage interface for reading data can be carried on the high-speed network storage protocol for network storage, so that the application can implement data reading operations on the remote storage node through the key-value storage interface, thereby being compatible with the respective storage advantages of the key-value storage interface and the high-speed network storage protocol.

[0033] In one implementation, after the remote storage node reads the to-be-read data from the physical address mapped to the source address, the remote storage node may return a read response to the host through the interface of the high-speed network storage protocol.

[0034] Correspondingly, the host can receive the read response returned by the remote storage node through the interface of the high-speed network storage protocol.

[0035] In a specific implementation, after receiving the read response, the host may convert the data format of the read response into a read response format recognizable by a key-value storage interface for receiving read responses, such as KV_Get_Response(), so that the application can identify the read response by calling the key-value storage interface.

[0036] In one implementation, after receiving the read command sent by the host, the remote storage node may also send a sending request for the data to be read to the host, where the sending request includes a destination address of the data to be read.

[0037] Correspondingly, the host receives the sending request sent by the remote storage node, and returns a response to the sending request to the remote storage node.

[0038] Afterwards, the remote storage node may receive the response returned by the host, and send the to-be-read data to the host via an interface of a high-speed network storage protocol.

[0039] Correspondingly, the host can receive the data to be read sent by the remote storage node through the interface of the high-speed network storage protocol, and store the data to be read at the destination address.

[0040] In a fifth aspect, a data writing device is provided, comprising a unit for executing the method described in the first aspect.

[0041] In a sixth aspect, a storage node is provided, comprising a unit for executing the method described in the second aspect.

[0042] In a seventh aspect, a data reading device is provided, comprising a unit for executing the method described in the third aspect.

[0043] In an eighth aspect, a storage node is provided, comprising a unit for executing the method described in the fourth aspect.

[0044] In a ninth aspect, a data writing device is provided, which is used to execute the data writing method described in the first aspect. The data writing device may include: a memory and a processor, a transmitter and a receiver coupled to the memory, wherein: the transmitter is used to send a mobile communication signal to a remote storage node, the receiver is used to receive the mobile communication signal sent by the remote storage node, the memory is used to store the implementation code of the data writing method described in the first aspect, and the processor is used to execute the program code stored in the memory, that is, to execute the data writing method described in the first aspect.

[0045] In a tenth aspect, a data reading device is provided, which is used to execute the data reading method described in the third aspect. The data reading device may include: a memory and a processor, a transmitter and a receiver coupled to the memory, wherein: the transmitter is used to send a mobile communication signal to a remote storage node, the receiver is used to receive the mobile communication signal sent by the remote storage node, the memory is used to store the implementation code of the data reading method described in the third aspect, and the processor is used to execute the program code stored in the memory, that is, to execute the data reading method described in the third aspect.

[0046] In the eleventh aspect, a storage system is provided, comprising: a data writing device and a storage node, wherein: the data writing device is the data writing device described in the fifth aspect, and the storage node is the storage node described in the sixth aspect.

[0047] In some possible implementations, the data writing device may also be the storage node described in the ninth aspect above.

[0048] In the twelfth aspect, a storage system is provided, comprising: a data reading device and a storage node, wherein: the data reading device is the data reading device described in the seventh aspect, and the storage node is the storage node described in the eighth aspect.

[0049] In some possible implementations, the data reading device may also be the data reading device described in the tenth aspect above.

[0050] In implementing the embodiment of the present invention, the host can generate a read and write command that complies with the high-speed network storage protocol based on the key-value pair carried by the read and write request sent by the application to the remote storage node, and the read and write request is a request initiated by the application by calling the key-value storage interface; and the host can send the read and write command that complies with the high-speed network storage protocol to the remote storage node through the transmission interface that complies with the high-speed network storage protocol to trigger the remote storage node to respond to the read and write command that complies with the high-speed network storage protocol to complete the remote read and write operation. The above scheme can realize the key-value storage interface being carried on the high-speed network storage protocol, so that the application can perform read and write operations on the remote storage node through the key-value storage interface, and is compatible with the storage advantages of key-value storage and the high-speed network storage protocol. BRIEF DESCRIPTION OF THE DRAWINGS

[0051] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings required for describing the embodiments are briefly introduced below.

[0052] Figure 1 is a schematic diagram of an application scenario provided by an embodiment of the present invention;

[0053] Figure 2 It is a flowchart of a data writing method provided by an embodiment of the present invention;

[0054] Figure 3 is a schematic diagram of an NVM command involved in an embodiment of the present invention;

[0055] Figure 4 It is a schematic diagram of the mutual mapping between the logical address and the physical address involved in the embodiment of the present invention;

[0056] Figure 5 is a schematic diagram of a message flow involved in an embodiment of the present invention;

[0057] Figure 6 It is a flowchart of a data reading method provided by an embodiment of the present invention;

[0058] Figure 7 is a structural schematic diagram of a data writing device provided by an embodiment of the present invention;

[0059] Figure 8 is a schematic diagram of the structure of a storage node provided by an embodiment of the present invention;

[0060] Fig. 9 is a schematic structural diagram of another data writing device provided by an embodiment of the present invention;

[0061] Fig.10 is a structural schematic diagram of a data reading device provided by an embodiment of the present invention;

[0062] Fig.11 is a schematic diagram of the structure of a storage node provided by an embodiment of the present invention;

[0063] Fig.12 It is a structural schematic diagram of another data reading device provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0064] The terms used in the embodiments of the present invention are only used to explain the specific embodiments of the present invention and are not intended to limit the present invention.

[0065] In order to better understand the embodiments of the present invention, the application scenario of the embodiments of the present invention is described below using the NVMe Over Fabric protocol as an example.

[0066] See also Figure 1 , Figure 1 Schematic diagram of the application scenario disclosed in the embodiment of the present invention. Figure 1 In the application scenario shown, the host and the remote storage node form a network storage system, and both the host and the remote storage node are integrated with NVMe Over Fabric (hereinafter referred to as NOF) interfaces, and the two communicate through the NOF interface. The host can be used to generate standard NVM commands and send the NVM commands to the remote storage node through the NOF interface integrated on the host; the remote storage node can be used to receive the NVM commands sent by the host through the NOF interface, and respond to the NVM commands to perform read and write operations on the storage device corresponding to the remote storage node, such as the multiple solid-state hard disks (SSDs) shown in the figure.

[0067] Specifically, Figure 1 As shown, the interaction between the host and the remote storage node may mainly include: a control layer and a data layer. The control layer may be mainly responsible for: the host sending NVM standard commands to the remote storage node, and the remote storage node returning a response (Response) to the NVM standard command to the host; the data layer may be mainly responsible for: the host sending data to be written to the remote storage node, and the remote storage node sending data to be read to the host.

[0068] It should be noted that the host involved in the embodiment of the present invention may include: a computing device that is compatible with a NOF interface and can access the remote storage node, such as a server, a storage management device, etc.

[0069] It should be noted that the remote storage node involved in the embodiment of the present invention may refer to a storage node integrated with the high-speed network storage protocol interface. Here, the remote storage node may refer to a storage node in a network storage system located remotely from the host, or may refer to a storage node in a distributed storage system (e.g., cloud storage).

[0070] It should be noted that the high-speed network storage protocol involved in this embodiment refers to a storage protocol used for network storage and having a storage bandwidth of Gbps level (e.g., 1Gbps or higher), such as the NVMe Over Fabric protocol. The embodiment of the present invention does not limit the specific form of the high-speed network storage protocol, and the high-speed storage protocol for network storage that may appear in the future also belongs to the implementation object of the solution of the present invention.

[0071] Need to explain, Figure 1 The network storage system shown is only a simple example provided by an embodiment of the present invention. The specific networking form of the network storage system may be determined according to actual application scenarios and requirements, and is not limited here.

[0072] The embodiment of the present invention provides a data writing method, a data reading method and related devices and systems. The host can generate a read and write command that complies with the high-speed network storage protocol according to the key-value pair (key-value) carried by the read and write request sent by the application to the remote storage node. The read and write request is a request initiated by the application by calling the key-value storage interface (hereinafter referred to as the KV interface); and the host can send the read and write command that complies with the high-speed network storage protocol to the remote storage node through the transmission interface that complies with the high-speed network storage protocol to trigger the remote storage node to respond to the read and write command that complies with the high-speed network storage protocol to complete the remote read and write operation. The scheme of the present invention can realize the KV interface being carried on the high-speed network storage protocol for network storage, so that the application can perform read and write operations on the remote storage node through the key-value storage interface, which is compatible with the storage advantages of KV storage and the high-speed network storage protocol (such as NVMe Over Fabric). The following is a detailed description of each.

[0073] See also Figure 2 , Figure 2 FIG. 1 is a flow chart of a data writing method provided by an embodiment of the present invention. Figure 2 As shown, the method includes:

[0074] S101, the host receives a write request for a remote storage node, the write request carries a key-value pair consisting of a key and a value, the key is used to indicate the destination address of the data to be written, and the value is used to indicate the source address of the data to be written and the size of the data to be written. Specifically, the write request can be a request initiated by an application by calling a KV interface for writing data, such as KV_write(). In actual applications, the write request can also be a request initiated by a remote application calling a KV interface for writing data, which is not limited here.

[0075] Here, the source address of the data to be written refers to the address on the host used to store the data to be written before writing, and the source address is usually located in the memory space of the host; the destination address of the data to be written refers to the logical address on the remote storage node used to write the data to be written.

[0076] S103, the host may generate a write command that complies with the high-speed network storage protocol according to the key-value pair included in the write request. Specifically, the write command that complies with the high-speed network storage protocol may include: a first field for indicating the destination address of the data to be written, a second field for indicating the source address of the data to be written, and a third field for indicating the size of the data to be written.

[0077] S105, after generating the write command, the host may send the write command to the remote storage node through the interface of the high-speed network storage protocol. The write command is used to trigger the remote storage node to write the data to be written stored at the source address into the physical address mapped to the destination address. Correspondingly, the remote storage node may receive the write command sent by the host through the interface of the high-speed network storage protocol.

[0078] S107, after receiving the write command sent by the host, the remote storage node can analyze the physical address mapped by the destination address.

[0079] S109, the remote storage node responds to the write command and writes the data to be written into the physical address mapped by the destination address.

[0080] The data writing method provided by the embodiment of the present invention is described below by taking the high-speed network storage protocol NOF as an example.

[0081] Figure 3The NVM command involved in the embodiment of the present invention is shown, which mainly includes: Namespace Identifier (NSID), Starting LBA, Number of Logical Blocks, Scatter Gather List (SGL) and other fields. Among them, NSID and Starting LBA can be combined to indicate the logical address involved in the command on the remote storage node, such as the destination address of the written data, or the source address of the read data; the number of logical blocks can indicate the data length involved in the command, such as the length of the data to be written, or the length of the data to be read; SGL is a buffer area in the memory address space for storing data, such as the source address for storing the data to be written, or the destination address for storing the data to be read.

[0082] In an embodiment of the present invention, an application can call a KV interface for writing data, such as KV_write(), to initiate the write request to request the host to write the data to be written to the remote storage node. The key-value pair carried by the write request can be shown in Table 1:

[0083] Key NSID Starting LBA Value SGL Length

[0084] Table 1

[0085] Among them, the key may include: NSID and Starting LBA, which are used to indicate the destination address of the data to be written; the value may include: SGL, Length, wherein SGL is used to indicate the source address of the data to be written, and Length is used to indicate the size of the data to be written, which is equivalent to the number of logical blocks in the NVM command.

[0086] It should be noted that if the write request is for writing the entire domain name space of the remote storage node (such as full disk write), the key may also only include the NSID.

[0087] Understandably, from Figure 3 It can be seen from the NVM command shown and the key-value pair shown in Table 1 that since the key-value pair contains the values ​​of the first field, the second field and the third field in the write command, the host can fill the corresponding fields of the NVM write command according to the key-value pair carried by the write request. Here, the other fields contained in the NVM write command can be filled by the host according to the NVMe protocol regulations. For details, please refer to NVM Express Revision 1.2, which will not be repeated here.

[0088] It should be noted that Table 1 is only a key-value pair designed for NVM write commands. For write commands of other types of high-speed network storage protocols, the key-value pairs carried by the write requests involved in the embodiments of the present invention may not be restricted by Table 1, as long as the key of the key-value pair is used to indicate the destination address of the data to be written, and the value of the key-value pair is used to indicate the source address of the data to be written and the size of the data to be written.

[0089] In the embodiment of the present invention, after the remote storage node receives the write command compliant with the high-speed network storage protocol sent by the host, the remote storage node can analyze the physical address mapped by the destination address represented by the first field.

[0090] Specifically, Figure 4 As shown, the storage device corresponding to the remote storage node may be integrated with multiple storage hard disks (such as SSDs), and the multiple storage hard disks jointly map a continuous logical block address. Figure 4 As shown, a piece of data stored on the storage device corresponds to a logical block address, and the logical block address can actually map multiple discrete physical block addresses (Physical Block Address, PBA). For example, data Data1 corresponds to the logical block address LBA-1, and LBA-1 maps multiple PBAs such as PBA-11 and PBA-12. In a specific implementation, the remote storage node can analyze the physical address mapped by the destination address represented by the first field through the Flash Translation Layer (FTL), and finally write the data to be written into the physical address.

[0091] Optionally, the data writing method provided in the embodiment of the present invention may further include: Figure 2 S111 in the above step, i.e., after writing the data to be written into the physical address mapped by the destination address, the remote storage node may return a write response to the host through the interface of the high-speed network storage protocol. Correspondingly, the host may receive the write response returned by the remote storage node through the interface of the high-speed network storage protocol.

[0092] Let's take NOF, a high-speed network storage protocol, as an example. Figure 5 The message flow diagram shown in FIG. 1 details the message processing process of writing data involved in the embodiment of the present invention.

[0093] like Figure 5As shown, the message processing process corresponding to the above S101 to S109 may include: 1. The application (APP) initiates a write request for the remote storage node by calling the KV interface for writing data, such as KV_write(), and transmits the key-value pair key-value to the host through KV_write(); 2. The host generates a standard NVM write command according to the key-value pair passed in by the application, namely NVM_Command in the figure; 3. The host sends the standard NVM write command to the remote storage node through the NOF interface.

[0094] like Figure 5 As shown, the message processing process corresponding to the above S111 may specifically include: 4. The host receives the write response returned by the remote storage node through the NOF interface, that is, NVM_Response in the figure; 5. The host converts the data format of the write response into a KV interface for receiving the write response, such as KV_Get_Response(), which can recognize the write response format, that is, the data format of KV_Response in the figure; 6. The application (APP) receives the write response returned by the remote storage node through the KV interface, such as KV_Get_Response().

[0095] The above content describes in detail the data writing method provided by the embodiment of the present invention from the control level.

[0096] From the data level, the data writing method provided by the embodiment of the present invention may also include:

[0097] After receiving the write command sent by the host, the remote storage node may send a request to obtain the data to be written to the host, and the request may include the source address of the data to be written; accordingly, the host may receive the request to obtain the data to be written sent by the remote storage node. Afterwards, the host may respond to the request to obtain and send the data to be written stored at the source address to the remote storage node through the interface of the high-speed network storage protocol; accordingly, the remote storage node may receive the data to be written sent by the host through the interface of the high-speed network storage protocol.

[0098] Furthermore, in an embodiment of the present invention, the value (Value) in the key-value pair carried by the write request may also include: metadata (Metadata) of the data to be written, and the metadata is a type of data used to describe the attributes of the data to be written (such as business type, creation time, etc.). Accordingly, the write command generated by the host that complies with the high-speed network storage protocol also includes: a fourth field for indicating the metadata of the data to be written.

[0099] That is to say, the write command received by the remote storage node also includes: a fourth field for indicating the metadata of the data to be written. In a specific implementation, the remote storage node can store the destination address of the data to be written and the metadata of the data to be written in a target database in a target cache area in a one-to-one correspondence. The target cache area is located in the memory address space of the remote storage node and can provide a metadata access interface to the host. For example, the target database can be as shown in Table 2:

[0100] NSID Starting LBA Metadata 01 LBA-11 metadata1 01 LBA-12 metadata2 02 LBA-21 metadata3 … … …

[0101] Table 2

[0102] The combination of "NSID" and "Starting LBA" is used to indicate the destination address of the data to be written, and "Metadata" is used to indicate the metadata of the data to be written. It should be noted that Table 2 is only an implementation of the embodiment of the present invention, and may be different in actual applications and should not constitute a limitation.

[0103] Specifically, when the destination address of the data to be written and the metadata of the data to be written are stored one-to-one in the target database in the target cache area, the remote storage node can: determine whether the destination address already exists in the target database, and if so, replace the metadata corresponding to the destination address in the target database with the metadata of the data to be written; otherwise, create a new mapping relationship in the target database for correspondingly storing the destination address of the data to be written and the metadata of the data to be written.

[0104] In a specific implementation, the target database may provide the host with a data access interface including add, delete, modify, and query interfaces for managing metadata in the target database.

[0105] It can be understood that since the target cache area is located in the memory address space of the remote storage node rather than the physical storage space on the storage hard disk corresponding to the storage node, the target database provided by the present invention can achieve: the host directly accesses the metadata of the data to be written from the memory of the remote storage node (i.e., the target database) without having to search for the metadata of the data to be written block by block on the storage hard disk, thereby achieving efficient access and management of the metadata of the data written to the storage hard disk.

[0106] In implementing the embodiment of the present invention, after receiving a write request sent by an application to a remote storage node (the write request carries a key-value pair, the key is used to indicate the destination address of the data to be written, and the value is used to indicate the source address of the data to be written and the size of the data to be written), the host can generate a write command that complies with the high-speed network storage protocol based on the key-value pair, and send the write command to the remote storage node through the interface of the high-speed network storage protocol, triggering the remote storage node to write the data to be written into the physical address mapped by the destination address. The data writing method can realize the KV interface for writing data being carried on the high-speed network storage protocol for network storage, so that the application can implement data write operations on the remote storage node through the KV interface for writing data, which is compatible with the storage advantages of KV storage and the high-speed network storage protocol.

[0107] See also Figure 6 , Figure 6 FIG. 1 is a flow chart of a data reading method provided by an embodiment of the present invention. Figure 6 As shown, the method includes:

[0108] S201, the host receives a read request for a remote storage node, the read request carries a key-value pair consisting of a key and a value, the key is used to indicate the source address of the data to be read, and the value is used to indicate the destination address of the data to be read and the size of the data to be read. Specifically, the read request can be a request initiated by an application (APP) on the host by calling a KV interface for reading data, such as KV_read(). In actual applications, the read request can also be a request initiated by a remote application calling a KV interface for reading data, which is not limited here.

[0109] Here, the source address of the data to be read refers to the logical address on the remote storage node used to store the data to be read before reading; the destination address of the data to be read refers to the address on the host used to store the read data to be read, and the destination address is usually located in the memory space of the host.

[0110] S203, the host may generate a read command that complies with the high-speed network storage protocol according to the key-value pair included in the read request. Specifically, the read command may include: a first field for indicating the source address of the data to be read, a second field for indicating the destination address of the data to be read, and a third field for indicating the size of the data to be read.

[0111] S205, after generating the read command, the host may send the read command to the remote storage node through the interface of the high-speed network storage protocol. Correspondingly, the remote storage node may receive the read command sent by the host through the interface of the high-speed network storage protocol.

[0112] S207, after receiving the read command sent by the host, the remote storage node can analyze the physical address mapped by the source address.

[0113] Specifically, the method for analyzing the physical address mapped by the source address can be referred to Figure 2 The relevant contents in the method embodiment will not be repeated here.

[0114] S209: The remote storage node responds to the read command and reads the data to be read from the physical address mapped by the source address.

[0115] The data to be read in the embodiment of the present invention may be obtained by Figure 2 The data writing method provided in the method embodiment is written to the storage device corresponding to the remote storage node. It should be noted that in actual applications, the data to be read can also be written to the storage device through other means, which is not limited here.

[0116] The data reading method provided by the embodiment of the present invention is described below by taking the high-speed network storage protocol NOF as an example. Figure 3 The NVM command is shown in the figure. For the specific format, please refer to Figure 2 The relevant contents in the method embodiment will not be repeated here.

[0117] In the embodiment of the present invention, the application can call the KV interface for reading data, such as KV_read(), to initiate the read request to request the host to read the data to be read from the remote storage node. The key-value pair carried by the read request can be shown in Table 3:

[0118] Key NSID Starting LBA Value SGL Length

[0119] Table 3

[0120] Among them, the key may include: NSID and Starting LBA, which are used to indicate the source address of the data to be read; the value may include: SGL, Length, wherein SGL is used to indicate the destination address of the data to be read, and Length is used to indicate the size of the data to be read, which is equivalent to the number of logical blocks in the NVM command.

[0121] It should be noted that if the read request is for writing the entire domain name space of the remote storage node (such as full disk read), the key may also only include the NSID.

[0122] Understandably, from Figure 3 It can be seen from the NVM read and write commands shown and the key-value pairs shown in Table 3 that the host can fill the corresponding fields of the NVM read command according to the key-value pairs carried by the read request. Here, other fields included in the NVM read command can be filled by the host according to the NVMe protocol regulations. For details, please refer to NVM Express Revision 1.2, which will not be repeated here.

[0123] It should be noted that Table 3 is only a key-value pair designed for NVM read commands. For read commands of other types of high-speed network storage protocols, the key-value pair carried by the read request involved in the embodiment of the present invention may not be restricted by Table 3, as long as the key of the key-value pair is used to indicate the source address of the data to be read, and the value of the key-value pair is used to indicate the destination address of the data to be read and the size of the data to be read.

[0124] Optionally, the data reading method provided in the embodiment of the present invention may further include: Figure 6 S211 in the above means that after reading the data to be read from the physical address mapped by the source address, the remote storage node may return a read response to the host through the interface of the high-speed network storage protocol. Correspondingly, the host may receive the read response returned by the remote storage node through the interface of the high-speed network storage protocol.

[0125] Let's take NOF, a high-speed network storage protocol, as an example. Figure 5 The message flow diagram shown in FIG. 1 details the message processing process of reading data involved in the embodiment of the present invention.

[0126] like Figure 5 As shown, the message processing process corresponding to the above S201 to S209 may include: 1. The application (APP) initiates a read request for the remote storage node by calling the KV interface for reading data, such as KV_read(), and transmits the key-value pair key-value to the host through KV_read(); 2. The host generates a standard NVM read command according to the key-value pair passed in by the application, namely NVM_Command in the figure; 3. The host sends the standard NVM read command to the remote storage node through the NOF interface.

[0127] like Figure 5As shown, the message processing process corresponding to the above S211 may specifically include: 4. The host receives the read response returned by the remote storage node through the NOF interface, that is, NVM_Response in the figure; 5. The host converts the data format of the read response into a read response format that can be recognized by the KV interface, such as KV_Get_Response(), that is, the data format of KV_Response in the figure; 6. The application (APP) receives the read response returned by the remote storage node through the KV interface, such as KV_Get_Response().

[0128] The above content describes in detail the data reading method provided by the embodiment of the present invention from the control level.

[0129] From the data level, the data reading method provided by the embodiment of the present invention may also include:

[0130] After receiving the read command sent by the host, the remote storage node can send a sending request for the data to be read to the host, and the sending request includes the destination address of the data to be read; accordingly, the host can receive the sending request sent by the remote storage node and return a response to the sending request to the remote storage node. Afterwards, the remote storage node can receive the response returned by the host and send the data to be read to the host through the interface of the high-speed network storage protocol; accordingly, the host can receive the data to be read sent by the remote storage node through the interface of the high-speed network storage protocol and store the data to be read at the destination address.

[0131] In implementing the embodiment of the present invention, after receiving a read request sent by an application to a remote storage node (the read request carries a key-value pair, the key is used to indicate the source address of the data to be read, and the value is used to indicate the destination address of the data to be read and the size of the data to be read), the host can generate a read command that complies with the high-speed network storage protocol based on the key-value pair, and send the read command to the remote storage node through the interface of the high-speed network storage protocol, triggering the remote storage node to read the data to be read from the physical address mapped by the source address. The data reading method can realize the KV interface for reading data being carried on the high-speed network storage protocol for network storage, so that the application can perform data read operations on the remote storage node through the KV interface for reading data, which is compatible with the storage advantages of KV storage and the high-speed network storage protocol.

[0132] See also Figure 7 , Figure 7 Schematic diagram of a data writing device provided by an embodiment of the present invention. Figure 7As shown, the data writing device 10 may include: a first receiving unit 101 , a write command generating unit 103 and a write command sending unit 105 .

[0133] in:

[0134] A first receiving unit 101 is configured to receive a write request for a remote storage node, wherein the write request carries a key-value pair consisting of a key and a value, wherein the key is used to indicate a destination address of data to be written, and the value is used to indicate a source address of the data to be written and a size of the data to be written;

[0135] A write command generating unit 103, configured to generate a write command that complies with a high-speed network storage protocol according to the key-value pair; the write command comprises: a first field for indicating a destination address of the data to be written, a second field for indicating a source address of the data to be written, and a third field for indicating a size of the data to be written;

[0136] The write command sending unit 105 is used to send the write command to the remote storage node through the interface of the high-speed network storage protocol, triggering the remote storage node to respond to the write command and write the data to be written stored at the source address into the physical address mapped by the destination address.

[0137] like Figure 7 As shown, the data writing device 10 may further include: a second receiving unit 107 and a data sending unit 109, wherein:

[0138] The second receiving unit 107 is configured to receive an acquisition request for the data to be written sent by the remote storage node after the write command sending unit 105 sends the write command to the remote storage node through the interface of the high-speed network storage protocol, wherein the acquisition request includes a source address of the data to be written;

[0139] The data sending unit 109 may be configured to respond to the acquisition request and send the to-be-written data stored at the source address to the remote storage node through the interface of the high-speed network storage protocol.

[0140] In the embodiment of the present invention, the value in the key-value pair may further include: metadata of the data to be written, and the write command may correspondingly further include: a fourth field for indicating the metadata of the data to be written.

[0141] It can be understood that the specific implementation of the functional units included in the data writing device 10 can refer to Figure 2 The functions of the host described in the method embodiment will not be repeated here.

[0142] See also Figure 8 , Figure 8FIG. 2 is a schematic diagram of a storage node structure provided by an embodiment of the present invention. Figure 7 The data writing device 10 shown corresponds to the data writing device 10, and is used to receive a write command that complies with the high-speed network storage protocol and execute a write operation. Figure 8 As shown, the storage node 20 may include: a write command receiving unit 201, a storage unit 203, an analysis unit 205 and a writing unit 207. Among them:

[0143] A write command receiving unit 201 is used to receive a write command that complies with the high-speed network storage protocol and is sent by a host through an interface of the high-speed network storage protocol; the write command includes: a first field for indicating a destination address of the data to be written, a second field for indicating a source address of the data to be written, a third field for indicating a size of the data to be written, and a fourth field for indicating metadata of the data to be written;

[0144] The storage unit 203 is used to store the destination address of the data to be written and the metadata of the data to be written in a target database in the target cache area in a one-to-one correspondence. The target database provides a metadata access interface to the host.

[0145] An analysis unit 205 is used to analyze the physical address mapped by the destination address;

[0146] The writing unit 207 is used to respond to the write command and write the data to be written into the physical address mapped by the destination address.

[0147] like Figure 8 As shown, the storage node 20 may further include: a sending unit 211 and a data receiving unit 209, wherein:

[0148] The sending unit 211 is configured to send an acquisition request for the data to be written to the host after the write command receiving unit 201 receives a write command that complies with the high-speed network storage protocol and is sent by the host through the interface of the high-speed network storage protocol, wherein the acquisition request includes a source address of the data to be written;

[0149] The data receiving unit 209 may be configured to receive the data to be written sent by the host in response to the acquisition request through the interface of the high-speed network storage protocol.

[0150] In a specific implementation, the saving unit can be specifically used to: determine whether the destination address already exists in the target database, and if so, replace the metadata corresponding to the destination address in the target database with the metadata of the data to be written; otherwise, create a new mapping relationship in the target database to store the destination address of the data to be written and the metadata of the data to be written accordingly.

[0151] It can be understood that the specific implementation of the functional units included in the storage node 20 can refer to Figure 2 The functions of the remote storage node described in the method embodiment will not be repeated here.

[0152] In order to facilitate the implementation of the embodiment of the present invention, the present invention provides another data writing device. Fig. 9 The data writing device 90 may include: a transmitter 903, a receiver 904, a memory 902, and a processor 901 coupled to the memory 902 (the number of the processor 901 in the data writing device 90 may be one or more, Fig. 9 In some embodiments of the present invention, the transmitter 903, the receiver 904, the memory 902 and the processor 901 may be connected via a bus or other means, wherein: Fig. 9 The example of connecting through bus is taken in the following.

[0153] The transmitter 903 is used to send data to the remote storage node, and the receiver 904 is used to receive data from the remote storage node. In a specific implementation, the transmitter 903 and the receiver 904 can be integrated into a wireless transceiver module, a wired transceiver module, and other transceiver devices. The memory 902 is used to store program codes. In a specific implementation, the memory 902 can be a read-only memory (ROM), which can be used to store the aforementioned Figure 2 The implementation code of the data writing method described in the method embodiment. The processor 901, such as a CPU, is used to call the program code stored in the memory 902 to execute the following steps:

[0154] A write request for a remote storage node is received, the write request carrying a key-value pair consisting of a key and a value, wherein the key is used to indicate a destination address of data to be written, and the value is used to indicate a source address of the data to be written and a size of the data to be written; the write request is a request initiated by an application calling a key-value storage interface for writing data, and an input parameter of the key-value storage interface for writing data includes the key-value pair;

[0155] Generate a write command that complies with the high-speed network storage protocol according to the key-value pair; the write command includes: a first field for indicating the destination address of the data to be written, a second field for indicating the source address of the data to be written, and a third field for indicating the size of the data to be written;

[0156] The write command is sent to the remote storage node using transmitter 903 through the interface of the high-speed network storage protocol, triggering the remote storage node to respond to the write command and write the data to be written stored at the source address into the physical address mapped by the destination address.

[0157] In the embodiment of the present invention, after sending the write command to the remote storage node by using the transmitter 903, the processor 901 may further:

[0158] Utilizing the receiver 904 to receive an acquisition request for the data to be written sent by the remote storage node, wherein the acquisition request includes a source address of the data to be written;

[0159] In response to the acquisition request, the data to be written stored at the source address is sent to the remote storage node by using the transmitter 903 through the interface of the high-speed network storage protocol.

[0160] Furthermore, the value in the key-value pair may also include: metadata of the data to be written, and the write command further includes: a fourth field for indicating the metadata of the data to be written.

[0161] It is understandable that the execution steps of the processor 901 can also refer to Figure 2 The contents related to the host described in the method embodiment will not be repeated here.

[0162] See also Fig.10 , Fig.10 Schematic diagram of a data reading device provided by an embodiment of the present invention. Fig.10 As shown, the data reading device 30 may include: a first receiving unit 301 , a read command generating unit 303 and a read command sending unit 305 .

[0163] in:

[0164] The first receiving unit 301 is used to receive a read request for a remote storage node, wherein the read request carries a key-value pair consisting of a key and a value, wherein the key is used to indicate a source address of the data to be read, and the value is used to indicate a destination address of the data to be read and a size of the data to be read;

[0165] A read command generating unit 303 is used to generate a read command that complies with the high-speed network storage protocol according to the key-value pair; the read command includes: a first field for indicating the source address of the data to be read, a second field for indicating the destination address of the data to be read, and a third field for indicating the size of the data to be read;

[0166] The read command sending unit 305 is used to send the read command to the remote storage node through the interface of the high-speed network storage protocol, triggering the remote storage node to respond to the read command and read the data to be read from the physical address mapped by the source address.

[0167] like Fig.10As shown, the data reading device 30 may further include: a second receiving unit 307, a response unit 309 and a data receiving unit 311, wherein:

[0168] A second receiving unit 307, which can be used to receive a sending request for the data to be read sent by the remote storage node after the read command sending unit sends the read command to the remote storage node through the interface of the high-speed network storage protocol, wherein the sending request includes a destination address of the data to be read;

[0169] A response unit 309, which may be used to respond to the sending request and return a response to the remote storage node in response to the sending request;

[0170] The data receiving unit 311 may be configured to receive the to-be-read data sent by the remote storage node through the interface of the high-speed network storage protocol, and store the to-be-read data at the destination address.

[0171] It can be understood that the specific implementation of the functional units included in the data reading device 30 can refer to Figure 6 The functions of the host described in the method embodiment will not be repeated here.

[0172] See also Fig.11 , Fig.11 FIG. 4 is a schematic diagram of a storage node structure provided by an embodiment of the present invention. Fig. 9 The data reading device 30 shown corresponds to the data reading device 30, and is used to receive a read command that complies with the high-speed network storage protocol sent by the data reading device 30 and perform a read operation. Fig.11 As shown, the storage node 40 may include: a read command receiving unit 401, an analyzing unit 403 and a reading unit 405. Among them:

[0173] A read command receiving unit 401 is used to receive a read command that complies with the high-speed network storage protocol and is sent by a host through an interface of the high-speed network storage protocol; the read command includes: a first field for indicating a source address of the data to be read, a second field for indicating a destination address of the data to be read, and a third field for indicating a size of the data to be read;

[0174] An analyzing unit 403 is used to analyze the physical address mapped by the source address;

[0175] The reading unit 405 is used to respond to the read command and read the to-be-read data from the physical address mapped by the source address.

[0176] like Fig.11 As shown, the storage node 40 may further include: a sending unit 407, a response receiving unit 409 and a data sending unit 411, wherein:

[0177] A sending unit 407, which is configured to send a sending request for the data to be read to the host after the reading unit reads the data to be read from the physical address mapped by the source address, wherein the sending request includes a destination address of the data to be read;

[0178] A response receiving unit 409, which can be used to receive a response returned by the host to the sending request;

[0179] The data sending unit 411 may be used to send the to-be-read data to the host via an interface of a high-speed network storage protocol.

[0180] It is understandable that the specific implementation of the functional units included in the storage node 40 can refer to Figure 6 The functions of the remote storage node described in the method embodiment will not be repeated here.

[0181] In order to facilitate the implementation of the embodiment of the present invention, the present invention provides another data reading device. Fig.12 The data reading device 100 may include: a transmitter 1003, a receiver 1004, a memory 1002, and a processor 1001 coupled to the memory 1002 (the number of processors 1001 in the data reading device 100 may be one or more, Fig.12 In some embodiments of the present invention, the transmitter 1003, the receiver 1004, the memory 1002 and the processor 1001 may be connected via a bus or other means, wherein: Fig.12 The example of connecting through bus is taken in the following.

[0182] The transmitter 1003 is used to send data to the remote storage node, and the receiver 1004 is used to receive data from the remote storage node. In a specific implementation, the transmitter 1003 and the receiver 1004 can be integrated into: a wireless transceiver module, a wired transceiver module and other transceiver devices. The memory 1002 is used to store program code. In a specific implementation, the memory 1002 can be a read-only memory (ROM) that can be used to store the aforementioned Figure 6 The implementation code of the data reading method described in the method embodiment. The processor 1001, such as a CPU, is used to call the program code stored in the memory 1002 to execute the following steps:

[0183] A read request for a remote storage node is received, the read request carrying a key-value pair consisting of a key and a value, wherein the key is used to indicate a source address of data to be read, and the value is used to indicate a destination address of the data to be read and a size of the data to be read; the read request is a request initiated by an application calling a key-value storage interface for reading data, and an input parameter of the key-value storage interface for reading data includes the key-value pair;

[0184] Generate a read command that complies with the high-speed network storage protocol according to the key-value pair; the read command includes: a first field for indicating a source address of the data to be read, a second field for indicating a destination address of the data to be read, and a third field for indicating a size of the data to be read;

[0185] The transmitter 1003 is used to send the read command to the remote storage node through the interface of the high-speed network storage protocol, triggering the remote storage node to respond to the read command and read the data to be read from the physical address mapped by the source address.

[0186] In the embodiment of the present invention, after reading the to-be-read data from the physical address mapped by the source address, the processor 1001 may further:

[0187] Using the transmitter 1003 to send a sending request for the data to be read to the host, wherein the sending request includes a destination address of the data to be read;

[0188] The receiver 1004 is used to receive the response to the sending request returned by the host, and the transmitter 1003 is used to send the data to be read to the host through the interface of the high-speed network storage protocol.

[0189] It is understandable that the execution steps of the processor 1001 can also refer to Figure 6 The contents related to the host described in the embodiment will not be repeated here.

[0190] In addition, an embodiment of the present invention provides a storage system (such as Figure 1 As shown), the storage system includes: a host and a remote storage node. Wherein: the host can be composed of Figure 7 The data writing device 10 described above, the remote storage node may be Figure 8 The storage node 20 is described.

[0191] It should be noted that the host can Figure 2 The host mentioned in the method embodiment, the remote storage node can Figure 2 The remote storage node mentioned in the method embodiment will not be described in detail here.

[0192] The embodiment of the present invention also provides a storage system (such as Figure 1 As shown), the storage system includes: a host and a remote storage node. Wherein: the host can be composed of Fig.10 The data reading device 30 described above, the remote storage node may be Fig.11 The storage node 40 is described.

[0193] It should be noted that the host can Figure 6 The host mentioned in the method embodiment, the remote storage node can Figure 6 The remote storage node mentioned in the method embodiment will not be described in detail here.

[0194] In summary, by implementing the embodiments of the present invention, the host can generate read and write commands that comply with the high-speed network storage protocol based on the key-value pairs carried by the read and write requests sent by the application to the remote storage node, and the read and write requests are requests initiated by the application by calling the key-value storage interface; and the host can send the read and write commands that comply with the high-speed network storage protocol to the remote storage node through the transmission interface that complies with the high-speed network storage protocol to trigger the remote storage node to respond to the read and write commands that comply with the high-speed network storage protocol to complete the remote read and write operations. The above scheme can realize the key-value storage interface being carried on the high-speed network storage protocol, so that the application can perform read and write operations on the remote storage node through the key-value storage interface, and is compatible with the storage advantages of key-value storage and the high-speed network storage protocol.

[0195] A person skilled in the art can understand that all or part of the processes in the above-mentioned embodiments can be implemented by instructing the relevant hardware through a computer program, and the program can be stored in a computer-readable storage medium, and when the program is executed, it can include the processes of the embodiments of the above-mentioned methods. The storage medium can be a disk, an optical disk, a read-only memory (ROM) or a random access memory (RAM), etc.

Claims

1. A data processing method, characterized in that: The method comprises: The host obtains the key-value pair carried by the read and write request for the remote storage node; The host generates a read / write command that complies with a high-speed network storage protocol according to the key-value pair carried by the read / write request for the remote storage node; The host sends the read and write commands conforming to the high-speed network storage protocol to the remote storage node through the transmission interface conforming to the high-speed network storage protocol, so as to trigger the remote storage node to respond to the read and write commands conforming to the high-speed network storage protocol to complete the read and write request operation for the remote storage node; When the read / write request is a write request, the read / write command generated by the host and conforming to the high-speed network storage protocol includes: a first field for indicating a destination address of the data to be written, a second field for indicating a source address of the data to be written, or, When the read / write request is a read request, the generating of the read / write command conforming to the high-speed network storage protocol includes: a first field for indicating a source address of the data to be read, and a second field for indicating a destination address of the data to be read; The key-value pair includes values ​​of the first field and the second field.

2. The method according to claim 1, characterized in that: The high-speed network storage protocol includes the NVMe OverFabric protocol.

3. The method according to claim 1, characterized in that: The read and write request for the remote storage node carries a key-value pair consisting of a key and a value.

4. The method according to claim 1, characterized in that: The read and write requests include requests initiated by an application program by calling a key-value storage interface.

5. The method according to any one of claims 1 to 4, characterized in that: When the read / write request for the remote storage node is a write request, the write request carries a key-value pair consisting of a key and a value, wherein the key is used to indicate the destination address of the data to be written, and the value includes a source address for indicating the data to be written, wherein the destination address of the data to be written is used to indicate the logical address of the data to be written in the remote storage node, and the source address of the data to be written is used to indicate the address for storing the data to be written in the host.

6. The method according to claim 5, characterized in that: The value also includes a value for indicating the size of the data to be written.

7. The method according to claim 1, characterized in that: The read and write commands generated by the host and complying with the high-speed network storage protocol also include: a third field for indicating the size of the data to be written.

8. The method according to claim 1, characterized in that: The value of the read / write request for the remote storage node further includes: metadata of the data to be written, and the read / write command for the remote storage node further includes: a fourth field for indicating the metadata of the data to be written.

9. The method according to claim 5, characterized in that: After sending the read / write command to the remote storage node through the interface of the high-speed network storage protocol, the method further includes: Receiving an acquisition request for the data to be written sent by the remote storage node, wherein the acquisition request includes a source address of the data to be written; In response to the acquisition request, the to-be-written data stored at the source address is sent to the remote storage node through the interface of the high-speed network storage protocol.

10. The method according to any one of claims 1 to 4, characterized in that: When the read and write request for the remote storage node is a read request, the read request carries a key-value pair consisting of a key and a value, wherein the key is used to indicate the source address of the data to be read, and the value is used to indicate the destination address of the data to be read and the size of the data to be read; the read request is a request initiated by the application by calling a key-value storage interface for reading data.

11. The method according to claim 10, characterized in that: The generating of the read command conforming to the high-speed network storage protocol also includes: a third field for indicating the size of the data to be read.

12. The method according to claim 10, characterized in that: After sending the read and write commands to the remote storage node through the interface of the high-speed network storage protocol, the method further includes: receiving a sending request for the data to be read sent by the remote storage node, wherein the sending request includes a destination address of the data to be read; In response to the sending request, a response is returned to the remote storage node for the sending request; The data to be read sent by the remote storage node is received through the interface of the high-speed network storage protocol, and the data to be read is stored at the destination address.

13. A data processing method, characterized in that: The method comprises: The remote storage node receives a read / write command that complies with the high-speed network storage protocol and is sent by the host through an interface of the high-speed network storage protocol, wherein the read / write command is generated based on a key-value pair carried by a read / write request for the remote storage node; When the read / write request is a write request, the read / write command generated by the host and conforming to the high-speed network storage protocol includes: a first field for indicating a destination address of the data to be written, a second field for indicating a source address of the data to be written, or, When the read / write request is a read request, the generating of the read / write command conforming to the high-speed network storage protocol includes: a first field for indicating a source address of the data to be read, and a second field for indicating a destination address of the data to be read; The key-value pair includes the values ​​of the first field and the second field; The remote storage node analyzes the address of the remote storage node on which the read and write commands conforming to the high-speed network storage protocol are to be operated according to the read and write commands conforming to the high-speed network storage protocol; The remote storage node completes the operation of the read and write commands that comply with the high-speed network storage protocol.

14. The method according to claim 13, characterized in that: When the read and write commands that comply with the high-speed network storage protocol are write commands, the write commands include: a first field for indicating the destination address of the data to be written, a second field for indicating the source address of the data to be written, a third field for indicating the size of the data to be written, and a fourth field for indicating metadata of the data to be written.

15. The method according to claim 14, characterized in that: The remote storage node analyzes the address of the remote storage node to be operated by the read / write command conforming to the high-speed network storage protocol according to the read / write command conforming to the high-speed network storage protocol, including: The remote storage node stores the destination address of the data to be written and the metadata of the data to be written in a target database in the target cache area in a one-to-one correspondence, and the target database provides a metadata access interface to the host; The remote storage node analyzes the physical address mapped by the destination address; The remote storage node responds to the write command and writes the data to be written into the physical address mapped by the destination address.

16. The method according to claim 13, characterized in that: When the read and write command that complies with the high-speed network storage protocol is a read command, the read command includes a first field for indicating the source address of the data to be read, a second field for indicating the destination address of the data to be read, and a third field for indicating the size of the data to be read.

17. The method according to claim 16, characterized in that: The remote storage node analyzes the address of the remote storage node to be operated by the read / write command conforming to the high-speed network storage protocol according to the read / write command conforming to the high-speed network storage protocol, including: Generate a read command that complies with the high-speed network storage protocol according to the key-value pair; the read command includes: a first field for indicating a source address of the data to be read, a second field for indicating a destination address of the data to be read, and a third field for indicating a size of the data to be read; The read command is sent to the remote storage node through the interface of the high-speed network storage protocol, triggering the remote storage node to respond to the read command and read the data to be read from the physical address mapped by the source address.

18. A storage system, characterized in that: The storage system includes a host and a remote storage node, the host is used to implement the operating steps of the method described in any one of claims 1 to 12, and the remote storage node is used to implement the operating steps of the method described in any one of claims 13 to 17.

Citation Information

Patent Citations

  • Managing storage devices

    US20150370700A1

  • Method for accessing storage device and storage device

    WO2014089828A1