Storage system, data access method and storage subsystem
By introducing computing circuit logic with network card, processor and hard disk controller functions into the storage node, and using the on-chip bus protocol for unit interaction, the problem of large interaction delay of components within the storage node is solved and data read and write efficiency is improved.
Patent Information
- Application Number
- CN202311630950.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-11-30
- Publication Date
- 2025-05-30
AI Technical Summary
In the storage system, the interaction delay between various components within the storage node is large, which affects the data reading and writing efficiency.
By introducing computing circuit logic into the storage node, this logic has the functions of a network card, a processor and a hard disk controller, avoiding system bus interaction between components and using an on-chip bus protocol for efficient interaction between units.
It improves the processing efficiency of data access requests, reduces the transmission time of information inside the storage node, and improves the data reading and writing efficiency.
Smart Images

Figure CN120066385A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of storage, and in particular, to a storage system, a data access method, and a storage subsystem. Background Art
[0002] Currently, in a storage system, the storage system includes a computing node responsible for computing functions and a storage node responsible for storage functions. The computing node can receive data access requests from the outside to access the data in the storage system. The storage node reads data from the storage node or writes data into the storage node according to the data access request.
[0003] When the computing node needs to read data from the storage node or write data into the storage node, it will send a read data request or a write data request to the storage node; the storage node processes the read data request to complete data reading and processes the write data request to complete data writing. For the storage node, the entire process of processing the read data request or the write data request requires the participation of various components inside the storage node (such as network cards, processors, memory, and hard disks). Inevitably, various components inside the storage node need to interact during this processing process (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. An excessive delay will affect the data reading and writing efficiency of the storage node. Summary of the Invention
[0004] A storage system, a data access method, and a storage subsystem provided by an embodiment of this application are used to improve the data reading and writing efficiency of storage nodes in the storage system.
[0005] In a first aspect, an embodiment of this application provides a storage system. The storage system includes at least one computing node and multiple storage nodes. For a first storage node among the multiple storage nodes, the first storage node includes computing circuit logic and a storage medium; where the first storage node is used to refer to any one of the multiple storage nodes. Here, it is 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 later) are used to indicate different storage nodes among the multiple storage nodes. In the embodiment of this application, storage node A, storage node B, and storage node C can also be used to indicate different storage nodes among the multiple storage nodes.
[0006] The computing circuit logic in the first storage node is the core processing unit in the first storage node, and the computing circuit logic is a circuit logic with composite 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 multiple storage nodes based on a network protocol, and the first data access request is used to access the data in the first storage node.
[0007] 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 carried in the first data access request, and accesses the storage medium according to the physical address of the data.
[0008] Through the above storage system, the computing circuit logic combines the functions of a network card (capable of interacting with computing nodes and the second storage node based on a network protocol), a processor (capable of parsing the first data access request), and a controller in a hard disk (capable of converting the physical address and the logical address and accessing the storage medium based on the physical address), avoiding the interaction between various components inside the storage node based on the system bus, accelerating the processing efficiency of the first data access request, and ensuring the read and write efficiency of the storage node.
[0009] In a possible implementation manner, the 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, the computing unit, the storage unit, and the media management unit communicate based on an on-chip bus protocol, that is, the front-end protocol unit, the computing unit, the storage unit, and the media management unit are connected through an on-chip bus. The on-chip bus is a connecting line used for interconnection within the chip, which is different from the system bus. The bandwidth of the on-chip bus can be designed according to actual requirements, and the connection method is more flexible. In this computing circuit logic, the front-end protocol unit receives the first data access request based on a network protocol, and 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 media 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 computing unit.
[0010] Through the above storage system, the computing circuit logic internally includes units with different functions, and the interaction between these units is based on the on-chip bus protocol, and 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.
[0011] In a possible implementation, when the first data access request is used to request writing data to a storage medium, that is, 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 embodiments of the present application), the front-end protocol unit receives the first data access request based on the network protocol, the calculation unit generates check data for 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 for the check data. Usually, there is an association relationship among the physical address of the data, the physical address of the check 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 check data can be determined according to this association relationship.
[0012] The calculation unit obtains the physical address of the data and the physical address of the check data from the storage unit, and instructs the media management unit to write the data and the check data based on the physical address of the data and the physical address of the check data. The media management unit writes the data to the storage medium based on the physical address of the data under the instruction of the calculation unit, and writes the check data to the storage medium based on the physical address of the check data.
[0013] Through the above storage system, when the first data access request is a write data request, in the calculation circuit logic of the first storage node, each unit can cooperate to not only write the data to the storage medium, but also write the check data of the data to the storage medium, that is, ensure that the erasure coding (EC) check mechanism or redundant array of independent disks (RAID) (such as RAID 3, RAID 5) can be used to store data in the first storage node.
[0014] In a possible implementation, the first data access request is used to request writing data to a storage medium; the front-end protocol unit receives the first data access request based on the network protocol, the calculation unit generates a data copy for the data, the storage unit determines the logical address of the data copy according to the logical address of the data, and the logical address of the data copy is located in the third storage node among multiple storage nodes. Usually, there is an association relationship among the physical address of the data, the logical address of the data copy, and the logical address of the data. After determining the logical address of the data, the physical address of the data and the logical address of the data copy can be determined according to this association relationship.
[0015] The computing unit obtains the logical address of the data copy from the storage unit, generates a second data access request for writing the data copy in the third storage node, and the logical address of the data copy is carried in the second data access request; 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, instructs the media management unit to write the data based on the physical address of the data, and the media management unit writes the data in the storage medium based on the physical address of the data under the instruction of the computing unit.
[0016] Through the above storage system, when the first data access request is a write data request, in the first storage node, in addition to being able to write the data into the storage medium, each unit can also write the data copy of the data into other storage nodes (such as the third storage node), that is, it is ensured that the multi-copy mechanism or RAID mechanism (such as RAID 1) can be used to store data in the first storage node.
[0017] In a possible implementation manner, the first data access request is used to request writing data in the storage medium; the front-end protocol unit receives the first data access request based on the 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 according to the logical address of the data. Usually, there is an association relationship between the physical address of the data, the physical address of the data copy, 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 data copy can be determined according to this association relationship.
[0018] 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. 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 data copy in the storage medium according to the physical address of the data copy.
[0019] In the foregoing description, taking the data copies being stored in other storage nodes or the first storage node respectively as an example, in fact, the embodiments of the present application do not limit the number of data copies and the specific storage location of any data copy. The data copy can be one or multiple. For any data copy, the data copy can also be stored in any one of the multiple storage nodes, or can be distributed and stored in multiple storage nodes.
[0020] Through the above storage system, when the first data access request is a write data request, in the computing circuit logic of the first storage node, in addition to being able to write data to the storage medium, each unit can also write a data copy of the data to the local storage medium, that is, ensure that the first storage node can store data using a multi-copy mechanism or a RAID mechanism (such as RAID 1).
[0021] In a possible implementation, the first data access request is used to request to read data from the 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 embodiments of the present application). 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 check data according to the logical address of the data.
[0022] The computing unit obtains the physical address of the data and the physical address of the check data from the storage unit, and instructs the media management unit to read the data and the check data based on the physical address of the data and the physical address of the check data. The media management unit reads the data and the check data of the data from the storage medium according to the physical address of the data and the physical address of the check data.
[0023] The computing unit performs data recovery on the data according to the check data of the data to generate a first data access response, and the first data access response carries the data after data recovery. The data recovery performed by the computing unit on the data includes data verification and / or data error correction, where data verification is used to detect whether the data is in error, and data error correction is used to correct the error part in the data after determining that the data is in error. The corrected data or the data determined not to be in error after data verification is the data after data recovery.
[0024] The front-end protocol unit sends the first data access response to at least one computing node and / or the second storage node.
[0025] Through the above storage system, when the first data access request is a read data request, in the first storage node, each unit can cooperate to perform data recovery on the data to ensure the accuracy of the read data.
[0026] In a possible implementation, the first data access request is used to request to read data from a storage medium; the media management unit reads the data according to the physical address of the data under the instruction of the computing unit. If the read data is in error, such as data with failed error correction or data with garbled characters, etc., the computing unit can obtain a data copy. For example, after determining that the media management unit fails to successfully read the data from the storage medium, the computing unit obtains the logical address of the data copy from the storage unit; generates a third data access request, which is used to read the data copy from the third storage node among multiple storage nodes, and the logical address of the data copy is carried in the third data access request;
[0027] The front-end protocol unit sends the third data access request to the third storage node and receives the data copy fed back by the third storage node;
[0028] The computing unit uses the data copy to restore the data stored locally and generates a first data access response, and the data copy is carried in the first data access response. The embodiments of the present application do not limit the manner in which the computing unit uses the data copy to restore the data stored locally. 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 a physical address for the data and instruct the media management unit to write the data copy to the reallocated physical address for the data. Of course, the computing unit can also not restore the data stored locally, but directly initiate a third data access request to the third storage node through the front-end protocol unit when receiving a data access request for requesting to read the data subsequently.
[0029] The front-end protocol unit sends the first data access response to at least one computing node and / or the second storage node.
[0030] Through the above storage system, in the first storage node, when the data stored in the local storage medium is in error, the computing circuit logic can obtain and feed back the data copy to the computing node or the second storage node, ensuring that correct data can be fed back.
[0031] In a possible implementation, the first data access request is used to request to read data from a storage medium; the media management unit reads the data according to the physical address of the data under the instruction of the computing unit. If the read data is in error, such as data with failed error correction or data with garbled characters, etc., the computing unit can obtain a data copy. For example, after determining that the media management unit fails to 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. The media management unit reads the data copy from the storage medium based on the physical address of the data copy under the instruction of the computing unit.
[0032] The computing unit restores the data stored locally by using the data copy, and generates a first data access response, where the data copy is carried in the first data access response. The embodiments of the present application do not limit the manner in which the computing unit restores the data stored locally by using the data copy. For specific details, reference may be made to the foregoing description, which will not be elaborated here. Of course, the computing unit may also not restore the data stored locally. Instead, when a data access request for reading the data is received subsequently, 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.
[0033] In a possible implementation manner, the first storage node may also assist the computing node in performing some data calculation operations. The calculation circuit logic receives a data calculation request from at least one computing node based on a network protocol. The data calculation request is used to calculate the data in the storage node, reads the data in the storage medium according to the data calculation request, and calculates the read data.
[0034] Specifically, inside the calculation circuit logic, the front-end protocol unit receives a data calculation request based on a network protocol; the storage unit determines the physical address of the data to be calculated according to the logical address of the data to be calculated carried in the data calculation request; the computing unit obtains the physical address of the data to be calculated from the storage unit, and instructs the media management unit to read the data to be calculated based on the physical address of the data. The media management unit reads the data to be calculated from the storage medium based on the physical address of the data to be calculated under the instruction of the computing unit. The computing unit performs data calculation on the data to be calculated according to the calculation instruction information carried in the data calculation request, obtains a calculation result, and generates a data calculation response carrying the calculation result, where the calculation instruction information is used to indicate the calculation manner for the data to be calculated. The front-end protocol unit feeds back the data calculation response to the computing node.
[0035] Through the above storage system, the calculation circuit logic also has a data calculation function, can assist the computing node to complete some data calculation tasks, and relieve the data calculation pressure of the computing node.
[0036] In a possible implementation manner, the on-chip bus protocol includes but is not limited to: ARM CCI, ARM CCN, ARM CMN, ARM NIC.
[0037] In a possible implementation manner, the storage medium is a flash chip or a disk. The storage medium only has a data storage function.
[0038] In a 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 protocol for remote terminals, and Network File System (NFS) protocol. The above network protocols are only examples, and the embodiments of the present application do not limit the network protocol based on which the computing circuit logic in the storage node communicates with other nodes in the storage system.
[0039] Through the above storage system, the computing node and the storage node, as well as between the storage nodes, can interact through different network protocols, which is applicable to different application scenarios.
[0040] In a second aspect, the embodiments of the present application provide a data access method, which can be executed by the first storage node in the aforementioned storage system. The beneficial effects can be referred to the relevant descriptions in the first aspect and will not be elaborated here. In this method, at least one computing node and / or a second storage node among multiple storage nodes send a first data access request to the first storage node among the multiple storage nodes, and the first data access request is used to access the data in the first storage node.
[0041] 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 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.
[0042] In a possible implementation, the 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, the computing unit, the storage unit, and the media management unit communicate based on the on-chip bus protocol. When the computing circuit logic accesses the storage medium of the first storage node according to the first data access request, inside the computing circuit logic: 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 media 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 computing unit.
[0043] In a possible implementation, the first data access request is used to request writing data to a storage medium; when 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, the computing unit generates check 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 assigns a physical address to the check data of the data; the computing unit obtains the physical address of the data and the physical address of the check data from the storage unit, and instructs the media management unit to store the data and the check data according to the physical address of the data and the physical address of the check 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 check data of the data in the storage medium according to the physical address of the check data.
[0044] In a possible implementation, the first data access request is used to request writing data to a storage medium; when 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, the computing unit generates a 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 assigns 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, and instructs the media management unit to store the data according to the physical address of the data. The computing unit generates a second data access request, and the second data access request is used to request writing the data copy to a third storage node, and the logical address of the data copy is carried in the second data access request; 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 computing unit.
[0045] In a possible implementation, the first data access request is used to request writing data to a storage medium; when 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, the computing unit generates a data copy according to the data; the storage unit determines the physical address of the data and the physical address of the data copy according to the logical address of the data.
[0046] 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;
[0047] 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 data copy in the storage medium according to the physical address of the data copy.
[0048] In a possible implementation, the first data access request is used to request to read data from a 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. When accessing the storage medium of the first storage node according to 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 the verification data according to the physical address of the data and the physical address of the verification data.
[0049] The media management unit reads the data and the verification data of the data from the storage medium according to the physical address of the data and the physical address of the verification data.
[0050] The computing unit performs data recovery on the data according to the verification data of the data, generates a first data access response, and the first data access response carries the data after data recovery.
[0051] The front-end protocol unit sends the first data access response to at least one computing node and / or the second storage node.
[0052] In a possible implementation, the first data access request is used to request to read data from a storage medium; after the computing unit determines that the data read by the media management unit from the storage medium is unsuccessful, it obtains the logical address of the data copy from the storage unit; generates a third data access request, and the third data access request is used to read the data copy from the third storage node among multiple storage nodes, and the logical address of the data copy is carried in the third data access request;
[0053] The front-end protocol unit sends the third data access request to other storage nodes; receives the data copy fed back by the third storage node;
[0054] The computing unit generates a first data access response, and the first data access response carries the data copy;
[0055] The front-end protocol unit sends the first data access response to at least one computing node and / or the second storage node.
[0056] In a possible implementation, the computing circuit logic receives a data calculation request from at least one computing node based on a network protocol. The data calculation request is used to calculate the data in the storage node, reads the data in the storage medium according to the data calculation request, and calculates the read data.
[0057] In a possible implementation, the on-chip bus protocol includes but is not limited to: ARM CCI, ARM CCN, ARMCMN, ARM NIC.
[0058] In a possible implementation, the storage medium is a flash chip or a disk.
[0059] In a possible implementation, the network protocol includes some or all of the following: TCP / IP, UDP, HTTP, FTP, Telnet protocol, NFS protocol.
[0060] In a third aspect, an embodiment of the present application further provides a storage node. The storage node device has the function of implementing the behavior of the first storage node in the examples of the first aspect above. The beneficial effects can be referred to the description of the first aspect and will not be elaborated here. The function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions. In a 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 execute the corresponding functions in the method examples of the first aspect above. The beneficial effects can be referred to the relevant description of the first aspect and will not be elaborated here. When the front-end protocol unit, the computing unit, the storage unit, and the media management unit are hardware, these units are integrated in the computing circuit logic or the computer chip. When the front-end protocol unit, the computing unit, the storage unit, and the media management unit are software, these units are stored in the cache in the computing circuit logic or the computer chip or in the memory connected to the computing circuit logic or the computer chip. The computing circuit logic or the computer chip can call the front-end protocol unit, the computing unit, the storage unit, and the media management unit to implement the function of the first storage node behavior.
[0061] In a fourth aspect, the present application further provides a storage subsystem. The storage subsystem includes a computing circuit logic and a storage medium, and optionally further 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 necessary computer program instructions and data during 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 necessary computer program instructions stored in other memories during the data access process to execute the method provided in the second aspect or any possible implementation of the second aspect.
[0062] 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 executes the method provided in the foregoing second aspect or any possible implementation manner of the second aspect. A program is stored in the computer-readable storage medium. The storage medium includes, but is not limited to, volatile memories such as random access memories, and non-volatile memories such as flash memories, hard disk drives (HDDs), and solid state drives (SSDs).
[0063] Sixth aspect, the present application provides a computing device program product. The computing device program product includes computer instructions. When executed by a computing device, the computing device executes the method provided in the foregoing second aspect or any possible implementation manner of the second aspect. The computer program product can be a software installation package. In the case where the method provided in the foregoing second aspect or any possible implementation manner of the second aspect needs to be used, the computer program product can be downloaded and executed on the computing device.
[0064] Seventh aspect, the present application further provides a computer chip. The chip is connected to a memory. The chip is used to read and execute a software program stored in the memory and execute the method in the foregoing second aspect and each possible implementation manner of the second aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0065] Figure 1 It is a schematic structural diagram of a storage system provided by an embodiment of the present application;
[0066] Figure 2 It is a schematic structural diagram of a storage node provided by an embodiment of the present application;
[0067] Figure 3 It is a schematic structural diagram of another storage system provided by an embodiment of the present application;
[0068] Figure 4 It is a schematic diagram of a data access method provided by an embodiment of the present application. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0069] As Figure 1 shown, a storage system provided by an embodiment of the present application includes a computing node cluster and a storage node cluster.
[0070] In this storage system, the computing node cluster undertakes the computing functions in the storage system. The computing node cluster can undertake most of the computing or processing tasks for data in the storage system. For example, the computing node cluster can process access requests generated outside the storage system, access the storage system according to the access request, and read or write data from the storage system. Another example is that the computing node cluster can also perform data computing, metadata management, initiation or management of storage services, etc.
[0071] The computing node cluster includes one or more computing nodes 110 ( Figure 1 Two computing nodes 110 are shown in , but it is not limited to two computing nodes 110), and the computing nodes 110 can communicate with each other. The computing node 110 is a computing device, such as a server, a desktop computer, or a controller of a storage array, etc. In the embodiments of the present application, the specific structure of the computing node is not limited, and any computing device that can implement computing functions is applicable to the embodiments of the present application.
[0072] In Figure 1 only an exemplary structural schematic diagram of the computing node is shown, as Figure 1 shown, the computing node 110 at least includes a processor 111, a memory 112, and a network card 113. Among them, the processor 111 is a central processing unit (CPU), which is used to process access requests or requests generated inside the computing node 110. Exemplarily, when the processor 111 receives an access request for requesting to write data, it will temporarily save 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 (the storage nodes in the storage node cluster) to send the data stored in the memory 112 to the storage node cluster and requests the storage node cluster to perform persistent storage. When the processor 111 receives an access request for requesting to read data, it will send a data access request to the storage node cluster to request to read data from the storage node cluster.
[0073] In addition, the processor 111 is also used to calculate or process data. For example, data search, data counting, metadata management, deduplication, data compression, virtualized storage space, etc. The processor 111 can also hand over the operation of calculating data to the 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 calculation.
[0074] The memory 112 can be a random access memory or a read only memory (ROM). The random access memory can be a dynamic random access memory (DRAM) or a storage class memory (SCM). The memory 112 can also include other random access memories, such as a static random access memory (SRAM), etc. The memory 112 can also include read only memories, such as a programmable read only memory (PROM), an erasable programmable read only memory (EPROM), etc. The memory 112 can also be a dual in-line memory module or a dual in-line memory module (DIMM). The memory 112 can also be a solid state disk (SSD).
[0075] 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 embodiments of the present application) to the storage node 100 through the network card 113 to perform persistent storage on 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 embodiments 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 can also include a bus for communication between components inside the computing node 110.
[0076] The storage node cluster undertakes the storage function in this storage system. Most of the data stored in this storage system is stored in this storage node cluster (a small part of the data will be temporarily stored in the computing node 110). The storage node cluster includes multiple storage nodes 100( Figure 4 Three storage nodes 100 are shown in, but not limited to three storage nodes 100).
[0077] For any storage node 100 in the storage node cluster, the storage node 100 can receive data access requests (such as the first write data request, the first read data request, the second write data request, and the second read data request mentioned in the embodiments of the present application) from nodes outside the storage node 100 (such as a computing node 110 or a storage node 100 outside the storage node 100), process the data access request, convert the logical address of the data carried in the data access request into a physical address, access the storage medium 103 in the storage node based on the physical address, and write or read data in the storage medium 103. For example, when the data access request is used to request writing data (such as the first write data request and the second write data request mentioned in the embodiments of the present application), the storage node 100 can write data in the storage medium 103 according to the data access request. Again, for example, when the data access request is used to request reading data, the storage node 100 can read data from the storage medium 103 according to the data access request.
[0078] In the embodiments of the present application, the storage node 100 can write or read data in the storage medium 103 upon request from the computing node 110 (such as the first write data request and the first read data request mentioned in the embodiments of the present application). The storage nodes 100 can interact with each other. The storage node 100 can write or read data upon request from other storage nodes 100 in the storage node cluster (the second write data request and the second read data request mentioned in the embodiments 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 writing data in other storage nodes 100 or reading data from other storage nodes 100.
[0079] The storage node 100 can also receive a data calculation request initiated by the computing node 110 and complete data calculation according to the data calculation request. In addition, the storage node 100 can also support storage services such as data deduplication, data compression, and data recovery. The storage node 100 can complete storage services such as data deduplication, data compression, and data recovery by itself, or can also complete storage services such as data deduplication, data compression, and data recovery upon request from the computing node 110.
[0080] In terms of hardware, for any storage node 100, the storage node 100 includes computing circuit logic 101 and a storage medium 102. Optionally, the storage node 100 may further include a memory 102. Optionally, some caches, such as SRAM, may also be included on the computing circuit logic 101 to support the operation of the computer circuit logic.
[0081] The computing circuit logic 101 is a component for the specific processing function of the internal core of the storage node 100. The computing circuit logic 101 is a component that supports various functions of the storage node 100. That is to say, inside the storage node 100, the operations performed by the storage node 100 are completed by the computing circuit logic 101. For example, the computing circuit logic 101 can directly receive and process data access requests and access the storage medium 103 according to the data access requests. For another example, when writing data into the storage medium 103, the computing circuit logic 101 can generate check data for the data and write the data and its check data into the storage medium 103.
[0082] The computing circuit logic 101 also supports the deployment of a standard operating system (OS) system on the storage node to support the operation and management of storage services, as well as the processing of normal transactions such as maintaining storage node metadata management, status management, and exception handling.
[0083] The memory 102 is used to temporarily store the data to be written into the storage medium 103, or the data read from the storage medium 103 to be sent to the computing node 110. The type of the memory 102 can refer to the description of the foregoing memory 113 and will not be elaborated here.
[0084] The storage medium 103 is a medium for persistently storing data in the storage node 100. The storage medium 103 can be a flash memory (NAND flash) or a disk. In the embodiments of the present application, the storage medium 103 only has a storage function and does not have a computing function. The storage medium 103 only stores or outputs data under the control of the computing circuit logic 101.
[0085] 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:
[0086] Function 1: Communication function.
[0087] 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 100, or feedback 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 network protocols, which include but are not limited to: TCP / IP protocol, UDP protocol, HTTP protocol, FTP protocol, Telnet protocol, simple mail transfer protocol (SMTP), NFS protocol.
[0088] The computing circuit logic 101 can receive and parse data access requests according to the network protocol, and identify the logical address of the data carried in the data access request, or the data (when the data access request is received for requesting to write data). 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.
[0089] This communication function is similar to the function of the "network card" mentioned above. In the embodiments of the present application, the function of the "network card" is implemented by the computing circuit logic 101, and there is no need to separately deploy a network card or other forms of network interface cards in the storage node 100.
[0090] Function 2: Storage function.
[0091] As 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.
[0092] 1), Data storage.
[0093] The computing circuit logic 101 can manage the storage space in the storage medium 103, allocate a storage address for the data or determine the storage address of the data in the storage medium 103; the computing circuit logic 101 can access the storage medium 103, write data or read data in the storage medium 103. In the embodiments of the present application, the storage address allocated by the computing circuit logic 101 for the data can be a physical address. The computing circuit logic 101 itself stores the mapping relationship between the logical address and the physical address, and the computing circuit logic 101 can allocate a physical address for the data to be written according to the 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 according to the mapping relationship and the logical address of the data.
[0094] Among them, the logical address is for the computing node 110 and is used to identify the storage location of the data. The logical address can be a logical block address (LBA). The physical address is the actual address for storing data in the storage medium 103, and the physical address can be a physical block address (PBA).
[0095] In the embodiments of the present application, the computing circuit logic 101 can not only identify the logical address, but also implement the conversion between the logical address and the physical address. Subsequently, the access of the computing circuit logic 101 to the storage medium 103 is based on the physical address.
[0096] 2), Data recovery.
[0097] When the computing circuit logic 101 stores data, it adopts a multi-copy mechanism, erasure coding (EC) check, or redundant array of independent disks (RAID) mechanism to store data. The multi-copy mechanism means storing at least two identical data copies. When one data copy is lost, other data copies can be used for recovery. The EC check mechanism means dividing the data to be stored into at least two data shards, calculating the check data of the at least two data shards according to a certain check algorithm. When one data shard is lost, the data can be recovered by using the other data shard and the check data. RAID is a way of combining multiple independent hard disks (physical hard disks) in different ways to form a hard disk group, which can be presented as a logical hard disk externally. Common RAID levels include RAID1, RAID 3, RAID5, RAID6, RAID J10, and RAID50. Different RAID levels have different ways of storing data using the RAID mechanism, and different levels of RAID can provide a certain degree of data reliability. For example, when using RAID1 to store data, a data copy can also be stored. Another example is that when using RAID 3, RAID5, or RAID6 to store data, the check data of the data can be generated and stored.
[0098] When the computing circuit logic 101 reads data, if it finds that the data to be read is damaged, the computing circuit logic 101 can use the stored data copy or check data to recover the damaged data.
[0099] 3) Data backup.
[0100] When the computing circuit logic 101 stores data, it backs up the data to generate a data copy.
[0101] 4) Data reduction.
[0102] The computing circuit logic 101 can encode the data to be stored or the data already stored in the storage medium 103 to reduce the storage space occupied by the data. The embodiments of the present application do not limit the way for the computing circuit logic 101 to implement data reduction. For example, the computing circuit logic 101 can delete duplicate data in the data through data deduplication. Another example is that the computing circuit logic 101 can compress the data through a data compression algorithm.
[0103] 5) In-memory computing.
[0104] The main function of the storage node 100 is data storage. However, in some actual application scenarios, the storage node 100 can assist the computing node 110 in performing data calculation operations. Inside the storage node 100, the data calculation operations performed by the storage node 100 can be executed by the computing circuit logic 101. The embodiments of the present application do not limit the specific type of data calculation operations. For example, the computing circuit logic 101 can search for entries in a data table and find the entries that meet the conditions. For another example, the computing circuit logic 101 can perform a counting operation to count the entries in the data table that meet the conditions.
[0105] It should be noted that the above are only some possible types in the storage service. In specific applications, the embodiments of the present application do not limit the specific type of storage service carried on 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 other than the above storage services, such as data snapshots, active-active data, etc.
[0106] Function three: General processing function.
[0107] 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 indicating suspension of work, requests for indicating start of work, requests for indicating data migration. 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 the computing circuit logic 101 can generate data access requests for accessing other storage nodes 100.
[0108] Function four: Management function.
[0109] 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 occupancy of memory, whether the memory is faulty, the occupancy rate of the processor cores on the computing circuit logic 101, whether the storage medium 103 is faulty, etc.
[0110] From a hardware perspective, the computing circuit logic 101 includes multiple processor cores. Different processor cores can be configured to implement different functions of the computing circuit logic 101. The interaction between the processor cores is completed based on the on-chip bus protocol of the computing circuit logic 101. Compared with the interaction based on traditional buses, such as the interaction based on the peripheral component interconnect express (PCIe), the internal interaction efficiency of the computing circuit logic 101 is higher, which can accelerate the data storage process of the storage node 100 itself.
[0111] As Figure 2 shown, it is a schematic structural diagram of a storage node 100 provided by 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 in the storage node 100.
[0112] 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 requests (such as the first write data request and the first read data request mentioned in the embodiments of the present application) from the front-end protocol unit 1012, or instruct the front-end protocol unit 1012 to send data access requests (such as the second write data request and the second read data request mentioned in the embodiments 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 or write data from the physical address. For another example, the computing unit 1011 can instruct the management unit 1014 to report the performance of the storage node 100.
[0113] 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 the storage node 100 outside the storage node 100. For example, in the embodiments 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.
[0114] The storage unit 1013 manages the storage space of the storage medium 103, and clarifies the occupied storage space and the unoccupied storage space in the storage medium 103. The storage unit 1013 can implement the conversion between logical addresses and physical addresses; the storage unit 1013 can allocate physical addresses for the data to be written (such as the data carried in the write data request or a copy of the data); the storage unit 1013 can also determine the physical addresses of the data written to the storage medium 103. In addition, the storage unit 1013 can also allocate logical addresses for the data that needs to be stored in other storage nodes 100 (such as the data to be written or part of the data to be written, data copies, or part of the data copies).
[0115] The media management unit 1015 directly faces the storage medium 103, can access the storage medium 103 based on physical addresses, and write data or read data in the storage medium 103.
[0116] The management unit 1014 is used to implement the management functions of the computing circuit logic 101 and manage the performance of the storage node 100.
[0117] 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 an on-chip bus protocol. The on-chip bus is the connecting wire used inside the chip. There is no specific standard limit for such on-chip buses, and the bandwidth and connection method of the bus can be configured according to the design requirements of the internal circuit logic.
[0118] The embodiments of the present application do not limit the specific type of the on-chip bus. The on-chip bus protocols mentioned in the embodiments of the present application include, but are not limited to: Advanced RISC Machine Cache Coherent Interconnect (ARM CCI), Advanced RISC Machine Cache Coherent Network (ARM CCN), Advanced RISC Machine Coherent Mesh Network (ARM CMN), Advanced RISC Machine Network Interconnect (ARM NIC), where RISC is Reduced Instruction Set Computer. In addition, these units can also be connected by using the communication channels between intellectual property cores (IP cores). There are many types of such communication channels, such as control lines, data lines, etc.
[0119] These units can be connected through the same on-chip bus or through different on-chip buses. For example, the computing unit 1011, the front-end protocol unit 1012, and the storage unit 1013 have communication or computing functions, and these units can be connected through the same on-chip bus, such as ARM CCI. The management unit 1014 and the media management unit 1015 are mainly involved in the management of the backend storage medium 103, and these two units can be connected through the same on-chip bus. A conversion bus is set between these two groups of units to connect these two groups of units.
[0120] It should be noted that the division of units in the embodiments of the present application is illustrative, only a logical function division, and there may be other division methods in actual implementation. In the embodiments of the present application, each functional unit can be integrated in a processing module, or each unit can exist physically alone, or two or more units can be integrated in a module. The above integrated module can be implemented in the form of hardware or in the form of a software functional module.
[0121] Such as Figure 3As shown in the figure, it is a schematic structural diagram of a storage system provided by 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 the descriptions of the computing node cluster, the storage node cluster, the computing node 110, and the storage node 100, reference can be made to the foregoing content and will not be elaborated here.
[0122] In this storage system, the storage node cluster further includes at least one physical chassis 120. For any physical chassis 120, the physical chassis 120 supports the deployment of one or more storage nodes 100, that is, multiple storage nodes 100 can be installed in a physical chassis 120 at the same time.
[0123] A baseboard management controller (BMC) 130 is deployed on the physical chassis 120. The BMC 130 can provide management functions such as device, security, energy efficiency, and reliability for the storage nodes 100 installed on the physical chassis 120, that is, the BMC 130 can provide out-of-band management.
[0124] In the embodiment of the present application, out-of-band management refers to maintaining the storage nodes 100 through an independent management channel. The out-of-band management of the storage nodes 100 allows system administrators to remotely monitor and manage the storage nodes 100. The out-of-band management of the storage nodes 100 mainly involves managing and monitoring the working environments of various components of the storage nodes 100 (such as computing circuit logic 101, memory, and storage medium 103). Among them, the working environments of the components include, but are not limited to, information such as temperature, working voltage, fan, and power supply status, to ensure that the components in the storage nodes 100 can work in a suitable working environment.
[0125] The baseboard management controller 130 and the storage nodes 100 installed on the physical chassis 120 can be connected through 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, and the management interface is an interface specifically set for out-of-band management.
[0126] The baseboard management controller 130 can obtain the working environment information of the storage nodes 100 through the management bus or the management interface, such as the working temperature of the storage nodes 100, the working status of the power supply for the storage nodes 100, and the power supply voltage of the power supply for the storage nodes 100.
[0127] externally, the physical machine frame 120 can be connected to devices outside the physical machine frame 120 (such as other physical machine frames 120, storage nodes 100, or computing nodes 110) through cables.
[0128] The following describes the data access method provided in the embodiments of the present application in conjunction with the attached Figure 4 For illustration, see Figure 3 This method includes three parts. The first part is the access process between the computing node 110 and the storage node 100. Assume that the data access request initiated by the computing node 110 is the 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 methods. 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.
[0129] The second part is the access process between the storage nodes 100. Assume that the data access request initiated by the storage node 100A (the computing circuit logic 101 in the storage node 110A) to the storage node 100B is the first data access request. The computing logic circuit in the storage node 100B can receive the first data access request from the 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 the storage node 100B based on the physical address. This part includes two access methods. One is that the storage node 100A writes data to the storage node 100B. Specifically, see steps 409 to 410. In this part, the first data access request is the second write data request. The other is that the storage node 100B reads data from the storage node 100A. Specifically, see steps 411 to 412. In this part, the first data access request is the second read data request.
[0130] The third part is the process in which the computing node 110 requests the storage node 100 to complete data calculation. Specifically, see steps 413 to 415. These three parts are independent of each other, and there is no strict execution order for these three parts. Here, it is only for convenience of description that these three processes are combined in one embodiment.
[0131] The following takes the storage node 100A writing data at the request of the computing node 110 as an example to illustrate the data writing process.
[0132] 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 the logical address of the data. This step can be executed by the front-end protocol unit 1012 in the computing circuit logic 101.
[0133] 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 can send a first write data request to the storage node 100A in the storage node 100A based on the network protocol.
[0134] 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.
[0135] 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 write data request. This step can be executed in cooperation by the computing unit 1011 and the storage unit 1013 in the computing circuit logic 101.
[0136] Taking the logical address of the data as LBA and the physical address of the data as PBA as an example, in the computing circuit logic 101, there is a flash translation layer (FTL) inside the storage unit 1013. The FTL records the mapping relationship between the logical address and the physical address of the data written to the storage medium 103. That is to say, every time a new data is written to the storage medium 103, the FTL will record the logical address and the physical address of the new data.
[0137] 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 the PBA that has a mapping relationship with the LBA of the data.
[0138] After receiving the LBA of the data, the storage unit 1013 allocates an unoccupied PBA for the LBA of the data, and records the mapping relationship between the LBA and PBA of the data in the FTL. The storage unit 1013 provides the PBA to the computing unit 1011.
[0139] It should be noted that when the computing circuit logic 101 stores data using a multi-copy mechanism, the storage unit 1013 can allocate multiple unoccupied PBAs for the LBA of the data. Among them, 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 stores data using the EC mechanism, the PBAs allocated by the storage unit 1013 for the LBA of the data include the PBA of the data and the PBA of the parity data. Subsequently, when the media storage unit 1013 stores the data, it writes the data and the parity data of the data into the corresponding PBAs. Similarly, when the computing circuit logic 101 stores data using the RAID mechanism, the PBAs allocated by the storage unit 1013 for the LBA of the data, in addition to the PBA of the data, also include the PBA of the data copy or the PBA of the parity data. Subsequently, when the media storage unit 1013 stores the data, it writes the data and the parity data or the data copy of the data into the corresponding PBAs.
[0140] 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 executed in cooperation with the computing unit 1011 and the media management unit 1015 in the computing circuit logic 101.
[0141] In the computing circuit logic 101, after receiving the PBA of the data, the computing unit 1011 generates a write instruction, which is used to indicate writing the data on the data PBA. The computing unit 1011 sends the write instruction to the media management unit 1015.
[0142] After receiving the write instruction, the media management unit 1015 determines the position pointed to by the PBA of the data in the storage medium 103 and writes the data at this position. The media management unit 1015 can control the voltage of the device (such as a transistor) at the position pointed to by the PBA of the data in the storage medium 103 to complete the writing of the data.
[0143] It should be noted that when the computing circuit logic 101 stores data using a multi-copy mechanism, the write instructions generated by the computing unit 1011 carry multiple PBAs mapped by the LBA of the data, and the media management unit 1015 needs to write a data copy of the data on each PBA. When the computing circuit logic 101 stores data using the EC mechanism, the computing unit 1011 can generate check data for the data. The computing unit 1011 transmits the data and the check data of the data to the media management unit 1015 through the write instruction, instructing the media management unit 1015 to write the data and the check data of the data on the corresponding PBAs. After receiving the write instruction, the media management unit 1015 writes the data to the PBA of the data and writes the check data of the data to the PBA of the check data. Similarly, when the computing circuit logic 101 stores data using the RAID mechanism, the computing unit 1011 can generate check data or data copies for the data. The computing unit 1011 transmits the data and the check data (or data copies) 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 check data of the data to the PBA of the data and the PBA of the check data respectively, or writes the data and the data copies of the data to the PBA of the data and the PBA of the data copies respectively.
[0144] In the foregoing description, when the computing circuit logic 101 stores data using a multi-copy mechanism, an EC mechanism, or a RAID mechanism, the generated data copies and check data are stored in the storage medium 103 of the storage node 100 as an example. In fact, this is only one possible data writing method. In practical applications, some or all of the data, data copies, and check data can also be stored on storage nodes 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, a 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 check data can be stored on one or more storage nodes 100 other than the storage node 100.
[0145] Taking the scenario where 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 specific storage locations 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 the storage node 100C) from the data and the data copy. For the first data, the storage unit 1013 can allocate a physical address for 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 refer to the foregoing content and will not be elaborated here.
[0146] For the second data, the computing unit 1011 or the storage unit 1013 can allocate a logical address for the second data on other storage nodes 100. Among them, if the computing unit 1011 allocates a logical address for the second data on other storage nodes 100, the computing unit 1011 can transmit the logical address of the second data on other storage nodes 100 to the storage unit 1013, so that the storage unit 1013 records the logical address of the second data on other storage nodes 100. In this way, when the computing unit 1011 needs to read the second data, the storage unit 1013 can inform the computing unit 1011 of the logical address of the second data on other storage nodes 100, and the computing unit 1011 can initiate a third data access request carrying the logical address to other storage nodes 100 to obtain the second data. If the storage unit 1013 allocates a logical address for the second data on other storage nodes 100, the computing unit 1011 obtains the logical address of the second data on other storage nodes 100 from the storage unit 1013. After determining the logical address of the second data on other storage nodes 100, the computing unit 1011 generates a second data access request carrying the logical address, and sends the second data access request to other storage nodes 100 through the front-end protocol unit 1012 to request to write the second data in other storage nodes 100. The interaction method between this storage node 100 and other storage nodes 100 can be similar to the method described in steps 409 to 412 in this embodiment. Specifically, it can refer to the relevant content in the following text and will not be elaborated here.
[0147] Among them, the first data or the second data is not necessarily the data in the data copy or the data carried in the first write data request. The first data or the second data can include partial data in the data copy or partial data of the data carried in the first write data request.
[0148] Step 404: The computing circuit logic 101 in the storage node 100A feeds back a first write data positive response to the computing node 110, and the first write data positive response indicates that the data is successfully written. This step can be executed by the front-end protocol unit 1012 in the computing circuit logic 101. (There is no sequential dependency between Step 404 and Step 403 in the write-back state. Here, it is just for convenient example). The write-back state means that the data is first written to the memory 102, the computing node 110 is informed that the data is successfully written, and then the data is written to the storage medium 103.
[0149] In the computing circuit logic 101, after the media management unit 1015 writes the data to the PBA of the data, it can notify the computing unit 1011 that the data has been written. After receiving the notification from the media management unit 1015, the computing unit 1011 generates a first write data positive response, instructing the front-end protocol unit 1012 to send the first write data positive response to the computing node 110.
[0150] In the computing circuit logic 101, if the media management unit 1015 fails to successfully write the data to the PBA of the data (such as a failure of the storage medium 103), it notifies the computing unit 1011 that the data write fails. The computing unit 1011 can re-instruct the storage unit 1013 to re-allocate a physical address for the data. The computing unit 1011 can generate a write instruction again, instructing the media management unit 1015 to write the data at the newly allocated physical address. The media management unit 1015 writes the data at the newly allocated physical address. The computing unit 1011 can repeat the above operations until the data is successfully written.
[0151] The computing unit 1011 can also generate a first write data negative response when the data write fails or the number of data write failures is greater than the number threshold. The first write data positive response indicates that the data write fails, instructing the front-end protocol unit 1012 to send the first write data negative response to the computing node 110.
[0152] Steps 401 to 404 are the process for the storage node 100A to process the first write data request from the computing node 110 to implement data writing. In this process, all operations performed by the storage node 100A are processed by the computing circuit logic 101, and it no longer involves the bus-based interaction process between the processor, network card, and hard disk, which can reduce the transmission duration of internal information of the storage node 100A and improve the data writing efficiency.
[0153] Next, taking the process of the computing node 110 reading the data as an example, the process for the storage node 100A to implement data reading will be described. Specifically, refer to Steps 405 to 408.
[0154] Step 405: The computing circuit logic 101 in the storage node 100A receives a first read data request from the computing node 110, and the first read data request carries the logical address of the data. This step can be executed by the front-end protocol unit 1012 in the computing circuit logic 101.
[0155] When the computing node 110 receives an external data access request, if the data access request is used to request data reading, the computing node 110 may send a first read data request to the storage node 100A of the storage node 100A cluster based on the network protocol.
[0156] 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 may hand over the first read data to the computing unit 1011 on the computing circuit logic 101 for processing.
[0157] 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 executed in cooperation by the computing unit 1011 and the storage unit 1013 in the computing circuit logic 101.
[0158] Still taking the logical address of the data as LBA and the physical address of the data as PBA as an example, there is an FTL inside the storage unit 1013 in the computing circuit logic 101.
[0159] 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 the PBA mapped to the LBA of the data.
[0160] After receiving the LBA of the data, the storage unit 1013 queries the FTL to determine the PBA of the data. The storage unit 1013 provides the PBA to the computing unit 1011.
[0161] 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 executed in cooperation by the computing unit 1011 and the media management unit 1015 in the computing circuit logic 101.
[0162] In the computing circuit logic 101, after the computing unit 1011 receives the PBA of the data, it generates a read instruction, and the read instruction is used to indicate reading the data at the PBA of the data. The computing unit 1011 sends the read instruction to the media management unit 1015.
[0163] After receiving a read instruction, the media management unit 1015 determines the position pointed to by the PBA of the data in the storage medium 103 and reads the data at that position. The media management unit 1015 can detect the voltage of a device (such as a transistor) at the position pointed to by the PBA of the data in the storage medium 103 to complete the data reading.
[0164] If the storage node 100 stores data using a multi-copy mechanism, an EC mechanism, or a RAID mechanism, for example, when the media management unit 1015 wrote data previously, it also wrote data copies or parity data. When the media management unit 1015 failed to successfully read the data at the position pointed to by the physical address of the data while writing the data copy in the local storage medium 103 previously, such as data anomalies or a failure of the storage medium 103, the media management unit 1015 can notify the computing unit 1011 that the data reading failed. The computing unit 1011 can instruct the storage unit 1013 to provide the physical address of the data copy. The computing unit 1011 can generate a read instruction again, instructing the media management unit 1015 to read the data at the physical address of the data copy. The computing unit 1011 can repeat the above operations until the data reading is successful.
[0165] When the media management unit 1015 wrote parity data while writing the data previously, after the media management unit 1015 successfully reads the data at the position pointed to by the physical address of the data, the computing unit 1011 can first verify the parity data. If the verification is successful, the reading is successful. If the verification fails, the data is incorrect. The parity data can be used to correct the data. If the correction is successful, the corrected data is the correct data. If the correction fails, the reading fails. At this time, if the storage node 100 stores data using not only the EC mechanism but also a multi-copy mechanism, for example, when writing the data, it also writes a data copy in the local storage medium 103, the media management unit 1015 can notify the computing unit 1011 that the data reading failed. The computing unit 1011 can instruct the storage unit 1013 to provide the physical address of the data copy. The computing unit 1011 can generate a read instruction again, instructing the media management unit 1015 to read the data at the physical address of the data copy. The computing unit 1011 can repeat the above operations until the data reading is successful.
[0166] In the foregoing description, it is described by taking the example that 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 parity data are stored in the storage medium 103 of the storage node 100 (i.e., the local storage medium 103). In practical applications, some or all of the data, data copies, and parity data may also be stored on a storage node 100 other than the storage node 100.
[0167] If the storage node 100 adopts a multi-copy mechanism to store data, and the data copies are distributed on other storage nodes 100 or some 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 position pointed to by the physical address of the data, the media management unit 1015 may notify the computing unit 1011 that the data reading fails. The computing unit 1011 may instruct the storage unit 1013 to provide the logical address of the data copy of the data on other storage nodes 100 (or the logical address of some of the data in the data copy of the data on other storage nodes 100). The computing unit 1011 may generate a third data access request carrying the logical address for requesting to read the data copy from other storage nodes 100, and the computing unit 1011 instructs the front-end protocol unit 1012 to send the third data access request to the other storage nodes 100. The interaction manner between this storage node 100 and other storage nodes 100 may be similar to the manner described in steps 409 to 412 in this embodiment. For specific details, reference may be made to the relevant content in the following text, which will not be elaborated here.
[0168] 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, and the first read data positive response carries the data.
[0169] In the computing circuit logic 101, after the media management unit 1015 reads the data from the PBA of the data, it 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, instructing the front-end protocol unit 1012 to send the first read data positive response to the computing node 110.
[0170] The computing unit 1011 may also generate a first read data negative response when the data reading fails or the number of data reading failures reaches a threshold. The first read data positive response indicates that the data reading fails, and instructs the front-end protocol unit 1012 to send the first read data negative response to the computing node 110.
[0171] Steps 405 to 408 are the process in which storage node 100A processes the first read data request from computing node 110 to implement data reading. Similar to the data writing process, in this process, all operations performed by storage node 100A are processed by computing circuit logic 101, and it no longer involves the bus-based interaction process between the processor, network card, and hard disk, which can reduce the transmission duration of internal information of storage node 100A and improve data reading efficiency.
[0172] Since there are multiple storage nodes 100 in storage node 100 cluster, in the embodiments of the present application, within the storage node 100 cluster, interaction between storage nodes 100 is allowed to access the data stored by each other. The interaction between storage nodes 100 to access the data stored by each other is also divided into a data writing process and a data reading process. The following takes the interaction process between storage node 100A and storage node 100B as an example for description, and specifically, steps 409 to 412 can be referred to.
[0173] Step 409: The computing circuit logic 101 in storage node 100A sends a second write data request to storage node 100B, and the second write data request carries the data and the logical address of the data. This step can be executed by the front-end protocol unit 1012 in the computing circuit logic 101 of storage node 100A.
[0174] The embodiments of the present application do not limit the specific scenario in which storage node 100A accesses storage node 100B to write data. For example, when there is not enough free storage space in the storage medium 103 of storage node 100A to support data writing, storage node 100A can access storage node 100B and write the data to be written into storage node 100B. Another example is that in order to ensure the security of the data in storage node 100A, storage node 100A can back up the data in the storage medium 103 of storage node 100A, and storage node 100A can access storage node 100B and write the backed-up data into storage node 100B, that is, save a data copy of the data in storage node 100B. Another example is that when the storage medium 103 in storage node 100A is damaged or storage node 100A needs to suspend work and the data in the storage medium 103 of storage node 100A needs to be migrated to other storage nodes 100, storage node 100A can access storage node 100B and write the data in the storage medium 103 of storage node 100A into storage node 100B.
[0175] Step 410: The storage node 100B processes the second write data request and writes the data to the logical address of the data. The process of the storage node 100B processing the second write data request is similar to the process of the storage node 100A processing the first write data request. The difference is that in the process of the storage node 100A processing the first write data request, the storage node 100A needs to interact with the computing node 110 to feedback the first write data positive response or the first write data negative response. In the process of the storage node 100B processing the second write data request, the storage node 100B needs to interact with the storage node 100A to feedback the response to the second write data request to notify the storage node 100A that the data is successfully written or failed to be written. For details, please refer to steps 402-304, which will not be elaborated here.
[0176] Step 411: The computing circuit logic 101 in the storage node 100A sends a second read data request to the storage node 100B. The second read data request carries the logical address of the data. This step can be executed by the front-end protocol unit 1012 in the computing circuit logic 101 of the storage node 100A.
[0177] The embodiments of the present application do not limit the specific scenarios in which the storage node 100A accesses the storage node 100B to read data from the storage node 100B. For example, when the storage node 100A needs to read data that was previously stored in the storage node 100B when the local storage space was insufficient, the storage node 100A can access the storage node 100B to read the data. Another example is that when the storage node 100A needs to obtain a copy of the data previously stored in the storage node 100B for local data recovery, the storage node 100A can access the storage node 100B to read a copy of the data. Another example is that 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 to obtain the data stored in the storage node 100B.
[0178] Step 412: The storage node 100B processes the second read data request, reads data from the logical address of the data, and feeds back the read data to the storage node 100A. Among them, the process of the storage node 100B processing the second read data request is similar to the process of the storage node 100A processing the first read data request. The difference is that in the process of the storage node 100A processing the first read data request, the storage node 100A needs to interact with the computing node 110 and feed back a positive response or a negative response to the first read data. In the process of the storage node 100B processing the second read data request, the storage node 100B needs to interact with the storage node 100A and feed back a response to the second read data request, so as to send the read data to the storage node 100A or notify the storage node 100A that the data reading fails. Specifically, please refer to steps 405-308, which will not be elaborated here.
[0179] In the embodiment of the present application, the storage node 100 also has the function of near-memory computing and can assist the computing node 110 to complete some simple data computing tasks. The process of the storage node 100 implementing near-memory computing will be described below.
[0180] Step 413: The storage node 100A receives a data computing request from the computing node 110, and this data computing request is used to compute the data in the storage node 100. The data computing request carries the logical address of the data to be computed and computing indication information, and this computing indication information is used to indicate the computing method for the data to be computed. This step can be executed by the front-end protocol unit 1012 in the computing circuit logic 101.
[0181] For example, if the computing node 110 needs to find the table entries that meet the target conditions in a certain data table, the data computing request may carry the logical address of this data table and the target conditions, and this target condition is the computing indication information.
[0182] For another example, if the computing node 110 needs to determine the number of table entries that meet the target conditions in a certain data table, the data computing request may carry the logical address of this data table and computing indication information, and this computing indication information indicates to count the table entries that meet the target conditions in the data table.
[0183] Step 414: 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 data computing request. This step can be executed in cooperation by the computing unit 1011 and the storage unit 1013 in the computing circuit logic 101. The manner in which the computing circuit logic 101 in the storage node 100A executes step 414 is similar to the manner of executing the foregoing step 406. Specifically, please refer to the foregoing content, which will not be elaborated here.
[0184] 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 executed in cooperation by the computing unit 1011 and the medium management unit 1015 in the computing circuit logic 101. The manner in which the computing circuit logic 101 in the storage node 100A executes Step 415 is similar to the manner of executing the foregoing Step 407. For specific details, reference can be made to the foregoing content and will not be elaborated here.
[0185] It should be noted that when the computing circuit logic 101 fails to successfully read the data from the physical address of the data, the computing circuit logic 101 can obtain a data copy. The manner in which the computing circuit logic 101 obtains the data copy can be referred to the foregoing content and will not be elaborated here.
[0186] Step 416: The computing circuit logic 101 in the storage node 100A calculates the read data based on the data calculation request to obtain a calculation result. This step can be executed by the computing unit 1011 in the computing circuit logic 101.
[0187] After the computing circuit logic 101 reads the data to be calculated, it can calculate the data according to the calculation method indicated by the calculation instruction information to obtain a calculation result.
[0188] For example, when the calculation instruction information is used to indicate finding the table entries that meet the target conditions in the data table, the computing circuit logic 101 can search for table entries in the data table based on the target conditions to obtain the table entries that meet the target conditions.
[0189] For another example, when the calculation instruction information is used to indicate determining the number of table entries that meet the target conditions in the data table, the computing circuit logic 101 can search for table entries in the data table based on the target conditions. For each table entry that meets the target conditions found, the count value is incremented by one. After the entire search is completed, the value of the count value is the calculation result.
[0190] Inside the computing circuit logic 101, after the computing unit 1011 obtains the data from the medium management unit 1015, it can calculate the data according to the calculation method indicated by the calculation instruction information to obtain a calculation result.
[0191] Step 417: The computing circuit logic 101 in the storage node 100A feeds back a data calculation response to the computing node 110, and the data calculation response carries the calculation result. This step can be executed by the front-end protocol unit 1012 in the computing circuit logic 101.
[0192] The descriptions of the processes corresponding to the above respective drawings have their own focuses. For parts not detailed in a certain process, reference can be made to the relevant descriptions of other processes.
[0193] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes computer program instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions according to the embodiments of the present invention are generated in whole or in part Figure 3 described in the process or function.
[0194] The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. 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 by wire (such as coaxial cable, optical fiber, digital subscriber line) or wireless (such as infrared, wireless, microwave, etc.). The computer-readable storage medium may be any available medium that the computer can access or a data storage device such as a server or data center that includes one or more integrated available media. The available medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, an SSD).
[0195] Obviously, those skilled in the art can 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 equivalent technologies, the present application is also intended to include these changes and modifications.
Claims
1. A storage system, characterized in that, the storage system includes at least one computing node and multiple storage nodes. 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 configured to: receive a first data access request from at least one computing node and / or a second storage node among the multiple storage nodes based on a network protocol, where the first data access request is used to access data in the first storage node; determine 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 access the storage medium 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 medium management unit, and the front-end protocol unit, the computing unit, the storage unit, and the medium management unit communicate based on an on-chip bus protocol; the front-end protocol unit is configured to receive the first data access request based on the network protocol; the storage unit is configured to determine the physical address of the data according to the logical address of the data; the computing unit is configured 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 configured to access the storage medium based on the physical address of the data under the instruction of the computing unit.
3. The system according to claim 2, characterized in that, the first data access request is used to request writing the data into the storage medium; the computing unit is further configured to generate check data of the data according to the data; obtain the physical address of the check data from the storage unit, and instruct the medium management unit to store the check data according to the physical address of the check data; the storage unit is further configured to allocate a physical address for the check data; the medium management unit is configured to: store the data according to the physical address of the data under the instruction of the computing unit, and store the check data in the storage medium according to the physical address of the check data.
4. The system according to claim 1 or 2, characterized in that, the first data access request is used to request writing the data into the storage medium; the storage unit is further configured to: determine the logical address of a data copy according to the logical address of the data, and the logical address of the data copy is located in a third storage node among the multiple storage nodes; the computing unit is further configured to obtain the logical address of the data copy from the storage unit, generate a second data access request, where the second data access request is used to write the data copy into 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 configured 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 writing the data into the storage medium; The storage unit is further configured to: determine the physical address of the data copy according to the logical address of the data; The computing unit is further configured to: obtain the physical address of the data copy from the storage unit, and instruct the media management unit to store the data copy according to the physical address of the data copy; The media management unit is configured to: store the data according to the physical address of the data under the instruction of the computing 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, wherein, The first data access request is used to request reading the data from the storage medium, The computing unit is further configured to obtain the physical address of the check data from the storage unit, and instruct the media management unit to read the check data according to the physical address of the check data; The media management unit is configured to: read the data and the check data of the data from the storage medium according to the physical address of the data and the physical address of the check data The computing unit is configured to: perform data recovery on the data according to the check data, generate a first data access response, and the first data access response carries the data after data recovery; The front-end protocol unit is configured 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, wherein, The first data access request is used to request reading the data from the storage medium; The computing unit is further configured to: after determining that the media management unit fails to 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, where the third data access request is used to read the data copy from the 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; receive the data copy fed back by the third storage node; The computing unit is further configured to: generate a first data access response, and the first data access response carries the data copy; The front-end protocol unit is configured 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, wherein, The computing circuit logic is further configured to: receive a data calculation request from the at least one computing node based on a network protocol, where the data calculation request is used to calculate the data in the storage node, read the data in the storage medium according to the data calculation request, and calculate the read data.
9. The system according to any one of claims 1 to 8, wherein, The storage medium is a flash chip or a disk.
10. The system according to any one of claims 1 to 9, It is characterized in that 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 protocol for remote terminals, Network File System NFS protocol.
11. A data access method It is characterized in that the method is applied to a storage system including at least one computing node and multiple storage nodes, and the method includes: the at least one computing node and / or a second storage node among the multiple storage nodes send a first data access request to a first storage node among the multiple storage nodes, and 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 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 It is 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 based on an on-chip bus protocol; the computing circuit logic determines the physical address of the data according to the logical address of the data 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 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 media 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 computing unit.
13. The method according to claim 12 It is characterized in that the first data access request is used to request to write the data into the storage medium; the computing circuit logic determines the physical address of the data according to the logical address of the data 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 check data for 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 for the check data; the computing unit obtains the physical address of the data and the physical address of the check data from the storage unit, and instructs the media management unit to store the data and the check data according to the physical address of the data and the physical address of the check 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 check data in the storage medium according to the physical address of the check data.
14. The method according to claim 11 or 12, wherein, the first data access request is used to request to write the data in the storage medium; the computing circuit logic determines the physical address of the data to be accessed according to the logical address of the data 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 a 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 assigns 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 check data according to the physical address of the data, generates a second data access request, and the second data access request is used to write the data copy in the third storage node, and the logical address of the data copy is carried in the second data access request; 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 computing unit.
15. The method according to any one of claims 11 to 14, wherein, the first data access request is used to request to write the data in the storage medium; the computing circuit logic determines the physical address of the data to be accessed according to the logical address of the data 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 a 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 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; 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 data copy in the storage medium according to the physical address of the data copy.
16. The method according to claim 13, wherein, 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 to be accessed according to the logical address of the data 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 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 the verification data according to 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 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, generates a first data access response, and 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, wherein, 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 media management unit fails to 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, which is used to read the data copy from the third storage node among the multiple storage nodes, and the logical address of the data copy is carried in the third data access request; The front-end protocol unit sends the third data access request to the other storage nodes; receives the data copy fed back by the third storage node; The computing unit generates a first data access response, and 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, wherein, The method further includes: The computing circuit logic receives a data calculation request from the at least one computing node based on the network protocol. The data calculation request is used to calculate the data in the storage node, reads the data in the storage medium according to the data calculation request, and calculates the read data.
19. The method according to any one of claims 11 to 18, wherein, The storage medium is a flash chip or a disk.
20. The method according to any one of claims 11 to 19, wherein, The network protocol includes some or all of the following: TCP / IP, UDP, HTTP, FTP, Telnet protocol, NFS protocol.
21. A storage subsystem, wherein, The storage subsystem includes computing circuit logic and a storage medium. The storage medium is used to store data, and the computing circuit logic is used to execute the method according to any one of claims 11 to 20 above.
22. A computer-readable storage medium, wherein, 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 above.
Citation Information
Cited By
Storage system, data access method, and storage subsystem
EP4804002A1