Storage system, data access method, and storage subsystem

By designing computing circuit logic with network card, processor and hard disk controller functions in the storage system, and interacting through the on-chip bus protocol, the problem of interaction delay of components within the storage node is solved, and data read and write efficiency is improved.

WO2025113322A1PCT designated stage expired Publication Date: 2025-06-05HUAWEI TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/133636
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-11-30
Filing Date
2024-11-21
Publication Date
2025-06-05

AI Technical Summary

Technical Problem

In existing storage systems, the delay caused by the interaction between various components within the storage node affects the data read and write efficiency.

Method used

A storage system is designed in which the computing circuit logic has the functions of a network card, a processor and a hard disk controller, and efficient interaction between units is performed through the on-chip bus protocol to reduce system bus interaction.

Benefits of technology

Improves the data read and write efficiency of storage nodes and reduces the delay in internal component interactions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024133636_05062025_PF_FP_ABST
    Figure CN2024133636_05062025_PF_FP_ABST
Patent Text Reader

Abstract

A storage system, a data access method, and a storage subsystem. In the present application, a storage node comprises computing circuit logic and a storage medium, wherein the computing circuit logic can receive, on the basis of a network protocol, a first data access request from at least one computing node and / or another storage node among a plurality of storage nodes, the first data access request being used for accessing data in a first storage node. The computing circuit logic determines a physical address of data on the basis of a logical address of data to be accessed that is carried in the first data access request, and accesses the storage medium on the basis of the physical address of the data. In the storage system, computing circuit logic has all the functions of a network card, a processor, and a controller in a hard disk, which avoids performing interaction between components within a storage node on the basis of a system bus, thereby improving the processing efficiency of a first data access request, and ensuring the read-write efficiency of the storage node.
Need to check novelty before this filing date? Find Prior Art

Description

A storage system, data access method and storage subsystem

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of the People's Republic of China on November 30, 2023, with application number 202311630950.8 and application name "A Storage System, Data Access Method and Storage Subsystem", the entire contents of which are incorporated by reference into this application. Technical Field

[0003] The present application relates to the field of storage, and in particular to a storage system, a data access method, and a storage subsystem. Background Art

[0004] Currently, storage systems include compute nodes, which perform computing functions, and storage nodes, which perform storage functions. Compute nodes can receive external data access requests to access data in the storage system. Storage nodes read or write data from the storage nodes based on the data access requests.

[0005] When a compute node needs to read data from a storage node or write data to a storage node, it sends a read request or a write request to the storage node. The storage node processes the read request to complete the data reading, and processes the write request to complete the data writing. For the storage node, the entire read or write request processing process requires the participation of various components within the storage node (such as the network card, processor, memory, and hard disk). This processing process inevitably requires the various components within the storage node to interact (such as the interaction between the network card and the processor, and the interaction between the processor and the hard disk and memory). The more components involved, the greater the interaction delay. Excessive delay will affect the data reading and writing efficiency of the storage node. Summary of the Invention

[0006] The embodiments of the present application provide a storage system, a data access method, and a storage subsystem for improving the data reading and writing efficiency of storage nodes in the storage system.

[0007] In a first aspect, an embodiment of the present application provides a storage system comprising at least one computing node and multiple storage nodes, wherein for a first storage node among the multiple storage nodes, the first storage node comprises computing circuit logic and a storage medium; wherein, the first storage node is used to refer to any storage node among the multiple storage nodes, and here, only for the convenience of distinguishing different storage nodes among the multiple storage nodes, the first storage node, the second storage node, and the third storage node (the third storage node will appear below) are used to indicate different storage nodes among the multiple storage nodes. In an embodiment of the present application, storage node A, storage node B, and storage node C may also be used to indicate different storage nodes among the multiple storage nodes.

[0008] The computing circuit logic in the first storage node is a core processing unit in the first storage node. The computing circuit logic is a circuit logic with complex functions or a computer chip with multiple functions. The computing circuit logic can receive a first data access request from at least one computing node and / or a second storage node among the plurality of storage nodes based on a network protocol. The first data access request is used to access data in the first storage node.

[0009] After receiving the first data access request, the computing circuit logic determines the physical address of the data according to the logical address of the data to be accessed carried in the first data access request, and accesses the storage medium according to the physical address of the data.

[0010] Through the above-mentioned storage system, the computing circuit logic combines the functions of a network card (capable of interacting with the computing node and the second storage node based on the network protocol), a processor (capable of parsing the first data access request), and a controller in the hard disk (capable of converting physical addresses and logical addresses, and accessing the storage medium based on the physical address), thereby avoiding interaction between the various components within the storage node based on the system bus, speeding up the processing efficiency of the first data access request, and ensuring the read and write efficiency of the storage node.

[0011] In one possible implementation, computing circuit logic includes a front-end protocol unit, a computing unit, a storage unit, and a media management unit. The front-end protocol unit, computing unit, storage unit, and media management unit communicate with each other based on an on-chip bus protocol. Specifically, the front-end protocol unit, computing unit, storage unit, and media management unit are connected via an on-chip bus. The on-chip bus is a connection line used for interconnection within a chip. Unlike a system bus, the bandwidth of the on-chip bus can be designed based on actual needs, and the connection method is more flexible. In this computing circuit logic, the front-end protocol unit receives a first data access request based on a network protocol, the storage unit determines the physical address of the data based on the logical address of the data, the computing unit obtains the physical address of the data from the storage unit, and instructs the media management unit to access the storage medium based on the physical address of the data, and the media management unit, under the instruction of the computing unit, accesses the storage medium based on the physical address of the data.

[0012] Through the above storage system, the computing circuit logic includes units with different functions. The interaction between these units is based on the on-chip bus protocol. The interaction method is more efficient, which can effectively improve the processing efficiency of the first data access request and quickly access the data in the storage medium.

[0013] In one possible implementation, when the first data access request is used to request writing data in a storage medium, that is, when the first data access request is a write data request (such as the first write data request or the second write data request mentioned in the embodiment of the present application), the front-end protocol unit receives the first data access request based on the network protocol, the computing unit generates verification data for the data, and the storage unit determines the physical address of the data based on the logical address of the data, and assigns a physical address to the verification data. Typically, there is an association between the physical address of the data, the physical address of the verification data, and the logical address of the data. After determining the logical address of the data, the physical address of the data and the physical address of the verification data can be determined based on this association.

[0014] The computing unit obtains the physical address of the data and the physical address of the verification data from the storage unit, and instructs the media management unit to write the data and the verification data based on the physical address of the data and the physical address of the verification data. Under the instruction of the computing unit, the media management unit writes the data in the storage medium based on the physical address of the data and writes the verification data in the storage medium based on the physical address of the verification data.

[0015] Through the above-mentioned storage system, when the first data access request is a write data request, in the computing circuit logic of the first storage node, the various units cooperate to not only write the data to the storage medium, but also write the verification data of the data to the storage medium, that is, to ensure that the erasure coding (EC) verification mechanism or the redundant array of independent disks (RAID) (such as RAID 3, RAID 5) can be used in the first storage node to store data.

[0016] In one possible implementation, a first data access request is used to request writing data to a storage medium; a front-end protocol unit receives the first data access request based on a network protocol, a computing unit generates a data copy of the data, and a storage unit determines a logical address of the data copy based on the logical address of the data, where the logical address of the data copy is located at a third storage node among the multiple storage nodes. Typically, there is an association between the physical address of the data and the logical address of the data copy, as well as between the logical address of the data. After the logical address of the data is determined, the physical address of the data and the logical address of the data copy can be determined based on this association.

[0017] The computing unit obtains the logical address of the data copy from the storage unit and generates a second data access request. The second data access request is used to write the data copy to the third storage node. The second data access request carries the logical address of the data copy. The front-end protocol unit sends the second data access request to the third storage node. The computing unit obtains the physical address of the data from the storage unit and instructs the media management unit to write the data based on the physical address of the data. Under the instruction of the computing unit, the media management unit writes the data to the storage medium based on the physical address of the data.

[0018] Through the above-mentioned storage system, when the first data access request is a write data request, in the first storage node, the various units cooperate to not only write the data into the storage medium, but also write a copy of the data into other storage nodes (such as the third storage node), that is, to ensure that a multi-copy mechanism or a RAID mechanism (such as RAID 1) can be used to store data in the first storage node.

[0019] In one possible implementation, a first data access request is used to request writing data in a storage medium; the front-end protocol unit receives the first data access request based on a network protocol, the computing unit generates a data copy of the data, and the storage unit determines the physical address of the data and the physical address of the data copy based on the logical address of the data. Usually, there is an association between the physical address of the data and the physical address of the data copy, as well as the logical address of the data. After determining the logical address of the data, the physical address of the data and the physical address of the data copy can be determined based on this association.

[0020] The computing unit obtains the physical address of the data and the physical address of the data copy from the storage unit, and instructs the media management unit to store the data and the data copy according to the physical address of the data and the physical address of the data copy. Under the instruction of the computing unit, the media management unit stores the data according to the physical address of the data and stores the data copy in the storage medium according to the physical address of the data copy.

[0021] In the above description, the data copies are stored in other storage nodes or the first storage node as an example. In fact, the embodiments of the present application do not limit the number of data copies or the specific storage location of any data copy. There can be one data copy or multiple data copies. For any data copy, the data copy can be stored in any storage node among the multiple storage nodes, or can be distributed and stored in multiple storage nodes.

[0022] Through the above-mentioned storage system, when the first data access request is a write data request, in the computing circuit logic of the first storage node, the various units cooperate to not only write the data to the storage medium, but also write a copy of the data to the local storage medium, that is, to ensure that a multi-copy mechanism or a RAID mechanism (such as RAID 1) can be used to store data in the first storage node.

