IP Library Granted Patent US 11,416,341
Granted Patent B2
US 11,416,341 · App. 16/886,431 · Granted Aug 16, 2022

Systems and methods to reduce application downtime during a restore operation using a pseudo-storage device

Inventors: Amit Mitkar (Manalapan, NJ); Paramasivam Kumarasamy (Morganville, NJ)
Assignee: Commvault Systems, Inc.
G06F11/14G06F3/06G06F11/1451G06F11/1456G06F11/1466G06F11/1469H04L67/1095G06F11/1453
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,416,341
App. No.
16/886,431
Granted
Aug 16, 2022
Kind
B2
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.”

Claims (62)

1. A computer-implemented method comprising:

establishing communications by a client computing device, which comprises a hardware processor, with a primary data storage comprising a destination volume, and further with a secondary data storage, wherein the client computing device is configured with a mount point, and wherein the client computing device hosts an application and a driver;

mounting the destination volume to the mount point;

initiating a restore operation that restores a backup copy to the destination volume, wherein the backup copy is based on primary data and is stored in the secondary data storage;

after initiating the restore operation, mounting a pseudo-disk to the mount point, wherein the pseudo-disk is presented as a block storage device by the driver, and wherein the pseudo-disk comprises a first data structure configured at the client computing device and further comprises a second data structure also configured at the client computing device;

after initiating the restore operation and mounting the pseudo-disk to the mount point, executing an application recovery operation concurrently with the restore operation, wherein the application recovery operation serves read requests to and write requests from the application, by way of the pseudo-disk and not by way of the destination volume, wherein the application recovery operation comprises:

(i) by the driver, serving a write request received from the application by storing data received in the write request into the second data structure; and

(ii) by the driver, serving a read request received from the application by retrieving requested data from one of: the second data structure, the first data structure, and the backup copy, wherein retrieving the requested data is made with a priority order of: 1) first, from the second data structure, and if the requested data is not found therein, 2) next, from the first data structure, and if the requested data is not found therein, then 3) last, from the backup copy in the secondary data storage.

2. The method of claim 1 , further comprising: after completion of the restore operation, temporarily stopping execution of the application, unmounting the pseudo-disk from the mount point, and restarting the application; and

after restarting the application, serving read requests and write requests to the application by way of the destination volume and not by way of the pseudo-disk.

3. The method of claim 2 , wherein the pseudo-disk is mounted to the mount point and unmounted from the mount point by a data agent that executes at the client computing device.

4. The method of claim 1 , wherein the backup copy was generated by one of: the client computing device and a computing device other than the client computing device.

5. The method of claim 1 , wherein the requested data retrieved from the backup copy in the secondary data storage is stored by the driver into the first data structure to be served therefrom in response to the read request.

6. The method of claim 1 , further comprising: by the client computing device, pruning a given data from the first data structure based on a number of times that the given data was requested by the application.

7. The method of claim 1 , further comprising: by a data agent that executes at the client computing device, determining that the restore operation has been initiated before executing the application recovery operation.

8. The method of claim 1 , wherein the application recovery operation further comprises:

copying one or more data blocks from the destination volume to the first data structure, wherein the one or more data blocks copied from the destination volume have been restored thereto by the restore operation from the backup copy.

9. A system comprising:

a client computing device comprising a hardware processor, wherein the client computing device is in communication with a primary data storage and with a secondary data storage,

wherein the client computing device is configured with a mount point, and

wherein the client computing device is configured to host an application and a driver; and

wherein the primary data storage comprises a data storage volume that is mounted to the mount point of the client computing device;

wherein the secondary data storage comprises a backup copy based on primary data;

wherein the driver is configured to present a pseudo-disk as a logical block storage device that is mounted to the mount point after the data storage volume is mounted to the mount point;

wherein the pseudo-disk comprises a first data structure and further comprises a second data structure, wherein the first data structure and the second data structure are configured at the client computing device;

wherein the client computing device is configured to:

initiate a restore operation to restore the backup copy to the data storage volume;

