IP Library Granted Patent US 11,288,134
Granted Patent B2
US 11,288,134 · App. 16/814,505 · Granted Mar 29, 2022

Pausing and resuming copying of snapshots from a local snapshot lineage to at least one cloud snapshot lineage

Inventors: Mithun Mahendra Varma (Bangalore, IN); Shanmuga Anand Gunasekaran (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F11/1464G06F16/128G06F16/185G06F2201/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 11,288,134
App. No.
16/814,505
Granted
Mar 29, 2022
Kind
B2
Abstract

An apparatus comprises a processing device configured to identify a snapshot lineage comprising (i) a local snapshot lineage stored on a storage system and (ii) a cloud snapshot lineage stored on cloud storage of at least one cloud external to the storage system. The processing device is also configured to select a snapshot to be copied from the local snapshot lineage to the cloud snapshot lineage, and to copy the selected snapshot by copying data stored in the local snapshot lineage to a checkpointing cache and, responsive to determining that the copied data in the checkpointing cache has reached a specified checkpoint size, moving the copied data from the checkpointing cache to the cloud storage. The processing device is further configured to maintain, in the checkpointing cache, checkpointing information utilizable for pausing and resuming copying of the selected snapshot from the local snapshot lineage to the cloud snapshot lineage.

Claims (42)

1. An apparatus comprising:

at least one processing device comprising a hardware processor coupled to a memory;

the at least one processing device being configured:

to identify a snapshot lineage comprising one or more snapshots of a storage volume stored on a storage system, the snapshot lineage comprising (i) a local snapshot lineage stored on at least one of one or more storage devices of the storage system and (ii) two or more cloud snapshot lineages stored on cloud storage of two or more different clouds external to the storage system, wherein a first one of the two or more cloud snapshot lineages stored on first cloud storage of a first cloud external to the storage system comprises a first subset of the two or more snapshots of the storage volume and a second one of the two or more cloud snapshot lineages stored on second cloud storage of a second cloud external to the storage system comprises a second subset of the two or more snapshots of the storage volume, the second subset of the two or more snapshots of the storage volume being different than the first subset of the two or more snapshots of the storage volume;

to select at least one snapshot that is to be copied from the local snapshot lineage to at least one of the two or more cloud snapshot lineages;

to copy the selected at least one snapshot from the local snapshot lineage to the at least one cloud snapshot lineage by copying data of the selected at least one snapshot stored in the local snapshot lineage to a checkpointing cache comprising a local memory associated with the storage system and, responsive to determining that the copied data of the selected at least one snapshot in the checkpointing cache has reached a specified checkpoint size, moving the copied data of the selected at least one snapshot from the checkpointing cache to the cloud storage on which the at least one cloud snapshot lineage is stored; and

to maintain, in the checkpointing cache, checkpointing information utilizable for at least one of pausing and resuming copying of the selected at least one snapshot from the local snapshot lineage to the at least one cloud snapshot lineage, the checkpointing information comprising first metadata characterizing progress of copying data of the selected at least one snapshot from the local snapshot lineage to the checkpointing cache and second metadata characterizing progress of moving the copied data of the selected at least one snapshot from the checkpointing cache to the at least one cloud snapshot lineage.

2. The apparatus of claim 1 wherein copying the selected at least one snapshot from the local snapshot lineage to the at least one cloud snapshot lineage comprises resuming copying of data of the selected at least one snapshot from the local snapshot lineage to the checkpointing cache based at least in part on the first metadata.

3. The apparatus of claim 2 wherein the first metadata specifies a last logical block address and size of data of the selected at least one snapshot copied from the local snapshot lineage to the checkpointing cache.

4. The apparatus of claim 1 wherein copying the selected at least one snapshot from the local snapshot lineage to the at least one cloud snapshot lineage comprises resuming moving of the copied data of the selected at least one snapshot from the checkpointing cache to the cloud storage on which the at least one cloud snapshot lineage is stored based at least in part on the second metadata.

5. The apparatus of claim 4 wherein the second metadata specifies a last committed checkpoint, the last committed checkpoint comprising a portion of the copied data in the checkpointing cache having the specified checkpoint size that has been successfully written to the cloud storage on which the at least one cloud snapshot lineage is stored.

6. The apparatus of claim 5 wherein the second metadata further specifies a current checkpoint, the current checkpoint comprising a portion of the copied data in the checkpointing cache that is currently being written to the cloud storage on which the at least one cloud snapshot lineage is stored.

7. The apparatus of claim 6 wherein resuming moving of the copied data of the selected at least one snapshot from the checkpointing cache to the cloud storage on which the at least one cloud snapshot lineage is stored based at least in part on the second metadata comprises determining if the current checkpoint is the last committed checkpoint.

8. The apparatus of claim 7 wherein, responsive to determining that the current checkpoint is the last committed checkpoint, the at least one processing device is configured to create a new checkpoint in the checkpointing cache.

9. The apparatus of claim 7 wherein, responsive to determining that the current checkpoint is not the last committed checkpoint, the at least one processing device is configured to remove from the cloud storage on which the at least one cloud snapshot lineage is stored previously-written data of the current checkpoint and to restart writing of data of the current checkpoint to the cloud storage on which the at least one cloud snapshot lineage is stored.

10. The apparatus of claim 1 wherein moving the copied data of the selected at least one snapshot from the checkpointing cache to the cloud storage on which the at least one cloud snapshot lineage is stored comprises:

creating a given checkpoint comprising the copied data in the checkpointing cache having the specified checkpoint size;

writing data of the given checkpoint to the cloud storage on which the at least one cloud snapshot lineage is stored; and

responsive to successfully writing the data of the checkpoint to the cloud storage on which the at least one cloud snapshot lineage is stored, marking the given checkpoint as committed.

11. The apparatus of claim 1 wherein moving the copied data of the selected at least one snapshot from the checkpointing cache to the cloud storage on which the at least one cloud snapshot lineage is stored comprises issuing a checkpoint commit responsive to determining that the copied data in the checkpointing cache has reached the specified checkpoint size.

12. The apparatus of claim 11 wherein issuing the checkpoint commit comprises saving the copied data in the checkpointing cache to the cloud storage on which the at least one cloud snapshot lineage is stored as a set of one or more cloud objects in the at least one cloud snapshot lineage.

13. The apparatus of claim 1 wherein the storage volume comprises one of:

at least one of the one or more storage devices of the storage system;

a given logical unit provided by at least one of the one or more storage devices;

a consistency group comprising a set of two or more logical units provided by at least one of the one or more storage devices; and

an access-restricted storage group comprising a set of two or more logical units provided by at least one of the one or more storage devices where access to the storage group is limited to one or more designated host devices.

14. The apparatus of claim 1 wherein the at least one processing device is part of the storage system.

15. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to perform steps of:

identifying a snapshot lineage comprising one or more snapshots of a storage volume stored on a storage system, the snapshot lineage comprising (i) a local snapshot lineage stored on at least one of one or more storage devices of the storage system and (ii) two or more cloud snapshot lineages stored on cloud storage of two or more different clouds external to the storage system, wherein a first one of the two or more cloud snapshot lineages stored on first cloud storage of a first cloud external to the storage system comprises a first subset of the two or more snapshots of the storage volume and a second one of the two or more cloud snapshot lineages stored on second cloud storage of a second cloud external to the storage system comprises a second subset of the two or more snapshots of the storage volume, the second subset of the two or more snapshots of the storage volume being different than the first subset of the two or more snapshots of the storage volume;

selecting at least one snapshot that is to be copied from the local snapshot lineage to at least one of the two or more cloud snapshot lineages;

copying the selected at least one snapshot from the local snapshot lineage to the at least one cloud snapshot lineage by copying data of the selected at least one snapshot stored in the local snapshot lineage to a checkpointing cache comprising a local memory associated with the storage system and, responsive to determining that the copied data of the selected at least one snapshot in the checkpointing cache has reached a specified checkpoint size, moving the copied data of the selected at least one snapshot from the checkpointing cache to the cloud storage on which the at least one cloud snapshot lineage is stored; and

maintaining, in the checkpointing cache, checkpointing information utilizable for at least one of pausing and resuming copying of the selected at least one snapshot from the local snapshot lineage to the at least one cloud snapshot lineage, the checkpointing information comprising first metadata characterizing progress of copying data of the selected at least one snapshot from the local snapshot lineage to the checkpointing cache and second metadata characterizing progress of moving the copied data of the selected at least one snapshot from the checkpointing cache to the at least one cloud snapshot lineage.

16. The computer program product of claim 15 wherein copying the selected at least one snapshot from the local snapshot lineage to the at least one cloud snapshot lineage comprises resuming copying of data of the selected at least one snapshot from the local snapshot lineage to the checkpointing cache based at least in part on the first metadata, and wherein the first metadata specifies a last logical block address and size of data of the selected at least one snapshot copied from the local snapshot lineage to the checkpointing cache.

17. The computer program product of claim 15 wherein copying the selected at least one snapshot from the local snapshot lineage to the at least one cloud snapshot lineage comprises resuming moving of the copied data of the selected at least one snapshot from the checkpointing cache to the cloud storage on which the at least one cloud snapshot lineage is stored based at least in part on the second metadata, and wherein the second metadata specifies a last committed checkpoint, the last committed checkpoint comprising a portion of the copied data in the checkpointing cache having the specified checkpoint size that has been successfully written to the cloud storage on which the at least one cloud snapshot lineage is stored.

18. A method comprising steps of:

identifying a snapshot lineage comprising one or more snapshots of a storage volume stored on a storage system, the snapshot lineage comprising (i) a local snapshot lineage stored on at least one of one or more storage devices of the storage system and (ii) two or more cloud snapshot lineages stored on cloud storage of two or more different clouds external to the storage system, wherein a first one of the two or more cloud snapshot lineages stored on first cloud storage of a first cloud external to the storage system comprises a first subset of the two or more snapshots of the storage volume and a second one of the two or more cloud snapshot lineages stored on second cloud storage of a second cloud external to the storage system comprises a second subset of the two or more snapshots of the storage volume, the second subset of the two or more snapshots of the storage volume being different than the first subset of the two or more snapshots of the storage volume;

selecting at least one snapshot that is to be copied from the local snapshot lineage to at least one of the two or more cloud snapshot lineages;

copying the selected at least one snapshot from the local snapshot lineage to the at least one cloud snapshot lineage by copying data of the selected at least one snapshot stored in the local snapshot lineage to a checkpointing cache comprising a local memory associated with the storage system and, responsive to determining that the copied data of the selected at least one snapshot in the checkpointing cache has reached a specified checkpoint size, moving the copied data of the selected at least one snapshot from the checkpointing cache to the cloud storage on which the at least one cloud snapshot lineage is stored; and

maintaining, in the checkpointing cache, checkpointing information utilizable for at least one of pausing and resuming copying of the selected at least one snapshot from the local snapshot lineage to the at least one cloud snapshot lineage, the checkpointing information comprising first metadata characterizing progress of copying data of the selected at least one snapshot from the local snapshot lineage to the checkpointing cache and second metadata characterizing progress of moving the copied data of the selected at least one snapshot from the checkpointing cache to the at least one cloud snapshot lineage;

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

19. The method of claim 18 wherein copying the selected at least one snapshot from the local snapshot lineage to the at least one cloud snapshot lineage comprises resuming copying of data of the selected at least one snapshot from the local snapshot lineage to the checkpointing cache based at least in part on the first metadata, and wherein the first metadata specifies a last logical block address and size of data of the selected at least one snapshot copied from the local snapshot lineage to the checkpointing cache.

20. The method of claim 18 wherein copying the selected at least one snapshot from the local snapshot lineage to the at least one cloud snapshot lineage comprises resuming moving of the copied data of the selected at least one snapshot from the checkpointing cache to the cloud storage on which the at least one cloud snapshot lineage is stored based at least in part on the second metadata, and wherein the second metadata specifies a last committed checkpoint, the last committed checkpoint comprising a portion of the copied data in the checkpointing cache having the specified checkpoint size that has been successfully written to the cloud storage on which the at least one cloud snapshot lineage is stored.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2020
From: VARMA, MITHUN MAHENDRA; GUNASEKARAN, SHANMUGA ANAND
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052079/0067 →
Continuity (1)
Related Publication 20210286683A1 · Sep 16, 2021