[0023] In one possible implementation, the first data access request is used to request to read data from a storage medium, that is, the first data access request is a read data request (such as the first read data request or the second read data request mentioned in the embodiment of the present application), and the front-end protocol unit receives the first data access request based on the network protocol, and the storage unit determines the physical address of the data and the physical address of the verification data based on the logical address of the data.

[0024] The computing unit obtains a physical address of the data and a physical address of the verification data from the storage unit, and instructs the media management unit to read the data and the verification data based on the physical address of the data and the physical address of the verification data. The media management unit reads the data and the verification data from the storage medium based on the physical address of the data and the physical address of the verification data.

[0025] The computing unit recovers the data based on the data verification data and generates a first data access response, wherein the first data access response carries the recovered data. The data recovery performed by the computing unit includes data verification and / or data error correction, wherein data verification is used to detect whether the data is erroneous, and data error correction is used to correct erroneous portions of the data after determining that the data is erroneous. The corrected data, or the data determined to be free of errors after data verification, is the recovered data.

[0026] The front-end protocol unit sends a first data access response to at least one computing node and / or a second storage node.

[0027] Through the above storage system, when the first data access request is a data read request, each unit in the first storage node cooperates to recover the data, thereby ensuring the accuracy of the read data.

[0028] In one possible implementation, a first data access request is used to request data to be read from a storage medium; under the instruction of a computing unit, the media management unit reads the data according to the data's physical address. If the read data is erroneous, such as data that failed error correction or the data itself contains garbled characters, the computing unit may obtain a data copy. For example, after determining that the media management unit failed to successfully read the data from the storage medium, the computing unit obtains the logical address of the data copy from the storage unit; a third data access request is generated, the third data access request being used to read the data copy from a third storage node among the multiple storage nodes, the third data access request carrying the logical address of the data copy.

[0029] The front-end protocol unit sends a third data access request to the third storage node, and receives a data copy fed back by the third storage node;

[0030] The computing unit uses the data copy to restore the locally stored data and generates a first data access response, which carries the data copy. The embodiment of the present application does not limit the way in which the computing unit uses the data copy to restore the locally stored data. For example, the computing unit can instruct the media management unit to write the data copy to the physical address of the data again. For another example, the computing unit can instruct the storage unit to reallocate the physical address for the data and instruct the media management unit to write the data copy to the physical address reallocated for the data. Of course, the computing unit may not restore the locally stored data, but when it subsequently receives a data access request to read the data, it may directly initiate a third data access request to the third storage node through the front-end protocol unit.

[0031] The front-end protocol unit sends a first data access response to at least one computing node and / or a second storage node.

[0032] Through the above storage system, in the first storage node, when the data stored in the local storage medium is erroneous, the computing circuit logic can obtain and feed back a data copy to the computing node or the second storage node, ensuring that correct data can be fed back.

[0033] In one possible implementation, a first data access request is used to request data to be read from a storage medium. Under the instruction of a computing unit, the media management unit reads the data based on the data's physical address. If the read data is erroneous, such as data that has failed error correction or contains garbled characters, the computing unit may obtain a data copy. For example, after determining that the media management unit has not successfully read the data from the storage medium, the computing unit obtains the physical address of the data copy from the storage unit. The computing unit instructs the media management unit to read the data copy based on the physical address of the data copy. Under the instruction of the computing unit, the media management unit reads the data copy from the storage medium based on the physical address of the data copy.

[0034] The computing unit uses the data copy to restore the locally stored data and generates a first data access response, which carries the data copy. The embodiment of the present application does not limit the manner in which the computing unit uses the data copy to restore the locally stored data. For details, please refer to the above description, which will not be repeated here. Of course, the computing unit may also not restore the locally stored data, but when a data access request to read the data is subsequently received, the computing unit directly obtains the physical address of the data copy from the storage unit, and instructs the media management unit to read the data copy from the storage medium based on the physical address of the data copy.

[0035] In one possible implementation, the first storage node can also assist the computing node in performing some data computing operations. The computing circuit logic receives a data computing request from at least one computing node based on a network protocol. The data computing request is used to calculate the data in the storage node, read the data in the storage medium according to the data computing request, and calculate the read data.

[0036] Specifically, within the computing circuit logic, the front-end protocol unit receives a data computing request based on a network protocol; the storage unit determines the physical address of the data to be computed based on the logical address of the data to be computed carried in the data computing request; the computing unit obtains the physical address of the data to be computed from the storage unit and instructs the media management unit to read the data to be computed based on the physical address of the data; the media management unit, under the instruction of the computing unit, reads the data to be computed from the storage medium based on the physical address of the data to be computed; the computing unit performs data computing on the data to be computed based on the computing instruction information carried in the data computing request, obtains the computing result, and generates a data computing response carrying the computing result, wherein the computing instruction information is used to indicate the computing method for the data to be computed. The front-end protocol unit feeds back the data computing response to the computing node.

[0037] Through the above storage system, the computing circuit logic also has data computing functions, which can assist computing nodes in completing some data computing tasks and reduce the data computing pressure of computing nodes.

[0038] In one possible implementation, in one possible implementation, the on-chip bus protocol includes but is not limited to: ARM CCI, ARM CCN, ARM CMN, ARM NIC.

[0039] In a possible implementation, the storage medium is a flash memory chip or a disk, and the storage medium only has a data storage function.

[0040] In one possible implementation, the network protocol includes some or all of the following: Transmission Control Protocol / Internet Protocol (TCP / IP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), Telnet, and Network File System (NFS). The above network protocols are merely examples, and the embodiments of the present application do not limit the network protocols used for communication between the computing circuit logic in the storage node and other nodes in the storage system.

[0041] Through the above storage system, computing nodes and storage nodes, and storage nodes and storage nodes can interact through different network protocols, which is suitable for different application scenarios.

[0042] In a second aspect, an embodiment of the present application provides a data access method, which can be executed by a first storage node in the aforementioned storage system. The beneficial effects can be found in the relevant description of the first aspect and will not be repeated here. In this method, at least one computing node and / or a second storage node among multiple storage nodes sends a first data access request to a first storage node among multiple storage nodes, where the first data access request is used to access data in the first storage node.

[0043] The computing circuit logic in the first storage node receives a first data access request based on a network protocol, determines a physical address of the data according to a logical address of the data to be accessed carried in the first data access request, and accesses the storage medium of the first storage node according to the physical address of the data.

[0044] In one possible implementation, the computing circuit logic includes a front-end protocol unit, a computing unit, a storage unit, and a media management unit, and the front-end protocol unit, the computing unit, the storage unit, and the media management unit communicate with each other based on an on-chip bus protocol; when the computing circuit logic accesses the storage medium of the first storage node according to a first data access request, inside the computing circuit logic: the front-end protocol unit receives the first data access request based on a network protocol; the storage unit determines the physical address of the data based on the logical address of the data; the computing unit obtains the physical address of the data from the storage unit, and instructs the media management unit to access the storage medium based on the physical address of the data; and the media management unit accesses the storage medium based on the physical address of the data under the instruction of the computing unit.

[0045] In one possible implementation, a first data access request is used to request writing data in a storage medium; the computing circuit logic determines the physical address of the data based on the logical address of the data to be accessed carried in the first data access request, and when accessing the storage medium of the first storage node based on the physical address of the data, the computing unit generates verification data of the data based on the data; the storage unit determines the physical address of the data based on the logical address of the data, and assigns a physical address to the verification data of the data; the computing unit obtains the physical address of the data and the physical address of the verification data from the storage unit, and instructs the media management unit to store the data and the verification data based on the physical address of the data and the physical address of the verification data; the media management unit stores the data according to the physical address of the data under the instruction of the computing unit, and stores the verification data of the data in the storage medium according to the physical address of the verification data.

[0046] In one possible implementation, a first data access request is used to request writing data to a storage medium; a computing circuit logic determines the physical address of the data based on the logical address of the data to be accessed carried in the first data access request. When accessing the storage medium of the first storage node based on the physical address of the data, the computing unit generates a data copy based on the data; the storage unit determines the physical address of the data based on the logical address of the data and assigns a logical address to the data copy; the computing unit obtains the physical address of the data and the physical address of the data copy from the storage unit and instructs the media management unit to store the data based on the physical address of the data. The computing unit generates a second data access request, which is used to request writing the data copy to a third storage node and carries the logical address of the data copy; the front-end protocol unit sends the second data access request to the third storage node; and the media management unit, under the instruction of the computing unit, stores the data based on the physical address of the data.

[0047] In one possible implementation, a first data access request is used to request writing data in a storage medium; the computing circuit logic determines the physical address of the data based on the logical address of the data to be accessed carried in the first data access request, and when accessing the storage medium of the first storage node based on the physical address of the data, the computing unit generates a data copy based on the data; the storage unit determines the physical address of the data and the physical address of the copy of the data based on the logical address of the data.

[0048] The computing unit obtains the physical address of the data and the physical address of the data copy from the storage unit, and instructs the medium management unit to store the data and the data copy according to the physical address of the data and the physical address of the data copy;

[0049] The medium management unit stores the data according to the physical address of the data under the instruction of the calculation unit, and stores the data copy in the storage medium according to the physical address of the data copy.

[0050] In one possible implementation, a first data access request is used to request reading data from a storage medium, and the computing circuit logic determines the physical address of the data based on the logical address of the data to be accessed carried in the first data access request. When accessing the storage medium of the first storage node based on the physical address of the data, the computing unit obtains the physical address of the data and the physical address of the verification data from the storage unit, and instructs the media management unit to read the data and verify the data based on the physical address of the data and the physical address of the verification data.

[0051] The medium management unit reads the data and the verification data from the storage medium according to the physical address of the data and the physical address of the verification data.

[0052] The computing unit recovers the data according to the verification data of the data and generates a first data access response, where the first data access response carries the data after the data is recovered.

