IP Library Granted Patent US 9,658,925
Granted Patent B1
US 9,658,925 · App. 13/285,091 · Granted May 23, 2017

Systems and methods for restoring application data

Inventors: Prabhu Damodharan (Shoreview, MN); Joseph Milton Gilpin (Blain, MN); Robert Meierhofer (Woodbury, MN); Lowell Palecek (White Bear, MN); Curtis Peterson (Blaine, MN); Matthew Reker (Blaine, MN); Larry Schiefelbein (Forest Lake, MN); Hermeher Sekhon (Blaine, MN); Robert Wilde (St. Michael, MN); Martin Annoni (White Bear Township, MN)
Assignee: Veritas Technologies
G06F11/1458G06F11/1471
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 9,658,925
App. No.
13/285,091
Granted
May 23, 2017
Kind
B1
Abstract

A computer-implemented method for restoring application data may include (1) identifying a virtual disk image used by a virtual machine to represent a volume of data within the virtual machine used for storage by an application within the virtual machine, (2) identifying a request to back up the virtual disk image, and, in response to the request, (3) identifying, within the volume of data, at least one file including application data used by the application, (4) generating application metadata and a catalog associating a logical view of the application data with the file, the logical view being based on application logic of the application, (5) backing up the virtual disk image, and (6) associating the catalog with the backed up virtual disk image. Various other methods and systems are also disclosed.

Claims (92)

1. A computer-implemented method for restoring application data, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a virtual disk image comprising data stored for the use of a virtual machine executing on a host computing system, wherein:

the virtual machine does not have a direct correspondence to hardware of an underlying host machine;

a subset of the data represents a volume of data within the virtual machine used for storage by an application within the virtual machine;

identifying a request to back up the entire virtual disk image in a raw unchanged format in such a way as to facilitate a restoration of the application without requiring a restoration of the entire virtual disk image;

in response to the request to back up the entire virtual disk image:

identifying, within the volume of data used by the application, at least one file comprising application data used by the application;

generating an application data catalog comprising each of a reference to the file, a reference to the application data, and a reference to the application, wherein:

the application data catalog associates a logical view of the application data with the file;

the logical view is based on application logic of the application; and

the application data catalog conveys that the application uses the application data within the file;

backing up the virtual disk image; and

associating the application data catalog with the backed up virtual disk image;

after backing up the virtual disk image, identifying a request to restore a subset of the data included within the backup of the virtual disk image, the requested subset of data being defined by a logical view of the application, without restoring the entire backup of the virtual disk image; and

in response to identifying the request, retrieving the requested subset of data from the backup of the virtual disk image based on the application data catalog, without restoring the entire backup of the virtual disk image.

2. The computer-implemented method of claim 1 , wherein:

the method further comprises, in response to the request to back up the entire virtual disk image, generating a map that indicates an offset within the virtual disk image at which the at least one file is stored; and

retrieving the requested subset of data from the backup comprises retrieving the requested subset of data without mounting the virtual disk image by reading raw data from the offset within the virtual disk image to retrieve the subset of data.

3. The computer-implemented method of claim 1 , wherein:

identifying the request to back up the entire virtual disk image comprises identifying a request to back up the entire virtual disk image to a sequential storage device; and

retrieving the requested subset of data from the backup of the virtual disk image comprises retrieving the requested subset of data from the sequential storage device in sequential order.

4. The computer-implemented method of claim 3 , wherein retrieving the requested subset of data in sequential order comprises:

identifying the offsets at which relevant data is stored within the virtual disk image; and

directly seeking out the portions of the backed up virtual disk image for reading rather than retrieving the entire virtual disk image from the sequential storage device and then reading from the virtual disk image to retrieve the subset of data.

5. The computer-implemented method of claim 1 , wherein:

generating the application data catalog comprises generating the application data catalog using an agent executing within the virtual machine;

the agent takes an application-aware snapshot within the virtual machine of the application data, the application-aware snapshot comprising the file;

the agent catalogs the application data based on the application-aware snapshot; and

using the agent to generate the application data catalog comprises receiving the application data catalog from the agent.

6. The computer-implemented method of claim 1 , wherein:

the application comprises an email server; and

identifying the at least one file comprises identifying at least one of:

a datable file comprising mailbox data;

a transaction log file comprising operations to commit to a database; and

a checkpoint file for indicating whether operations have successfully been saved to a database.

7. The computer-implemented method of claim 1 , wherein:

the application comprises a database server; and

identifying the at least one file comprises identifying a database file maintained by the database server.

8. The computer-implemented method of claim 1 , wherein:

the application comprises a content management system; and

identifying the at least one file comprises identifying a database file for the content management system.

9. The computer-implemented method of claim 1 , wherein:

the method further comprises storing, within the virtual disk image, application metadata useful for restoring the application within the virtual disk image; and

retrieving the requested subset of data from the backup of the virtual disk image further comprises retrieving, without mounting the virtual disk image, the application metadata from the backup of the virtual disk image and using the application metadata for restoring the application.

10. A system for restoring application data, the system comprising:

an identification module programmed to:

identify a virtual disk image comprising data stored for the use of a virtual machine executing on a host computing system, wherein:

the virtual machine does not have a direct correspondence to hardware of an underlying host machine; and

a subset of the data represents a volume of data within the virtual machine used for storage by an application within the virtual machine;

identify a request to back up the entire virtual disk image in a raw unchanged format in such a way as to facilitate a restoration of the application without requiring a restoration of the entire virtual disk image; and

in response to the request to back up the entire virtual disk image, identify, within the volume of data used by the application, at least one file comprising application data used by the application;

a generation module programmed to generate an application data catalog comprising each of a reference to the file, a reference to the application data, and a reference to the application, wherein:

the application data catalog associates a logical view of the application data with the file;

the logical view is based on application logic of the application; and

the application data catalog conveys that the application uses the application data within the file;

a backup module programmed to back up the virtual disk image;

an association module programmed to associate the application data catalog with the backed up virtual disk image;

a restoration module programmed to:

identify a restoration request to restore a subset of the data included within the backup of the virtual disk image, the requested subset of data being defined by a logical view of the application, without restoring the entire backup of the virtual disk image; and

in response to identifying the restoration request:

identify the application data catalog; and

retrieve the subset of data from the backup of the virtual disk image based on the application data catalog, without restoring the entire backup of the virtual disk image; and

at least one processor configured to execute the identification module, the generation module, the backup module, the association module, and the restoration module.

11. The system of claim 10 , wherein the generation module is further programmed to, in response to the request to back up the entire virtual disk image, generate a map that indicates an offset within the virtual disk image at which the file is stored.

12. The system of claim 10 , wherein the backup module is programmed to back up the virtual disk image by backing up the virtual disk image in a virtual disk image format.

13. The system of claim 10 , wherein the generation module is programmed to generate the application data catalog associating the logical view of the application data with the file by associating the file with a name of the application in the application data catalog.

14. The system of claim 10 , wherein;

the file comprises the requested subset of data; and

the application data catalog maps the logical view of the application to at least one location of the subset of data by mapping the logical view of the application to the file.

15. The system of claim 14 , wherein the restoration module is further programmed to identify a map that indicates an offset within the virtual disk image at which the file is stored, wherein retrieving the requested subset of data from the backup of the virtual disk image is further based on the map.

16. The system of claim 14 , wherein the restoration module is programmed to retrieve the requested subset of data from the backup of the virtual disk image based on the application data catalog by:

retrieving the file from the backup of the virtual disk image;

identifying, based on the logical view of the application, a location within the file at which at least a portion of the subset of data resides; and

retrieving the portion of the subset of data from the location within the file.

17. The system of claim 10 , wherein the restoration module is programmed to retrieve the requested subset of data from the backup of the virtual disk image by retrieving the subset of data from the virtual disk image without mounting the virtual disk image.

18. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify a virtual disk image comprising data stored for the use of a virtual machine executing on a host computing system, wherein:

the virtual machine does not have a direct correspondence to hardware of an underlying host machine; and

a subset of the data represents a volume of data within the virtual machine used for storage by an application within the virtual machine;

identify a request to back up the entire virtual disk image in a raw unchanged format in such a way as to facilitate a restoration of the application without requiring a restoration of the entire virtual disk image;

in response to the request to back up the entire virtual disk image:

identify, within the volume of data used by the application, at least one file comprising application data used by the application;

generate an application data catalog comprising each of a reference to the file, a reference to the application data, and a reference to the application, wherein:

the application data catalog associates a logical view of the application data with the file;

the logical view is based on application logic of the application; and

the application data catalog conveys that the application uses the application data within the file;

back up the virtual disk image; and

associate the application data catalog with the backed up virtual disk image;

after backing up the virtual disk image, identify a request to restore a subset of the data included within the backup of the virtual disk image, the requested subset of data being defined by a logical view of the application, without restoring the entire backup of the virtual disk image; and

in response to identifying the request, retrieve the requested subset of data from the backup of the virtual disk image based on the application data catalog, without restoring the entire backup of the virtual disk image.

19. The computer-implemented method of claim 9 , wherein using the application metadata for restoring the application comprises using the application metadata to determine how to interact with one or more application interfaces of the application to restore application data from the requested subset of data with application-level granularity.

20. The computer-implemented method of claim 9 , wherein using the application metadata for restoring the application comprises using the application metadata to interact with one or more application interfaces of the application on the virtual machine to at least one of complete, commit, and enable the restoration of the application after the requested subset of data has been restored.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075728/0466 →
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2011
From: DAMODHARAN, PRABHU; GILPIN, JOSEPH MILTON; MEIERHOFER, ROBERT; PALECEK, LOWELL; PETERSON, CURTIS; REKER, MATTHEW; SCHIEFELBEIN, LARRY; SEKHON, HERMEHER; WILDE, ROBERT; ANNONI, MARTIN
To: SYMANTEC CORPORATION
Reel/Frame 027146/0307 →