Method and apparatus for immediate data backup by duplicating pointers and freezing pointer/data counterparts
First Claim
1. A method for backing up an original dataset contained in a storage system, the original dataset having multiple subparts residing at original storage locations, the storage system including a primary set of pointers identifying the original storage locations, the method comprising:
- creating a virtual backup copy of the original dataset by duplicating the primary set of pointers to create a backup set of pointers;
storing a representation of the backup set of pointers in a backup list in association with the virtual backup copy and the original dataset;
preserving the backup copy by preventing changes to the original dataset and the backup set of pointers; and
in response to receipt of any changes directed to subparts of the original dataset, creating a changed dataset by storing the changes at one or more first change storage locations and updating the primary set of pointers to identify the first change storage locations and any original storage locations containing unchanged subparts of the original dataset.
1 Assignment
0 Petitions
Accused Products
Abstract
An expedited data backup is performed by creating a duplicate set of pointers to a current dataset already identified by an original pointer set, then designating the dataset as a backup dataset, and thereafter preventing changes to the pointed-to-data and the duplicate pointers, where changes to the current dataset are nonetheless effected by storing new data and modifying the original pointer set alone. More specifically, the backup involves an original dataset having multiple subparts residing at various original storage locations, which are pointed-to by a primary set of pointers. A virtual backup copy is created by duplicating the primary set of pointers to create a backup set of pointers. The backup set of pointers are entered in a backup list, in association with the virtual backup copy and the original dataset. To preserve the backup copy, the system prevents changes to the original dataset and the backup set of pointers. When any changes are directed to subparts of the original dataset, the system creates a changed dataset by storing the changes at one or more change storage locations and updating the primary set of pointers to identify the change storage locations along with any original storage locations still containing unchanged subparts of the original dataset. In addition to expediting data backups, fast data recovery is possible by updating the primary set of pointers to duplicate the backup set of pointers.
-
Citations
21 Claims
-
1. A method for backing up an original dataset contained in a storage system, the original dataset having multiple subparts residing at original storage locations, the storage system including a primary set of pointers identifying the original storage locations, the method comprising:
-
creating a virtual backup copy of the original dataset by duplicating the primary set of pointers to create a backup set of pointers;
storing a representation of the backup set of pointers in a backup list in association with the virtual backup copy and the original dataset;
preserving the backup copy by preventing changes to the original dataset and the backup set of pointers; and
in response to receipt of any changes directed to subparts of the original dataset, creating a changed dataset by storing the changes at one or more first change storage locations and updating the primary set of pointers to identify the first change storage locations and any original storage locations containing unchanged subparts of the original dataset. - View Dependent Claims (2, 3, 4, 5, 6, 7)
performing an external backup operation by duplicating the original dataset.
-
-
3. The method of claim 1, the method further comprising performing a second backup operation, comprising:
-
creating a virtual backup copy of the changed dataset by duplicating the updated set of pointers to create a second backup set of pointers;
in the backup list, storing a representation of the second backup set of pointers in association with the virtual backup copy of the changed dataset and the changed dataset;
preventing changes to the changed dataset and the updated set of pointers; and
in response to receipt of any further changes to subparts of the changed dataset, storing the further changes at one or more second change storage locations and updating the updated set of pointers to identify the second change storage locations along with any first change storage locations and any original storage locations containing unchanged subparts of the updated dataset.
-
-
4. The method of claim 3, the method further comprising:
-
in response to a failure concerning the further changed dataset, accessing the backup list to identify a virtual backup copy associated with the changed dataset; and
recovering the changed dataset in place of the further changed dataset by copying the second backup set of pointers into the primary set of pointers.
-
-
5. The method of claim 1, the method further comprising recovering data using the backup dataset, comprising:
-
in response to a predetermined condition, accessing the backup list and selecting one of the virtual backup copies; and
recovering data backed up by the selected virtual backup copy using subparts pointed-to by the backup pointer set of the selected virtual backup copy.
-
-
6. The method of claim 1, the method further including using the virtual backup copy to recover from loss of the changed dataset, comprising:
updating the primary set of pointers to duplicate the backup set of pointers.
-
7. The method of claim 1, the method further comprising:
-
in response to a failure concerning the changed dataset, accessing the backup list to identify a virtual backup copy associated with the original dataset; and
recovering the original dataset in place of the changed dataset by copying the backup set of pointers into the primary set of pointers.
-
-
8. A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform a method for backing up an original dataset contained in a storage system, the original dataset having multiple subparts residing at original storage locations, the storage system including a primary set of pointers identifying the original storage locations, the method comprising:
-
creating a virtual backup copy of the original dataset by duplicating the primary set of pointers to create a backup set of pointers;
storing a representation of the backup set of pointers in a backup list in association with the virtual backup copy and the original dataset;
preserving the backup copy by preventing changes to the original dataset and the backup set of pointers; and
in response to receipt of any changes directed to subparts of the original dataset, creating a changed dataset by storing the changes at one or more first change storage locations and updating the primary set of pointers to identify the first change storage locations and any original storage locations containing unchanged subparts of the original dataset. - View Dependent Claims (9, 10, 11, 12, 13, 14)
performing an external backup operation by duplicating the original dataset.
-
-
10. The medium of claim 8, the method further comprising performing a second backup operation, comprising:
-
creating a virtual backup copy of the changed dataset by duplicating the updated set of pointers to create a second backup set of pointers;
in the backup list, storing a representation of the second backup set of pointers in association with the virtual backup copy of the changed dataset and the changed dataset;
preventing changes to the changed dataset and the updated set of pointers; and
in response to receipt of any further changes to subparts of the changed dataset, storing the further changes at one or more second change storage locations and updating the updated set of pointers to identify the second change storage locations along with any first change storage locations and any original storage locations containing unchanged subparts of the updated dataset.
-
-
11. The medium of claim 10, the method further comprising:
-
in response to a failure concerning the further changed dataset, accessing the backup list to identify a virtual backup copy associated with the changed dataset; and
recovering the changed dataset in place of the further changed dataset by copying the second backup set of pointers into the primary set of pointers.
-
-
12. The medium of claim 8, the method further comprising recovering data from the backup dataset, comprising:
-
in response to a predetermined condition, accessing the backup list and selecting one of the virtual backup copies; and
recovering data backed up by the selected virtual backup copy using subparts pointed-to by the backup pointer set of the selected virtual backup copy.
-
-
13. The medium of claim 8, the method further including using the virtual backup copy to recover from loss of the change dataset, comprising:
updating the primary set of pointers to duplicate the backup set of pointers.
-
14. The medium of claim 8, the method further comprising:
in response to a failure concerning the changed dataset, accessing the backup list to identify a virtual backup copy associated with the original dataset; and
recovering the original dataset in place of the changed dataset by copying the backup set of pointers into the primary set of pointers.
-
15. A computer-driven backup system, comprising:
-
a data storage containing an original dataset having multiple subparts residing at original storage locations, the storage also containing a primary set of pointers identifying the original storage locations; and
a storage controller coupled to the storage and programmed to back up the original dataset by performing operations comprising;
creating a virtual backup copy of the original dataset by duplicating the primary set of pointers to create a backup set of pointers;
storing a representation of the backup set of pointers in a backup list in association with the virtual backup copy and the original dataset;
preserving the backup copy by preventing changes to the original dataset and the backup set of pointers; and
in response to receipt of any changes directed to subparts of the original dataset, creating a changed dataset by storing the changes at one or more first change storage locations and updating the primary set of pointers to identify the first change storage locations and any original storage locations containing unchanged subparts of the original dataset. - View Dependent Claims (16, 17, 18, 19, 20, 21)
performing an external backup operation by duplicating the original dataset.
-
-
17. The system of claim 15, the storage controller being further programmed to perform a second backup operation, comprising:
-
creating a virtual backup copy of the changed dataset by duplicating updated set of pointers to create a second backup set of pointers;
in the backup list, storing a representation of the second backup set of pointers in association with the virtual backup copy of the changed dataset and the changed dataset;
preventing changes to the changed dataset and the updated set of pointers; and
in response to receipt of any further changes to subparts of the changed dataset, storing the further changes at one or more second change storage locations and updating the updated set of pointers to identify the second change storage locations along with any first change storage locations along with any first change storage locations and any original storage locations containing unchanged subparts of the updated dataset.
-
-
18. The system of claim 17, the storage controller being further programmed to perform operations comprising:
-
in response to a failure concerning the further changed dataset, accessing the backup list to identify a virtual backup copy associated with the changed dataset; and
recovering the changed dataset in place of the further changed dataset by copying the second backup set of pointers into the primary set of pointers.
-
-
19. The system of claim 15, the storage controller being further programmed to recover data using the backup dataset, comprising:
-
in response to a predetermined condition, accessing the backup list and selecting one of the virtual backup copies; and
recovering data backed up by the selected virtual backup copy using subparts pointed-to by the backup pointer set of the selected virtual backup copy.
-
-
20. The system of claim 15, storage controller being further programmed to use the virtual backup copy to recover from loss of the change dataset, comprising:
updating the primary set of pointers to duplicate the backup set of pointers.
-
21. The system of claim 15, the storage controller being further programmed to perform operations comprising:
-
in response to a failure concerning the changed dataset, accessing the backup list to identify a virtual backup copy associated with the original dataset; and
recovering the original dataset in place of the changed dataset by copying the backup set of pointers into the primary set of pointers.
-
Specification