[0053] The front-end protocol unit sends a first data access response to at least one computing node and / or a second storage node.

[0054] In one possible implementation, a first data access request is used to request reading data from a storage medium; after determining that the media management unit has failed to successfully read the data from the storage medium, the computing unit obtains a logical address of a data copy from the storage unit; and a third data access request is generated, the third data access request being used to read the data copy from a third storage node among the multiple storage nodes, the third data access request carrying the logical address of the data copy;

[0055] The front-end protocol unit sends a third data access request to other storage nodes; and receives a data copy fed back by the third storage node;

[0056] The computing unit generates a first data access response, where the first data access response carries a data copy;

[0057] The front-end protocol unit sends a first data access response to at least one computing node and / or a second storage node.

[0058] In one possible implementation, the computing circuit logic receives a data computing request from at least one computing node based on a network protocol, the data computing request is used to compute data in the storage node, reads data in the storage medium according to the data computing request, and computes the read data.

[0059] In a possible implementation, the on-chip bus protocols include but are not limited to: ARM CCI, ARM CCN, ARM CMN, and ARM NIC.

[0060] In a possible implementation, the storage medium is a flash memory chip or a disk.

[0061] In a possible implementation, the network protocol includes some or all of the following: TCP / IP, UDP, HTTP, FTP, Telnet protocol, and NFS protocol.

[0062] In a third aspect, an embodiment of the present application further provides a storage node, which has the function of implementing the first storage node behavior in the example of the first aspect above. The beneficial effects can be found in the description of the first aspect and are not repeated here. The functions can be implemented through hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions. In one possible design, the structure of the storage node includes a front-end protocol unit, a computing unit, a storage unit, and a media management unit. These units can perform the corresponding functions in the method example of the first aspect above. The beneficial effects can be found in the relevant description of the first aspect and are not repeated here. When the front-end protocol unit, computing unit, storage unit, and media management unit are hardware, these units are integrated into the computing circuit logic or computer chip. When the front-end protocol unit, computing unit, storage unit, and media management unit are software, these units are stored in a cache within the computing circuit logic or computer chip or in a memory connected to the computing circuit logic or computer chip. The computing circuit logic or computer chip can call the front-end protocol unit, computing unit, storage unit, and media management unit to implement the function of the first storage node behavior.

[0063] In a fourth aspect, the present application further provides a storage subsystem, which includes computing circuit logic and a storage medium, and optionally also includes a memory. The storage subsystem executes the method provided in the second aspect or any possible implementation of the second aspect. The computing circuit logic can call the computer program instructions burned on the computing circuit logic to execute the method provided in the second aspect or any possible implementation of the second aspect. The memory can also store the computer program instructions and data necessary for the data access process. The computing circuit logic executes the method provided in the second aspect or any possible implementation of the second aspect by calling the computer program instructions stored in the memory. The computing circuit logic can also call the computer program instructions necessary for the data access process stored in other memories to execute the method provided in the second aspect or any possible implementation of the second aspect.

[0064] In a fifth aspect, the present application provides a computer-readable storage medium. When the computer-readable storage medium is executed by a computing device, the computing device performs the method provided in the aforementioned second aspect or any possible implementation of the second aspect. The computer-readable storage medium stores a program. The storage medium includes, but is not limited to, volatile memory, such as random access memory, and non-volatile memory, such as flash memory, a hard disk drive (HDD), and a solid state drive (SSD).

[0065] In a sixth aspect, the present application provides a computing device program product, comprising computer instructions that, when executed by a computing device, causes the computing device to perform the method provided in the aforementioned second aspect or any possible implementation of the second aspect. The computer program product may be a software installation package, and when the method provided in the aforementioned second aspect or any possible implementation of the second aspect is required, the computer program product may be downloaded and executed on the computing device.

[0066] In the seventh aspect, the present application also provides a computer chip, which is connected to a memory and is used to read and execute a software program stored in the memory, and to execute the methods in the above-mentioned second aspect and various possible implementations of the second aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0067] FIG1 is a schematic diagram of the structure of a storage system provided in an embodiment of the present application;

[0068] FIG2 is a schematic diagram of the structure of a storage node provided in an embodiment of the present application;

[0069] FIG3 is a schematic diagram of the structure of another storage system provided in an embodiment of the present application;

[0070] FIG4 is a schematic diagram of a data access method provided in an embodiment of the present application. DETAILED DESCRIPTION

[0071] As shown in FIG1 , a storage system is provided in an embodiment of the present application. The storage system includes a computing node cluster and a storage node cluster.

[0072] In this storage system, the compute node cluster assumes the computing functions within the storage system and can handle most of the data computing or processing tasks within the storage system. For example, the compute node cluster can process access requests generated outside the storage system, access the storage system based on these access requests, and read or write data from the storage system. Furthermore, the compute node cluster can perform data computing, metadata management, and the initiation or management of storage services.

[0073] The computing node cluster includes one or more computing nodes 110 ( FIG. 1 shows two computing nodes 110, but is not limited to two computing nodes 110). Each computing node 110 can communicate with each other. A computing node 110 is a computing device, such as a server, desktop computer, or storage array controller. The embodiments of this application do not limit the specific structure of the computing node; any computing device capable of performing computing functions is applicable to the embodiments of this application.

[0074] FIG1 is only an example of a structural diagram of the computing node. As shown in FIG1 , the computing node 110 includes at least a processor 111, a memory 112, and a network card 113. The processor 111 is a central processing unit (CPU) for processing access requests or requests generated internally by the computing node 110. Exemplarily, when the processor 111 receives an access request for requesting to write data, it temporarily stores the data in the access request in the memory 112. When the total amount of data in the memory 112 reaches a certain threshold, the processor 111 sends a data access request to the storage node cluster (a storage node in the storage node cluster) to send the data stored in the memory 112 to the storage node cluster, requesting the storage node cluster to perform persistent storage. When the processor 111 receives an access request for requesting to read data, it sends a data access request to the storage node cluster to request to read data from the storage node cluster.

[0075] In addition, the processor 111 is also used to perform calculations or processing on data, such as data search, data counting, metadata management, data deduplication, data compression, virtualized storage space, etc. The processor 111 can also delegate data calculation operations to storage nodes in the storage node cluster. For example, the processor 111 can send a data calculation request to the storage node cluster to request the storage node cluster to perform data calculations.

[0076] The memory 112 may be a random access memory or a read-only memory (ROM). The random access memory may be a dynamic random access memory (DRAM) or a storage class memory (SCM). The memory 112 may also include other random access memories, such as static random access memory (SRAM). The memory 112 may also include a read-only memory, such as a programmable read-only memory (PROM) or an erasable programmable read-only memory (EPROM). The memory 112 may also be a dual in-line memory module or a dual in-line memory module (DIMM). The memory 112 may also be a solid state disk (SSD).

[0077] The network card 113 is used to communicate with the storage node 100 in the storage node cluster. For example, when the total amount of data in the memory 112 reaches a certain threshold, the computing node 110 can send a data access request (such as the first write data request mentioned in the embodiment of the present application) to the storage node 100 through the network card 113 to perform persistent storage of the data. For another example, the computing node 110 can send a read data request (such as the first read data request mentioned in the embodiment of the present application) to the storage node 100 through the network card 113 to read data from the storage node 100. In addition, the computing node 110 may also include a bus for communication between the various components within the computing node 110.

[0078] The storage node cluster assumes the storage function of the storage system. Most of the data stored in the storage system is stored in the storage node cluster (a small amount of data is temporarily stored in the computing node 110). The storage node cluster includes multiple storage nodes 100 (three storage nodes 100 are shown in Figure 4, but are not limited to three storage nodes 100).

[0079] For any storage node 100 in the storage node cluster, the storage node 100 is capable of receiving a data access request (such as the first write data request, the first read data request, the second write data request, the second read data request mentioned in the embodiment of the present application) from a node other than the storage node 100 (such as a computing node 110 or a storage node 100 other than the storage node 100), processing the data access request, converting the logical address of the data carried in the data access request into a physical address, accessing the storage medium 103 in the storage node based on the physical address, and writing or reading data in the storage medium 103. For example, when the data access request is used to request to write data (such as the first write data request and the second write data request mentioned in the embodiment of the present application), the storage node 100 can write data in the storage medium 103 according to the data access request. For another example, when the data access request is used to request to read data, the storage node 100 can read data from the storage medium 103 according to the data access request.

[0080] In an embodiment of the present application, the storage node 100 can write or read data in the storage medium 103 at the request of the computing node 110 (such as the first write data request and the first read data request mentioned in the embodiment of the present application). The storage nodes 100 can interact with each other, and the storage node 100 can write or read data at the request of other storage nodes 100 in the storage node cluster (the second write data request and the second read data request mentioned in the embodiment of the present application). The storage node 100 can also actively initiate a data access request to other storage nodes 100 in the storage node cluster to request to write data in other storage nodes 100 or read data from other storage nodes 100.

[0081] The storage node 100 can also receive data computation requests initiated by the computing node 110 and perform data computations based on the data computation requests. Furthermore, the storage node 100 can support storage services such as data deduplication, data compression, and data recovery. The storage node 100 can perform these services independently or at the request of the computing node 110.

[0082] From a hardware perspective, any storage node 100 includes a computing circuit logic 101 and a storage medium 102. Optionally, the storage node 100 also includes a memory 102. Optionally, the computing circuit logic 101 may also include some cache, such as SRAM, to support the operation of the computer circuit logic.

[0083] Computing circuit logic 101 is a component that performs specific processing functions at the core of storage node 100. Computing circuit logic 101 supports the various functions of storage node 100. In other words, operations performed by storage node 100 are performed by computing circuit logic 101. For example, computing circuit logic 101 can directly receive and process data access requests and access storage medium 103 based on the data access requests. For another example, computing circuit logic 101 can generate verification data for data when writing data to storage medium 103, and write the data and its verification data to storage medium 103.

