IP Library Granted Patent US 8,682,862
Granted Patent B2
US 8,682,862 · App. 12/758,326 · Granted Mar 25, 2014

Virtual machine file-level restoration

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 8,682,862
App. No.
12/758,326
Granted
Mar 25, 2014
Kind
B2
Abstract

Disclosed is a method and system for selectively restoring file-level data from a disk image backup. In embodiments, a virtual machine backup may be performed by dividing a virtual machine virtual disk file into a plurality of discrete fixed-sized data blocks sharing a common index file that is stored on a backup medium, such as a hard drive, to form a backup set. The index file is referenced to determine which fixed-sized block contains volume information, such as a partition table, of the backed-up virtual machine file. The individual blocks are processed as a virtual filesystem which is mounted and presented to an access module, which traverses the filesystem and provide access to individual files in the image backup to a client process. The restore files may be delivered to the client in a container file, which may be compressed to increase transfer speed. The container file may include executable instructions for automatically restoring the files to a desired location.

Claims (61)

1. A method for retrieving a logical data unit stored within a deduplicated disk image residing on a backup storage device without restoring the entire deduplicated disk image, comprising:

receiving a request for at least one deduplicated disk image residing on a backup storage device;

identifying the at least one deduplicated disk image residing on the backup storage device based on information contained within an index file, which is indicative of a logical organization of the backup storage device;

mounting the at least one deduplicated disk image;

receiving a request for at least one logical data unit stored within the at least one deduplicated disk image;

identifying a portion of the at least one deduplicated disk image that corresponds to the at least one requested logical data unit without restoring the entire at least one deduplicated disk image;

restoring only the portion of the at least one deduplicated disk image; and

transferring the requested at least one logical data unit to a recipient,

wherein the portion of the at least one deduplicated disk image that corresponds to the at least one requested logical data unit is made up of one or more data blocks,

wherein a file name of each data block is a hash value of the contents of each data block, and

wherein a map file stores a name of each data block.

2. The method in accordance with claim 1 , wherein at least one step is performed at least in part by a virtual filesystem component.

3. The method in accordance with claim 2 , wherein the virtual filesystem component includes a Filesystem in Userspace (FUSE) driver which presents a mountable volume and interprets code in user space.

4. The method in accordance with claim 1 , further comprising aggregating the at least one requested logical data unit into a container file.

5. The method in accordance with claim 4 , further comprising providing a set of executable instructions in the container file that are configured to copy a logical data unit contained in the container file to a predetermined destination.

6. The method in accordance with claim 4 , further comprising performing data compression of the at least one requested logical data unit.

7. The method in accordance with claim 1 , wherein the received request for the at least one logical data unit is generated at least in part via a user interface.

8. The method in accordance with claim 1 , wherein the received request for the at least one logical data unit is generated at least in part via an application programming interface.

9. A system for performing data restoration, comprising:

a processor;

a storage device operably coupled to the processor; and

a file-level access module including a set of instructions executable on the processor for performing a method of data restoration comprising:

receiving a request for at least one deduplicated disk image residing on a backup storage device;

identifying the at least one deduplicated disk image residing on the backup storage device based on information contained within an index file, which is indicative of a logical organization of the backup storage device;

mounting the at least one deduplicated disk image;

receiving a request for at least one logical data unit stored within the at least one deduplicated disk image;

identifying a portion of the at least one deduplicated disk image that corresponds to the at least one requested logical data unit without restoring the entire at least one deduplicated disk image;

restoring only the portion of the at least one deduplicated disk image; and

transferring the at least one requested logical data unit to a recipient,

wherein the portion of the at least one disk image that corresponds to the at least one requested logical data unit is made up of one or more data blocks,

wherein a file name of each data block is a hash value of the contents of each data block, and

wherein a map file stores a name of each data block.

10. The system in accordance with claim 9 , further comprising a virtual filesystem component,

wherein at least one step of the method of data restoration is performed at least in part by the virtual filesystem component.

