Enhanced raid write hole protection and recovery
First Claim
1. A method of reconstructing data in a computer system employing a Parity RAID protection scheme for a striped array of storage devices that employ parity recovery in the event of a crash, said computer system including a write back cache composed of non-volatile memory for storing (1) write data outstanding that is to be written to storage devices, and (2) metadata information;
- said metadata information comprising a first field containing an LBA of said write data outstanding, a second field containing device IDs that correspond to said write data outstanding, and a third field containing status that indicates consistent or inconsistent write slice parity, comprising the steps of;
storing old data in said non-volatile memory from storage devices that are intended for said write data outstanding, to protect said old data in the event a crash occurs during a write to a storage device;
storing old parity that corresponds to said old data in said non-volatile memory;
determining from said metadata information where a given write data outstanding was intended when a crash occurs;
determining whether parity is consistent across a write slice corresponding to said given write data outstanding, and if parity is not consistent, using said old data stored in said non-volatile memory and said the old parity stored in said non-volatile memory to reconstruct said given write data outstanding to thereby insure consistent parity, whereby;
only slices of said given write data outstanding whose parity is not consistent and are affected by the crash have to be reconstructed.
4 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a method and apparatus for reconstructing data in a computer system employing a modified RAID 5 data protection scheme. The computer system includes a write back cache composed of non-volatile memory for storing (1) writes outstanding to a device and associated data read, and (2) storing metadata information in the non-volatile memory. The metadata includes a first field containing the logical block number or address (LBN or LBA) of the data, a second field containing the device ID, and a third field containing the block status. From the metadata information it is determined where the write was intended when the crash occurred. An examination is made to determine whether parity is consistent across the slice, and if not, the data in the non-volatile write back cache is used to reconstruct the write that was occurring when the crash occurred to insure consistent parity, so that only those blocks affected by the crash have to be reconstructed.
1719 Citations
19 Claims
-
1. A method of reconstructing data in a computer system employing a Parity RAID protection scheme for a striped array of storage devices that employ parity recovery in the event of a crash, said computer system including a write back cache composed of non-volatile memory for storing (1) write data outstanding that is to be written to storage devices, and (2) metadata information;
- said metadata information comprising a first field containing an LBA of said write data outstanding, a second field containing device IDs that correspond to said write data outstanding, and a third field containing status that indicates consistent or inconsistent write slice parity, comprising the steps of;
storing old data in said non-volatile memory from storage devices that are intended for said write data outstanding, to protect said old data in the event a crash occurs during a write to a storage device; storing old parity that corresponds to said old data in said non-volatile memory; determining from said metadata information where a given write data outstanding was intended when a crash occurs; determining whether parity is consistent across a write slice corresponding to said given write data outstanding, and if parity is not consistent, using said old data stored in said non-volatile memory and said the old parity stored in said non-volatile memory to reconstruct said given write data outstanding to thereby insure consistent parity, whereby; only slices of said given write data outstanding whose parity is not consistent and are affected by the crash have to be reconstructed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
- said metadata information comprising a first field containing an LBA of said write data outstanding, a second field containing device IDs that correspond to said write data outstanding, and a third field containing status that indicates consistent or inconsistent write slice parity, comprising the steps of;
-
10. For use in connection with a computer system, a method of reconstructing data in a Parity RAID protection scheme for attachment to said computer system, a write back cache composed of non-volatile memory for storing (1) write data that is outstanding to a storage device and associated old data read from a storage device, and (2) metadata information;
- said metadata information comprising a first field containing a LBA of said outstanding write data, a second field containing a storage device ID corresponding to said outstanding write data, and a third field containing a parity consistent/inconsistent status of data in said non-volatile memory, comprising the steps of;
determining from said metadata information a storage device for which said outstanding write data is intended; storing in said non-volatile memory associated old data from at least areas on storage devices intended for outstanding write data, to protect said associated old data in the event a crash occurs during a write of said outstaxidinrg write data to a storage device; determining whether parity is consistent across a data slice that includes said LBA, and if not using data stored in said non-volatile memory to reconstruct a write of said outstanding write data that was in progress when a crash occurred to insure consistent parity, whereby; only data slices that have inconsistent parity and that are affected by a crash have to be reconstructed. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
- said metadata information comprising a first field containing a LBA of said outstanding write data, a second field containing a storage device ID corresponding to said outstanding write data, and a third field containing a parity consistent/inconsistent status of data in said non-volatile memory, comprising the steps of;
-
18. In a computer system employing a Parity RAID protection scheme, and an array set of disk drives connected to said computer system, said disk drives containing data written thereon in a predetermined and proscribed format of data blocks:
-
a controller having a write back cache composed of non-volatile memory, said non-volatile memory being disposed intermediate said array set of disk drives and said computer system; said non-volatile memory storing (1) data block writes outstanding to a disk drive, (2) associated data read from a disk drive, and (3) metadata information concerning information contained on said disk drives; said metadata information comprising a first field containing an LBA of the associated data read, a second field containing a disk drive ID, and a third field containing a block status of data blocks contained on said disk drives; a program contained within said controller for determining from said metadata information where a write is intended prior to a write being made to a disk drive of said array set; and means in said controller for determining whether parity is consistent across a slice of multiple data blocks written on a disk drive, and if not using data stored in said non-volatile memory to reconstruct a write to insure consistent parity, whereby reconstruction of data slices is necessary only for those slices on said set of disks drives for which inconsistent parity is determined.
-
-
19. In combination:
-
a computer having a central processor; an array of disk drives comprising computer-readable disk memory having a surface formed with a plurality of binary patterns constituting an application program that is executable by said computer; a controller connected intermediate said array of disk drives and said central processor; said disk drive array in conjunction with said controller employing a Parity RAID protection scheme; a non-volatile cache contained within said controller; said controller effecting reading and writing of data blocks from and to said array of disk drives; said application program including instructions for a method of reconstructing data slices in said disk drive array; said application program including instructions for reading into said non-volatile cache (1) writes outstanding to a disk drive, (2) associated data read, and (3) metadata information concerning said disk drive array; said metadata information comprising a first field containing LBAs of data blocks, a second field containing disk drive IDs, and a third field containing data block status; said application program including instructions for determining from said metadata information to which disk drive a write is intended; said application program including instruction for determining whether parity is consistent across a data block slice, and if not using data in said non-volatile cache to construct or to reconstruct write data, when necessary, to insure consistent parity, whereby only data block slices effected by inconsistent parity will have to be constructed or reconstructed.
-
Specification