IP Library Granted Patent US 11,068,353
Granted Patent B1
US 11,068,353 · App. 15/717,560 · Granted Jul 20, 2021

Systems and methods for selectively restoring files from virtual machine backup images

Inventor: Amber Ved (San Jose, CA)
Assignee: Veritas Technologies LLC
G06F11/1469G06F9/45558G06F2009/45583G06F2201/84
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,068,353
App. No.
15/717,560
Granted
Jul 20, 2021
Kind
B1
Abstract

The disclosed computer-implemented method for selectively restoring files from virtual machine backup images phrase may include (i) exposing a virtual disk image included in a target virtual machine backup image to an operating system of a host computing system, (ii) mounting the virtual disk image included in the target virtual machine backup image to the host computing system, (iii) determining at least one extent of a target file included in a file system included in the virtual disk image, (iv) associating the extent of the target file with a storage location included in the target virtual machine backup image, (v) generating a catalog comprising the extent of the target file associated with the storage location included in the target virtual machine backup image, and (vi) restoring the target file from the target virtual machine backup image by using the generated catalog.

Claims (59)

1. A computer-implemented method for selectively restoring files from virtual machine backup images, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

exposing a virtual disk image included in a target virtual machine backup image to an operating system of a host computing system;

mounting the virtual disk image included in the target virtual machine backup image to the host computing system;

determining at least one extent of a target file included in a file system included in the virtual disk image at least in part by querying the operating system of the host computing system to identify the extent of the target file;

associating the extent of the target file with a storage location included in the target virtual machine backup image;

generating a catalog that indicates a mapping between extents on disk for the target file and storage locations for fragments included in the target virtual machine backup image; and

restoring the target file from the target virtual machine backup image by:

identifying, by using the mapping from the generated catalog, the storage location included in the target virtual machine backup image that is associated with the extent of the target file; and

accessing data stored at the identified storage location included in the target virtual machine backup image;

providing selective file restoration of the fragments from the target virtual machine backup image.

2. The computer-implemented method of claim 1 , wherein exposing the virtual disk image included in the target virtual machine backup image to the operating system of the host computing system comprises creating a user space file system that includes the virtual disk image in a user space of the host computing system.

3. The computer-implemented method of claim 2 , wherein creating the user space file system in the user space of the host computing system comprises using a file-system-in-user-space (FUSE) driver to create the user space file system based on the target virtual machine backup image.

4. The computer-implemented method of claim 3 , wherein associating the extent of the target file included in the file system included in the virtual disk image with at least one storage location included in the target virtual machine backup image comprises:

directing the operating system of the host computing system to access the target file;

identifying a storage block included in the target virtual machine backup image that the operating system of the host computing system accesses when the operating system of the host computing system is directed to access the target file; and

designating the identified storage block as the storage location associated with the extent of the target file included in the file system.

5. The computer-implemented method of claim 4 , wherein directing the operating system of the host computing system to access the target file included in the file system comprises directing the operating system of the host computing system to perform a simulated read of the target file.

6. The computer-implemented method of claim 4 , wherein identifying the storage block included in the target virtual machine backup image that the operating system of the host computing system accesses when the operating system of the host computing system is directed to access the target file comprises using the FUSE driver to monitor the target virtual machine backup image to identify one or more file system operations that the operating system of the host computing system performs with respect to the target virtual machine backup image when the operating system of the host computing system is directed to access the target file.

7. The computer-implemented method of claim 1 , wherein providing selective file restoration of the fragments from the target virtual machine backup image is performed using capabilities already built into the host computing system without file system reverse-engineering.

8. The computer-implemented method of claim 1 , wherein mounting the virtual disk image to the host computing system comprises mounting the virtual disk image to the host computing system as a network block device.

9. The computer-implemented method of claim 1 , wherein determining the extent of the target file comprises accessing at least one entry in a file index maintained by the file system included in the virtual disk image.

10. The computer-implemented method of claim 9 , wherein the file index comprises at least one of:

an extent tree;

an extent list;

a file extent map;

a file block map;