11. The system in accordance with claim 10 , wherein the virtual filesystem component includes a Filesystem in Userspace (FUSE) driver which presents a mountable volume and interprets code in user space.

12. The system in accordance with claim 9 , wherein the file level access module includes the set of instructions performing the method of data restoration that further comprises aggregating the at least one requested logical data unit into a container file.

13. The system in accordance with claim 12 , wherein the method of data restoration further comprises providing a set of executable instructions in the container file that are configured to copy a logical data unit contained in the container file to a predetermined destination.

14. The system in accordance with claim 9 , wherein the file level access module includes the set of instructions performing the method of data restoration that further comprises performing data compression of the at least one requested logical data unit.

15. The system in accordance with claim 9 , wherein the received request for the at least one logical data unit is generated at least in part via a user interface.

16. The system in accordance with claim 9 , wherein the received request for the at least one logical data unit is generated at least in part via an application programming interface.

17. A non-transitory machine-readable medium comprising a set of instructions configured to perform a method for retrieving a logical data unit stored within a deduplicated disk image residing on a backup storage device without restoring the entire deduplicated disk image, the method comprising:

receiving a request for at least one deduplicated disk image residing on the backup storage device;

identifying the at least one deduplicated disk image residing on the backup storage device based on information contained within an index file, which is indicative of a logical organization of the backup storage device;

mounting the at least one deduplicated disk image;

receiving a request for at least one logical data unit stored within the at least one deduplicated disk image;

identifying a portion of the at least one deduplicated disk image that corresponds to the at least one requested logical data unit without restoring the entire at least one deduplicated disk image;

restoring only the portion of the at least one deduplicated disk image; and

transferring the at least one requested logical data unit to a recipient,

wherein the portion of the at least one deduplicated disk image that corresponds to the at least one requested logical data unit is made up of one or more data blocks,

wherein a file name of each data block is a hash value of the contents of each data block, and

wherein a map file stores a name of each data block.

18. The method in accordance with claim 1 , wherein a first n bytes of the file name indicate a name of a first level directory and a second n bytes of the file name indicate a name of a second level directory, under the first level directory, where a data block identified by the file name is stored.

19. The system in accordance with claim 9 , wherein a first n bytes of the file name indicate a name of a first level directory and a second n bytes of the file name indicate a name of a second level directory, under the first level directory, where a data block identified by the file name is stored.

20. The non-transitory machine-readable medium in accordance with claim 17 , wherein a first n bytes of the file name indicate a name of a first level directory and a second n bytes of the file name indicate a name of a second level directory, under the first level directory, where a data block identified by the file name is stored.

21. The method in accordance with claim 1 , wherein access to contents of the at least one deduplicated disk image is provided through a web interface.

22. The method in accordance with claim 1 , wherein the at least one deduplicated disk image is mounted remotely using a network file system.

23. The system in accordance with claim 9 , wherein access to contents of the at least one deduplicated disk image is provided through a web interface.

24. The non-transitory machine-readable medium in accordance with claim 17 , wherein the at least one deduplicated disk image is mounted remotely using a network file system.

25. The method in accordance with claim 1 , wherein the at least one deduplicated disk image is compressed.

26. The system in accordance with claim 9 , wherein the at least one deduplicated disk image is compressed.

27. The non-transitory machine-readable medium in accordance with claim 17 , wherein the at least one deduplicated disk image is compressed.