[0084] The computing circuit logic 101 also supports the deployment of a standard operating system (OS) on the storage node to support the operation and management of storage services, as well as the maintenance of normal transactions such as storage node metadata management, status management, and exception handling.

[0085] The memory 102 is used to temporarily store data to be written to the storage medium 103, or to read data from the storage medium 103 to be sent to the computing node 110. The type of the memory 102 can be found in the description of the memory 113 above, which will not be repeated here.

[0086] Storage medium 103 is a medium used for persistent data storage in storage node 100. Storage medium 103 can be a NAND flash memory or a magnetic disk. In the embodiment of the present application, storage medium 103 only has a storage function and does not have a computing function. Storage medium 103 only stores or outputs data under the control of computing circuit logic 101.

[0087] It can be seen that in the storage node 100, the computing circuit logic 101 is the processing core of the storage node 100. The functions of the computing circuit logic 101 are described below:

[0088] Function 1: Communication function.

[0089] In the storage node 100, the computing circuit logic 101 can interact with the computing node 110 or other storage nodes 100, receive data access requests from the computing node 110, or feed back data access responses to the computing node 110 or other storage nodes 100. The computing circuit logic 101 can interact with the computing node 110 based on a network protocol, including but not limited to: TCP / IP protocol, UDP protocol, HTTP protocol, FTP protocol, Telnet protocol, simple mail transfer protocol (SMTP), and NFS protocol.

[0090] The computing circuit logic 101 can receive and parse data access requests according to the network protocol, and identify the logical address or data (when the data access request is for writing data) carried in the data access request. The computing circuit logic 101 can also encapsulate and transmit the data access response that needs to be fed back to the computing node 110 according to the network protocol.

[0091] This communication function is similar to the function of the aforementioned "network card". In the embodiment of the present application, the function of the "network card" is implemented by the computing circuit logic 101, and there is no need to deploy a separate network card or other form of network interface card in the storage node 100.

[0092] Function 2: Storage function.

[0093] The storage node 100 is a node for storing data in the storage system. The storage node 100 itself needs to carry some storage services, such as data storage, data recovery, data backup, data compression, etc.

[0094] 1) Data storage.

[0095] The computing circuit logic 101 can manage the storage space within the storage medium 103, assign storage addresses to data, or determine the storage address of data in the storage medium 103; the computing circuit logic 101 can access the storage medium 103 and write data to or read data from the storage medium 103. In the embodiment of the present application, the storage address assigned to the data by the computing circuit logic 101 can be a physical address. The computing circuit logic 101 itself stores a mapping relationship between logical addresses and physical addresses. The computing circuit logic 101 can assign a physical address to the data to be written based on this mapping relationship and the logical address of the data; the computing circuit logic 101 can also determine the physical address of the data to be read based on this mapping relationship and the logical address of the data.

[0096] The logical address is an address used to identify the storage location of data for the computing node 110. The logical address may be a logical block address (LBA). The physical address is the actual address of the data stored in the storage medium 103. The physical address may be a physical block address (PBA).

[0097] In the embodiment of the present application, the computing circuit logic 101 can not only identify the logical address, but also convert the logical address to the physical address. Subsequently, the computing circuit logic 101 accesses the storage medium 103 based on the physical address.

[0098] 2) Data recovery.

[0099] When storing data, the computing circuit logic 101 utilizes a multi-copy mechanism, erasure coding (EC) parity, or a redundant array of independent disks (RAID) mechanism. A multi-copy mechanism involves storing at least two identical copies of data. If one copy is lost, the other copy can be used to restore the data. The EC parity mechanism involves dividing the data to be stored into at least two data slices and calculating parity data for the at least two data slices according to a specific parity algorithm. If one data slice is lost, the data can be restored using the other data slice and the parity data. RAID combines multiple independent hard disks (physical hard disks) in various ways to form a disk group, which appears to be a single logical disk. Common RAID levels include RAID 1, RAID 3, RAID 5, RAID 6, RAID 10, and RAID 50. Different RAID levels utilize different methods for storing data, each providing a certain level of data reliability. For example, when using RAID 1, a copy of the data can also be stored. For another example, when RAID 3, RAID 5, or RAID 6 is used to store data, verification data of the data may be generated and stored.

[0100] When the computing circuit logic 101 reads data, if it is found that the data to be read is damaged, the computing circuit logic 101 can use the stored data copy or verification data to restore the damaged data.

[0101] 3) Data backup.

[0102] When storing data, the computing circuit logic 101 backs up the data and generates a data copy.

[0103] 4) Data reduction.

[0104] The computing circuit logic 101 can encode data to be stored or data already stored in the storage medium 103 to reduce the storage space occupied by the data. The embodiments of the present application are not limited to the manner in which the computing circuit logic 101 implements data reduction. For example, the computing circuit logic 101 can remove duplicate data from the data through data deduplication. For another example, the computing circuit logic 101 can compress the data using a data compression algorithm.

[0105] 5) Near memory calculation.

[0106] The main function of the storage node 100 is data storage, but in some practical application scenarios, the storage node 100 can assist the computing node 110 in performing data computing operations. Within the storage node 100, the data computing operations performed by the storage node 100 can be performed by the computing circuit logic 101. The embodiments of the present application do not limit the specific type of data computing operations. For example, the computing circuit logic 101 can search for entries in a data table to find entries that meet the conditions. For another example, the computing circuit logic 101 can perform a counting operation to count the entries that meet the conditions in the data table.

[0107] It is worth noting that the above only lists some possible types of storage services. In specific applications, the embodiments of the present application do not limit the specific types of storage services carried by the computing circuit logic 101. The computing circuit logic 101 can carry some or all of the above storage services. The computing circuit logic 101 can also carry other storage services in addition to the above storage services, such as data snapshots, data active-active, etc.

[0108] Function three: general processing function.

[0109] The computing circuit logic 101 has some general processing functions. For example, in addition to receiving data access requests, the computing circuit logic 101 also receives other requests, such as requests for instructing to suspend work, requests for instructing to start work, and requests for instructing to migrate data, and the computing circuit logic 101 can process these requests. For another example, the computing circuit logic 101 can also access other storage nodes 100 in the storage node 100 cluster and generate data access requests for accessing other storage nodes 100.

[0110] Function 4: Management function.

[0111] The computing circuit logic 101 can monitor the performance of the storage node 100. For example, the computing circuit logic 101 can monitor the status of each component in the storage node 100, such as the memory occupancy, whether the memory is faulty, the occupancy rate of the processor core on the computing circuit logic 101, whether the storage medium 103 is faulty, etc.

[0112] From a hardware perspective, computing circuit logic 101 includes multiple processor cores, and different processor cores can be configured to implement different functions of computing circuit logic 101. Interaction between processor cores is based on the on-chip bus protocol of computing circuit logic 101. Compared with interactions based on traditional buses, such as those based on the Peripheral Component Interconnect Express (PCIe) standard, interactions within computing circuit logic 101 are more efficient, which can speed up the data storage process of storage node 100 itself.

[0113] As shown in Figure 2, which is a structural diagram of a storage node 100 provided in an embodiment of the present application, from a logical perspective, a computing unit 1011, a front-end protocol unit 1012, a storage unit 1013, a management unit 1014, and a media management unit 1015 are deployed on the computing circuit logic 101 within the storage node 100.

[0114] The computing unit 1011 is the main control unit in the computing circuit logic 101, and is used to control the front-end protocol unit 1012, the storage unit 1013, the management unit 1014, and the media management unit 1015. For example, the computing unit 1011 can obtain the received data access request (such as the first write data request and the first read data request mentioned in the embodiment of the present application) from the front-end protocol unit 1012, or instruct the front-end protocol unit 1012 to send a data access request (such as the second write data request and the second read data request mentioned in the embodiment of the present application). For another example, the computing unit 1011 can instruct the storage unit 1013 to convert the logical address into a physical address, instruct the storage unit 1013 to allocate a physical address for the data copy, and instruct the storage unit 1013 to provide the physical address of the data copy. For another example, the computing unit 1011 can instruct the media management unit 1015 to read data from the physical address or write data. For another example, the computing unit 1011 can instruct the management unit 1014 to report the performance of the storage node 100.

[0115] The front-end protocol unit 1012 is used to implement the communication function of the computing circuit logic 101, and is used to interact with the computing node 110 or storage node 100 outside the storage node 100. For example, in an embodiment of the present application, the front-end protocol unit 1012 can receive data access requests from the computing node 110, or data access requests from other storage nodes 100, and can also feedback data access responses to the computing node 110, or feedback data access responses to other storage nodes 100.

[0116] The storage unit 1013 manages the storage space of the storage medium 103 and specifies the occupied and unoccupied storage space in the storage medium 103. The storage unit 1013 can convert between logical addresses and physical addresses; the storage unit 1013 can assign physical addresses to data to be written (such as data included in a write data request or a copy of the data); and the storage unit 1013 can also determine the physical addresses of data already written to the storage medium 103. In addition, the storage unit 1013 can also assign logical addresses on other storage nodes 100 for data that needs to be stored on other storage nodes 100 (such as data to be written or part of the data to be written, a copy of the data, or part of the data in the copy of the data).

[0117] The media management unit 1015 directly faces the storage medium 103 , can access the storage medium 103 based on a physical address, and write data into or read data from the storage medium 103 .

[0118] The management unit 1014 is used to implement the management function of the computing circuit logic 101 and manage the performance of the storage node 100 .

[0119] In the computing circuit logic 101, the computing unit 1011, the front-end protocol unit 1012, the storage unit 1013, the management unit 1014, and the media management unit 1015 can communicate with each other through the on-chip bus protocol. The on-chip bus is a connection line used inside the chip. This type of on-chip bus has no specific standard restrictions and can be configured with the bus bandwidth and connection method according to the design requirements of the internal circuit logic.

