IP Library Granted Patent US 10,795,774
Granted Patent B2
US 10,795,774 · App. 15/876,104 · Granted Oct 6, 2020

Disaster recovery of archived data

Inventors: Prateek Pandey (Santa Clara, CA); Arpit Agarwal (Mountain View, CA)
Assignee: Rubrik, Inc.
G06F11/1451G06F9/45558G06F16/128G06F2201/815G06F2201/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,795,774
App. No.
15/876,104
Granted
Oct 6, 2020
Kind
B2
Abstract

Methods and systems for efficiently downloading archived snapshot data from the cloud or from an archival data store are described. In a disaster recovery scenario in which an entire storage appliance for backing up different point in time versions of a virtual machine has failed (e.g., due to a fire), archived snapshot data for the different point in time versions may be acquired by a second storage appliance from an archival data store (e.g., cloud-based data storage) using one or more snapshot mapping files. A snapshot mapping file may include pointers to a plurality of data blocks within the archival data store for generating a full image snapshot associated with a particular point in time version of the virtual machine. The plurality of data blocks may comprise the minimum number of data blocks necessary to construct the particular point in time version of the virtual machine.

Claims (58)

1. A method for operating a data management system, comprising:

identifying a first version of a virtual machine out of a plurality of point in time versions of the virtual machine stored within a data storage domain;

acquiring a first snapshot mapping file for the first version of the virtual machine from the data storage domain;

identifying a first set of blocks corresponding with the first version of the virtual machine using the first snapshot mapping file, the first set of blocks including a first block and a second block;

determining a first portion of the first block that includes a first portion of the first version of the virtual machine, wherein the first portion of the first block locates between a ninety percent and a hundred percent of a memory space of the first block;

determining a second portion of the second block that includes a second portion of the first version of the virtual machine, wherein the second portion of the second block locates between a beginning and a twenty percent of a memory space of second block;

acquiring the first portion of the first block and the second portion of the second block from the data storage domain;

identifying a second version of the virtual machine out of the plurality of point in time versions of the virtual machine stored within the data storage domain;

acquiring a second snapshot mapping file for the second version of the virtual machine from the data storage domain;

identifying a subset of a second set of blocks corresponding with the second version of the virtual machine using the second snapshot mapping file, the subset of the second set of blocks including a new data block not included in the first set of blocks;

acquiring the new data block from the subset of the second set of blocks from the data storage domain; and

restoring a version of the virtual machine using the first portion of the first block and the second portion of the second block and the new data block from the subset of the second set of blocks.

2. The method of claim 1 , wherein:

the first version of the virtual machine corresponds with an incremental snapshot of the virtual machine stored within the data storage domain.

3. The method of claim 1 , wherein:

the first version of the virtual machine comprises the most recent version of the virtual machine stored within the data storage domain.

4. The method of claim 1 , wherein:

the data storage domain corresponds with a cloud-based data storage service.

5. The method of claim 1 , wherein:

the data storage domain comprises one of a cluster of data storage nodes, a storage area network storage device, a networked-attached storage device, or a hardware data storage device.

6. The method of claim 1 , further comprising:

determining a block size for the first set of blocks based on a combined data size for the first set of data blocks.

7. The method of claim 1 , further comprising:

identifying a version of an electronic file within the subset of the second set of blocks;

determining a first portion of a first block of the subset of the second set of blocks that includes a first portion of the electronic file;

determining a second portion of a second block of the subset of the second set of blocks that includes a second portion of the electronic file; and

extracting the version of the electronic file by reading the first portion of the first block and the second portion of the second block.

8. A data management system, comprising:

a memory configured to store a first set of blocks corresponding with a first version of a virtual machine and a subset of a second set of blocks corresponding with a second version of the virtual machine; and