Assignments (20)
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Mar 24, 2025
From: KASEYA US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS SECOND LIEN COLLATERAL AGENT
Reel/Frame 070608/0192 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Mar 21, 2025
From: KASEYA US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 070586/0834 →
CHANGE OF NAME Recorded Oct 27, 2023
From: DATTO, INC.
To: DATTO, LLC
Reel/Frame 065385/0256 →
RELEASE OF SECURITY INTEREST (PATENTS) Recorded Aug 25, 2022
From: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
To: KASEYA US LLC
Reel/Frame 061272/0325 →
PATENT SECURITY AGREEMENT Recorded Dec 30, 2019
From: KASEYA US LLC
To: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
Reel/Frame 051448/0467 →
PATENT SECURITY AGREEMENT Recorded May 16, 2019
From: UNITRENDS, INC.; SPANNING CLOUDS APPS LLC; RAPIDFIRE TOOLS INC.
To: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
Reel/Frame 049214/0308 →
RELEASE OF SECURITY INTEREST Recorded May 8, 2019
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNITRENDS, INC.
Reel/Frame 049118/0104 →
RELEASE OF SECURITY INTEREST Recorded May 8, 2019
From: VEEAM SOFTWARE LIMITED
To: KASEYA LUXEMBOURG HOLDINGS S.C.A.
Reel/Frame 049122/0138 →
SUBORDINATED SECOND LIEN US PATENT SECURITY AGREEMENT Recorded Jun 1, 2018
From: SPANNING CLOUD APPS LLC; UNITRENDS, INC.; KASEYA LIMITED; RAPIDFIRE TOOLS INC.
To: FABSTONE INVESTMENTS LLC
Reel/Frame 046286/0755 →
RELEASE OF SECURITY INTEREST Recorded Jan 24, 2018
From: PACIFIC WESTERN BANK, AS SUCCESSOR IN INTEREST TO SQUARE 1 BANK
To: UNITRENDS, INC.
Reel/Frame 044713/0081 →
SECURITY INTEREST Recorded Jan 19, 2018
From: UNITRENDS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 044667/0574 →
SECURITY INTEREST Recorded Jul 10, 2017
From: UNITRENDS, INC.
To: PACIFIC WESTERN BANK, AS SUCCESSOR IN INTEREST TO SQUARE 1 BANK
Reel/Frame 042955/0859 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 024217 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 1, 2016
From: ROSIKIEWICZ, JAMES; SHAY, CALAB K; MCKELVEY, RONALD T; MITTELL, ALEXANDER T
To: PHD VIRTUAL TECHNOLOGIES INC.
Reel/Frame 039923/0552 →
MERGER Recorded Jun 19, 2015
From: PHD VIRTUAL TECHNOLOGIES INC.
To: UNITRENDS, INC.
Reel/Frame 035870/0314 →
SECURITY INTEREST Recorded Mar 24, 2014
From: PHD VIRTUAL TECHNOLOGIES INC.
To: SQUARE 1 BANK
Reel/Frame 032507/0091 →
RELEASE OF SECURITY INTEREST Recorded Mar 20, 2014
From: WF FUND IV LIMITED PARTNERSHIP (C/O/B WELLINGTON FINANCIAL LP AND WELLINGTON FINANCIAL FUND IV)
To: PHD VIRTUAL TECHNOLOGIES, INC.
Reel/Frame 032482/0116 →
RELEASE OF SECURITY INTEREST Recorded Mar 14, 2014
From: SILICON VALLEY BANK
To: PHD VIRTUAL TECHNOLOGIES, INC.
Reel/Frame 032448/0563 →
SECURITY AGREEMENT Recorded Mar 7, 2013
From: PHD VIRTUAL TECHNOLOGIES, INC.
To: WF FUND IV LIMITED PARTNERSHIP (C/O/B AS WELLINGTON FINANCIAL LP AND WELLINGTON FINANCIAL FUND IV)
Reel/Frame 029940/0143 →
SECURITY AGREEMENT Recorded Feb 26, 2013
From: PHD VIRTUAL TECHNOLOGIES INC.
To: SILICON VALLEY BANK
Reel/Frame 029877/0619 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2010
From: ROSIKIEWICZ, JAMES; SHAY, CALAB K; MCKELVEY, RONALD T; MITTELL, ALEXANDER D
To: PHD VIRTUAL TECHNOLOGIES
Reel/Frame 024217/0464 →