[0120] The embodiments of the present application do not limit the specific type of on-chip bus. The on-chip bus protocols mentioned in the embodiments of the present application include, but are not limited to: ARM cache coherent interconnect (ARM CCI), ARM cache coherency network (ARM CCN), ARM coherent mesh network (ARM CMN), and ARM network interconnect (ARM NIC), where RISC stands for reduced instruction set computer (RISC). In addition, these units can also be connected using communication channels between IP cores (IP cores). There are many types of such communication channels, such as control lines, data lines, etc.

[0121] These units can be connected via the same on-chip bus or different on-chip buses. For example, the computing unit 1011, front-end protocol unit 1012, and storage unit 1013 have communication or computing functions and can be connected via the same on-chip bus, such as ARMCCI. The management unit 1014 and the media management unit 1015 primarily manage the back-end storage medium 103. These two units can be connected via the same on-chip bus. A conversion bus is provided between the two groups of units to connect them.

[0122] It should be noted that the division of units in the embodiments of the present application is schematic and is merely a logical functional division. In actual implementation, other division methods may be used. The functional units in the embodiments of the present application may be integrated into a single processing module, or each unit may exist physically separately, or two or more units may be integrated into a single module. The aforementioned integrated modules may be implemented in the form of hardware or software functional modules.

[0123] FIG3 is a schematic diagram of the structure of a storage system provided in an embodiment of the present application. The storage system includes a computing node cluster and a storage node cluster. The computing node cluster includes multiple computing nodes 110, and the storage node cluster includes multiple storage nodes 100. For descriptions of the computing node cluster, storage node cluster, computing nodes 110, and storage nodes 100, please refer to the aforementioned content and will not be repeated here.

[0124] In the storage system, the storage node cluster further includes at least one physical frame 120 . For any physical frame 120 , the physical frame 120 supports deployment of one or more storage nodes 100 , that is, multiple storage nodes 100 can be installed in one physical frame 120 at the same time.

[0125] A baseboard management controller (BMC) 130 is deployed on the physical chassis 120. The BMC 130 can provide equipment, security, energy efficiency, reliability and other management functions for the storage nodes 100 installed on the physical chassis 120. That is, the BMC 130 can provide out-of-band management.

[0126] In the embodiments of the present application, out-of-band management refers to maintaining the storage node 100 through an independent management channel. Out-of-band management of the storage node 100 allows the system administrator to remotely monitor and manage the storage node 100. Out-of-band management of the storage node 100 primarily involves managing and monitoring the operating environment of each component of the storage node 100 (such as the computing circuit logic 101, memory, and storage medium 103). The component operating environment includes, but is not limited to, information such as temperature, operating voltage, fan, and power supply status, ensuring that the components in the storage node 100 can operate in an appropriate working environment.

[0127] The baseboard management controller 130 can be connected to the storage node 100 installed in the physical chassis 120 via a management bus or a management interface. The management bus can be an Inter-Integrated Circuit (I2C) bus or a serial peripheral interface (SPI) bus. The management bus can also be other types of buses. The management interface is an interface specifically set up for out-of-band management.

[0128] The baseboard management controller 130 can obtain the working environment information of the storage node 100 through the management bus or management interface, such as the working temperature of the storage node 100, the working status of the power supply for the storage node 100, and the power supply voltage of the power supply for the storage node 100.

[0129] Externally, the physical frame 120 can be connected to devices outside the physical frame 120 (such as other physical frames 120, storage nodes 100 or computing nodes 110) through cables.

[0130] The data access method provided by the embodiment of the present application is described below in conjunction with FIG4 . Referring to FIG3 , the method includes three parts. The first part is the access process between the computing node 110 and the storage node 100. Assuming that the data access request initiated by the computing node 110 is a first data access request, the computing logic circuit in the storage node 100 can receive the first data access request from the computing node 110, convert the logical address of the data carried in the first data access request into a physical address, and access the storage medium of the storage node 100 based on the physical address. This part includes two access modes. One is that the computing node 110 writes data to the storage node 100, specifically see steps 401 to 404. In this part, the first data access request is the first write data request. The other is that the computing node 110 reads data from the storage node 100, specifically see steps 405 to 408. In this part, the first data access request is the first read data request.

[0131] The second part is the access process between storage nodes 100. Assuming that the data access request initiated by storage node 100A (the computing circuit logic 101 in storage node 110A) to storage node 100B is a first data access request, the computing logic circuit in storage node 100B can receive the first data access request from storage node 100B, convert the logical address of the data carried in the first data access request into a physical address, and access the storage medium of storage node 100B based on the physical address. This part includes two access methods. One is that storage node 100A writes data to storage node 100B, see steps 409 to 410 for details. In this part, the first data access request is the second write data request. The other is that storage node 100B reads data from storage node 100A, see steps 411 to 412 for details. In this part, the first data access request is the second read data request.

[0132] The third part is the process of computing node 110 requesting storage node 100 to complete data computing, which can be specifically seen in steps 413 to 415. These three parts are independent of each other and there is no strict execution order for these three parts. Here, for the convenience of explanation, these three processes are combined in one embodiment.

[0133] The data writing process will be described below by taking the storage node 100A writing data at the request of the computing node 110 as an example.

[0134] Step 401 : The computing circuit logic 101 in the storage node 100A receives a first write data request from the computing node 110 . The first write data request carries data and a logical address of the data. This step may be performed by the front-end protocol unit 1012 in the computing circuit logic 101 .

[0135] When the computing node 110 receives an external data access request, if the data access request is for requesting to write data, the computing node 110 may send a first write data request to the storage node 100A in the storage node 100A based on the network protocol.

[0136] In the storage node 100A, the front-end protocol unit 1012 on the computing circuit logic 101 receives the first write data request based on the network protocol. After receiving the first write data request, the front-end protocol unit 1012 can hand over the first write data request to the computing unit 1011 on the computing circuit logic 101 for processing.

[0137] Step 402: The computing circuit logic 101 in the storage node 100A determines the physical address of the data according to the logical address of the data carried in the first data write request. This step can be performed by the computing unit 1011 and the storage unit 1013 in the computing circuit logic 101 in cooperation.

[0138] For example, in the case where the logical address of data is LBA and the physical address of data is PBA, a flash translation layer (FTL) exists within the storage unit 1013 in the computing circuit logic 101. The FTL records the mapping between the logical address and the physical address of data written to the storage medium 103. In other words, each time new data is written to the storage medium 103, the FTL records the logical address and the physical address of the new data.

[0139] After the computing unit 1011 obtains the first write data request from the front-end protocol unit 1012, the computing unit 1011 can obtain the LBA of the data carried in the first write data request, send the LBA of the data to the storage unit 1013, and instruct the storage unit 1013 to provide a PBA that has a mapping relationship with the LBA of the data.

[0140] After receiving the LBA of the data, the storage unit 1013 allocates an unoccupied PBA to the LBA of the data and records the mapping relationship between the LBA of the data and the PBA in the FTL. The storage unit 1013 provides the PBA to the computing unit 1011.

[0141] It is worth noting that when the computing circuit logic 101 adopts a multi-copy mechanism to store data, the storage unit 1013 can allocate multiple unoccupied PBAs to the LBA of the data, wherein each PBA is used to store a copy of the data. There is a mapping relationship between the multiple PBAs and the LBA of the data. When the computing circuit logic 101 adopts the EC mechanism to store data, the PBA allocated by the storage unit 1013 to the LBA of the data includes the PBA of the data and the PBA of the verification data. When the media storage unit 1013 subsequently stores the data, the data and the verification data of the data are written to the corresponding PBA. Similarly, when the computing circuit logic 101 adopts the RAID mechanism to store data, the PBA allocated by the storage unit 1013 to the LBA of the data includes the PBA of the data copy or the PBA of the verification data in addition to the PBA of the data. When the media storage unit 1013 subsequently stores the data, the data and the verification data or the data copy are written to the corresponding PBA.

[0142] Step 403: The computing circuit logic 101 in the storage node 100A accesses the storage medium 103 and writes the data carried in the first write data request to the physical address of the data. This step can be performed by the computing unit 1011 and the media management unit 1015 in the computing circuit logic 101 in cooperation.

[0143] In the computing circuit logic 101 , after receiving the PBA of the data, the computing unit 1011 generates a write instruction for instructing to write the data onto the PBA of the data and sends the write instruction to the media management unit 1015 .

[0144] After receiving the write instruction, the media management unit 1015 determines the location pointed to by the PBA of the data in the storage medium 103 and writes the data to that location. The media management unit 1015 can control the voltage of the device (e.g., transistor) at the location pointed to by the PBA of the data in the storage medium 103 to complete the data writing.

[0145] It is worth noting that when computing circuit logic 101 uses a multi-copy mechanism to store data, the write instruction generated by computing unit 1011 carries multiple PBAs mapped to the data's LBA, and media management unit 1015 needs to write a copy of the data to each PBA. When computing circuit logic 101 uses an EC mechanism to store data, computing unit 1011 can generate verification data based on the data. Computing unit 1011 transmits the data and verification data to media management unit 1015 via the write instruction, instructing media management unit 1015 to write the data and verification data to the corresponding PBAs. After receiving the write instruction, media management unit 1015 writes the data to the data's PBA and the verification data to the verification data's PBA. Similarly, when the computing circuit logic 101 uses the RAID mechanism to store data, the computing unit 1011 can generate verification data or a data copy of the data based on the data. The computing unit 1011 transmits the data and the verification data (or data copy) of the data to the media management unit 1015 through the write instruction. After receiving the write instruction, the media management unit 1015 writes the data and the verification data of the data to the PBA of the data and the PBA of the verification data, respectively, or writes the data and the data copy to the PBA of the data and the PBA of the data copy, respectively.

