DIRECT MEMORY ACCESS OF REMOTE DATA
An apparatus and associated methodology providing a data storage system operably transferring data between a storage space and a remote device via a network. The data storage system includes a first storage controller having top-level control of a first data storage device and a second storage controller having top-level control of a second data storage device that is different than the first data storage device, the first and second data storage devices forming portions of the storage space. Data pathway logic resides in the first storage controller that performs a direct memory access (DMA) transfer to the second data storage device at a DMA data transfer rate in response to the first storage controller receiving, from the external device via the network, an access request for the second data storage device.
Latest Patents:
None.
BACKGROUND OF THE INVENTION1. Field of the Invention
The present embodiments relate generally to a storage element array suited for use in a distributed storage system and more particularly but without limitation to direct memory access of remote data in a distributed storage system.
2. Description of Related Art
The combination of multiple storage devices into distributed data storage capacity has proliferated in response to market demands for storing enormous amounts of data that can be readily retrieved in a fast, reliable, and efficient manner.
With continued demands for ever increased levels of storage capacity and data transfer throughput performance, there remains an ongoing need for improvements in the manner in which the storage elements in such data storage arrays are operationally managed in order to optimize the capacity and data throughput performance parameters while minimizing storage expense. It is to these and other related improvements that preferred embodiments of the present invention are generally directed.
SUMMARY OF THE INVENTIONSome embodiments of the present invention contemplate a data storage system operably transferring data between a storage space and a remote device via a network. The data storage system includes a first storage controller having top-level control of a first data storage device and a second storage controller having top-level control of a second data storage device that is different than the first data storage device, the first and second data storage devices forming portions of the storage space. Data pathway logic resides in the first storage controller that performs a direct memory access (DMA) transfer to the second data storage device at a DMA data transfer rate in response to the first storage controller receiving, from the external device via the network, an access request for the second data storage device.
Some embodiments of the present invention contemplate a data storage system operably transferring data between a storage space and a remote device via a network. The data storage system includes a plurality of storage controllers each having top-level control of respective data storage devices, the data storage devices collectively forming the storage space. A routing table maps the storage space and is indexable by storage location. In response to receiving an access request from the remote device, data pathway logic indexes the routing table, identifies a subset of the plurality of storage controllers that each has control over a data storage device corresponding to the access request, selects one of the storage controllers in the subset, and performs a remote DMA transfer to the selected data storage device at a DMA data transfer rate.
Some embodiments of the present invention contemplate a method of transferring data between a storage space and a remote device via a network, the method including: obtaining a data storage system including a first storage controller having top-level control of a first data storage device and a second data storage device having top-level control of a second data storage device; the first storage controller receiving an access request for the second data storage device; and in response to the receiving, the first storage controller performing a remote DMA transfer to the second data storage device at a DMA data transfer rate.
Initially, it is to be appreciated that this disclosure is by way of example only, not by limitation. The user data set transfer concepts herein are not limited to use or application with any specific system or method for using storage element devices. Thus, although the instrumentalities described herein are for the convenience of explanation, shown and described with respect to exemplary embodiments, it will be appreciated that the principles herein may be applied equally in other types of storage element systems and methods involving the storage and retrieval of data.
To illustrate an exemplary environment in which preferred embodiments of the present invention can be advantageously practiced,
Each storage array 104 includes one or more controllers 108 and a set of data storage devices (“SD”) 110. It is further contemplated that in some embodiments the A client 102 and the first data storage array 1041 can be physically located at a first site, the B client 102 and second storage array 1042 can be physically located at a second site, and the C client 102 can be yet at a third site, although such is merely illustrative and not limiting.
In these illustrative embodiments each of the remote clients 102 can view the entire physical storage capacity (via the storage devices 110) of the storage array 104 as a unified storage space. The storage array 104, the client 102, or a network appliance (not shown) virtualizes the physical storage space to a logical addressing nomenclature. The storage array 104 also buffers data being transferred between the clients 102 and the storage devices 110 to optimize I/O throughput performance, such as by employing writeback commands that temporarily store user data and acknowledge the write as being complete before that transfer of user data is actually completed via the storage devices 110. The storage array 104 can also advantageously employ predetermined fault tolerance arrangements in which parallel, redundant links store at least some of the user data so that a redundant copy of the user data can be retrieved or reconstructed in the event that the primary copy of the user data becomes unavailable.
The circuitries represented by the functional block depiction in
A direct memory access control (DMAC) 116 facilitates the process of transferring data by offloading tasks from the CPU 114. An I/O interface 120 provides signal conditioning and buffering for the CPU 114 and the DMAC 116 regarding signal transmissions with the network 106. The I/O interface 120 can include application specific drivers and logic to support communications via the network 106, such as PCI, Ethernet, inter-integrated circuit (I2C), universal serial bus (USB), IEEE-1394 (FireWire), control area network bus (CAN), proprietary network or bus formats, and the like.
A memory, such as the cache 117, temporarily stores (buffers) unexecuted I/O commands and corresponding user data until such a time that they are executed to effect the transfer of the user data via the storage devices 110. Another control memory 118 is employed to store system information and instructions. Examples of a control memory device 118 include, but are not limited to, solid state memory devices, magnetic disk drives, rotating memory devices, general random access memory devices, etc. Certain embodiments contemplate the control memory device 118 providing data recall (and data storage) at a significantly faster rate than that of the data storage devices 110.
The I/O interface 120, a storage device interface 122, and data pathway logic 124 form a pass-through communication path for commands and data between the storage devices 110 and the client(s) 102. Again, although illustrated discretely, it will be understood that the data pathway logic 124 and the corresponding I/F circuits 120, 122 can be unitarily constructed.
However, under certain circumstances it can be advantageous for the controller 1081 to receive via network link 160 an access request for the non-mastered storage device 1102. For that purpose each of the controllers 1081, 1082 has hardware responsive to the data pathway logic (“DPL”) 1241, 1242 residing therein and connected via the addressable link 164 enabling the controller 1081 to perform direct memory access (DMA) transfers of the storage device 1102. Hence, generally, it will be appreciated that client A can access storage device 1102 via the combined data pathways 160, 164, 166. Likewise, the client B can access storage device 1101 via the combined data pathways 168, 164, 170.
The DMAC 1161 is configurable by the CPU 1141, allowing the CPU 1141 to control such features as a DMA source address, a DMA destination address, a transfer word count, and trigger events, such as a processor interrupt. In these embodiments the DMAC 1161 is operably coupled to a buffer 2001 for ultimately transferring data to the other controller 1082 via the bus 164 to satisfy access requests for non-mastered data. The DMAC 1161 is also operably coupled to the drive I/F 1221 via a bus 2041 to satisfy access requests for mastered data. Those data links are intentionally separate from a link 2061 that operably passes configuration and status information. Separating the data busses 2021, 2041 from the bus 2061 advantageously dedicates respective data lines capable of maximum bandwidth transmission, free of control transmissions. That is, once the CPU 1141 initiates a DMA transfer, the CPU 1141 can thereafter simultaneously process other instructions and, as necessary, access the configuration/status bus 2061 without bus contention issues with the DMAC 1161. Under this mode of DMA control the DMAC 1161, not the CPU 1141, provides the pathway control of the access request (via corresponding data packets) from the network 106 via the I/O interface 1201. Particularly, the access request is satisfied with no participatory control of the CPU 1141. For purposes of this description and meaning of the claim, “no participatory control” means that the data transfer operations occur independently of and without placing any processing load upon the CPU 1141.
In these depicted embodiments the data storage logic 1241 includes a routing table 2101 residing in the I/O interface 120, although the contemplated embodiments are not so limited in that the routing table 2101 can reside elsewhere in equivalent alternative embodiments. The routing table 2101 maps the storage space, formed by the storage devices 1101, 1102, . . . 110n to ascertain whether each access request is for the storage drive 1101 mastered by the recipient controller 1081 or not. If so, then the routing table 2101 and corresponding driver routes the access request for processing as a mastered access request; otherwise the routing table 2101 and corresponding driver routes the access request for processing as a non-mastered request.
The DMAC 1161, per the instruction from the routing table 2101, routes the access request either to the mastered storage device 1101 via the local DMA bus 2041 or to the appropriate non-mastered storage device 1102 via the remote DMA bus 2021.
The CPU 1141 can configure and read the status of the DMAC 1161 via the bus 2061. That is, a configuration and status register 2081 can appear as one or more register entries in the register map of the CPU 1141, and can likewise be mapped to other components as needed. In these illustrative embodiments, the configuration and status register 2081 is also mapped to a control line that enables and selectively addresses the bus 164 from the buffer 2001 to a predefined port address of the corresponding buffer 2002 in the controller 1082. The buss 164 is generally an addressable remote network connection, and can be a peripheral component interconnect (PCI) bus, a PCI express bus, a high-speed serial bus, and the like, or alternatively an intranet or an extranet such as the Internet, or a combination thereof, and implemented wirelessly or on a wire line network. This connection is categorically referred to as a “remote” network (or fabric) 106 connection because the data transfer communications by definition must pass through the network 106. For the purposes of this description and meaning of the claims the term “remote” has no other meaning. Particularly, the term “remote” does not signify or imply any minimum distance between the controllers 1081, 1082, and does not signify or imply any difficulty in communication between the controllers 1081, 1082, other than that the DMA transfers must pass through network 106.
If, on the other hand, the determination of block 304 is that the storage space corresponding to the pending write request is not mastered by the controller 1081, then the CPU 1141 in block 308 indexes the routing table 2101 by the write request address to determine which one or more of the storage devices 110n includes storage space corresponding to the write request. For purposes of this illustrative description it will be assumed the determination was made that storage device 1102 is the only such storage device of concern, and as such the remote DMA transfer is described in the following as occurring only to that storage device. However, in alternative equivalent embodiments two or more candidate storage devices 110n can be identified. Where a redundant copy of the write data exists, for example, the data pathway logic 1241 can decide which of the two copies to store first. This can be advantageous when one of the two storage devices 110n is unavailable at the time, such as in the event of a fault or perhaps the storage device 110n is simply otherwise preoccupied with other data transactions. In an altered example of the current situation of a write request received by controller 1081 for storage device 1102, where it is determined that a redundant copy of the write request is stored in storage device 1101, then the DMAC 1161 would in that event advantageously write the data to both storage devices 1101, 1102.
Where two or more candidate controllers 108n are identified, the data pathway logic 1241 can alternatively be constructed to favor the immediate storage to one of the candidate controllers 108n based on a comparison of different data throughput performance capabilities. For example, without limitation, if redundancy is maintained in both a tape library and in a solid-state storage device, then the data pathway logic 1241 can advantageously store a copy to the faster solid-state storage device and schedule the slower copy to a tape drive 112n in a manner that balances the total throughput requirements of the data storage system. Another advantageous comparison can be made based on the present size of DMA queues in the two or more candidate controllers 108n, indicating the present processing load demands on the candidate controllers 108n in other processing activities.
With the target controller 108n identified, controller 1082 for purposes of this illustrative example, the CPU 1141 in block 310 initializes data structures that, in turn perform participatory control by the DMAC 1161 of a remote DMA transfer by writing the appropriate value to the register 220 (
When the DMA registers for a data transfer satisfying the remote write command are completed, the DMAC 1161 enables the bus 164 with regard to a communication port of the buffer 2001. The DMAC 1141 registers also inform a routing control 2301 (
After the DMAC 1161 enables the link 164 and receives ready-acknowledgment from the buffer 2002, the DMAC 1161 transfers the first block of data in accordance with the DMA source and destination registers 222, 224 (
Receipt of the first transferred data in the buffer 2002 in block 312 triggers in block 314 a register setting that informs the DMAC 1162 of the need to perform a DMA transfer of the data from the buffer 2002 to the storage device 1102. As described above, the CPU 1142 writes the appropriate value to the register 220 (
When the DMA registers for a data transfer are completed, the DMAC 1162 enables the bus 2402 (
The method 320 begins in the illustrative embodiments when in block 322 the storage controller 1081 receives an access request to read data from the storage space. In block 324 the data pathway logic 1241 executes stored computer instructions that compare the storage address(es) of the read request to the window of storage space mastered by the recipient storage controller 1081. If that comparison determines that the storage controller 1081 masters the storage space corresponding to the read request then control passes to block 326 where the CPU 1141 processes the read request locally to completion.
If, on the other hand, the determination of block 324 is that the storage space corresponding to the pending read request is not mastered by the controller 1081, then the CPU 1141 in block 328 indexes the routing table 2101 by the read request address to determine which one or more of the storage devices 110n includes storage space corresponding to the read request. For purposes of this illustrative description it will be assumed the determination was made that storage device 1102 is the only such storage device of concern, and as such the DMA transfer is described in the following as occurring only from that storage device 1102. However, in alternative equivalent embodiments two or more candidate storage devices 110n can be identified, for the same reasons and leveraged for the same advantages as described above.
With the target controller 108n identified, controller 1082 for purposes of this illustrative example, the CPU 1141 in block 330 initializes data structures that perform the participatory control of a remote DMA transfer by communicating to the CPU 1142 via the remote link 164 to write the appropriate value to the register 220 (
When the DMA registers for a data transfer satisfying the remote read command are completed, the DMAC 1162 enables the bus 164 (
After the DMAC 1162 enables the link 164 and receives ready-acknowledgment from the buffer 2001, the DMAC 1162 transfers the first block of data in accordance with the DMA source and destination registers 222, 224 (
Receipt of the first transferred data in the buffer 2001 in block 332 triggers in block 334 a register setting that informs the DMAC 1161 of the need to perform a DMA transfer of the data from the buffer 2001 to the client-requestor 102 via the network 106. As described above, the CPU 1141 writes the appropriate value to the register 220 (
When the DMA registers for a data transfer are completed, the DMAC 1161 enables the bus 2501 (
It is to be understood that even though numerous characteristics and advantages of various embodiments of the present invention have been set forth in the foregoing description, together with the details of the structure and function of various embodiments of the invention, this disclosure is illustrative only, and changes may be made in detail, especially in matters of structure and arrangement of parts within the principles of the present invention to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed. For example, remote accesses to multiple or even predetermined pluralities of data storage drives can be interleaved by the data pathway logic in performing the remote access processes for example, while still maintaining substantially the same functionality without departing from the scope and spirit of the claimed invention. Another example can include using these techniques across multiple storage partitions, while still maintaining substantially the same functionality without departing from the scope and spirit of the claimed invention. Further, though communication is described herein as between a client and the data storage array, communication can be received directly by a data storage drive, via the interface device 120 for example, without departing from the scope and spirit of the claimed invention. Further, for purposes of illustration, a tape cartridge operably mounted in a tape drive can define the data storage drive in illustrative embodiments of the present invention. Finally, although the preferred embodiments described herein are directed to data storage drive systems, and related technology, it will be appreciated by those skilled in the art that the claimed invention can be applied to other systems, without departing from the spirit and scope of the present invention.
From the foregoing it will be understood that the reverse situation is possible in the same manner without the need for further detailed description. That is, generally, the controller 1082 can satisfy a remote write request for data stored in storage device 1101 by combining a remote DMA transfer to the buffer 2001 in controller 1081 with a local DMA transfer commanded of controller 1081 to the storage device 1101. Likewise, the controller 1082 can satisfy a remote read request for data stored in storage device 1101 by combining a commanded remote DMA transfer by the controller 1081 to the buffer 2002 with a local DMA transfer to the host-requestor 102.
It will be clear that the claimed invention is well adapted to attain the ends and advantages mentioned as well as those inherent therein. While presently preferred embodiments have been described for purposes of this disclosure, numerous changes may be made which readily suggest themselves to those skilled in the art and which are encompassed in the spirit of the claimed invention disclosed and as defined in the appended claims.
It is to be understood that even though numerous characteristics and advantages of various aspects have been set forth in the foregoing description, together with details of the structure and function, this disclosure is illustrative only, and changes may be made in detail, especially in matters of structure and arrangement to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed.
Claims
1. A data storage system operably transferring data between a storage space and a remote device via a network, the data storage system comprising:
- a first storage controller having top-level control of a first data storage device, the first data storage device forming a portion of the storage space;
- a second storage controller having top-level control of a second data storage device that is different than the first data storage device, the second data storage device forming another portion of the storage space; and
- data pathway logic residing in the first storage controller that performs a direct memory access (DMA) transfer to the second data storage device at a DMA data transfer rate in response to the first storage controller receiving, from the external device via the network, an access request for the second data storage device.
2. The data storage system of claim 1 further comprising a routing table that maps at least a portion of the storage space including the first and second storage devices, the data pathway logic indexing the routing table in selectively performing a DMA transfer to the second data storage device.
3. The data storage system of claim 2 wherein the access request is characterized as a write request to store data to the second data storage device, and wherein the data pathway logic selectively performs a DMA transfer of data corresponding to the write request to a buffer residing in the second storage controller.
4. The data storage system of claim 3 wherein the data pathway logic is characterized as first data pathway logic, further comprising second data pathway logic residing in the second storage controller performing a DMA transfer of the data corresponding to the write request from the buffer to the second data storage device to satisfy the write request.
5. The data storage system of claim 4 wherein the first data pathway logic indexes the routing table to determine whether data corresponding to the write request is stored redundantly in the first data storage device, and if so performs a DMA transfer of the data corresponding to the write request to the first data storage device.
6. The data storage system of claim 1 wherein the access request is characterized as a read request to retrieve data from the second storage device and the data pathway logic is characterized as a first data pathway logic, and wherein a second data storage logic residing in the second storage controller satisfies the read command by performing a DMA transfer from the second storage device to a first buffer residing in the first storage controller.
7. The data storage system of claim 6 wherein the first data storage logic performs a DMA transfer from the first buffer to the remote device to satisfy the read command.
8. The data storage system of claim 6 wherein the first data storage logic performs a DMA transfer from the first buffer to the first data storage device.
9. The data storage system of claim 1 wherein the access request is characterized as a read command to retrieve data stored redundantly in the first and second storage devices, and wherein the data storage logic performs a DMA transfer to a selected one of the first and second storage devices depending on which can first make the data available.
10. The data storage system of claim 9 wherein the selected one of the first and second storage devices is based on characteristically different data throughput performance capabilities.
11. The data storage system of claim 9 wherein the selected one of the first and second storage devices is based on comparing sizes of DMA queues in the first and second storage controllers.
12. The data storage system of claim 2 comprising three or more storage controllers each having top-level control of respective data storage devices, the data pathway logic indexing the routing table to identify all of the storage controllers having control of a redundant copy of the data corresponding to the access request.
13. A data storage system operably transferring data between a storage space and a remote device via a network, the data storage system comprising:
- a plurality of storage controllers each having top-level control of respective data storage devices, the data storage devices collectively forming the storage space;
- a routing table mapping the storage space and that is indexable by storage location; and
- data pathway logic stored in memory that when executed indexes the routing table, in response to receiving from the remote device an access request, identifies a subset of the plurality of storage controllers that each has control over a data storage device corresponding to the access request, selects one of the storage controllers in the subset, and performs a remote DMA transfer to the selected data storage device at a DMA data transfer rate.
14. A method of transferring data between a storage space and a remote device via a network, the method comprising:
- obtaining a data storage system including a first storage controller having top-level control of a first data storage device and a second data storage device having top-level control of a second data storage device;
- the first storage controller receiving an access request for the second data storage device; and
- in response to the receiving, the first storage controller performing a remote DMA transfer to the second data storage device at a DMA data transfer rate.
15. The method of claim 14 further comprising mapping at least a portion of the storage space including the first and second storage devices, the DMA transfer characterized by the first storage controller indexing the mapping according to a storage address.
16. The method of claim 14 wherein the access request is characterized as a write request to store data to the second data storage device, and wherein the DMA transfer is characterized by the first storage controller transferring the write command to the second storage controller.
17. The method of claim 16 further comprising the second storage controller performing a DMA transfer of the data corresponding to the second data storage device.
18. The method of claim 14 wherein the access request is characterized as a read request to retrieve data from the second storage device, wherein the DMA transfer is characterized by the first storage controller transferring data corresponding to the read request to the second storage controller.
19. The method of claim 18 wherein the DMA transfer is characterized by the second storage controller in response to the read request performing a DMA transfer from the second data storage device to the first storage controller.
20. A data storage system operably transferring data between a storage space and a remote device via a plurality of access requests, the data storage system comprising:
- a first storage controller having a first central processing unit (CPU) capable of performing top-level control of a first data storage device, the first data storage device forming a portion of the storage space;
- a second storage controller having a second CPU capable of performing top-level control of a second data storage device that is different than the first data storage device, the second data storage device forming another portion of the storage space; and
- data pathway logic residing in the first storage controller that executes one of the access requests for data stored in the second data storage device by operably performing a direct memory access (DMA) transfer to the second data storage device at a DMA data transfer rate with no participatory control of the DMA transfer by the first CPU.
21. The method of claim 20 further comprising a mapping capability that maps at least a portion of the storage space including the first and second storage devices, the DMA transfer characterized by the first storage controller indexing the mapping according to a storage address.
Type: Application
Filed: Aug 9, 2012
Publication Date: Feb 13, 2014
Patent Grant number: 9645738
Applicant:
Inventor: David Lee Trachy (Longmont, CO)
Application Number: 13/571,213
International Classification: G06F 15/167 (20060101);