Data integrity and parity consistency verification
First Claim
1. A method comprising:
- retrieving, by a storage server, a row parity algebraic signature and a diagonal parity algebraic signature for each of;
one or more data blocks, a row parity block and a diagonal parity block;
logically combining the row parity algebraic signatures of the one or more data blocks to generate a first result;
comparing the first result to the retrieved row parity algebraic signature for the row parity block;
aligning a plurality of sub-chunks of the one or more data blocks, the row parity block and the diagonal parity block in a stripe across a plurality of mass storage devices, and circularly shifting the sub-chunks such that sub-chunks corresponding to a diagonal parity set are located at a same offset from a start of their block;
logically combining the diagonal parity algebraic signatures of the one or more data blocks and the row parity block to generate a second result;
comparing the second result to the retrieved diagonal parity algebraic signature for the diagonal parity block; and
verifying data integrity and parity consistency for data in the one or more data blocks, row parity block and diagonal parity block if the first result matches the row parity algebraic signature and the second result matches the diagonal parity algebraic signature.
2 Assignments
0 Petitions
Accused Products
Abstract
Verifying data integrity and parity consistency of data blocks in an array of mass storage devices includes retrieving a row parity algebraic signature and a diagonal parity algebraic signature for one or more data blocks, a row parity block and a diagonal parity block. The row parity algebraic signatures of the one or more data blocks are logically combined to generate a first result and the first result is compared to the retrieved row parity algebraic signature for the row parity block. The diagonal parity algebraic signatures of the one or more data blocks and the row parity block are logically combined to generate a second result and the second result is compared to the retrieved diagonal parity algebraic signature for the diagonal parity block.
31 Citations
19 Claims
-
1. A method comprising:
-
retrieving, by a storage server, a row parity algebraic signature and a diagonal parity algebraic signature for each of;
one or more data blocks, a row parity block and a diagonal parity block;logically combining the row parity algebraic signatures of the one or more data blocks to generate a first result; comparing the first result to the retrieved row parity algebraic signature for the row parity block; aligning a plurality of sub-chunks of the one or more data blocks, the row parity block and the diagonal parity block in a stripe across a plurality of mass storage devices, and circularly shifting the sub-chunks such that sub-chunks corresponding to a diagonal parity set are located at a same offset from a start of their block; logically combining the diagonal parity algebraic signatures of the one or more data blocks and the row parity block to generate a second result; comparing the second result to the retrieved diagonal parity algebraic signature for the diagonal parity block; and verifying data integrity and parity consistency for data in the one or more data blocks, row parity block and diagonal parity block if the first result matches the row parity algebraic signature and the second result matches the diagonal parity algebraic signature. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
-
an array of mass storage devices; a signature encoder, coupled to the array of mass storage devices, and configured to; compute a row parity algebraic signature for one or more data blocks and a row parity block; compute a diagonal parity algebraic signature for the one or more data blocks, the row parity block and a diagonal parity block, wherein computing the diagonal parity algebraic signature comprises aligning a plurality of sub-chunks of the one or more data blocks, the row parity block and the diagonal parity block in a stripe across a plurality of mass storage devices, and circularly shifting the sub-chunks such that sub-chunks corresponding to a diagonal parity set are located at a same offset from a start of their block; and a storage server, coupled to the array of mass storage devices, and configured to; retrieve the row parity algebraic signature and the diagonal parity algebraic signature for the one or more data blocks, the row parity block and the diagonal parity block; logically combine the row parity algebraic signatures of the one or more data blocks to generate a first result; compare the first result to the retrieved row parity algebraic signature for the row parity block; logically combine the diagonal parity algebraic signatures of the one or more data blocks and the row parity block to generate a second result; compare the second result to the retrieved diagonal parity algebraic signature for the diagonal parity block; and verify data integrity and parity consistency for data in the one or more data blocks, row parity block and diagonal parity block if the first result matches the row parity algebraic signature and the second result matches the diagonal parity algebraic signature. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A storage server comprising:
-
a processor unit; and a memory, coupled to the processor unit, storing instructions which, when executed by the processor unit, cause the system to; retrieve a row parity algebraic signature and a diagonal parity algebraic signature for one or more data blocks, a row parity block and a diagonal parity block; logically combine the row parity algebraic signatures of the one or more data blocks to generate a first result; compare the first result to the retrieved row parity algebraic signature for the row parity block; align a plurality of sub-chunks of the one or more data blocks, the row parity block and the diagonal parity block in a stripe across a plurality of mass storage devices, wherein aligning the plurality of sub-chunks comprises circularly shifting the sub-chunks such that sub-chunks corresponding to a diagonal parity set are located at a same offset from a start of their block; logically combine the diagonal panty algebraic signatures of the one or more data blocks and the row parity block to generate a second result; compare the second result to the retrieved diagonal parity algebraic signature for the diagonal parity block; and verify data integrity and parity consistency for data in the one or more data blocks, row parity block and diagonal parity block if the first result matches the row parity algebraic signature and the second result matches the diagonal parity algebraic signature. - View Dependent Claims (16)
-
-
17. A method comprising:
-
computing, by a signature encoder, a row parity algebraic signature; computing, by the signature encoder, a diagonal parity algebraic signature for a data block in a mass storage array, wherein the computing the diagonal parity algebraic signature comprises aligning a plurality of sub-chunks of one or more data blocks, a row parity block and a diagonal parity block in a stripe across a plurality of mass storage devices, and circularly shifting the sub-chunks such that sub-chunks corresponding to a diagonal parity set are located at a same offset from a start of their block; sending the row parity algebraic signature and the diagonal parity algebraic signature to a storage server; and verifying data integrity and parity consistency of the data block using the row parity algebraic signature and the diagonal parity algebraic signature. - View Dependent Claims (18, 19)
-
Specification