one or more processors configured to identify the first version of the virtual machine out of a plurality of point in time versions of the virtual machine stored within a data storage domain and acquire a first snapshot mapping file for the first version of the virtual machine from the data storage domain, the one or more processors configured to identify the first set of blocks corresponding with the first version of the virtual machine using the first snapshot mapping file, the first set of blocks including a first block and a second block and determine a first portion of the first block that includes a first portion of the first version of the virtual machine, wherein the first portion of the first block locates between a ninety percent and a hundred percent of a memory space of the first block, the one or more processors configured to determine a second portion of the second block that includes a second portion of the first version of the virtual machine, wherein the second portion of the second block locates between a beginning and a twenty percent of a memory space of second block, the one or more processors configured to acquire the first portion of the first block and the second portion of the second block from the data storage domain, the one or more processors configured to identify the second version of the virtual machine out of the plurality of point in time versions of the virtual machine stored within the data storage domain and acquire a second snapshot mapping file for the second version of the virtual machine from the data storage domain, the one or more processors configured to identify the subset of the second set of blocks corresponding with the second version of the virtual machine using the second snapshot mapping file, the subset of the second set of blocks including a new data block not included in the first set of blocks, and acquire the new data block from the subset of the second set of blocks from the data storage domain.

9. The data management system of claim 8 , wherein:

the first version of the virtual machine corresponds with an incremental snapshot of the virtual machine stored within the data storage domain.

10. The data management system of claim 8 , wherein:

the first version of the virtual machine corresponds with the most recent snapshot of the virtual machine stored within the data storage domain.

11. The data management system of claim 8 , wherein:

the data storage domain corresponds with a cloud-based data storage service.

12. The data management system of claim 8 , wherein:

the data storage domain comprises one of a cluster of data storage nodes, a cloud-based data store, a Network File System (NFS) datastore, a storage area network storage device, a networked-attached storage device, or a hardware data storage device.

13. The data management system of claim 8 , wherein:

the one or more processors configured to determine a block size for the first set of blocks based on a combined data size for the first set of data blocks and transfer the first set of blocks to the data storage domain.

14. The data management system of claim 8 , wherein:

the one or more processors configured to identify a version of an electronic file within the subset of the second set of blocks and determine a first portion of a first block of the subset of the second set of blocks that includes a first portion of the electronic file, the one or more processors configured to determine a second portion of a second block of the subset of the second set of blocks that includes a second portion of the electronic file and extract the version of the electronic file using only the first portion of the first block and the second portion of the second block.

15. A method for operating a data management system, comprising:

identifying a version of an electronic file to be restored;

identifying a first snapshot of a virtual machine that includes the version of the electronic file;

acquiring a snapshot mapping file for the first snapshot of the virtual machine;

identifying a subset of a first set of blocks associated with the first snapshot of the virtual machine using the snapshot mapping file, the subset including a first block and a second block;

determining a first portion of the first block that includes a first portion of the electronic file, wherein the first portion of the first block locates between a ninety percent and a hundred percent of a memory space of the first block;

determining a second portion of the second block that includes a second portion of the electronic file, wherein the second portion of the second block locates between a beginning and a twenty percent of a memory space of the second block;

acquiring the first portion of the first block and the second portion of the second block;

extracting the version of the electronic file using the first portion of the first block and the second portion of the second block; and

storing the version of the electronic file.

16. The method of claim 15 , wherein:

the acquiring the first portion of the first block and the second portion of the second block comprises concurrently acquiring the first portion of the first block and the second portion of the second block.

17. The method of claim 15 , wherein:

the version of the electronic file corresponds with the most recent version of a virtual disk stored within a data storage domain.

18. The method of claim 15 , wherein:

the first snapshot of the virtual machine corresponds with an incremental snapshot of the virtual machine stored within a data storage domain.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 60333/0323 Recorded Jun 13, 2025
From: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
To: RUBRIK, INC.
Reel/Frame 071565/0602 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 10, 2022
From: RUBRIK, INC.
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 060333/0323 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2020
From: PANDEY, PRATEEK
To: RUBRIK, INC.
Reel/Frame 052800/0947 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2018
From: AGARWAL, ARPIT
To: RUBRIK, INC.
Reel/Frame 044692/0034 →