IP Library Granted Patent US 8,327,250
Granted Patent B1
US 8,327,250 · App. 12/427,611 · Granted Dec 4, 2012

Data integrity and parity consistency verification

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,327,250
App. No.
12/427,611
Granted
Dec 4, 2012
Kind
B1
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.

Claims (58)

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. The method of claim 1 , further comprising:

computing the row parity algebraic signature for the one or more data blocks and the row parity block.

3. The method of claim 2 , wherein computing the row parity algebraic signature comprises applying a row parity algebraic signature function to data in each block.

4. The method of claim 1 , further comprising:

computing the diagonal parity algebraic signature torr the one or more data blocks, the row parity block and the diagonal parity block.

5. The method of claim 4 , wherein computing the diagonal parity algebraic signature comprises applying a diagonal parity algebraic signature function to data in each block.

6. The method of claim 1 , wherein logically combining the algebraic signatures comprises applying an exclusive-or (XOR) function to the algebraic signatures.

7. The method of claim 1 , further comprising:

comparing the algebraic signatures for each block with corresponding algebraic signatures stored within a checksum area of each block.

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.

9. The system of claim 8 , wherein computing the row parity algebraic signature comprises applying a row parity algebraic signature function to data in each block.

10. The system of claim 8 , wherein computing the diagonal parity algebraic signature comprises applying a diagonal parity algebraic signature function to data in each block.

11. The system of claim 8 , wherein logically combining the algebraic signatures comprises applying an exclusive-or (XOR) function to the algebraic signatures.

12. The system of claim 8 , wherein the storage server is further configured to compare the algebraic signatures for each block with corresponding algebraic signatures stored within a checksum area of each block.

13. The system of claim 8 , wherein the signature encoder comprises a dongle.

14. The system of claim 8 , herein the signature encoder comprises a shelf controller.

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.

16. The storage server of claim 15 , wherein logically combining the algebraic signatures comprises applying an exclusive-or (XOR) function to the algebraic signatures.

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.

18. The method of claim 17 , wherein verifying data integrity and parity consistency comprises:

logically combining the row parity algebraic signature with row parity algebraic signatures of one or more other data blocks to generate a first result;

comparing the first result to a row parity algebraic signature for a row parity block;

logically combining the diagonal parity algebraic signature with diagonal parity algebraic signatures of the one or more other data blocks and the row parity block to generate a second result; and

comparing the second result to a diagonal parity algebraic signature for the diagonal parity block.

19. The method of claim 17 , further comprising:

determining that the data integrity and parity consistency are valid if the first result matches the row parity algebraic signature for the row parity block and the second result matches the diagonal parity algebraic signature for the diagonal parity block.

Assignments (2)
CHANGE OF NAME Recorded Jan 15, 2014
From: NETWORK APPLIANCE, INC
To: NETAPP, INC.
Reel/Frame 031978/0526 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2009
From: GOEL, ATUL
To: NETAPP, INC., A CORPORATION OF DELAWARE
Reel/Frame 022627/0469 →