Raid rebuild algorithm with low I/O impact
First Claim
1. A storage method, comprising:
- detecting an unrecoverable error associated with a particular logical block of a virtual drive comprising a plurality of physical storage devices and a hot spare drive;
identifying a particular source disk and a particular stripe associated with the particular logical block address;
determining whether the unrecoverable error is a first error associated with the particular stripe;
responsive to determining the unrecoverable error is the first error associated with the particular stripe, performing operations comprising;
regenerating data corresponding to the particular logical block from remaining source disks in the virtual drive;
storing the regenerated data to a first stripe of the hot spare drive; and
creating an entry in a mapping structure, the entry associating the particular source disk and the particular stripe of the particular logical block address with the first stripe of the hot spare drive; and
responsive to determining the unrecoverable error is not the first unrecoverable error associated with the particular stripe, performing operations comprising;
copying a different logical block, stored in a different stripe of the particular source disk, to a second stripe of the hot spare drive;
regenerating the logical block from;
the first stripe of the hot spare drive; and
unmapped portions of the particular stripe on other source disks;
storing the regenerated logical block to the different stripe;
creating an entry mapping the particular logical block to the different stripe; and
creating an entry mapping the different logical block to the second stripe of the hot spare drive.
16 Assignments
0 Petitions
Accused Products
Abstract
A disclosed storage management method includes detecting an unrecoverable failure associated with a logical block of a first physical storage device that is one of a plurality of storage devices within a redundant virtual drive that also includes a hot spare drive. Data for the unrecoverable block may be rebuilt from data in the remaining storage devices and stored in a logical block of the hot spare drive. One or more logical block maps may be maintained to identify unrecoverable logical blocks and to indicate the logical blocks and storage devices to which each of the unrecoverable logical blocks is relocated. I/O operations that access “good” logical blocks are normally while accesses to unrecoverable logical blocks are rerouted according to the logical block map. One or more unrecoverable thresholds may be supported to initiate operations to replace storage devices containing unrecoverable blocks exceeding an applicable threshold.
-
Citations
13 Claims
-
1. A storage method, comprising:
-
detecting an unrecoverable error associated with a particular logical block of a virtual drive comprising a plurality of physical storage devices and a hot spare drive; identifying a particular source disk and a particular stripe associated with the particular logical block address; determining whether the unrecoverable error is a first error associated with the particular stripe; responsive to determining the unrecoverable error is the first error associated with the particular stripe, performing operations comprising; regenerating data corresponding to the particular logical block from remaining source disks in the virtual drive; storing the regenerated data to a first stripe of the hot spare drive; and creating an entry in a mapping structure, the entry associating the particular source disk and the particular stripe of the particular logical block address with the first stripe of the hot spare drive; and responsive to determining the unrecoverable error is not the first unrecoverable error associated with the particular stripe, performing operations comprising; copying a different logical block, stored in a different stripe of the particular source disk, to a second stripe of the hot spare drive; regenerating the logical block from; the first stripe of the hot spare drive; and unmapped portions of the particular stripe on other source disks; storing the regenerated logical block to the different stripe; creating an entry mapping the particular logical block to the different stripe; and creating an entry mapping the different logical block to the second stripe of the hot spare drive. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A storage controller comprising:
-
a processor; and a computer readable medium including processor executable instructions that, when executed by the processor, cause the processor to perform operations comprising; detecting an unrecoverable failure associated with a logical block of a first physical storage device, wherein the first physical storage device comprises a first physical storage device of a redundant array of inexpensive drives (RAID) 5 virtual drive, the logical block comprises a first logical block of a data stripe, and wherein rebuilding data for the logical block comprises performing an exclusive or (EXOR) operation on remaining portions of the data stripe in the remaining physical storage devices; rebuilding data for the logical block from data in remaining physical storage devices of the virtual drive; storing rebuilt data resulting from the rebuilding of data in a first logical block of a hot spare drive; maintaining an address map for the first physical storage device, wherein the address map; identifies logical blocks of the first physical storage device containing unrecoverable failures associated with the first physical storage device; and indicates relocated logical blocks for each of the logical blocks identified; detecting a second unrecoverable error associated with a second logical block on a second physical storage device of the virtual drive; determining whether a data stripe corresponding to the second logical block includes any other logical blocks associated with a unrecoverable error; and responsive to determining that the second logical block is of the same data stripe as the first logical block, performing same-stripe rebuilding operations comprising; copying data for a different logical block of the second physical storage device to a distributed hot spare drive; and performing an exclusive OR (EXOR) of; the relocated first logical block on the distributed hot spare drive; and a third logical block, associated with a third physical storage device, of the virtual drive. - View Dependent Claims (9, 10, 11, 12)
-
-
13. An information handling system, comprising:
-
a processor; and computer readable storage accessible to the processor and including processor executable program instructions that, when executed by the processor, cause the processor to perform operations comprising; detecting an unrecoverable failure associated with a logical block of a first physical storage device, wherein the first physical storage device comprises a first physical storage device of a redundant array of inexpensive drives (RAID) 5 virtual drive and the logical block comprises a first logical block of a data stripe, and; rebuilding data for the logical block from data in remaining physical storage devices of the virtual drive wherein rebuilding data for the logical block comprises performing an exclusive or (EXOR) operation on remaining portions the data stripe in the remaining physical storage devices; storing rebuilt data resulting from the rebuilding of data in a first logical block of a hot spare drive; and maintaining an address map for the first physical storage device, wherein the address map; identifies logical blocks of the first physical storage device containing unrecoverable failures associated with the first physical storage device; and indicates relocated logical blocks for each of the logical blocks identified; detecting a second unrecoverable error associated with a second logical block on a second physical storage device of the virtual drive; determining whether a data stripe corresponding to the second logical block includes any other logical blocks associated with a unrecoverable error; and responsive to determining that the second logical block is of the same data stripe as the first logical block, performing same-stripe rebuilding operations comprising; copying data for a different logical block of the second physical storage device to the distributed hot spare; and performing an exclusive OR (EXOR) of; the relocated first logical block on the hot spare drive; and a third logical block, associated with a third physical storage device, of the virtual drive.
-
Specification