Method and Apparatus for Optimizing the Performance of a Storage System
First Claim
1. A storage system for processing READ and WRITE requests from an external host, the storage system comprising:
- (A) a FLASH storage system;
(B) a hard drive storage system; and
(C) a storage controller adapted to receive READ and WRITE requests from an external host, the storage controller being coupled to the FLASH storage system and the hard drive storage system such that the storage controller can issue READ and WRITE requests to both the FLASH storage system and the hard drive storage system, wherein the storage controller is adapted to;
(i) receive a WRITE request from an external host, the WRITE request containing data and an address corresponding to a location where such data is to be stored and;
(a) forward the received WRITE request to the FLASH storage system;
(b) associate the address provided in the WRITE request with a selected alternative address, and provide an alternative WRITE request to the hard drive storage system wherein the alternative WRITE request includes the selected alternative address and the data received in the WRITE request, wherein the alternative address is selected to promote sequential WRITE operations within the hard drive storage system; and
(ii) receive a READ request from an external host, the READ request containing an address corresponding to a location from which data is to be read and;
(a) forward the received READ request to the FLASH storage system;
(b) return the data received from the FLASH storage system to the external host in the absence of a READ error from the FLASH storage system;
or(c) issue an alternative READ request to the hard drive storage system, the alternative READ request containing an address corresponding to an alternative address associated by the storage controller with the address received from the external host in the READ request and returning the data received from the hard drive storage system to the external host in the event of a READ error from the FLASH storage system.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatuses for optimizing the performance of a storage system comprise a FLASH storage system, a hard drive storage system, and a storage controller. The storage controller is adapted to receive READ and WRITE requests from an external host, and is coupled to the FLASH storage system and the hard drive storage system. The storage controller receives a WRITE request from an external host containing data and an address, forwards the received WRITE request to the FLASH storage system and associates the address provided in the WRITE request with a selected alternative address, and provides an alternative WRITE request, including the selected alternative address and the data received in the WRITE request, to the hard drive storage system, wherein the alternative address is selected to promote sequential WRITE operations within the hard drive storage system.
247 Citations
22 Claims
-
1. A storage system for processing READ and WRITE requests from an external host, the storage system comprising:
-
(A) a FLASH storage system; (B) a hard drive storage system; and (C) a storage controller adapted to receive READ and WRITE requests from an external host, the storage controller being coupled to the FLASH storage system and the hard drive storage system such that the storage controller can issue READ and WRITE requests to both the FLASH storage system and the hard drive storage system, wherein the storage controller is adapted to; (i) receive a WRITE request from an external host, the WRITE request containing data and an address corresponding to a location where such data is to be stored and; (a) forward the received WRITE request to the FLASH storage system; (b) associate the address provided in the WRITE request with a selected alternative address, and provide an alternative WRITE request to the hard drive storage system wherein the alternative WRITE request includes the selected alternative address and the data received in the WRITE request, wherein the alternative address is selected to promote sequential WRITE operations within the hard drive storage system; and (ii) receive a READ request from an external host, the READ request containing an address corresponding to a location from which data is to be read and; (a) forward the received READ request to the FLASH storage system; (b) return the data received from the FLASH storage system to the external host in the absence of a READ error from the FLASH storage system;
or(c) issue an alternative READ request to the hard drive storage system, the alternative READ request containing an address corresponding to an alternative address associated by the storage controller with the address received from the external host in the READ request and returning the data received from the hard drive storage system to the external host in the event of a READ error from the FLASH storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 21, 22)
-
-
8. A system comprising:
-
MLC FLASH memory, the MLC FLASH memory providing a given physical MLC FLASH storage space; a hard drive storage, the hard drive storage providing a given physical storage space that is larger than the physical MLC FLASH storage space; and a storage controller coupled to the MLC FLASH memory and the hard drive storage, the storage controller being adapted to receive a WRITE request from an external host that contains data and an address where such data is to be stored, the storage controller being further adapted to write the data provided in the WRITE request to a physical location within the MLC FLASH memory and to a physical location within the hard drive storage, wherein the storage controller is further adapted to receive a READ request from an external host that contains an address from which data is to be read, the storage controller being further adapted to access a physical location within the MLC FLASH memory corresponding to the address received in the READ request and to provide data stored at that address to the external host in the absence of a READ error from the MLC FLASH memory, and to access a physical location within the hard drive storage and to provide data stored at that address to the host in the presence of a READ error from the MLC FLASH memory. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A storage controller comprising:
-
a first port adapted to receive READ and WRITE commands from an external host; a second port adapted to provide READ and WRITE commands to a FLASH storage device and to receive data from the FLASH storage device in response to an issued READ command; a third port adapted to provide READ and WRITE commands to a hard drive storage device and to receive data from the hard drive storage device in response to an issued READ command; a processor coupled to the first, second, and third ports, wherein the processor is programmed to; receive a WRITE command containing an address and data through the first port and issue WRITE commands through both the second and the third ports such that the data provided in the WRITE command is provided through the second port and the third port; and receive a READ command requesting data and issue a preferred READ command through the second port and a secondary READ command through the third port upon the receipt of error data in response to the preferred READ command. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification