IP Library › Granted Patent US 10,372,548
Granted Patent B2
US 10,372,548 · App. 15/354,952 · Granted Aug 6, 2019

Copying data from multiple point-in-time copies to a log storage to use to roll-back a source storage

Inventors: Theresa M. Brown (Tucson, AZ); Nicolas M. Clayton (Cheshire, GB); Gregory E. McBride (Vail, AZ); Carol S. Mellgren (Tucson, AZ); David C. Reed (Tucson, AZ)
Assignee: International Business Machines Corporation
G06F11/1448G06F11/1471G06F2201/84
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 10,372,548
App. No.
15/354,952
Granted
Aug 6, 2019
Kind
B2
Abstract

Provided are a computer program product, system, and method for copying data from multiple point-in-time copies to a log storage to use to roll-back a source storage managing point-in-time copies of a source storage. A plurality of point-in-time copies of a source storage at different point-in-times are established. In response to receiving writes to the source storage after establishing each of the point-in-time copies, point-in-time data in the source storage is copied, before being updated by the received writes, to a log storage, wherein the log storage stores point-in-time data for multiple of the point-in-time copies. The log storage is used to roll-back the source storage to a selected point-in-time of one of the point-in-time copies.

Claims (61)

1. A computer program product for managing point-in-time copies of a source storage, wherein the computer program product comprises a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause operations, the operations comprising:

establishing a plurality of point-in-time copies of a source storage at different point-in-times;

in response to receiving writes to the source storage after establishing each of the point-in-time copies, copying point-in-time data in the source storage, before being updated by the received writes, to a log storage, wherein the log storage stores point-in-time data for multiple of the point-in-time copies;

for each of the established point-in-time copies, including in recovery metadata an entry including a first location and a last location in the log storage having point-in-time data for the point-in-time copy; and

copying the point-in-time data to the source storage from the first location through the last location in the log storage indicated in the entry in the recovery metadata for each point-in-time copy to roll-back the source storage to a selected point-in-time of one of the point-in-time copies.

2. The computer program product of claim 1 , wherein for each instance of the point-in-time data copied to the log storage, including metadata in the log storage indicating a source storage location in the source storage from which the point-in-time data was copied, wherein the point-in-time data is copied from the log storage to the source storage location in the source storage indicated in the log storage for the point-in-time data.

3. The computer program product of claim 1 , wherein the point-in-time data is written to the log storage at sequential storage locations in an order in which the point-in-time data was updated at the source storage, wherein copying the point-in-time data to the source storage comprises applying the point-in-time data from a most recent written location in the log storage through sequential locations in the log storage having point-in-time data from a most recent point-in-time copy through the point-in-time copy of the selected point-in-time.

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

creating a recovery point-in-time copy of the source storage; and

copying, to a recovery storage for the recovery point-in-time copy, the point-in-time data in the log storage from point-in-time copies for points-in-time greater than and equal to the selected point-in-time.

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

indicating, in a change recording data structure for the recovery point-in-time copy, that storage locations in the recovery storage to which the point-in-time data was applied have been updated.

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

determining whether data in the recovery storage is valid after copying the point-in-time data in the log storage from all the point-in-time copies used in the roll-back of the source storage; and

in response to determining that the data in the recovery storage is not valid, performing:

selecting a new point-in-time for one of the point-in-time copies earlier in time than a point-in-time used to create the recovery point-in-time;

creating a new recovery point-in-time copy of the source storage having a new recovery storage;

copying point-in-time data from storage locations in the source storage that are updated after creating the new recovery point-in-time copy to the new recovery storage; and

applying, to the new recovery storage, the point-in-time data in the log storage from point-in-time copies for points-in-time greater than and equal to the selected new point-in-time.

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

determining whether data in the recovery storage is valid after copying the point-in-time data in the log storage from all the point-in-time copies used in the roll-back of the source storage;

in response to determining that the data in the recovery storage is valid, performing:

selecting a new recovery point-in-time greater in time than a recovery point-in-time;

creating a new recovery point-in-time copy of the source storage having a new recovery storage;

copying point-in-time data from storage locations in the source storage that are updated after creating the new recovery point-in-time copy to the new recovery storage; and

applying, to the new recovery storage, the point-in-time data in the log storage from point-in-time copies for points-in-time greater than and equal to the selected new recovery point-in-time.

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

iteratively creating recovery point-in-time copies of the source storage for recovery point-in-times by applying, to a recovery storage for each of the recovery point-in-time copies, the point-in-time data in the log storage from point-in-time copies for points-in-time greater than and equal to one of the recovery point-in-times to determine one of the recovery point-in-time copies having valid data in the recovery storage as of a determined recovery point-in-time between two recovery point-in-time copies having invalid data; and

applying the point-in-time data from the recovery storage for the determined recovery point-in-time copy to the source storage to return to the determined recovery point-in-time at which the source storage had valid data.

9. A system for managing point-in-time copies of a source storage, comprising:

processor; and

a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause operations, the operations comprising:

establishing a plurality of point-in-time copies of a source storage at different point-in-times;

in response to receiving writes to the source storage after establishing each of the point-in-time copies, copying point-in-time data in the source storage, before being updated by the received writes, to a log storage, wherein the log storage stores point-in-time data for multiple of the point-in-time copies;

