Restoration of backed up data by restoring incremental backup(s) in reverse chronological order
First Claim
1. A method for restoring content of a plurality of data blocks to non-volatile storage as the content existed at a particular instant in time, the method comprising:
- an act of accessing a last backup representing the most recent backup of the plurality of data blocks prior to the particular instant in time;
an act of writing the content of each data block represented in the last backup to a corresponding position in the non-volatile storage;
an act of accessing a second-to-last backup representing the second most recent backup of at least a portion of the plurality of data blocks prior to the particular instant in time; and
after the act of writing the content of each data block represented in the last backup, an act of performing a non-overlapping write of the second-to-last backup by performing the following;
for each of at least one data block that is represented in the second-to-last backup, but is not represented in the last backup, an act of writing the data block of the second-to-last backup to the non-volatile storage; and
for each of at least one data block that is represented in the second-to-last backup, and is also represented in the last backup, an act of refraining from writing the data block of the second-to-last backup.
7 Assignments
0 Petitions
Accused Products
Abstract
Restoring of content of data blocks to non-volatile storage as the content existed at a particular instant in time. After accessing the last backup representing the most recent backup of the plurality of data blocks prior to the particular instant in time, the content of each data block represented in the last backup is written to a corresponding position in the non-volatile storage. This last backup may be an incremental backup in which only those data blocks that had changed since the immediate prior backup were actually backed up. Then, restoration occurs through each prior backup in reverse chronologic order until the full backup is encountered and restored. When restoring a backup, a data block is not restored if the data block had already been restored proceeding in reverse chronological order.
-
Citations
39 Claims
-
1. A method for restoring content of a plurality of data blocks to non-volatile storage as the content existed at a particular instant in time, the method comprising:
-
an act of accessing a last backup representing the most recent backup of the plurality of data blocks prior to the particular instant in time; an act of writing the content of each data block represented in the last backup to a corresponding position in the non-volatile storage; an act of accessing a second-to-last backup representing the second most recent backup of at least a portion of the plurality of data blocks prior to the particular instant in time; and after the act of writing the content of each data block represented in the last backup, an act of performing a non-overlapping write of the second-to-last backup by performing the following; for each of at least one data block that is represented in the second-to-last backup, but is not represented in the last backup, an act of writing the data block of the second-to-last backup to the non-volatile storage; and for each of at least one data block that is represented in the second-to-last backup, and is also represented in the last backup, an act of refraining from writing the data block of the second-to-last backup. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer program product comprising one or more computer-readable storage media having thereon computer-executable instructions that, when executed by one or more processors of a computing system, cause the computing system to perform a method for restoring content of a plurality of data blocks to non-volatile storage as the content existed at a particular instant in time, the method comprising:
-
an act of accessing a last backup representing the most recent backup of the plurality of data blocks prior to the particular instant in time; an act of writing the content of each data block represented in the last backup to a corresponding position in the non-volatile storage; an act of accessing a second-to-last backup representing the second most recent backup of at least a portion of the plurality of data blocks prior to the particular instance in time; and after the act of writing the content of each data block represented in the last backup, an act of performing a non-overlapping write of the second-to-last backup by performing the following; for each of at least one data block that is represented in the second-to-last backup, but is not represented in the last backup, an act of writing the data block of the second-to-last backup to the non-volatile storage; and for each of at least one data block that is represented in the second-to-last backup, and is also represented in the last backup, an act of refraining from writing the data block of the second-to-last backup. - View Dependent Claims (13, 14)
-
-
15. A method for restoring content of a plurality of data blocks to non-volatile storage as the content existed at a particular instant in time, the method comprising:
-
an act of accessing a last backup representing the most recent backup of the plurality of data blocks prior to the particular instant in time, wherein the last backup is an incremental backup; an act of writing the content of each data block represented in the last backup to a corresponding position in the non-volatile storage; and a step for non-redundantly restoring each preceding backup in reverse chronological order until a full backup corresponding to the incremental backup is restored. - View Dependent Claims (16)
-
-
17. A computing system comprising the following:
-
a non-volatile storage comprising a plurality of data blocks; one or more processors; a restoration mechanism configured to perform a recovery method comprising; an act of accessing a last backup representing the most recent backup of the plurality of data blocks prior to a particular instant in time; an act of writing the content of each data block represented in the last backup to a corresponding position in the non-volatile storage; an act of accessing a second-to-last backup representing the second most recent backup of at least a portion of the plurality of data blocks prior to the particular instant in time; and after the act of writing the content of each data block represented in the last backup, an act of performing a non-overlapping write of the second-to-last backup by performing the following; for each of at least one data block that is represented in the second-to-last backup, but is not represented in the last backup, an act of writing the data block of the second-to-last backup to the non-volatile storage; and for each of at least one data block that is represented in the second-to-last backup, and is also represented in the last backup, an act of refraining from writing the data block of the second-to-last backup. - View Dependent Claims (18, 19, 20)
-
-
21. A method for backing up a plurality of data blocks, comprising:
-
creating a first backup of at least a portion of the plurality of data blocks, the first backup comprising a copy of at least a portion of the plurality of data blocks; after creating the first backup, creating a second backup of at least a portion of the plurality of data blocks, the second backup comprising a copy of at least a portion of the plurality of data blocks; identifying, by comparing the second backup with the first backup, one or more data blocks within the second backup that have been modified since creation of the first backup; creating a file that identifies each data block within the second backup that has been modified since creation of the first backup, wherein the file identifies data blocks within the second backup that are to be restored in place of corresponding data blocks within the first backup during a reverse-chronological restore operation; and storing the file. - View Dependent Claims (22, 23, 24, 25, 26)
-
-
27. A method for backing up a plurality of data blocks, comprising:
-
creating a first backup of at least a portion of the plurality of data blocks, the first backup comprising a copy of at least a portion of the plurality of data blocks; after creating the first backup, creating a second backup of at least a portion of the plurality of data blocks, the second backup comprising a copy of at least a portion of the plurality of data blocks; identifying, by comparing the second backup with the first backup, one or more data blocks within the second backup to be restored in place of corresponding data blocks within the first backup during a reverse-chronological restore operation; creating a file that identifies each data block within the second backup that is to be restored in place of corresponding data blocks within the first backup during the reverse-chronological restore operation; and storing the file. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A computer-readable storage medium, comprising:
-
a first computer-executable instruction operable to create a first backup of at least a portion of a plurality of data blocks, the first backup comprising a copy of at least a portion of the plurality of data blocks; a second computer-executable instruction operable to create, after creating the first backup, a second backup of at least a portion of the plurality of data blocks, the second backup comprising a copy of at least a portion of the plurality of data blocks; a third computer-executable instruction operable to identify, by comparing the second backup with the first backup, one or more data blocks within the second backup to be restored in place of corresponding data blocks within the first backup during a reverse-chronological restore operation; a fourth computer-executable instruction operable to create a file that identifies each data block within the second backup that is to be restored in place of corresponding data blocks within the first backup during the reverse-chronological restore operation; and a fifth computer-executable instruction operable to store the file. - View Dependent Claims (37, 38, 39)
-
Specification