# US 12,007,945 B2 · Snapshot migration between cloud storage platforms

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,007,945 B2
- Document ID: US12007945B2
- Status: Granted
- Kind: B2
- Application number: 17/970,654
- Filed: 2022-10-21
- Published: 2024-04-25
- Granted: 2024-06-11
- Earliest claimed: 2022-10-21
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Rabi Shankar Shaw; Rituraj Kumar; Priyamrita Ghosh
- Web page: https://patentgrep.com/patent/US12007945B2

## CPC

- G06F 16/128: {Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion (error detection or correction of the data by redundancy in operations or in hardware G06F11/14, G06F11/16)}
- G06F 16/119: {Details of migration of file systems (migration mechanisms in storage systems G06F3/0647)}
- G06F 16/1824: {implemented using Network-attached Storage [NAS] architecture (distributed or networked storage systems G06F3/067; protocols for distributed storage of data in a network H04L67/1097)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method comprises receiving an input requesting migration of one or more snapshots of a logical storage volume from a first cloud storage platform to a second cloud storage platform, and retrieving one or more first objects corresponding to the one or more snapshots from the first cloud storage platform. The one or more first objects are stored in a cache, and contents of the one or more first objects are sent to the second cloud storage platform for storage as one or more second objects.

## Claims

### Claim 1

An apparatus comprising:
at least one processing platform comprising a plurality of processing devices;
said at least one processing platform being configured:
to receive an input requesting migration of one or more snapshots of a logical storage volume from a first cloud storage platform to a second cloud storage platform;
to retrieve one or more first objects corresponding to the one or more snapshots from the first cloud storage platform;
to store the one or more first objects in a cache;
to send contents of the one or more first objects to the second cloud storage platform for storage as one or more second objects;
to create one or more entries in a database for one or more object identifiers corresponding to the one or more first objects; and
to create one or more additional entries in the database for one or more additional object identifiers corresponding to the one or more second objects;
wherein, in creating the one or more additional entries in the database, said at least one processing platform is configured to replace one or more destination identifiers indicating the first cloud storage platform with one or more destination identifiers indicating the second cloud storage platform.

### Claim 2 (depends on 1)

The apparatus of claim 1 wherein the one or more snapshots comprise at least one of one or more base snapshots and one or more delta snapshots.

### Claim 3 (depends on 1)

The apparatus of claim 1 wherein the one or more first objects comprise at least one data object and at least one metadata object, and wherein the contents of the one or more first objects comprise data and metadata corresponding to the one or more snapshots.

### Claim 4 (depends on 1)

The apparatus of claim 1 wherein said at least one processing platform is further configured:
to determine whether contents of all objects from the first cloud storage platform corresponding to the one or more snapshots have been sent to the second cloud storage platform; and
to flag the one or more snapshots as ready to restore from the second cloud storage platform responsive to an affirmative determination.

### Claim 5 (depends on 1)

The apparatus of claim 1 wherein said at least one processing platform is further configured to execute a task to restore the one or more snapshots from the second cloud storage platform to a storage array.

### Claim 6 (depends on 1)

The apparatus of claim 1 wherein, in retrieving the one or more first objects corresponding to the one or more snapshots from the first cloud storage platform, said at least one processing platform is configured:
to query the database for the one or more object identifiers corresponding to the one or more first objects; and
to retrieve the one or more first objects from the first cloud storage platform based, at least in part, on the one or more object identifiers.

### Claim 7 (depends on 6)

The apparatus of claim 6 wherein, in response to sending the contents of the one or more first objects to the second cloud storage platform, said at least one processing platform is configured to update the database with the one or more additional object identifiers corresponding to the one or more second objects.

### Claim 8 (depends on 1)

The apparatus of claim 1 wherein the one or more entries are associated with the first cloud storage platform and the one or more additional entries are associated with the second cloud storage platform.

### Claim 9 (depends on 1)

The apparatus of claim 1 wherein said at least one processing platform is further configured to create the one or more second objects on the second cloud storage platform.

### Claim 10 (depends on 1)

The apparatus of claim 1 wherein said at least one processing platform is further configured to generate an interface for a user to request the migration of the one or more snapshots from the first cloud storage platform to the second cloud storage platform.

### Claim 11 (depends on 1)

The apparatus of claim 1 wherein the first cloud storage platform comprises a public cloud storage platform and the second cloud storage platform comprises a private cloud storage platform.

### Claim 12 (depends on 1)

The apparatus of claim 1 wherein said at least one processing platform comprises a cloud tiering appliance.

### Claim 13

A method comprising:
receiving an input requesting migration of one or more snapshots of a logical storage volume from a first cloud storage platform to a second cloud storage platform;
retrieving one or more first objects corresponding to the one or more snapshots from the first cloud storage platform;
storing the one or more first objects in a cache;
sending contents of the one or more first objects to the second cloud storage platform for storage as one or more second objects;
creating one or more entries in a database for one or more object identifiers corresponding to the one or more first objects; and
creating one or more additional entries in the database for one or more additional object identifiers corresponding to the one or more second objects;
wherein creating the one or more additional entries in the database comprises replacing one or more destination identifiers indicating the first cloud storage platform with one or more destination identifiers indicating the second cloud storage platform; and
wherein the method is performed by at least one processing platform comprising a processor coupled to a memory.

### Claim 14 (depends on 13)

The method of claim 13 wherein retrieving the one or more first objects corresponding to the one or more snapshots from the first cloud storage platform comprises:
querying the database for the one or more object identifiers corresponding to the one or more first objects; and
retrieving the one or more first objects from the first cloud storage platform based, at least in part, on the one or more object identifiers.

### Claim 15 (depends on 14)

The method of claim 14 wherein, in response to sending the contents of the one or more first objects to the second cloud storage platform, the method further comprises updating the database with the one or more additional object identifiers corresponding to the one or more second objects.

### Claim 16 (depends on 13)

The method of claim 13 wherein the one or more snapshots comprise at least one of one or more base snapshots and one or more delta snapshots.

### Claim 17

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 platform causes the at least one processing platform:
to receive an input requesting migration of one or more snapshots of a logical storage volume from a first cloud storage platform to a second cloud storage platform;
to retrieve one or more first objects corresponding to the one or more snapshots from the first cloud storage platform;
to store the one or more first objects in a cache;
to send contents of the one or more first objects to the second cloud storage platform for storage as one or more second objects;
to create one or more entries in a database for one or more object identifiers corresponding to the one or more first objects; and
to create one or more additional entries in the database for one or more additional object identifiers corresponding to the one or more second objects;
wherein, in creating the one or more additional entries in the database, said at least one processing platform is configured to replace one or more destination identifiers indicating the first cloud storage platform with one or more destination identifiers indicating the second cloud storage platform.

### Claim 18 (depends on 17)

The computer program product according to claim 17 wherein, in retrieving the one or more first objects corresponding to the one or more snapshots from the first cloud storage platform, the program code causes the at least one processing platform:
to query the database for the one or more object identifiers corresponding to the one or more first objects; and
to retrieve the one or more first objects from the first cloud storage platform based, at least in part, on the one or more object identifiers.

### Claim 19 (depends on 18)

The computer program product according to claim 18 wherein, in response to sending the contents of the one or more first objects to the second cloud storage platform, the program code causes the at least one processing platform to update the database with the one or more additional object identifiers corresponding to the one or more second objects.

### Claim 20 (depends on 17)

The computer program product according to claim 17 wherein the one or more snapshots comprise at least one of one or more base snapshots and one or more delta snapshots.