for each of the established point-in-time copies, including in recovery metadata an entry including a first location and a last location in the log storage having point-in-time data for the point-in-time copy; and

copying the point-in-time data to the source storage from the first location through the last location in the log storage indicated in the entry in the recovery metadata for each point-in-time copy to roll-back the source storage to a selected point-in-time of one of the point-in-time copies.

10. The system of claim 9 , wherein for each instance of the point-in-time data copied to the log storage, including metadata in the log storage indicating a source storage location in the source storage from which the point-in-time data was copied, wherein the point-in-time data is copied from the log storage to the source storage location in the source storage indicated in the log storage for the point-in-time data.

11. The system of claim 9 , wherein the point-in-time data is written to the log storage at sequential storage locations in an order in which the point-in-time data was updated at the source storage, wherein the copying the point-in-time data to the source storage comprises applying the point-in-time data from a most recent written location in the log storage through sequential locations in the log storage having point-in-time data from a most recent point-in-time copy through the point-in-time copy of the selected point-in-time.

12. The system of claim 9 , wherein the operations further comprise:

creating a recovery point-in-time copy of the source storage; and

copying, to a recovery storage for the recovery point-in-time copy, the point-in-time data in the log storage from point-in-time copies for points-in-time greater than and equal to the selected point-in-time.

13. The system of claim 12 , wherein the operations further comprise:

indicating, in a change recording data structure for the recovery point-in-time copy, that storage locations in the recovery storage to which the point-in-time data was applied have been updated.

14. The system of claim 9 , wherein the operations further comprise:

iteratively creating recovery point-in-time copies of the source storage for recovery point-in-times by applying, to a recovery storage for each of the recovery point-in-time copies, the point-in-time data in the log storage from point-in-time copies for points-in-time greater than and equal to one of the recovery point-in-times to determine one of the recovery point-in-time copies having valid data in the recovery storage as of a determined recovery point-in-time between two recovery point-in-time copies having invalid data; and

applying the point-in-time data from the recovery storage for the determined recovery point-in-time copy to the source storage to return to the determined recovery point-in-time at which the source storage had valid data.

15. A method for managing point-in-time copies of a source storage, comprising:

establishing a plurality of point-in-time copies of a source storage at different point-in-times;

in response to receiving writes to the source storage after establishing each of the point-in-time copies, copying point-in-time data in the source storage, before being updated by the received writes, to a log storage, wherein the log storage stores point-in-time data for multiple of the point-in-time copies;

for each of the established point-in-time copies, including in recovery metadata an entry including a first location and a last location in the log storage having point-in-time data for the point-in-time copy; and

copying the point-in-time data to the source storage from the first location through the last location in the log storage indicated in the entry in the recovery metadata for each point-in-time copy to roll-back the source storage to a selected point-in-time of one of the point-in-time copies.

16. The method of claim 15 , wherein for each instance of the point-in-time data copied to the log storage, including metadata in the log storage indicating a source storage location in the source storage from which the point-in-time data was copied, wherein the point-in-time data is copied from the log storage to the source storage location in the source storage indicated in the log storage for the point-in-time data.

17. The method of claim 15 , wherein the point-in-time data is written to the log storage at sequential storage locations in an order in which the point-in-time data was updated at the source storage, wherein the copying the point-in-time data to the source storage comprises applying the point-in-time data from a most recent written location in the log storage through sequential locations in the log storage having point-in-time data from a most recent point-in-time copy through the point-in-time copy of the selected point-in-time.

18. The method of claim 15 , further comprising:

creating a recovery point-in-time copy of the source storage; and

copying, to a recovery storage for the recovery point-in-time copy, the point-in-time data in the log storage from point-in-time copies for points-in-time greater than and equal to the selected point-in-time.

19. The method of claim 18 , further comprising:

indicating, in a change recording data structure for the recovery point-in-time copy, that storage locations in the recovery storage to which the point-in-time data was applied have been updated.

20. The method of claim 15 , further comprising:

iteratively creating recovery point-in-time copies of the source storage for recovery point-in-times by applying, to a recovery storage for each of the recovery point-in-time copies, the point-in-time data in the log storage from point-in-time copies for points-in-time greater than and equal to one of the recovery point-in-times to determine one of the recovery point-in-time copies having valid data in the recovery storage as of a determined recovery point-in-time between two recovery point-in-time copies having invalid data; and

applying the point-in-time data from the recovery storage for the determined recovery point-in-time copy to the source storage to return to the determined recovery point-in-time at which the source storage had valid data.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE FOR THE FIRST INVENTOR PREVIOUSLY RECORDED AT REEL: 040401 FRAME: 040401. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 8, 2016
From: BROWN, THERESA M.; CLAYTON, NICOLAS M.; MCBRIDE, GREGORY E.; MELLGREN, CAROL S.; REED, DAVID C.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040852/0769 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2016
From: BROWN, THERESA M.; CLAYTON, NICOLAS M.; MCBRIDE, GREGORY E.; MELLGREN, CAROL S.; REED, DAVID C.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040401/0497 →
Continuity (1)
Related Publication 20180137017A1 · May 17, 2018