IP Library Granted Patent US 7,689,877
Granted Patent B2
US 7,689,877 · App. 11/406,756 · Granted Mar 30, 2010

Method and system using checksums to repair data

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 7,689,877
App. No.
11/406,756
Granted
Mar 30, 2010
Kind
B2
Abstract

A method for reconstructing corrupted data, which includes determining a number of non-parity disks (n), selecting a first combination of n-1 non-parity disks, obtaining a first set of physical blocks from the first combination of n-1 non-parity disks, obtaining a parity block associated with the first set of physical blocks, reconstructing a first physical block using the first set of physical blocks and the parity block, combining the first physical block and the first set of physical blocks to obtain a first reconstructed logical block, checksuming the first reconstructed logical block to obtain a first calculated checksum, and determining whether the first calculated checksum is equal to a stored checksum associated with the first reconstructed logical block.

Claims (24)

1. A computer readable medium with software instructions stored thereon to:

determine a number of non-parity disks (n);

select a first combination of n-1 non-parity disks;

obtain a first set of physical blocks from the first combination of n-1 non-parity disks;

obtain a parity block associated with the first set of physical blocks;

reconstruct a first physical block using the first set of physical blocks and the parity block;

combine the first physical block and the first set of physical blocks to obtain a first reconstructed logical block;

checksum the first reconstructed logical block to obtain a first calculated checksum; and

determine whether the first calculated checksum is equal to a stored checksum associated with the first reconstructed logical block.

2. The computer readable medium of claim 1 , further comprising software instructions to: replace a corresponding physical block in a storage pool with the first physical block, if the first calculated checksum is equal to the stored checksum associated with the logical block.

3. The computer readable medium of claim 1 , further comprising software instructions to: if the first calculated checksum is not equal to the stored checksum associated with the logical block: select a second combination of n-1 non-parity disks; obtain a second set of physical blocks from the second combination of n-1 non- parity disks; reconstruct a second physical block using the second set of physical blocks and the parity block; combine the second physical block and the second set of physical blocks to obtain a second reconstructed logical block; checksum the second reconstructed logical block to obtain a second calculated checksum; and determine whether the second calculated checksum is equal to a stored checksum associated with the second reconstructed logical block.

4. The computer readable medium of claim 1 , wherein the stored checksum is stored in a block pointer referencing the logical block.

5. The computer readable medium of claim 1 , wherein the logical block is stored using a RAID scheme.

6. The computer readable medium of claim 1 , wherein the logical block is a data block.

7. The computer readable medium of claim 1 , wherein the logical block is an indirect block.

8. The computer readable medium of claim 1 , wherein the logical block is associated with a file.

9. A system, comprising: a processor; and a computer usable storage medium having computer readable program code embodied therein, the computer readable program code adapted to, when executed by the processor, implements a method, the method comprising: determining a number of non-parity disks (n); selecting a first combination of n-1 non-parity disks; obtaining a first set of physical blocks from the first combination of n-1 non-parity disks; obtaining a parity block associated with the first set of physical blocks; reconstructing a first physical block using the first set of physical blocks and the parity block; combining the first physical block and the first set of physical blocks to obtain a first reconstructed logical block; checksuming the first reconstructed logical block to obtain a first calculated checksum; and determining whether the first calculated checksum is equal to a stored checksum associated with the first reconstructed logical block.

10. The system of claim 9 , the method further comprising: replacing a corresponding physical block in a storage pool with the first physical block, if the first calculated checksum is equal to the stored checksum associated with the logical block.

11. The system of claim 9 , the method further comprising: if the first calculated checksum is not equal to the stored checksum associated with the logical block: selecting a second combination of n-1 non-parity disks; obtaining a second set of physical blocks from the second combination of n-1 non-parity disks; reconstructing a second physical block using the second set of physical blocks and the parity block; combining the second physical block and the second set of physical blocks to obtain a second reconstructed logical block; checksuming the second reconstructed logical block to obtain a second calculated checksum; and determining whether the second calculated checksum is equal to a stored checksum associated with the second reconstructed logical block.

12. The system of claim 9 , wherein the stored checksum is stored in a block pointer referencing the logical block.

13. The system of claim 9 , wherein the logical block is stored using a RAID scheme.

14. The system of claim 9 , wherein the logical block is a data block.

15. The system of claim 9 , wherein the logical block is an indirect block.

16. The system of claim 9 , wherein the logical block is associated with a file.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037306/0268 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2006
From: MOORE, WILLIAM H.; BONWICK, JEFFREY S.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 017799/0648 →