IP Library › Granted Patent US 8,892,941
Granted Patent B2
US 8,892,941 · App. 13/535,253 · Granted Nov 18, 2014

Recovering a volume table and data sets from a corrupted volume

Inventors: Kyle B. Dudgeon (Vail, AZ); Franklin E. McCune (Tucson, AZ); David C. Reed (Tucson, AZ); Max D. Smith (Tucson, AZ)
Assignee: International Business Machines Corporation
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,892,941
App. No.
13/535,253
Granted
Nov 18, 2014
Kind
B2
Abstract

Provided are a computer program product, system, and method for recovering a volume table and data sets from a corrupted volume. Data corruption is detected in a volume having data sets. A volume table having information on the data sets allocated in the volume is diagnosed. A backup volume table comprising a most recent valid backup of the volume table is accessed from a backup of the volume in response to determining that the diagnosed volume table is not valid. Content from the backup volume table is processed to bring to a current state in a recovery volume table for a recovery volume. The data sets in the volume are processed to determine whether they are valid. The valid data sets are moved to the recovery volume. A data recovery operation is initiated for the data sets determined not to be valid.

Claims (102)

1. A computer program for handling data corruption, the computer program product comprising a non-transitory computer readable storage medium having computer readable program code embodied therein that executes to perform operations, the operations comprising:

detecting data corruption of a volume having data sets in a storage device;

diagnosing a volume table having information on the data sets allocated in the volume to determine whether the volume table is valid, wherein the volume table is used to determine the data sets in the volume;

accessing a backup volume table comprising a most recent valid backup of the volume table from a backup of the volume in response to determining that the diagnosed volume table is not valid;

processing content from the backup volume table to bring to a current state in a recovery volume table for a recovery volume;

processing the data sets in the volume to determine whether they are valid;

moving the valid data sets to the recovery volume; and

initiating a data recovery operation for the data sets determined not to be valid.

2. The computer program product of claim 1 , wherein the processing of the content of the backup volume table to bring to the current state in the recovery volume table comprises:

determining data sets in the volume;

determining differences between the determined data sets in the volume and information on the data sets indicated in the content from the backup volume table; and

generating a recovery volume table comprising the content from the backup volume table updated with the determined differences to bring the recovery volume table to the current state.

3. The computer program product of claim 2 , wherein the determined differences comprise information on data sets that were deleted, updated and/or added since a time of the backup volume, wherein generating the recovery volume table comprises:

deleting from the content from the backup volume table information on those data sets that are determined to have been deleted since the time of the backup volume;

adding information to the content from the backup volume table on those data sets that have been added since the time of the backup volume; and

updating information in the content from the backup volume table for those data sets that have been modified to make consistent with the determined data sets.

4. The computer program product of claim 1 , wherein the processing the data sets in the volume to determine whether they are valid comprises:

comparing the data sets with corresponding backup data sets from the backup of the volume, wherein data sets that do not differ from the backup versions of the data sets are valid and wherein differing data sets comprise the data sets that differ from the corresponding backup data sets;

processing the differing data sets to determine whether data in the differing data sets is recoverable; and

moving the differing data sets that are determined to have the data that is recoverable to the recovery volume.

5. The computer program product of claim 4 , wherein the processing of the differing data sets to determine whether they have data that is recoverable comprises:

determining whether at least one data attribute of data in the differing data sets and the corresponding backup data sets is consistent, wherein the data in the differing data sets is determined to be recoverable in response to determining that the at least one attribute is consistent.

6. The computer program product of claim 5 , wherein the processing of the differing data sets to determine whether they have data that is recoverable further comprises:

processing the data set records to determine whether the backup data sets for the differing data sets having the at least one data attribute that is consistent were updated since a time of the backup volume, wherein the data in the differing data sets is determined to be recoverable in response to determining that the corresponding backup data sets were updated.

7. The computer program product of claim 5 , wherein the at least one data attribute comprises a block size, wherein the at least one data attribute of the differing data sets and the corresponding backup data sets are consistent in response to determining that the block size of data in the differing data sets and the corresponding backup data sets match.

8. The computer program product of claim 4 , wherein the operations further comprise:

