Redirected I/O for scalable performance storage architecture
First Claim
1. In a computer system having a host computer, a storage device, and a storage controller, a method of transferring data between said host computer and said storage device, the method comprising:
- said host computer transmitting a first data transfer command to said storage controller;
said storage controller translating said first data transfer command into a second data transfer command;
said storage controller transmitting said second data transfer command to said host computer; and
said host computer directly transmitting said second data transfer command to said storage device, thereby initiating transfer of said data between said host computer and said storage device.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and a method to transfer data between a host computer and a storage device. The storage controller architecture is organized into its functional modules based on whether a module primarily performs a control function or a data transfer function. The data paths that connect various functional units (for example, switching unit, parity logic, memory module, etc.) may then be sized to the required bandwidth. This effectively makes the iops (I/O operations per second) and bandwidth capability of a storage controller scalable independently of each other. A data transfer command from a host computer is decoded and translated into one or more data transfer commands by the control module in the storage controller. The control module then sends a list of translated commands to the host. Parity calculation, caching, one or more RAID levels and other relevant data transfer information may also be included as part of the translated set of commands. The host directly transmits the data transfer commands received from the control module to appropriate storage devices in the system. This allows for a direct transfer of data between the host and one or more storage devices without any need to route the data via the control module. The messaging scheme may be conveniently employed in a situation involving a two-party interface protocol (e.g., the fibre channel protocol) without modifying the standard architecture of the corresponding controller switch.
-
Citations
33 Claims
-
1. In a computer system having a host computer, a storage device, and a storage controller, a method of transferring data between said host computer and said storage device, the method comprising:
-
said host computer transmitting a first data transfer command to said storage controller;
said storage controller translating said first data transfer command into a second data transfer command;
said storage controller transmitting said second data transfer command to said host computer; and
said host computer directly transmitting said second data transfer command to said storage device, thereby initiating transfer of said data between said host computer and said storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer system comprising:
-
a host computer;
a storage device configured to receive and store data from said host computer and to convey said data to said host computer when requested by said host computer; and
a storage controller coupled to said host computer and said storage device to manage transfer of said data between said host computer and said storage device, wherein said storage controller includes;
a switch, wherein said switch links said host computer and said storage device via a control path and a data path, wherein said host computer requests said transfer of said data to/from said storage device by transmitting a first command over said control path; and
a control module coupled to said switch via said control path, wherein said control module is configured to receive said first command via said switch and to responsively transmit via said switch and over said control path a second command to said host computer; and
wherein said host computer is configured to directly transmit said second command to said storage device via said switch and over said control path to initiate said transfer of said data over said data path. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
a first control path linking said host computer and said switch;
a second control path linking said control module and said switch, wherein said first command is transmitted over said first and said second control paths, and wherein said second command from said control module to said host computer is sent over said first and said second control paths; and
a third control path linking said switch and said storage device, wherein said second command from said host computer to said storage device is transmitted over said first and said third control paths.
-
-
15. The computer system of claim 11, wherein said data path includes:
-
a first data path linking said host computer and said switch; and
a second data path linking said switch and said storage device, wherein said transfer of said data is over said first and said second data paths.
-
-
16. The computer system according to claim 11, wherein said storage device includes a disk drive array to store said data from said host computer in a fault-tolerant configuration.
-
17. The computer system as recited in claim 16, wherein said fault-tolerant configuration implements at least one RAID (Redundant Array of Independent Disks) level for storing said data within said disk drive array.
-
18. The computer system of claim 11, wherein said host computer includes:
-
a host adapter card; and
a software driver for said host adapter card, wherein said software driver configures said host adapter card to directly transmit said second command to said storage device via said switch.
-
-
19. The computer system as in claim 11, wherein said second command includes a plurality of commands depending on a data read or a data write operation specified by said first command and on a RAID level implemented by said control module for said transfer of said data.
-
20. The computer system according to claim 11, wherein said second command from said control module to said host computer includes parity information for said transfer of said data.
-
21. In a computer system having a host computer, a first storage device, a second storage device, and a storage controller including:
-
a switch linking said host computer with said first and said second storage devices, and a control module coupled to said switch, a method of transferring a first data packet between said host computer and said first storage device and a second data packet between said host computer and said second storage device, the method comprising;
said host computer transmitting first data transfer command via said switch identifying said control module as a recipient of said first data transfer command;
said control module translating said first data transfer command into a plurality of second data transfer commands, wherein a first one of said plurality of second data transfer commands identifies said first storage device as the recipient thereof, and wherein a second one of said plurality of second data transfer commands identifies said second storage device as the recipient thereof;
said control module transmitting said plurality of second data transfer commands to said host computer via said switch, wherein said plurality of second data transfer commands identifies said control module as an originator thereof;
said host computer conveying said plurality of second data transfer commands to said switch; and
said switch directly forwarding said first and said second ones of said plurality of second data transfer commands to said first and said second storage devices respectively, thereby initiating respective transfers of said first and said second data packets. - View Dependent Claims (22, 23, 24, 25)
transferring said first data packet directly between said first storage device and said host computer via said switch in response to said first one of said plurality of second data transfer commands; and
further transferring said second data packet directly between said second storage device and said host computer via said switch in response to said second one of said plurality of second data transfer commands.
-
-
23. The method according to claim 22, further comprising:
-
transmitting first status packet from said first storage device to said host computer indicating status of said transfer of said first data packet, wherein said first status packet identifies said first storage device as said originator thereof; and
further transmitting second status packet from said second storage device to said host computer indicating status of said transfer of said second data packet, wherein said second status packet identifies said second storage device as said originator thereof.
-
-
24. The method of claim 23, further comprising said host computer transmitting via said switch a third status packet that identifies said control module as said recipient thereof, wherein said third status packet conveys status information contained in said first and said second status packets.
-
25. The method as recited in claim 24, further comprising said control module transmitting a fourth status packet to said host computer via said switch, wherein said fourth status packet is transmitted in response to said third status packet and identifies said control module as said originator thereof, and wherein said fourth status packet indicates completion status of said transfers of said first and said second data packets.
-
26. A storage controller to manage transfer of data between a host computer and a storage device, said storage controller comprising:
-
a switch configured to link said host computer and said storage device; and
a control module coupled to said switch, wherein said control module is configured to receive through said switch a first data transfer command from said host computer, wherein said control module is further configured to translate said first data transfer command into a second data transfer command and to send said second data transfer command to said host computer via said switch;
wherein said switch is configured to convey said second data transfer command directly from said host computer to said storage device to allow said transfer of said data in response to said second data transfer command. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33)
at least one processor to process said first data transfer command and to generate said second data transfer command; and
interface logic for coupling of said control module and said switch.
-
-
28. The storage controller as in claim 27, wherein said control module further includes drive selection logic to transmit drive selection information to said host computer as part of said second data transfer command, thereby allowing a data read or a data write transaction involving a plurality of disk drives in said storage device.
-
29. The storage controller according to claim 26, further comprising:
-
a parity calculator coupled to said switch to perform parity calculation during said transfer of said data;
wherein said control module is configured to transmit parity calculation information to said host computer as part of said second data transfer command.
-
-
30. The storage controller of claim 26, further comprising a memory module coupled to said switch, wherein said memory module includes:
-
a cache memory for selective temporary storage of said data during said transfer of said data between said host computer and said storage device; and
a cache controller to manage said selective temporary storage of said data into said cache memory, wherein said control module is configured to transmit caching information to said host computer as part of said second data transfer command.
-
-
31. The storage controller as recited in claim 26, wherein said switch links said host computer and said storage device via a fibre channel.
-
32. The storage controller according to claim 26, wherein said switch is configured to forward status information from said storage device directly to said host computer, wherein said status information indicates completion status of said transfer of said data.
-
33. The storage controller as in claim 26, wherein said control module is configured to receive first status information from said host computer via said switch and responsively transmit second status information to said host computer via said switch, wherein said second status information indicates completion status of said transfer of said data.
Specification