Methods and apparatus for data restore and recovery from a remote data store
First Claim
1. A device, comprising:
- at least one processor; and
a memory comprising program instructions, wherein the program instructions are executable by the at least one processor to implement a restore process to restore block data to a data volume from a snapshot of the data volume, wherein the snapshot comprises a point-in-time snapshot based on the data volume at a particular point-in-time, and wherein the restore process is configured to;
for at least one local block on the data volume being restored from the snapshot of the data volume, mark the at least one local block, at one or more locations within the at least one local block, to indicate that the at least one local block needs to be restored;
in response to determining that a particular local block on the data volume needs to be restored;
generate a list indicating at least one local block on a path of an implicit tree structure from a root node to the particular local block, the list indicating local blocks on the data volume, wherein the list indicates at least the particular local block; and
for each local block indicated in the list, restore the respective local block in the data volume from the snapshot of the data volume.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods, apparatus, and computer-accessible storage media for restoring data from a snapshot to a data volume. The blocks in the volume may be treated as an implicit tree structure, for example a binary tree; each local block corresponds to a block on the snapshot. A local block on the volume may be marked, for example fingerprinted with metadata, to indicate that the local block has not been restored. Initially, the local block at the root node is marked. To restore a local block, the restore process may generate a list indicating all local blocks on a path from the root node of the tree to the target node that have not been restored. The marks in the local blocks are used in generating the list. For each block indicated in the list, children of the block are fingerprinted, and the block is restored from the snapshot.
-
Citations
19 Claims
-
1. A device, comprising:
-
at least one processor; and a memory comprising program instructions, wherein the program instructions are executable by the at least one processor to implement a restore process to restore block data to a data volume from a snapshot of the data volume, wherein the snapshot comprises a point-in-time snapshot based on the data volume at a particular point-in-time, and wherein the restore process is configured to; for at least one local block on the data volume being restored from the snapshot of the data volume, mark the at least one local block, at one or more locations within the at least one local block, to indicate that the at least one local block needs to be restored; in response to determining that a particular local block on the data volume needs to be restored; generate a list indicating at least one local block on a path of an implicit tree structure from a root node to the particular local block, the list indicating local blocks on the data volume, wherein the list indicates at least the particular local block; and for each local block indicated in the list, restore the respective local block in the data volume from the snapshot of the data volume. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer-accessible storage medium storing program instructions computer-executable to implement a restore process configured to restore a data volume from a snapshot of the data volume, wherein the snapshot comprises a point-in-time snapshot based on the data volume at a particular point-in-time, and wherein, to implement the restore process, the program instructions cause one or more processors to:
-
determine mark data for a local block at a root node of an implicit tree structure and write the mark data to at least one location within the respective local block to indicate that the respective local block needs to be restored, wherein each node in the tree structure corresponds to a particular local block on the data volume to be restored; obtain indications of local blocks on the data volume to be restored; for each indication of a local block to be restored; generate a list specifying at least one local block on a path of the implicit tree structure from the root node of the tree structure to the indicated local block, wherein the list includes at least the indicated local block; for at least one child local block in the tree structure of at least one local block indicated by the list, determine mark data for the child local block and write the mark data to at least one location within the child local block; and for each local block specified in the list, restore the respective local block in the data volume from the snapshot of the data volume. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
Specification