[0146] In the foregoing description, when the computing circuit logic 101 adopts a multi-copy mechanism, an EC mechanism, or a RAID mechanism to store data, the generated data copies and verification data are stored in the storage medium 103 of the storage node 100 as an example. In fact, this is only one possible way of writing data. In actual applications, part or all of the data, data copies, and verification data can also be stored on a storage node 100 other than the storage node 100. For example, for any data copy, the data copy can be stored on one or more storage nodes 100 other than the storage node 100. For another example, for the data, part of the data can be stored locally, and the remaining part of the data can be stored on one or more storage nodes 100 other than the storage node 100. For another example, the verification data can be stored on one or more storage nodes 100 other than the storage node 100.

[0147] Taking the scenario in which the computing unit 1011 generates a data copy when storing data in the storage node 100A as an example, the computing unit 1011 cooperates with the storage unit 1013 to determine the specific storage location for the data and the data copy, and determines the first data that needs to be stored locally and the second data that needs to be stored in other storage nodes 100 (such as storage node 100C) from the data and the data copy. For the first data, the storage unit 1013 can assign the physical address of the first data to the first data. The computing unit 1011 obtains the physical address of the first data from the storage unit 1013, and transmits the first data and the physical address of the first data to the media management unit 1015 through a write instruction. The media management unit 1015 can write the first data in the storage medium 103 according to the write instruction. The specific writing method can be found in the above content and will not be repeated here.

[0148] For the second data, the computing unit 1011 or the storage unit 1013 may assign a logical address of the second data on another storage node 100 to the second data. If the computing unit 1011 assigns a logical address of the second data on another storage node 100 to the second data, the computing unit 1011 may transmit the logical address of the second data on another storage node 100 to the storage unit 1013, so that the storage unit 1013 records the logical address of the second data on another storage node 100. In this way, when the computing unit 1011 needs to read the second data, the storage unit 1013 may inform the computing unit 1011 of the logical address of the second data on another storage node 100, and the computing unit 1011 may initiate a third data access request carrying the logical address to the other storage node 100 to obtain the second data. If the storage unit 1013 assigns a logical address of the second data on another storage node 100 to the second data, the computing unit 1011 obtains the logical address of the second data on another storage node 100 from the storage unit 1013. After determining the logical address of the second data on the other storage node 100, the computing unit 1011 generates a second data access request carrying the logical address and sends the second data access request to the other storage node 100 via the front-end protocol unit 1012, requesting that the second data be written to the other storage node 100. The interaction between the storage node 100 and the other storage node 100 may be similar to that described in steps 409 to 412 of this embodiment. For details, please refer to the relevant content below and will not be described in detail here.

[0149] The first data or the second data is not necessarily the data carried in the data copy or the first write data request. The first data or the second data may include part of the data in the data copy or part of the data carried in the first write data request.

[0150] Step 404: The computing circuit logic 101 in the storage node 100A feeds back a first write data affirmative response to the computing node 110, which indicates that the data was written successfully. This step can be performed by the front-end protocol unit 1012 in the computing circuit logic 101. (Steps 404 and 403 have no order dependency in the write-back state, and this is just for convenience of example.) The write-back state means that the data is first written to the memory 102 to inform the computing node 110 that the data was written successfully, and then the data is written to the storage medium 103.

[0151] In computing circuit logic 101, after writing data to the PBA of the data, media management unit 1015 may notify computing unit 1011 that the data has been written. Upon receiving the notification from media management unit 1015, computing unit 1011 generates a first write data positive response and instructs front-end protocol unit 1012 to send the first write data positive response to computing node 110.

[0152] In the computing circuit logic 101, if the media management unit 1015 fails to successfully write data to the PBA of the data (e.g., due to a failure of the storage medium 103), the computing unit 1011 is notified of the data write failure. The computing unit 1011 can then instruct the storage unit 1013 to reassign a physical address to the data. The computing unit 1011 can then generate a write instruction again, instructing the media management unit 1015 to write the data to the newly assigned physical address. The media management unit 1015 then writes the data to the newly assigned physical address. The computing unit 1011 can repeat the above operations until the data is successfully written.

[0153] The computing unit 1011 may also generate a first write data negative response when data writing fails or the number of data writing failures exceeds a threshold number. The first write data positive response indicates that data writing has failed, and instructs the front-end protocol unit 1012 to send the first write data negative response to the computing node 110.

[0154] Steps 401 to 404 are the process of the storage node 100A processing the first write data request from the computing node 110 to realize data writing. In this process, the operations performed by the storage node 100A are all processed by the computing circuit logic 101, and no longer involve the bus-based interaction process between the processor, network card, and hard disk. It can reduce the transmission time of the internal information of the storage node 100A and improve the data writing efficiency.

[0155] The following describes the process of the storage node 100A reading data by taking the process of the computing node 110 reading the data as an example. For details, please refer to steps 405 to 408.

[0156] Step 405 : The computing circuit logic 101 in the storage node 100A receives a first read data request from the computing node 110 , where the first read data request carries the logical address of the data. This step may be performed by the front-end protocol unit 1012 in the computing circuit logic 101 .

[0157] When the computing node 110 receives an external data access request, if the data access request is for requesting to read data, the computing node 110 may send a first data read request to the storage node 100A of the storage node 100A cluster based on the network protocol.

[0158] In the storage node 100A, the front-end protocol unit 1012 on the computing circuit logic 101 receives the first read data request based on the network protocol. After receiving the first read data request, the front-end protocol unit 1012 can hand over the first read data to the computing unit 1011 on the computing circuit logic 101 for processing.

[0159] Step 406: The computing circuit logic 101 of the storage node 100A determines the physical address of the data according to the logical address of the data carried in the read data request. This step can be performed by the computing unit 1011 and the storage unit 1013 in the computing circuit logic 101 in cooperation.

[0160] Still taking the case where the logical address of the data is LBA and the physical address of the data is PBA as an example, in the calculation circuit logic 101 , an FTL exists inside the storage unit 1013 .

[0161] After the computing unit 1011 obtains the first read data request from the front-end protocol unit 1012, the computing unit 1011 can obtain the LBA of the data carried in the first read data request, send the LBA of the data to the storage unit 1013, and instruct the storage unit 1013 to provide a PBA that has a mapping relationship with the LBA of the data.

[0162] After receiving the LBA of the data, the storage unit 1013 queries the FTL to determine the PBA of the data and provides the PBA to the computing unit 1011 .

[0163] Step 407: The computing circuit logic 101 accesses the storage medium 103 and reads the data from the physical address of the data. This step can be performed by the computing unit 1011 and the media management unit 1015 in the computing circuit logic 101 in cooperation.

[0164] In the computing circuit logic 101 , after receiving the PBA of the data, the computing unit 1011 generates a read instruction for instructing to read the data from the data PBA and sends the read instruction to the media management unit 1015 .

[0165] After receiving the read instruction, the media management unit 1015 determines the location pointed to by the PBA of the data in the storage medium 103 and reads the data at that location. The media management unit 1015 can detect the voltage of a device (such as a transistor) at the location pointed to by the PBA of the data in the storage medium 103 to complete the data reading.

[0166] If the storage node 100 uses a multi-copy mechanism, an EC mechanism, or a RAID mechanism to store data, and the media management unit 1015 previously wrote a data copy or verification data at the same time as writing the data, and the media management unit 1015 previously wrote a data copy to the local storage medium 103, and the media management unit 1015 failed to successfully read the data at the location pointed to by the physical address of the data, such as data anomaly or a failure of the storage medium 103, the media management unit 1015 can notify the computing unit 1011 that the data read failed. The computing unit 1011 can instruct the storage unit 1013 to provide the physical address of the copy of the data, and the computing unit 1011 can generate a read instruction again, instructing the media management unit 1015 to write data at the physical address of the copy of the data, and the media management unit 1015 can read data at the physical address of the copy of the data. The computing unit 1011 can repeat the above operations until the data is successfully read.

[0167] When the media management unit 1015 previously wrote verification data while writing data, after the media management unit 1015 successfully reads the data at the location pointed to by the physical address of the data, the computing unit 1011 can first verify the verification data. If the verification is successful, the read is successful. If the verification fails, the data is erroneous, and the verification data can be used to correct the error. If the error correction is successful, the corrected data is correct. If the error correction fails, the read fails. At this time, if the storage node 100 uses the EC mechanism to store data and also uses a multi-copy mechanism to store data, such as when writing the data, also writing a data copy to the local storage medium 103, the media management unit 1015 can notify the computing unit 1011 that the data read failed. The computing unit 1011 can instruct the storage unit 1013 to provide the physical address of the copy of the data. The computing unit 1011 can then generate a read instruction again, instructing the media management unit 1015 to write data to the physical address of the copy of the data, and the media management unit 1015 to read data from the physical address of the copy of the data. The calculation unit 1011 may repeatedly perform the above operations until the data is read successfully.

[0168] In the above description, the example of storing the generated data replicas and verification data in the storage medium 103 of the storage node 100 (i.e., the local storage medium 103) is used when the computing circuit logic 101 uses a multiple-copy mechanism, an EC mechanism, or a RAID mechanism to store data. In actual applications, part or all of the data, data replicas, and verification data may also be stored on a storage node 100 other than the storage node 100.

[0169] If the storage node 100 uses a multi-copy mechanism to store data, and the data copies are distributed on other storage nodes 100 or part of the data in the data copies are distributed on other storage nodes 100, when the media management unit 1015 fails to successfully read the data at the location pointed to by the physical address of the data, the media management unit 1015 can notify the computing unit 1011 that the data read failed. The computing unit 1011 can instruct the storage unit 1013 to provide the logical address of the data copy of the data on the other storage node 100 (or the logical address of part of the data in the data copy of the data on the other storage node 100). The computing unit 1011 can generate a third data access request carrying the logical address to request to read the data copy from the other storage node 100. The computing unit 1011 instructs the front-end protocol unit 1012 to send the third data access request to the other storage node 100. The interaction between the storage node 100 and the other storage nodes 100 can be similar to the method described in steps 409 to 412 of this embodiment. For details, please refer to the relevant content below and will not be described in detail here.