a file allocation table;

a master file table;

an inode table; and

a dnode array.

11. The computer-implemented method of claim 1 , wherein the target virtual machine backup image comprises an initial virtual machine backup image.

12. The computer-implemented method of claim 11 , wherein the target virtual machine backup image further comprises a differential virtual machine backup image based on the initial virtual machine backup image.

13. A system for selectively restoring files from virtual machine backup images, the system comprising:

an exposing module, stored in memory, that exposes a virtual disk image included in a target virtual machine backup image to an operating system of a host computing system;

a mounting module, stored in memory, that mounts the virtual disk image included in the target virtual machine backup image to the host computing system;

a determining module, stored in memory, that determines at least one extent of a target file included in a file system included in the virtual disk image at least in part by querying the operating system of the host computing system to identify the extent of the target file;

an associating module, stored in memory, that associates the extent of the target file with a storage location included in the target virtual machine backup image; and

a generating module, stored in memory, that generates a catalog that indicates a mapping between extents on disk for the target file and storage locations for fragments included in the target virtual machine backup image; and

a restoring module, stored in memory, that restores the target file from the target virtual machine backup image by:

identifying, by using the mapping from the generated catalog, the storage location included in the target virtual machine backup image that is associated with the extent of the target file; and

accessing data stored at the identified storage location included in the virtual machine backup image; and

at least one processor that executes the exposing module, the mounting module, the determining module, the associating module, the generating module, and the restoring module;

wherein the restoration module provides selective file restoration of the fragments from the target virtual machine backup image.

14. The system of claim 13 , wherein exposing the virtual disk image included in the target virtual machine backup image to the operating system of the host computing system comprises using a file-system-in-user-space (FUSE) driver to create a user space file system that includes the virtual disk image in a user space of the host computing system.

15. The system of claim 14 , wherein associating the extent of the target file included in the file system included in the virtual disk image with at least one storage location included in the target virtual machine backup image comprises:

directing the operating system of the host computing system to access the target file;

identifying a storage block included in the target virtual machine backup image that the operating system of the host computing system accesses when the operating system is directed to access the target file; and

designating the identified storage block as the storage location associated with the extent of the target file included in the file system.

16. The system of claim 15 , wherein directing the operating system of the host computing system to access the target file included in the file system comprises directing the operating system of the host computing system to perform a simulated read of the target file.

17. The system of claim 15 , wherein identifying the storage block included in the target virtual machine backup image that the operating system of the host computing system accesses when the operating system is directed to access the target file comprises using the FUSE driver to monitor the target virtual machine backup image to identify one or more file system operations that the operating system performs with respect to the target virtual machine backup image when the operating system of the host computing system is directed to access the target file.

18. The system of claim 13 , wherein mounting the virtual disk image to the host computing system comprises mounting the virtual disk image to the host computing system as a loop device.

19. The system of claim 13 , wherein mounting the virtual disk image to the host computing system comprises mounting the virtual disk image to the host computing system as a network block device.

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

expose a virtual disk image included in a target virtual machine backup image to an operating system of a host computing system;

mount the virtual disk image included in the target virtual machine backup image to the host computing system;

determine at least one extent of a target file included in a file system included in the virtual disk image at least in part by querying the operating system of the host computing system to identify the extent of the target file;

associate the extent of the target file with a storage location included in the target virtual machine backup image; and

generate a catalog that indicates a mapping between extents on disk for the target file and storage locations for fragments included in the target virtual machine backup image; and

restore the target file from the target virtual machine backup image by: using the generated catalog to identify the storage location included in the target virtual machine backup image that is associated with the extent of the target file; and accessing data stored at the identified storage location included in the target virtual machine backup image; provide selective file restoration of the fragments from the target virtual machine backup image.

Assignments (13)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075377/0130 →
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 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0938 →
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 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 051594/0529 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0412 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Aug 2, 2019
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 051594/0529 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Dec 4, 2017
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 044682/0967 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2017
From: VED, AMBER
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 043718/0497 →
Cited By (2)
US 12,204,930 US 12,511,202