IP Library Granted Patent US 7,464,125
Granted Patent B1
US 7,464,125 · App. 11/152,996 · Granted Dec 9, 2008

Checking the validity of blocks and backup duplicates of blocks during block reads

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,464,125
App. No.
11/152,996
Granted
Dec 9, 2008
Kind
B1
Abstract

File system coherency of a file system, particularly for system blocks, may be maintained by (i) duplicating and verifying the (system) blocks, (ii) writing (system) blocks as a sequence of atomic commands so that at any given time, there is a valid (system) block on a physical storage device, and/or (iii) defining the file system directory data structure with directory blocks, each of the directory blocks having at least one of a directory entry and a pointer, where updates to the directory data structure are performed atomically.

Claims (47)

1. In a distributed file system in which a block of data is stored on a first non-volatile storage and a backup duplicate of the block of data is stored on a second non-volatile storage, a method for reading the block of data from the first non-volatile storage, the method comprising:

a) determining whether the block of data is valid;

b) in response to determining that the block of data is not valid:

i) determining whether the backup duplicate of the block of data is valid, and

ii) in response to determining that the backup duplicate of the block is valid, using the backup duplicate of the block of data to rewrite the block of data to the first non-volatile storage medium; and

c) in response to determining that the block of data is valid, checking the validity of the backup duplicate of the block of data;

wherein the block of data is stored in a first particular part of the first non-volatile storage, and

wherein the validity of the backup duplicate in the second non-volatile storage is determined using a mapping, in a partition control block of the first non-volatile storage, of the first particular part of the first non-volatile storage to a second particular part of the second non-volatile storage for storing backup duplicates of blocks of data stored in the first particular part of the first non-volatile storage.

2. The method of claim 1 wherein the act of checking the validity of the backup duplicate of the block of data is done asynchronously.

3. The method of claim 1 wherein the act of determining whether the block is valid includes checking a checksum value of the block.

4. The method of claim 1 wherein the act of determining whether the block is valid includes comparing a first stamp at a beginning of the block with a second stamp at an end of the block.

5. The method of claim 4 wherein the second stamp is a predetermined function of the first stamp, and

wherein the act of determining whether the block is valid includes determining whether or not the second stamp is the predetermined function of the first stamp.

6. The method of claim 4 wherein at least one of the first and second stamps is a 64-bit number.

7. The method of claim 1 wherein the first non-volatile storage is part of a first file server and wherein the second non-volatile storage is part of a second file server.

8. The method of claim 7 wherein the first file server is remote from the second file server.

9. A machine readable storage medium having machine readable instructions, the machine readable instructions, when executed by a machine, effecting a method for use in a distributed file system in which a block of data is stored on a first non-volatile storage and a backup duplicate of the block of data is stored on a second non-volatile storage, for reading the block of data from the first non-volatile storage, the method comprising:

a) determining whether the block of data is valid;

b) in response to determining that the block of data is not valid:

i) determining whether the backup duplicate of the block of data is valid, and

ii) in response to determining that the backup duplicate of the block is valid, using the backup duplicate of the block of data to rewrite the block of data to the first non-volatile storage medium;

c) in response to determining that the block of data is valid, checking the validity of the backup, duplicate of the block of data;

wherein the block of data is stored in a first particular part of the first non-volatile storage, and

wherein the validity of the backup duplicate in the second non-volatile storage is determined using a mapping, in a partition control block of the first non-volatile storage, of the first particular part of the first non-volatile storage to a second particular part of the second non-volatile storage for storing backup duplicates of blocks of data stored in the first particular part of the first non-volatile storage.

10. The machine readable medium of claim 9 wherein the act of checking the validity of the backup duplicate of the block of data is done asynchronously.

11. The machine readable medium of claim 9 wherein the act of determining whether the block is valid includes checking a checksum value of the block.

12. The machine readable medium of claim 9 wherein the act of determining whether the block is valid includes comparing a first stamp at a beginning of the block with a second stamp at an end of the block.

13. The machine readable medium of claim 12 wherein the second stamp is a predetermined function of the first stamp, and

wherein the act of determining whether the block is valid includes determining whether or not the second stamp is the predetermined function of the first stamp.

14. The machine readable medium of claim 12 wherein at least one of the first and second stamps is a 64-bit number.

15. The machine readable medium of claim 9 wherein the first non-volatile storage is part of a first file server and wherein the second non-volatile storage is part of a second file server.

16. A file server for use in a distributed file system in which a block of data is stored on a first non-volatile storage of the file server, and in which a backup duplicate of the block of data is stored on a second non-volatile storage of another file server, the file server comprising:

a) the first non-volatile storage; and

b) a processor for reading a block of data from the first non-volatile storage, the processor being adapted for

i) determining whether the block of data is valid;

ii) in response to determining that the block of data is not valid:

A) determining that the backup duplicate of the block of data is valid, and

B) in response to determining that the backup duplicate of the block is valid, using the backup duplicate of the block of data to rewrite the block of data to the first non-volatile storage medium;

iii) in response to determining that the block of data is valid, checking the validity of the backup duplicate of the block of data;

wherein the block of data is stored in a first particular part of the first non-volatile storage, and

wherein the validity of the backup duplicate in the second non-volatile storage is determined using a mapping, in a partition control block of the first non-volatile storage, of the first particular part of the first non-volatile storage to a second particular part of the second non-volatile storage for storing backup duplicates of blocks of data stored in the first particular part of the first non-volatile storage.

17. The file server of claim 16 wherein the processor checks the validity of the backup duplicate of the block of data asynchronously.

18. The file server of claim 16 wherein the block of data includes a checksum value, and wherein the act of determining whether the block is valid includes checking the checksum value of the block of data.

19. The file server of claim 16 wherein the block of data includes a first stamp at its beginning and a second stamp at its end, and wherein act of determining whether the block is valid includes comparing the first stamp with the second stamp.

20. The file server of claim 19 wherein the second stamp is a predetermined function of the first stamp, and

wherein the act of determining whether the block is valid includes determining whether or not the second stamp is the predetermined function of the first stamp.

21. The file server of claim 19 wherein at least one of the first and second stamps is a 64-bit number.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
CORRECTIVE ASSIGNMENT PREVIUOSLY RECORDED ON REEL 027329 FRAME 0001 AND 0044. Recorded May 1, 2012
From: HEWLETT-PACKARD COMPANY
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 028911/0846 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2011
From: HEWLETT-PACKARD COMPANY
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 027329/0044 →
MERGER Recorded Oct 15, 2009
From: IBRIX, INC.
To: HEWLETT-PACKARD COMPANY
Reel/Frame 023373/0391 →
MERGER Recorded Oct 14, 2009
From: INDIA ACQUISITION CORPORATION
To: IBRIX, INC.
Reel/Frame 023364/0621 →