Storage device array architecture with copyback cache
First Claim
1. A fault-tolerant storage device array including:
- a. a plurality of failure independent storage units for storing information as stripes of blocks, including at least data blocks and associated error-correction blocks;
b. at least one copyback cache storage unit for temporarily storing data blocks; and
c. a storage unit controller, coupled to the plurality of storage units and to the at least one copyback cache storage unit, including control means for;
(1) writing received data blocks initially onto the at least one copyback cache storage unit as pending data blocks;
(2) during idle time of at least some of the plurality of storage units;
(a) reading at least one pending data block from at least one copyback cache storage unit;
(b) accessing the storage units and reading information corresponding to each read pending data block;
(c) generating an associated error-correction block from the read information and each read pending data block; and
(d) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units; and
(3) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units.
0 Assignments
0 Petitions
Accused Products
Abstract
A fault-tolerant storage device array using a copyback cache storage unit for temporary storage. When a Write occurs to the RAID system, the data is immediately written to the first available location in the copyback cache storage unit. Upon completion of the Write to the copyback cache storage unit, the host CPU is immediately informed that the Write was successful. Thereafter, further storage unit accesses by the CPU can continue without waiting for an error-correction block update for the data just written. In a first embodiment of the invention, Read-Modify-Write operations are performed during idle time. In a second embodiment of the invention, normal Read-Modify-Write operation by the RAID system controller continue use Write data in the controller'"'"'s buffer memory. In a third embodiment, at least two controllers, each associated with one copyback cache storage unit, copy Write data from controller buffers to the associated copyback cache storage unit. If a copyback cache storage unit fails, more than one controller share a single copyback storage unit. In a fourth embodiment, Write data is copied from a controller buffer to a reserved area of each storage unit comprising the array.
-
Citations
25 Claims
-
1. A fault-tolerant storage device array including:
-
a. a plurality of failure independent storage units for storing information as stripes of blocks, including at least data blocks and associated error-correction blocks; b. at least one copyback cache storage unit for temporarily storing data blocks; and c. a storage unit controller, coupled to the plurality of storage units and to the at least one copyback cache storage unit, including control means for; (1) writing received data blocks initially onto the at least one copyback cache storage unit as pending data blocks; (2) during idle time of at least some of the plurality of storage units; (a) reading at least one pending data block from at least one copyback cache storage unit; (b) accessing the storage units and reading information corresponding to each read pending data block; (c) generating an associated error-correction block from the read information and each read pending data block; and (d) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units; and (3) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units. - View Dependent Claims (2, 3, 4)
-
-
5. A fault-tolerant storage device array including:
-
a. a plurality of failure independent storage units for storing information as stripes of blocks, including at least data blocks and associated error-correction blocks; b. at least one copyback cache storage unit for temporarily storing data blocks, at least one of said at least one copyback cache storage unit being non-volatile; and c. a storage unit controller, coupled to the plurality of storage units and to the at least one copyback cache storage unit, including control means for; (1) writing received data blocks initially onto the at least one copyback cache storage unit as pending data blocks; (2) during idle time of at least some of the plurality of storage units; (a) reading at least one pending data block from at least one copyback cache storage unit; (b) accessing the storage units and reading information corresponding to each read pending data block; (c) generating an associated error-correction block from the read information and each read pending data block; and (d) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units. - View Dependent Claims (6, 7, 8)
-
-
9. A fault-tolerant storage device array including:
-
a. a plurality of failure independent storage units for storing information as stripes of blocks, including at least data blocks and associated error-correction blocks; b. at least one copyback cache storage unit for temporarily storing data blocks, at least one of said at least one copyback cache storage unit being non-volatile; and c. a storage unit controller, coupled to the plurality of storage units and to the at least one copyback cache storage unit, including control means for; (1) writing received data blocks initially onto the at least one copyback cache storage unit as pending data blocks; (2) during idle time of at least some of the plurality of storage units; (a) reading at least one pending data block from at least one copyback cache storage unit; (b) accessing the storage units and reading information corresponding to each read pending data block; (c) generating an associated error-correction block from the read information and each read pending data block; and (d) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units; and (3) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units. - View Dependent Claims (10, 11)
-
-
12. A fault-tolerant storage device array including:
-
a. a plurality of failure independent storage units for storing information as stripes of blocks, including at least data blocks and associated error-correction blocks; b. at least one copyback cache storage unit for temporarily storing data blocks; and c. a storage unit controller, coupled to the plurality of storage units and to the at least one copyback cache storage unit, including control means for; (1) writing received data blocks initially onto the at least one copyback cache storage unit as pending data blocks; (2) reading at least one pending data block from at least one copyback cache storage unit; (3) accessing the storage units and reading information corresponding to each read pending data block; (4) generating an associated error-correction block from the read information and each read pending data block; (5) writing each such read pending data block and associated error-correction block to a corresponding stripe of the storage units; and (6) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A fault-tolerant storage device array including:
-
a. a plurality of failure independent storage units for storing information as stripes of blocks, including at least data blocks and associated error-correction blocks; b. at least one copyback cache storage unit for temporarily storing data blocks, at least one of said at least one copyback cache storage unit being non-volatile; and c. a storage unit controller, coupled to the plurality of storage units and to the at least one copyback cache storage unit, including control means for; (1) writing received data blocks initially onto the at least one copyback cache storage unit as pending data blocks; (2) reading at least one pending data block from at least one copyback cache storage unit; (3) accessing the storage units and reading information corresponding to each read pending data block; (4) generating an associated error-correction block from the read information and each read pending data block; and (5) writing each such read pending data block and associated error-correction block to a corresponding stripe of the storage units. - View Dependent Claims (18, 19, 20, 21)
-
-
22. A fault-tolerant storage device array including:
-
a. a plurality of failure independent storage units for storing information as stripes of blocks, including at least data blocks and associated error-correction blocks; b. at least one copyback cache storage unit for temporarily storing data blocks, at least one of said at least one copyback cache storage unit being non-volatile; and c. a storage unit controller, coupled to the plurality of storage units and to the at least one copyback cache storage unit, including control means for; (1) writing received data blocks initially onto the at least one copyback cache storage unit as pending data blocks; (2) reading at least one pending data block from at least one copyback cache storage unit; (3) accessing the storage units and reading information corresponding to each read pending data block; (4) generating an associated error-correction block from the read information and each read pending data block; (5) writing each such read pending data block and associated error-correction block to a corresponding stripe of the storage units; and (6) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units. - View Dependent Claims (23, 24, 25)
-
Specification