[0170] Step 408 : The computing circuit logic 101 in the storage node 100A feeds back a first read data positive response to the computing node 110 , where the first read data positive response carries the data.

[0171] In the computing circuit logic 101, after reading the data from the PBA of the data, the media management unit 1015 may transmit the data to the computing unit 1011. After receiving the data transmitted by the media management unit 1015, the computing unit 1011 generates a first read data positive response and instructs the front-end protocol unit 1012 to send the first read data positive response to the computing node 110.

[0172] The computing unit 1011 may also generate a first read data negative response when data reading fails or the number of data read failures reaches a threshold. The first read data positive response indicates that data reading has failed, and instructs the front-end protocol unit 1012 to send the first read data negative response to the computing node 110.

[0173] Steps 405 to 408 are the process of the storage node 100A processing the first read data request from the computing node 110 to realize data reading. Similar to the data writing process, in this process, the operations performed by the storage node 100A are all processed by the computing circuit logic 101, and no longer involve the bus-based interaction process between the processor, network card, and hard disk. It can reduce the transmission time of the internal information of the storage node 100A and improve the data reading efficiency.

[0174] Since there are multiple storage nodes 100 in the storage node 100 cluster, in the embodiment of the present application, within the storage node 100 cluster, the storage nodes 100 are allowed to interact with each other and access each other's stored data. The interactive access between the storage nodes 100 to each other's stored data is also divided into a data writing process and a data reading process. The following is an example of the interaction process between storage node 100A and storage node 100B. For details, please refer to steps 409 to 412.

[0175] Step 409: The computing circuit logic 101 in the storage node 100A sends a second write data request to the storage node 100B. The second write data request carries the data and the logical address of the data. This step can be performed by the front-end protocol unit 1012 in the computing circuit logic 101 in the storage node 100A.

[0176] The embodiments of the present application do not limit the specific scenario in which the storage node 100A accesses the storage node 100B and writes data in the storage node 100B. For example, when the storage node 100A does not have sufficient free storage space in the storage medium 103 of the storage node 100A to support data writing, the storage node 100A can access the storage node 100B and write the data to be written into the storage node 100B. For another example, in order to ensure the security of the data in the storage node 100A, the storage node 100A can back up the data in the storage medium 103 of the storage node 100A, and the storage node 100A can access the storage node 100B and write the backed-up data into the storage node 100B, that is, save a data copy of the data in the storage node 100B. For another example, when the storage medium 103 in the storage node 100A is damaged or the storage node 100A needs to suspend operation, and the data in the storage medium 103 of the storage node 100A needs to be migrated to other storage nodes 100, the storage node 100A can access the storage node 100B and write the data in the storage medium 103 of the storage node 100A to the storage node 100B.

[0177] Step 410: Storage node 100B processes the second write data request and writes the data to the logical address of the data. The process by which storage node 100B processes the second write data request is similar to the process by which storage node 100A processes the first write data request. The difference is that, while storage node 100A processes the first write data request, storage node 100A needs to interact with computing node 110 and feedback a positive response or a negative response to the first write data. While storage node 100B processes the second write data request, storage node 100B needs to interact with storage node 100A and feedback a response to the second write data request to notify storage node 100A of the success or failure of the data write. For details, please refer to steps 402 to 304, which will not be repeated here.

[0178] Step 411: The computing circuit logic 101 in the storage node 100A sends a second read data request to the storage node 100B, where the second read data request carries the logical address of the data. This step can be performed by the front-end protocol unit 1012 in the computing circuit logic 101 in the storage node 100A.

[0179] The embodiments of the present application do not limit the specific scenarios in which the storage node 100A accesses the storage node 100B and reads data from the storage node 100B. For example, when the storage node 100A needs to read the data previously stored in the storage node 100B when the local storage space is insufficient, the storage node 100A can access the storage node 100B and read the data from the storage node 100B. For another example, when the storage node 100A needs to obtain a copy of the data previously stored in the storage node 100B to restore the locally stored data, the storage node 100A can access the storage node 100B and read the copy of the data from the storage node 100B. For another example, when the storage node 100A receives a request from a computing device for requesting to migrate data from the storage node 100B, the storage node 100A can access the storage node 100B and obtain the data stored in the storage node 100B.

[0180] Step 412: Storage node 100B processes the second read data request, reads data from the logical address of the data, and feeds the read data back to storage node 100A. The process by which storage node 100B processes the second read data request is similar to the process by which storage node 100A processes the first read data request. The difference is that, while storage node 100A processes the first read data request, storage node 100A needs to interact with computing node 110 and feed back a positive response or a negative response to the first read data. While storage node 100B processes the second read data request, storage node 100B needs to interact with storage node 100A and feed back a response to the second read data request, thereby sending the read data to storage node 100A or notifying storage node 100A of a data read failure. For details, please refer to steps 405 to 308, which will not be repeated here.

[0181] In the embodiment of the present application, the storage node 100 also has the function of near-memory computing, which can assist the computing nodes 110110 in completing some simple data computing tasks. The process of the storage node 100 implementing near-memory computing is described below.

[0182] Step 413: Storage node 100A receives a data computation request from compute node 110. This data computation request is for performing computation on the data in storage node 100. The data computation request carries the logical address of the data to be computed and computation instruction information, which indicates the computation method for the data to be computed. This step can be performed by front-end protocol unit 1012 in computation circuit logic 101.

[0183] For example, the computing node 110 needs to find a table entry that meets a target condition in a certain data table. The data computing request may carry the logical address of the data table and the target condition, which is computing indication information.

[0184] For another example, the computing node 110 needs to determine the number of entries in a data table that meet the target conditions. The data calculation request can carry the logical address of the data table and calculation indication information, which indicates the count of entries in the data table that meet the target conditions.

[0185] Step 414: The computing circuit logic 101 in the storage node 100A determines the physical address of the data based on the logical address of the data carried in the data computation request. This step can be performed collaboratively by the computing unit 1011 and the storage unit 1013 in the computing circuit logic 101. The computing circuit logic 101 in the storage node 100A performs step 414 in a manner similar to the aforementioned step 406. For details, please refer to the aforementioned content and will not be repeated here.

[0186] Step 415: The computing circuit logic 101 in the storage node 100A accesses the storage medium 103 and reads the data from the physical address of the data. This step can be performed collaboratively by the computing unit 1011 and the media management unit 1015 in the computing circuit logic 101. The computing circuit logic 101 in the storage node 100A performs step 415 in a manner similar to the aforementioned step 407. For details, please refer to the previous section and will not be repeated here.

[0187] It is worth noting that when the computing circuit logic 101 fails to read the data from the physical address of the data, the computing circuit logic 101 can obtain a data copy. The way in which the computing circuit logic 101 obtains the data copy can be found in the above content and will not be repeated here.

[0188] Step 416 : The computing circuit logic 101 in the storage node 100A computes the read data based on the data computation request to obtain a computation result. This step may be performed by the computing unit 1011 in the computing circuit logic 101 .

[0189] After reading the data to be calculated, the calculation circuit logic 101 may calculate the data according to the calculation method indicated by the calculation instruction information to obtain a calculation result.

[0190] For example, when the calculation instruction information is used to instruct to find a table entry in the data table that meets the target condition, the calculation circuit logic 101 may search the data table for an entry based on the target condition to obtain the table entry that meets the target condition.

[0191] For another example, when the calculation indication information is used to indicate the number of table entries in a data table that meet the target conditions, the calculation circuit logic 101 can search for table entries in the data table based on the target conditions. Each time an entry that meets the target conditions is found, the count value is increased by one. After the search is completed, the value of the count value is the calculation result.

[0192] Inside the calculation circuit logic 101 , after obtaining the data from the medium management unit 1015 , the calculation unit 1011 may calculate the data according to the calculation method indicated by the calculation instruction information to obtain a calculation result.

[0193] Step 417 : The computing circuit logic 101 in the storage node 100A feeds back a data computing response, which carries the computing result, to the computing node 110 . This step may be performed by the front-end protocol unit 1012 in the computing circuit logic 101 .

[0194] The descriptions of the processes corresponding to the above figures have different focuses. For parts that are not described in detail in a certain process, please refer to the relevant descriptions of other processes.

[0195] In the above embodiments, all or part of the embodiments may be implemented using software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments may be implemented in the form of a computer program product. The computer program product includes computer program instructions that, when loaded and executed on a computer, fully or partially generate the process or functions described in FIG. 3 of the embodiment of the present invention.

[0196] The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line, or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated therein. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., an SSD).

[0197] Obviously, those skilled in the art may make various changes and modifications to the present application without departing from the scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is intended to include these modifications and variations.

Claims

1. A storage system, characterized in that: The storage system includes at least one computing node and multiple storage nodes, and for a first storage node among the multiple storage nodes, the first storage node includes computing circuit logic and a storage medium; The computing circuit logic is used to: receive a first data access request from at least one computing node and / or a second storage node among the plurality of storage nodes based on a network protocol, wherein the first data access request is used to access data in the first storage node; The physical address of the data is determined according to the logical address of the data to be accessed carried in the first data access request, and the storage medium is accessed according to the physical address of the data.

2. The system according to claim 1, characterized in that The computing circuit logic includes a front-end protocol unit, a computing unit, a storage unit and a media management unit, and the front-end protocol unit, the computing unit, the storage unit and the media management unit communicate with each other based on an on-chip bus protocol; The front-end protocol unit is used to receive the first data access request based on the network protocol; The storage unit is used to determine the physical address of the data according to the logical address of the data; The calculation unit is used to obtain the physical address of the data from the storage unit, and instruct the medium management unit to access the storage medium based on the physical address of the data; The medium management unit is used to access the storage medium based on the physical address of the data under the instruction of the calculation unit.