processing the data records to determine whether the backup data sets corresponding to the differing data sets were updated since a time of the backup volume, wherein the data in the differing data sets is determined to be recoverable in response to determining that the corresponding backup data sets were updated.

9. The computer program product of claim 4 , wherein the operations further comprise:

determining unrecoverable data sets comprising the data sets determined not to be recoverable;

presenting to a user information indicating the unrecoverable data sets with an option to recover from the backup volume;

receiving user selection of at least one unrecoverable data set to recover from the backup volume; and

restoring the at least one selected unrecoverable data set from the corresponding backup data sets to the recovery volume.

10. The computer program product of claim 4 , wherein the operations further comprise:

determining unrecoverable data sets, comprising the data sets determined not to be recoverable, to recover;

determining valid portions of the determined unrecoverable data sets;

moving the determined valid portions of the determined unrecoverable data sets to the recovery volume; and

erasing the unrecoverable data sets not moved to the recovery volume remaining in the volume in response to the moving to the recovery volume all the valid data sets, the recoverable data sets, and the determined valid portions of the unrecoverable data sets to the recovery volume.

11. The computer program product of claim 10 , wherein the determining the valid portions comprises:

determining blocks in the determined unrecoverable data sets that have a same block size as indicated in the recovery volume table for the blocks in the data set, wherein the valid portions comprise the blocks in the data sets that have the block size indicated in the recovery volume table.

12. The computer program product of claim 1 , wherein the volume table includes a volume table of contents (VTOC) that provides allocation information for data sets in the volume.

13. A system in communication with a storage, comprising:

a processor; and

a computer readable storage medium having computer readable program code embodied therein executed by the processor to perform operations, the operations comprising:

detecting data corruption of a volume having data sets in the storage;

diagnosing a volume table having information on the data sets allocated in the volume to determine whether the volume table is valid, wherein the volume table is used to determine the data sets in the volume;

accessing a backup volume table comprising a most recent valid backup of the volume table from a backup of the volume in response to determining that the diagnosed volume table is not valid;

processing content from the backup volume table to bring to a current state in a recovery volume table for a recovery volume;

processing the data sets in the volume to determine whether they are valid;

moving the valid data sets to the recovery volume; and

initiating a data recovery operation for the data sets determined not to be valid.

14. The system of claim 13 , wherein the processing of the content of the backup volume table to bring to the current state in the recovery volume table comprises:

determining data sets in the volume;

determining differences between the determined data sets in the volume and information on the data sets indicated in the content from the backup volume table; and

generating a recovery volume table comprising the content from the backup volume table updated with the determined differences to bring the recovery volume table to the current state.

15. The system of claim 14 , wherein the determined differences comprise information on data sets that were deleted, updated and/or added since a time of the backup volume, wherein generating the recovery volume table comprises:

deleting from the content from the backup volume table information on those data sets that are determined to have been deleted since the time of the backup volume;

adding information to the content from the backup volume table on those data sets that have been added since the time of the backup volume; and

updating information in the content from the backup volume table for those data sets that have been modified to make consistent with the determined data sets.

16. The system of claim 13 , wherein the processing the data sets in the volume to determine whether they are valid comprises:

comparing the data sets with corresponding backup data sets from the backup of the volume, wherein data sets that do not differ from the backup versions of the data sets are valid and wherein differing data sets comprise the data sets that differ from the corresponding backup data sets;

processing the differing data sets to determine whether data in the differing data sets is recoverable; and

moving the differing data sets that are determined to have the data that is recoverable to the recovery volume.

17. The system of claim 16 , wherein the processing of the differing data sets to determine whether they have data that is recoverable comprises:

determining whether at least one data attribute of data in the differing data sets and the corresponding backup data sets is consistent, wherein the data in the differing data sets is determined to be recoverable in response to determining that the at least one attribute is consistent.

18. The system of claim 17 , wherein the processing of the differing data sets to determine whether they have data that is recoverable further comprises:

processing the data set records to determine whether the backup data sets for the differing data sets having the at least one data attribute that is consistent were updated since a time of the backup volume, wherein the data in the differing data sets is determined to be recoverable in response to determining that the corresponding backup data sets were updated.

