IP Library Granted Patent US 10,911,540
Granted Patent B1
US 10,911,540 · App. 16/814,492 · Granted Feb 2, 2021

Recovering snapshots from a cloud snapshot lineage on cloud storage to a storage system

Inventors: Shanmuga Anand Gunasekaran (Bangalore, IN); Deepak Vokaliga (Hopkinton, MA); Michael Anthony (Wilmington, MA); Mark Aldred (Franklin, MA); Anurag Bhatnagar (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
H04L67/1097G06F9/541
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,911,540
App. No.
16/814,492
Granted
Feb 2, 2021
Kind
B1
Abstract

An apparatus comprises a processing device configured to identify a snapshot lineage comprising snapshots of a given set of storage volumes, the snapshot lineage comprising (i) a local snapshot lineage stored on a storage system and (ii) a cloud snapshot lineage stored on cloud storage of a cloud external to the storage system. The processing device is also configured to select a snapshot to recover from the cloud snapshot lineage to the storage system, to create a set of new storage volumes on the storage system, to generate a recovery map linking each of a set of cloud storage volumes on the cloud storage that comprises data of the selected snapshot to at least one of the new storage volumes, and to recover the selected snapshot from the cloud snapshot lineage by copying data from the set of cloud storage volumes to corresponding linked ones of the new storage volumes.

Claims (52)

1. An apparatus comprising:

at least one processing device comprising a 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 given set of one or more storage volumes, the snapshot lineage comprising (i) a local snapshot lineage stored on at least one of one or more storage devices of a storage system and (ii) at least one cloud snapshot lineage stored on cloud storage of at least one cloud external to the storage system, the at least one cloud snapshot lineage comprising at least a subset of the one or more snapshots of the given set of one or more storage volumes that have been copied from the local snapshot lineage to the cloud storage of the at least one cloud external to the storage system;

to select at least one snapshot to recover from the at least one cloud snapshot lineage to the storage system;

to create a set of one or more new storage volumes on the storage system;

to generate a recovery map linking each of a set of one or more cloud storage volumes on the cloud storage of the at least one cloud that comprises data of the selected at least one snapshot to at least one of the set of one or more new storage volumes on the storage system; and

to recover the selected at least one snapshot from the at least one cloud snapshot lineage to the storage system by copying data from the set of one or more cloud storage volumes to corresponding linked ones of the set of new storage volumes on the storage system.

2. The apparatus of claim 1 wherein the given set of one or more storage volumes originated at the storage system.

3. The apparatus of claim 1 wherein the given set of one or more storage volumes originated at an additional storage system.

4. The apparatus of claim 1 wherein identifying the snapshot lineage comprises:

invoking an application programming interface to submit a request for a list of snapshots of the at least one cloud snapshot lineage; and

receiving a response to invoking the application programming interface, the response comprising the list of snapshots of the at least one cloud snapshot lineage.

5. The apparatus of claim 4 wherein selecting the at least one snapshot comprises selecting one of the snapshots from the list of snapshots of the at least one cloud snapshot lineage.

6. The apparatus of claim 1 wherein creating the set of one or more new storage volumes on the storage system comprises:

creating a new storage group on the storage system; and

creating the set of one or more new storage volumes as protected storage volumes in the new storage group.

7. The apparatus of claim 1 wherein generating the recovery map comprises, for a given cloud storage volume in the set of cloud storage volumes:

invoking an application programming interface to submit a request to prepare the given cloud storage volume for restore to a subset of the set of new storage volumes on the storage system, the request comprising a volume identifier associated with the given cloud storage volume and a snapshot set identifier for the snapshot lineage; and

receiving a response to invoking the application programming interface, the response comprising access volume information for the subset of the set of new storage volumes on the storage system, the access volume information comprising an externally addressable volume identifier for the subset of the set of new storage volumes on the storage system and volume identifiers for each new storage volume in the subset of the set of new storage volumes on the storage system.

8. The apparatus of claim 7 wherein the application programming interface comprises a representational state transfer application programming interface, and wherein the request comprises an endpoint uniform resource locator specifying a path parameter comprising a unique identifier of the storage system.

9. The apparatus of claim 1 wherein the at least one processing device is further configured to determine at least a subset of data of the selected at least one snapshot that is to be copied from the set of one or more cloud storage volumes to the set of one or more new storage volumes on the storage system, and wherein recovering the selected at least one snapshot from the at least one cloud snapshot lineage to the storage system comprises copying the determined subset of the data of the selected at least one snapshot from the set of one or more cloud storage volumes to corresponding linked ones of the set of new storage volumes on the storage system.

10. The apparatus of claim 9 wherein determining the subset of the data of the selected at least one snapshot comprises:

invoking an application programming interface to submit a request for a bitmap of data of the selected at least one snapshot to be recovered to the storage system, the request comprising a snapshot identifier for the selected at least one snapshot, at least one starting track location of the data of the selected at least one snapshot on the cloud storage, at least one track count of a number of tracks from the at least one starting track location on the cloud storage that comprise the data of the selected at least one snapshot; and

receiving a response to invoking the application programming interface, the response comprising the bitmap of the data of the selected at least one snapshot to be recovered to the storage system, the bitmap comprising, for each cloud storage volume in the set of cloud storage volumes comprising the data of the selected at least one snapshot: a cloud storage volume name; a volume name of the selected at least one snapshot; a count representing a size of the data of the at least one snapshot; and a pointer to an array comprising bitmaps of the tracks of the cloud storage volumes comprising the data of the selected at least one snapshot.

11. The apparatus of claim 10 wherein the request further comprises an identifier of a local snapshot in the snapshot lineage stored in the local snapshot lineage, the at least one starting track location specifies a comparison starting track location for comparison between the data of the selected at least one snapshot and data of the local snapshot in the snapshot lineage, and the at least one track count specifies a number of tracks from the comparison starting track location comprising data to be compared for differences between the selected at least one snapshot and the local snapshot in the snapshot lineage.

12. The apparatus of claim 1 wherein the at least one processing device is further configured, responsive to successfully recovering the selected at least one snapshot from the at least one cloud snapshot lineage to the storage system, to remove the selected at least one snapshot from the at least one cloud snapshot lineage on the cloud storage of the at least one cloud external to the storage system.

13. The apparatus of claim 1 wherein removing the selected at least one snapshot from the at least one cloud snapshot lineage comprises:

invoking an application programming interface to submit a request to clean up the at least one cloud snapshot lineage, the request comprising an identifier of the selected at least one snapshot; and

receiving a response to invoking the application programming interface, the response comprising an indication of success of removal of the selected at least one snapshot from the at least one cloud snapshot lineage.

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 given set of one or more storage volumes, the snapshot lineage comprising (i) a local snapshot lineage stored on at least one of one or more storage devices of a storage system and (ii) at least one cloud snapshot lineage stored on cloud storage of at least one cloud external to the storage system, the at least one cloud snapshot lineage comprising at least a subset of the one or more snapshots of the given set of one or more storage volumes that have been copied from the local snapshot lineage to the cloud storage of the at least one cloud external to the storage system;

selecting at least one snapshot to recover from the at least one cloud snapshot lineage to the storage system;

creating a set of one or more new storage volumes on the storage system;

generating a recovery map linking each of a set of one or more cloud storage volumes on the cloud storage of the at least one cloud that comprises data of the selected at least one snapshot to at least one of the set of one or more new storage volumes on the storage system; and

recovering the selected at least one snapshot from the at least one cloud snapshot lineage to the storage system by copying data from the set of one or more cloud storage volumes to corresponding linked ones of the set of new storage volumes on the storage system.

16. The computer program product of claim 15 wherein generating the recovery map comprises, for a given cloud storage volume in the set of cloud storage volumes:

invoking an application programming interface to submit a request to prepare the given cloud storage volume for restore to a subset of the set of new storage volumes on the storage system, the request comprising a volume identifier associated with the given cloud storage volume and a snapshot set identifier for the snapshot lineage; and

receiving a response to invoking the application programming interface, the response comprising access volume information for the subset of the set of new storage volumes on the storage system, the access volume information comprising an externally addressable volume identifier for the subset of the set of new storage volumes on the storage system and volume identifiers for each new storage volume in the subset of the set of new storage volumes on the storage system.

17. The computer program product of claim 15 wherein the program code when executed by the at least one processing device further causes the at least one processing device to perform the step of determining at least a subset of data of the selected at least one snapshot that is to be copied from the set of one or more cloud storage volumes to the set of one or more new storage volumes on the storage system, and wherein recovering the selected at least one snapshot from the at least one cloud snapshot lineage to the storage system comprises copying the determined subset of the data of the selected at least one snapshot from the set of one or more cloud storage volumes to corresponding linked ones of the set of new storage volumes on the storage system.

18. A method comprising steps of:

identifying a snapshot lineage comprising one or more snapshots of a given set of one or more storage volumes, the snapshot lineage comprising (i) a local snapshot lineage stored on at least one of one or more storage devices of a storage system and (ii) at least one cloud snapshot lineage stored on cloud storage of at least one cloud external to the storage system, the at least one cloud snapshot lineage comprising at least a subset of the one or more snapshots of the given set of one or more storage volumes that have been copied from the local snapshot lineage to the cloud storage of the at least one cloud external to the storage system;

selecting at least one snapshot to recover from the at least one cloud snapshot lineage to the storage system;

creating a set of one or more new storage volumes on the storage system;

generating a recovery map linking each of a set of one or more cloud storage volumes on the cloud storage of the at least one cloud that comprises data of the selected at least one snapshot to at least one of the set of one or more new storage volumes on the storage system; and

recovering the selected at least one snapshot from the at least one cloud snapshot lineage to the storage system by copying data from the set of one or more cloud storage volumes to corresponding linked ones of the set of new storage volumes on the storage system;

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 generating the recovery map comprises, for a given cloud storage volume in the set of cloud storage volumes:

invoking an application programming interface to submit a request to prepare the given cloud storage volume for restore to a subset of the set of new storage volumes on the storage system, the request comprising a volume identifier associated with the given cloud storage volume and a snapshot set identifier for the snapshot lineage; and

receiving a response to invoking the application programming interface, the response comprising access volume information for the subset of the set of new storage volumes on the storage system, the access volume information comprising an externally addressable volume identifier for the subset of the set of new storage volumes on the storage system and volume identifiers for each new storage volume in the subset of the set of new storage volumes on the storage system.

20. The method of claim 18 further comprising determining at least a subset of data of the selected at least one snapshot that is to be copied from the set of one or more cloud storage volumes to the set of one or more new storage volumes on the storage system, and wherein recovering the selected at least one snapshot from the at least one cloud snapshot lineage to the storage system comprises copying the determined subset of the data of the selected at least one snapshot from the set of one or more cloud storage volumes to corresponding linked ones of the set of new storage volumes on the storage system.

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: GUNASEKARAN, SHANMUGA ANAND; VOKALIGA, DEEPAK; ANTHONY, MICHAEL; ALDRED, MARK; BHATNAGAR, ANURAG
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052078/0770 →
Cited By (12)
US 12,197,924 US 12,242,418 US 12,321,793 US 12,353,739 US 12,417,150 US 12,443,560 US 12,547,320 US 12,568,040 US 12,608,487 US 12,645,455 US 12,657,024 US 12,669,996