APPLICATION RECOVERY IN AN INFORMATION MANAGEMENT SYSTEM BASED ON A PSEUDO-STORAGE-DEVICE DRIVER
First Claim
1. A method comprising:
- initiating a restore operation of backed up data from a second storage device to a destination volume on a first storage device, which is in communication with a computing device;
while the restore operation is proceeding to the destination volume using a first mount point configured on the computing device,mounting to the first mount point a pseudo-volume presented by a driver executing on the computing device;
while the restore operation is proceeding to the destination volume,starting an application on the computing device that uses the pseudo-volume for the application'"'"'s primary data,thereby starting the application before the restore operation restores all of the backed up data to the destination volume;
in response to a write request comprising first data blocks issued by the application, storing the first data blocks to a first data structure configured in the pseudo-volume; and
in response to a read request for second data blocks issued by the application,(i) the second data blocks are supplied from the first data structure, when the second data blocks are found therein,(ii) the second data blocks are supplied from a second data structure configured in the pseudo-volume, when the second data blocks were not found in the first data structure and were found in the second data structure, and(iii) the second data blocks are fetched from the backed up data in the second storage device when the second data blocks were not found in either of the first data structure and the second data structure.
2 Assignments
0 Petitions
Accused Products
Abstract
The disclosed systems and methods enable an application to start operating and servicing users soon after and during the course of its backup data being restored, no matter how long the restore may take. This is referred to as “instant application recovery” in view of the fact that the application may be put back in service soon after the restore operation begins. Any primary data generated by the application during “instant application recovery” is not only retained, but is efficiently updated into restored data. An enhanced data agent and an associated pseudo-storage-device driver, which execute on the same client computing device as the application, enable the application to operate substantially concurrently with a full restore of backed up data. According to the illustrative embodiment, the pseudo-storage-device driver presents a pseudo-volume to the file system associated with the application, such that the pseudo-volume may be used as a store for primary data during the period of “instant application recovery.”
-
Citations
19 Claims
-
1. A method comprising:
-
initiating a restore operation of backed up data from a second storage device to a destination volume on a first storage device, which is in communication with a computing device; while the restore operation is proceeding to the destination volume using a first mount point configured on the computing device, mounting to the first mount point a pseudo-volume presented by a driver executing on the computing device; while the restore operation is proceeding to the destination volume, starting an application on the computing device that uses the pseudo-volume for the application'"'"'s primary data, thereby starting the application before the restore operation restores all of the backed up data to the destination volume; in response to a write request comprising first data blocks issued by the application, storing the first data blocks to a first data structure configured in the pseudo-volume; and in response to a read request for second data blocks issued by the application, (i) the second data blocks are supplied from the first data structure, when the second data blocks are found therein, (ii) the second data blocks are supplied from a second data structure configured in the pseudo-volume, when the second data blocks were not found in the first data structure and were found in the second data structure, and (iii) the second data blocks are fetched from the backed up data in the second storage device when the second data blocks were not found in either of the first data structure and the second data structure. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method comprising:
executing an application on a computing device while restoring a backup copy, wherein the backup copy represents primary data that was previously generated by the application, based on; (i) restoring the backup copy to a destination volume configured on a storage device that is mounted to a first mount point of the computing device; (ii) while the restoring operation is proceeding to the destination volume, executing the application on the client computing device, based on using a pseudo-volume as a store for the application'"'"'s primary data, wherein the pseudo-volume is also mounted to the first mount point of the client computing device after the storage device is mounted; and (iii) processing a read request for first data blocks issued by the application by; (A) supplying the first data blocks from a second data structure in the pseudo-volume when the first data blocks are found therein, (B) supplying the first data blocks from a first data structure in the pseudo-volume when the first data blocks were not found in the second data structure and were found in the first data structure, and (C) causing the first data blocks to be fetched from the backup copy when the first data blocks were not found in either of the first data structure or the second data structure. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
14. A computer-readable medium, excluding transitory propagating signals, storing instructions that, when executed by at least one computing device comprising one or more processors and computer memory, cause the computing device to perform operations comprising:
executing an application while restoring a backup copy that represents primary data that was previously generated by the application, based on; (i) restoring the backup copy to a destination volume configured on a storage device that is mounted to a first mount point of the computing device; (ii) while the restoring operation is proceeding to the destination volume, executing the application on the client computing device, based on using a pseudo-volume as a store for the application'"'"'s primary data, wherein the pseudo-volume is also mounted to the first mount point of the client computing device after the storage device is mounted; (iii) processing a read request for first data blocks issued by the application by; (A) supplying the first data blocks from a second data structure in the pseudo-volume when the first data blocks are found therein, (B) supplying the first data blocks from a first data structure in the pseudo-volume when the first data blocks were not found in the second data structure and were found in the first data structure, and (C) causing the first data blocks to be fetched from the backup copy when the first data blocks were not found in either of the first data structure or the second data structure; and (iv) processing a write request including second data blocks issued by the application by storing the second data blocks to the second data structure in the pseudo-volume. - View Dependent Claims (15, 16, 17, 18, 19)
Specification