Error checking addressable blocks in storage
First Claim
1. An article of manufacture comprising a non-transitory computer readable storage medium having code executed to cause operations with respect to a storage device and a memory and to cause operations comprising:
- storing addressable blocks of data in the storage device in stripes, wherein each stripe includes a plurality of data blocks for one of the addressable blocks and at least one checksum block including checksum data derived from the data blocks for the addressable block stored in the stripe having the addressable block;
receiving a write request to modify data in one of the addressable blocks in the storage device;
performing the write and updating the at least one checksum block in the stripe having the modified addressable block, wherein the modified data and the updated at least one checksum block resulting from the write are destaged to the storage device;
indicating in a recently modified list in the memory, the addressable block modified in response to the write request;
performing an error checking operation on the stripes of the addressable blocks by performing;
determining whether the stripe having the addressable block is indicated in the recently modified list;
using the at least one checksum block for the stripe having the addressable block to correct the error in response to determining that the addressable block of the stripe is indicated in the recently modified list; and
indicating the stripe having the addressable block as having an uncorrectable error in response to determining that the addressable block of the stripe is not indicated in the recently modified list.
4 Assignments
0 Petitions
Accused Products
Abstract
Provided are a method, system, and article of manufacture for error checking addressable blocks in storage. Addressable blocks of data are stored in a storage in stripes, wherein each stripe includes a plurality of data blocks for one of the addressable blocks and at least one checksum block including checksum data derived from the data blocks for the addressable block. A write request is received to modify data in one of the addressable blocks. The write and updating the checksum are performed in the stripe having the modified addressable block. An indication is made to perform an error checking operation on the stripe for the modified addressable block in response to the write request, wherein the error checking operation reads the data blocks and the checksum in the stripe to determine if the checksum data is accurate. An error handling operation is initiated in response to determining that the checksum data is not accurate.
127 Citations
22 Claims
-
1. An article of manufacture comprising a non-transitory computer readable storage medium having code executed to cause operations with respect to a storage device and a memory and to cause operations comprising:
-
storing addressable blocks of data in the storage device in stripes, wherein each stripe includes a plurality of data blocks for one of the addressable blocks and at least one checksum block including checksum data derived from the data blocks for the addressable block stored in the stripe having the addressable block; receiving a write request to modify data in one of the addressable blocks in the storage device; performing the write and updating the at least one checksum block in the stripe having the modified addressable block, wherein the modified data and the updated at least one checksum block resulting from the write are destaged to the storage device; indicating in a recently modified list in the memory, the addressable block modified in response to the write request; performing an error checking operation on the stripes of the addressable blocks by performing; determining whether the stripe having the addressable block is indicated in the recently modified list; using the at least one checksum block for the stripe having the addressable block to correct the error in response to determining that the addressable block of the stripe is indicated in the recently modified list; and indicating the stripe having the addressable block as having an uncorrectable error in response to determining that the addressable block of the stripe is not indicated in the recently modified list. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An article of manufacture comprising a non-transitory computer readable storage medium having code executed to cause operations with respect to a storage device and a memory and to cause operations comprising:
-
storing addressable blocks of data in the storage in stripes, wherein each stripe includes a plurality of data blocks for one of the addressable blocks and at least one checksum block including checksum data derived from the data blocks for the addressable block; receiving a write request to modify data in one of the addressable blocks; performing the write and updating the checksum data in the stripe having the modified addressable block; indicating to perform an error checking operation on the stripe for the modified addressable block in response to the write request by indicating the modified addressable block in a modified list in the memory, wherein the error checking operation processes the modified list to read the data blocks and the checksum data in the stripe to determine if the checksum data for the addressable blocks in the modified list is accurate; initiating an error handling operation in response to determining that the checksum data is not accurate; initiating a background operation to read the data blocks and the at least one checksum block in each stripe for a plurality of addressable blocks to determine if the checksum data is accurate, wherein the plurality of addressable blocks on which to perform the background operation includes modified and unmodified data; and alternating between processing m stripes as part of the background operation and n stripes as part of the error checking operation processing modified addressable blocks indicated in the modified list, wherein m is greater than n.
-
-
9. A system in communication with a storage device, comprising:
-
a memory; storage manager code enabled to cause operations, the operations comprising; storing addressable blocks of data in the storage device in stripes, wherein each stripe includes a plurality of data blocks for one of the addressable blocks and at least one checksum block including checksum data derived from the data blocks for the addressable block stored in the stripe having the addressable block; receiving a write request to modify data in one of the addressable blocks in the storage device; performing the write and updating the at least one checksum block in the stripe having the modified addressable block, wherein the modified data and the updated at least one checksum block resulting from the write are destaged to the storage device; indicating in a recently modified list in the memory the addressable block modified in response to the write request; performing an error checking operation on the stripes of the addressable blocks by performing; determining whether the stripe having the addressable block is indicated in the recently modified list; using the at least one checksum block for the stripe having the addressable block to correct the error in response to determining that the addressable block of the stripe is indicated in the recently modified list; and indicating the stripe having the addressable block as having an uncorrectable error in response to determining that the addressable block of the stripe is not indicated in the recently modified list. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A system in communication with a storage, comprising:
-
a memory; storage manager code enabled to cause operations, the operations comprising; storing addressable blocks of data in the storage in stripes, wherein each stripe includes a plurality of data blocks for one of the addressable blocks and at least one checksum block including checksum data derived from the data blocks for the addressable block; receiving a write request to modify data in one of the addressable blocks; performing the write and updating the checksum data in the stripe having the modified addressable block; indicating to perform an error checking operation on the stripe for the modified addressable block in response to the write request by indicating the modified addressable block in a modified list in the memory, wherein the error checking operation processes the modified list to read the data blocks and the checksum data in the stripe to determine if the checksum data for addressable blocks in the modified list is accurate; initiating an error handling operation in response to determining that the checksum data is not accurate; initiating a background operation to read the data blocks and the at least one checksum block in each stripe for a plurality of addressable blocks to determine if the checksum data is accurate, wherein the plurality of addressable blocks on which to perform the background operation includes modified and unmodified data; and alternating between processing m stripes as part of the background operation and n stripes as part of the error checking operation processing modified addressable blocks indicated in the modified list, wherein m is greater than n.
-
-
16. A method, comprising:
-
storing addressable blocks of data in a storage device in stripes, wherein each stripe includes a plurality of data blocks for one of the addressable blocks and at least one checksum block including checksum data derived from the data blocks for the addressable block stored in the stripe having the addressable block; receiving a write request to modify data in one of the addressable blocks in the storage device; performing the write and updating the at least one checksum block in the stripe having the modified addressable block, wherein the modified data and the updated at least one checksum block resulting from the write are destaged to the storage device; indicating in a recently modified list in the memory the addressable block recently modified in response to the write request; performing an error checking operation on the stripes of the addressable blocks by performing; determining whether the stripe having the addressable block is indicated in the recently modified list; using the at least one checksum block for the stripe having the addressable block to correct the error in response to determining that the addressable block of the stripe is indicated in the recently modified list; and indicating the stripe having the addressable block as having an uncorrectable error in response to determining that the addressable block of the stripe is not indicated in the recently modified list. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A method, comprising:
-
storing addressable blocks of data in a storage in stripes, wherein each stripe includes a plurality of data blocks for one of the addressable blocks and at least one checksum block including checksum data derived from the data blocks for the addressable block; receiving a write request to modify data in one of the addressable blocks; performing the write and updating the checksum data in the stripe having the modified addressable block; indicating to perform an error checking operation on the stripe for the modified addressable block in response to the write request by indicating the modified addressable block in a modified list in the memory, wherein the error checking operation reads the data blocks and the checksum data in the stripe to determine if the checksum data for addressable blocks in the modified list is accurate; initiating an error handling operation in response to determining that the checksum data is not accurate; initiating a background operation to read the data blocks and the at least one checksum block in each stripe for a plurality of addressable blocks to determine if the checksum data is accurate, wherein the plurality of addressable blocks on which to perform the background operation includes modified and unmodified data; and alternating between processing m stripes as part of the background operation and n stripes as part of the error checking operation processing modified addressable blocks indicated in the modified list, wherein m is greater than n.
-
Specification