3. The system according to claim 2, characterized in that The first data access request is used to request to write the data in the storage medium; The calculation unit is further used to generate verification data of the data according to the data; obtain the physical address of the verification data from the storage unit, and instruct the medium management unit to store the verification data according to the physical address of the verification data; The storage unit is further used to allocate a physical address to the verification data; The medium management unit is used to: store the data according to the physical address of the data under the instruction of the calculation unit, and store the verification data in the storage medium according to the physical address of the verification data.

4. The system according to claim 1 or 2, characterized in that: The first data access request is used to request to write the data in the storage medium; The storage unit is further used to: determine a logical address of the data copy according to the logical address of the data, the logical address of the data copy being located at a third storage node among the plurality of storage nodes; The computing unit is further used to obtain the logical address of the data copy from the storage unit, and generate the second data access request, where the second data access request is used to write the data copy in the third storage node, and the second data access request carries the logical address of the data copy; The front-end protocol unit is further used to send the second data access request to the third storage node.

5. The system according to any one of claims 1 to 4, characterized in that: The first data access request is used to request to write the data in the storage medium; The storage unit is further used to: determine the physical address of the data copy according to the logical address of the data; The calculation unit is further used to: obtain the physical address of the data copy from the storage unit, and instruct the medium management unit to store the data copy according to the physical address of the data copy; The medium management unit is used to: store the data according to the physical address of the data under the instruction of the calculation unit, and store the data copy in the storage medium according to the physical address of the data copy.

6. The system according to claim 3, characterized in that The first data access request is used to request to read the data from the storage medium, The calculation unit is further used to obtain the physical address of the verification data from the storage unit, and instruct the medium management unit to read the verification data according to the physical address of the verification data; The medium management unit is used for: The data and the verification data of the data are read from the storage medium according to the physical address of the data and the physical address of the verification data. The calculation unit is used to: perform data recovery on the data according to the verification data to generate a first data access response, wherein the first data access response carries the data after data recovery; The front-end protocol unit is used to send the first data access response to the at least one computing node and / or the second storage node.

7. The system according to claim 4, characterized in that The first data access request is used to request to read the data from the storage medium; The computing unit is further configured to: after determining that the media management unit has not successfully read the data from the storage medium, obtain the logical address of the data copy from the storage unit; generate the third data access request, the third data access request is used to read the data copy from a third storage node among the multiple storage nodes, and the third data access request carries the logical address of the data copy; The front-end protocol unit is further configured to send the third data access request to the third storage node; and receive the data copy fed back by the third storage node; The computing unit is further configured to: generate a first data access response, wherein the first data access response carries the data copy; The front-end protocol unit is used to send the first data access response to the at least one computing node and / or the second storage node.

8. The system according to any one of claims 1 to 6, characterized in that: The computing circuit logic is also used to: receive a data computing request from the at least one computing node based on a network protocol, the data computing request is used to calculate the data in the storage node, read the data in the storage medium according to the data computing request, and calculate the read data.

9. The system according to any one of claims 1 to 8, characterized in that: The storage medium is a flash memory chip or a disk.

10. The system according to any one of claims 1 to 9, characterized in that: The network protocols include some or all of the following: Transmission Control Protocol / Internet Protocol TCP / IP, User Datagram Protocol UDP, Hypertext Transfer Protocol HTTP, File Transfer Protocol FTP, Remote Terminal Telnet Protocol, Network File System NFS Protocol.

11. A data access method, characterized in that: The method is applied to a storage system including at least one computing node and a plurality of storage nodes, and the method includes: The at least one computing node and / or a second storage node among the multiple storage nodes sends a first data access request to a first storage node among the multiple storage nodes, where the first data access request is used to access data in the first storage node; The computing circuit logic in the first storage node receives the first data access request based on the network protocol, determines the physical address of the data according to the logical address of the data to be accessed carried in the first data access request, and accesses the storage medium of the first storage node according to the physical address of the data.

12. The method according to claim 11, characterized in that The computing circuit logic includes a front-end protocol unit, a computing unit, a storage unit, and a media management unit, wherein the front-end protocol unit, the computing unit, the storage unit, and the media management unit communicate with each other based on an intra-chip bus protocol; the computing circuit logic determines a physical address of the data to be accessed according to a logical address of the data to be accessed carried in the first data access request, and accesses a storage medium of the first storage node according to the physical address of the data, including: The front-end protocol unit receives the first data access request based on the network protocol; The storage unit determines the physical address of the data according to the logical address of the data; The computing unit obtains the physical address of the data from the storage unit, and instructs the medium management unit to access the storage medium based on the physical address of the data; The media management unit accesses the storage medium based on the physical address of the data under the instruction of the calculation unit.

13. The method according to claim 12, characterized in that The first data access request is used to request writing the data in the storage medium; the computing circuit logic determines the physical address of the data according to the logical address of the data to be accessed carried in the first data access request, and accesses the storage medium of the first storage node according to the physical address of the data, including: The calculation unit generates verification data of the data according to the data; The storage unit determines the physical address of the data according to the logical address of the data, and allocates a physical address to the verification data; The calculation unit obtains the physical address of the data and the physical address of the verification data from the storage unit, and instructs the medium management unit to store the data and the verification data according to the physical address of the data and the physical address of the verification data; The medium management unit stores the data according to the physical address of the data under the instruction of the calculation unit, and stores the verification data in the storage medium according to the physical address of the verification data.

14. The method according to claim 11 or 12, characterized in that: The first data access request is used to request writing the data in the storage medium; the computing circuit logic determines the physical address of the data according to the logical address of the data to be accessed carried in the first data access request, and accesses the storage medium of the first storage node according to the physical address of the data, including: The computing unit generates the data copy according to the data; The storage unit determines the physical address of the data according to the logical address of the data, and allocates a logical address to the copy data of the data; The computing unit obtains the physical address of the data and the physical address of the data copy from the storage unit, instructs the media management unit to store the data and the verification data according to the physical address of the data, and generates a second data access request, where the second data access request is used to write the data copy in the third storage node, and the second data access request carries the logical address of the data copy; The front-end protocol unit sends the second data access request to the third storage node; The media management unit stores the data according to the physical address of the data under the instruction of the calculation unit.

15. The method according to any one of claims 11 to 14, characterized in that: The first data access request is used to request writing the data in the storage medium; the computing circuit logic determines the physical address of the data according to the logical address of the data to be accessed carried in the first data access request, and accesses the storage medium of the first storage node according to the physical address of the data, including: The computing unit generates the data copy according to the data; The storage unit determines the physical address of the data and the physical address of the copy of the data according to the logical address of the data; The computing unit acquires the physical address of the data and the physical address of the data copy from the storage unit, and instructs the medium management unit to store the data and the data copy according to the physical address of the data and the physical address of the data copy; The medium management unit stores the data according to the physical address of the data under the instruction of the calculation unit, and stores the data copy in the storage medium according to the physical address of the data copy.

16. The method according to claim 13, characterized in that The first data access request is used to request to read the data from the storage medium, the computing circuit logic determines the physical address of the data according to the logical address of the data to be accessed carried in the first data access request, and accesses the storage medium of the first storage node according to the physical address of the data, including: The calculation unit obtains the physical address of the data and the physical address of the verification data from the storage unit, and instructs the medium management unit to read the data and the verification data according to the physical address of the data and the physical address of the verification data; The medium management unit reads the data and the verification data from the storage medium according to the physical address of the data and the physical address of the verification data; The computing unit performs data recovery on the data according to the verification data to generate a first data access response, wherein the first data access response carries the data after data recovery; The front-end protocol unit sends the first data access response to the at least one computing node and / or the second storage node.

17. The method according to claim 14, characterized in that The first data access request is used to request to read the data from the storage medium; the method further includes: After determining that the medium management unit has not successfully read the data from the storage medium, the computing unit obtains the logical address of the data copy from the storage unit; generates the third data access request, the third data access request is used to read the data copy from a third storage node among the multiple storage nodes, and the third data access request carries the logical address of the data copy; The front-end protocol unit sends the third data access request to the other storage nodes; and receives the data copy fed back by the third storage node; The computing unit generates a first data access response, wherein the first data access response carries the data copy; The front-end protocol unit sends the first data access response to the at least one computing node and / or the second storage node.

18. The method according to any one of claims 11 to 16, characterized in that: The method further comprises: The computing circuit logic receives a data computing request from the at least one computing node based on the network protocol, the data computing request is used to compute the data in the storage node, reads the data in the storage medium according to the data computing request, and computes the read data.

19. The method according to any one of claims 11 to 18, characterized in that: The storage medium is a flash memory chip or a disk.

20. The method according to any one of claims 11 to 19, characterized in that: The network protocols include some or all of the following: TCP / IP, UDP, HTTP, FTP, Telnet protocol, and NFS protocol.

21. A storage subsystem, characterized in that: The storage subsystem includes computing circuit logic and a storage medium, wherein the storage medium is used to store data, and the computing circuit logic is used to execute the method of any one of claims 11 to 20.

22. A computer-readable storage medium, characterized in that: When the computer-readable storage medium is executed by a computing device, the computing device executes the method according to any one of claims 11 to 20.

Citation Information

Patent Citations

  • Storage system, storage node and data storage method

    CN112527186A

  • Data access method and device and storage medium

    CN112783804A

  • Metadata management method and device, computer equipment and readable storage medium

    CN115437579A

  • Data storage system, intelligent network card and computing node

    CN116166179A

  • Neural processing device and method for using shared page table thereof

    US11789791B1