Efficient application recovery in an information management system based on a pseudo-storage-device driver
First Claim
1. A method associated with a data agent that executes on a client computing device in a system, the method comprising:
- mounting, to a first mount point of the client computing device, a destination volume on a primary storage device;
initiating a restore operation of backed up data from a secondary storage device to the destination volume on the primary storage device, wherein the backed up data represents a copy of primary data generated by an application;
while the restore operation is proceeding to the destination volume using the first mount point, mounting, to the first mount point of the client computing device, a pseudo-volume based on a driver executing on the client computing device;
starting the application on the client computing device, based on using the pseudo-volume for the application'"'"'s primary data, wherein, after starting the application, the restore operation continues to restore the backed up data to the destination volume on the primary storage device substantially concurrently with the application,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;
wherein the using of the pseudo-volume for the application'"'"'s primary data is managed by a data agent that executes on the client computing device; and
in response to a read request for second data blocks issued by the application the data agent;
(i) supplies the second data blocks from the first data structure, when the second data blocks are found therein,(ii) supplies the second data blocks 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) causes the second data blocks to be fetched from the backed up data in the secondary 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
12 Claims
-
1. A method associated with a data agent that executes on a client computing device in a system, the method comprising:
-
mounting, to a first mount point of the client computing device, a destination volume on a primary storage device; initiating a restore operation of backed up data from a secondary storage device to the destination volume on the primary storage device, wherein the backed up data represents a copy of primary data generated by an application; while the restore operation is proceeding to the destination volume using the first mount point, mounting, to the first mount point of the client computing device, a pseudo-volume based on a driver executing on the client computing device; starting the application on the client computing device, based on using the pseudo-volume for the application'"'"'s primary data, wherein, after starting the application, the restore operation continues to restore the backed up data to the destination volume on the primary storage device substantially concurrently with the application, 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;wherein the using of the pseudo-volume for the application'"'"'s primary data is managed by a data agent that executes on the client computing device; and in response to a read request for second data blocks issued by the application the data agent; (i) supplies the second data blocks from the first data structure, when the second data blocks are found therein, (ii) supplies the second data blocks 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) causes the second data blocks to be fetched from the backed up data in the secondary 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. A method comprising:
-
executing an application on a client computing device substantially concurrently with restoring a backup copy of primary data previously generated by the application, based on; (i) restoring the backup copy from a secondary storage device to a destination volume configured on a primary storage device that is mounted to a first mount point of the client 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 primary data, wherein the pseudo-volume is also mounted to the first mount point of the client computing device after the primary storage device is mounted, and wherein the pseudo-volume comprises a first data structure for storing first data blocks retrieved from the backup copy on the secondary storage device in response to read requests for the first data blocks issued by the executing application, and further comprises a second data structure for storing second data blocks included in write requests issued by the executing application; (iii) after the restoring of the backup copy to the destination volume is completed, (a) stopping the application, (b) unmounting the pseudo-volume from the first mount point, and (c) updating the destination volume with data blocks stored in the second data structure, including the second data blocks; and executing the application again, on the client computing device, based on using the updated destination volume as the application'"'"'s store for primary data, thereby providing the application with access to data in the restored backup copy updated by at least the second data blocks from the second data structure, which were generated by the application while the restoring operation was proceeding; wherein the using of the pseudo-volume as the application'"'"'s store for primary data while executing the application on the client computing device is managed by a data agent that also executes on the client computing device; and wherein the data agent executes a read request for the first data blocks issued by the application by; supplying the first data blocks from the second data structure when the first data blocks are found therein, supplying the first data blocks from the first data structure when the first data blocks were not found in the second data structure and were found in the first data structure, and causing the first data blocks to be fetched from the backup copy on the secondary storage device when the first data blocks were not found in either of the first data structure or the second data structure. - View Dependent Claims (4, 5, 6, 7)
-
-
8. A system for application recovery based on using a pseudo-storage-device driver, the system comprising:
-
a client computing device in communication with a primary storage device and a secondary storage device; wherein the client computing device is configured with a mount point, and also comprises an executable application, an executable data agent, and an executable driver; wherein the primary storage device comprises a storage volume that is mounted to the first mount point of the client computing device, and which is designated a destination volume for a restore operation; wherein the secondary storage device comprises a backup copy of primary data previously generated by the application, which backup copy is to be restored to the destination volume in the primary storage device; wherein the driver is configured to present a pseudo-volume mounted to the same first mount point of the client computing device used by the primary storage device; wherein the pseudo-volume comprises a first data structure for storing first data blocks retrieved from the backup copy on the secondary storage device in response to read requests for the first data blocks issued by the application, and further comprises a second data structure for storing second data blocks included in write requests issued by the application; and wherein, based on the pseudo-volume being mounted to the same first mount point of the client computing device as the destination volume, the system is configured to substantially concurrently (a) execute a restore operation of the backup copy from the secondary storage device to the destination volume, and (b) execute the application on the client computing device, based on using the pseudo-volume as a store for the application'"'"'s primary data, configured to service the application'"'"'s write requests and read requests while the restore operation proceeds; wherein the using of the pseudo-volume as the store for the application'"'"'s primary data is managed by the data agent that also executes on the client computing device; and in response to a read request for a data block issued by the application the data agent is configured to;
(i) supply the data block from the second data structure when the data block is found therein, (ii) supply the data block from the first data structure when the data block was not found in the second data structure and was found in the first data structure; and
(iii) cause the data block to be fetched from the backup copy in the secondary storage device when the data block was not found in either of the first data structure and the second data structure. - View Dependent Claims (9, 10, 11, 12)
-
Specification