after the restore operation is initiated, mount the pseudo-disk to the mount point;

after the pseudo-disk is mounted to the mount point,

in response to a read request for first data blocks received from the application:

(i) cause the first data blocks to be retrieved from the second data structure if the first data blocks are found therein,

(ii) cause the first data blocks to be retrieved from the first data structure if the first data blocks are not found in the second data structure the first data blocks are found in the first data structure, and

(iii) cause the first data blocks to be retrieved from the backup copy in the secondary data storage, and to be stored into the first data structure, if the first data blocks are not found in either of the first data structure and the second data structure; and

respond to the read request by serving the first data blocks from one of the first data structure and the second data structure of the pseudo-disk.

10. The system of claim 9 , wherein the first data blocks retrieved from the backup copy are restored from a backup format into a primary data format before being transmitted to the driver at the client computing device to be stored into the first data structure.

11. The system of claim 9 , wherein the driver is a pseudo-disk driver.

12. The system of claim 9 , wherein the client computing device is further configured to:

copy one or more data blocks from the data storage volume to the first data structure, wherein the one or more data blocks copied from the data storage volume have been restored thereto by the restore operation from the backup copy.

13. The system of claim 9 , wherein the backup copy is generated by at least one of: the client computing device and by a computing system other than the client computing device.

14. The system of claim 9 , wherein the client computing device is further configured to: in response to a write request from the application, cause second data blocks received in the write request to be stored into the second data structure.

15. The system of claim 9 wherein the client computing device is configured to cause the application to:

(i) stop after the restore operation ends,

(ii) update the data storage volume with data blocks stored in the second data structure, and

(iii) restart the application using the data storage volume as a source of primary data for the application.

16. A system comprising:

a client computing device comprising a hardware processor, wherein the client computing device is in communication with a primary storage and with a secondary storage,

wherein the client computing device is configured with a mount point, and

wherein the client computing device is configured to host an application, a data agent, and a driver;

wherein the primary storage comprises a storage volume that is mounted to the mount point of the client computing device, and wherein the storage volume is designated a destination volume for a restore operation;

wherein the secondary storage comprises a backup copy that is to be restored to the destination volume by the restore operation;

wherein the driver is configured to present a pseudo-disk as a logical data storage device that is mounted to the mount point after the storage volume is mounted to the mount point;

wherein the application is configured to serve users of the client computing device during the restore operation;

wherein the application is in communication with the pseudo-disk during the restore operation;

wherein the pseudo-disk comprises a first data structure, configured at the client computing device, for storing first data blocks retrieved from the backup copy in response to read requests received from the application, and a second data structure, configured at the client computing device, for storing second data blocks received from the application; and

wherein the client computing device executing the data agent is configured to cause the application to:

(i) stop after the restore operation ends,

(ii) update the destination volume with data blocks stored in the second data structure, and

(iii) restart the application using the destination volume as a source of primary data for the application.

17. The system of claim 16 , further comprising: a storage manager comprising a hardware processor and in communication with the data agent, and wherein the storage manager is configured to initiate the restore operation from the secondary storage to the destination volume before the pseudo-disk is mounted to the mount point of the client computing device.

18. The system of claim 16 , wherein the data agent is configured to: initiate the restore operation from the secondary storage to the destination volume before the pseudo-disk is mounted to the mount point of the client computing device.

19. The system of claim 16 , wherein the pseudo-disk is a logical block storage device presented by the driver.

20. The system of claim 16 , wherein the backup copy is generated by at least one of: the client computing device and a computing system other than the client computing device.

Assignments (3)
SUPPLEMENTAL CONFIRMATORY GRANT OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Apr 16, 2025
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070864/0344 →
SECURITY INTEREST Recorded Dec 13, 2021
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058496/0836 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2020
From: MITKAR, AMIT; KUMARASAMY, PARAMASIVAM
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 052831/0765 →
Continuity (3)
Continuation 15809776 · Nov 10, 2017
Continuation 14453045 · Aug 6, 2014
Related Publication 20200293404A1 · Sep 17, 2020