19. The system of claim 17 , wherein the at least one data attribute comprises a block size, wherein the at least one data attribute of the differing data sets and the corresponding backup data sets are consistent in response to determining that the block size of data in the differing data sets and the corresponding backup data sets match.

20. The system of claim 16 , wherein the operations further comprise:

determining unrecoverable data sets, comprising the data sets determined not to be recoverable, to recover;

determining valid portions of the determined unrecoverable data sets;

moving the determined valid portions of the determined unrecoverable data sets to the recovery volume; and

erasing the unrecoverable data sets not moved to the recovery volume remaining in the volume in response to the moving to the recovery volume all the valid data sets, the recoverable data sets, and the determined valid portions of the unrecoverable data sets to the recovery volume.

21. A method for handling data corruption, comprising:

detecting data corruption of a volume having data sets in a storage device;

diagnosing a volume table having information on the data sets allocated in the volume to determine whether the volume table is valid, wherein the volume table is used to determine the data sets in the volume;

accessing a backup volume table comprising a most recent valid backup of the volume table from a backup of the volume in response to determining that the diagnosed volume table is not valid;

processing content from the backup volume table to bring to a current state in a recovery volume table for a recovery volume;

processing the data sets in the volume to determine whether they are valid;

moving the valid data sets to the recovery volume; and

initiating a data recovery operation for the data sets determined not to be valid.

22. The method of claim 21 , wherein the processing of the content of the backup volume table to bring to the current state in the recovery volume table comprises:

determining data sets in the volume;

determining differences between the determined data sets in the volume and information on the data sets indicated in the content from the backup volume table; and

generating a recovery volume table comprising the content from the backup volume table updated with the determined differences to bring the recovery volume table to the current state.

23. The method of claim 22 , wherein the determined differences comprise information on data sets that were deleted, updated and/or added since a time of the backup volume, wherein generating the recovery volume table comprises:

deleting from the content from the backup volume table information on those data sets that are determined to have been deleted since the time of the backup volume;

adding information to the content from the backup volume table on those data sets that have been added since the time of the backup volume; and

updating information in the content from the backup volume table for those data sets that have been modified to make consistent with the determined data sets.

24. The method of claim 21 , wherein the processing the data sets in the volume to determine whether they are valid comprises:

comparing the data sets with corresponding backup data sets from the backup of the volume, wherein data sets that do not differ from the backup versions of the data sets are valid and wherein differing data sets comprise the data sets that differ from the corresponding backup data sets;

processing the differing data sets to determine whether data in the differing data sets is recoverable; and

moving the differing data sets that are determined to have the data that is recoverable to the recovery volume.

25. The method of claim 24 , wherein the processing of the differing data sets to determine whether they have data that is recoverable comprises:

determining whether at least one data attribute of data in the differing data sets and the corresponding backup data sets is consistent, wherein the data in the differing data sets is determined to be recoverable in response to determining that the at least one attribute is consistent.

26. The method of claim 25 , wherein the processing of the differing data sets to determine whether they have data that is recoverable further comprises:

processing the data set records to determine whether the backup data sets for the differing data sets having the at least one data attribute that is consistent were updated since a time of the backup volume, wherein the data in the differing data sets is determined to be recoverable in response to determining that the corresponding backup data sets were updated.

27. The method of claim 25 , wherein the at least one data attribute comprises a block size, wherein the at least one data attribute of the differing data sets and the corresponding backup data sets are consistent in response to determining that the block size of data in the differing data sets and the corresponding backup data sets match.

28. The method of claim 24 , wherein the operations further comprise:

determining unrecoverable data sets, comprising the data sets determined not to be recoverable, to recover;

determining valid portions of the determined unrecoverable data sets;

moving the determined valid portions of the determined unrecoverable data sets to the recovery volume; and

erasing the unrecoverable data sets not moved to the recovery volume remaining in the volume in response to the moving to the recovery volume all the valid data sets, the recoverable data sets, and the determined valid portions of the unrecoverable data sets to the recovery volume.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2012
From: DUDGEON, KYLE B.; MCCUNE, FRANKLIN E.; REED, DAVID C.; SMITH, MAX D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 028457/0265 →
Continuity (1)
Related Publication 20140006853A1 · Jan 2, 2014