IP Library Granted Patent US 9,354,907
Granted Patent B1
US 9,354,907 · App. 13/661,258 · Granted May 31, 2016

Optimized restore of virtual machine and virtual disk data

Inventors: Ravindra V. Teli (Pune, IN); Mohammed Eliyas N. A. Shaikh (Pune, IN); Chirag Dalal (Pune, IN)
Assignee: Veritas Technologies LLC
G06F9/45533G06F12/109G06F12/1036
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,354,907
App. No.
13/661,258
Granted
May 31, 2016
Kind
B1
Abstract

Various systems and methods for restoring a virtual machine and virtual machine data. For example, one method can involve receiving a request to restore the virtual machine and virtual machine data. The virtual machine data can include part or all of a virtual disk associated with the virtual machine. Both the virtual machine and the virtual machine data are stored in one or more backup storage devices. In response to the request, the virtual machine is restored from the backup storage device to a local storage device, and restoration of the virtual machine data is initiated. While the virtual machine data is being migrated from backup to local storage, I/O requests are received and processed. Processing the I/O request can involve performing the I/O requests to both the backup storage device and the local storage device.

Claims (110)

1. A method comprising:

receiving a restore request, wherein

the restore request specifies a virtual machine and virtual machine data,

the virtual machine data comprises at least a portion of a virtual disk associated with the virtual machine, and

the virtual machine and virtual machine data are stored in at least one backup storage device;

restoring the virtual machine from the at least one backup storage device to a local storage device, wherein

the local storage device comprises at least one new virtual disk created for and assigned to the virtual machine;

initiating restoration of the virtual machine data, wherein

the restoration of the virtual machine data comprises copying at least a portion of the virtual machine data from the at least one backup storage device to the at least one new virtual disk on the local storage device;

receiving a plurality of input/output (I/O) requests from the restored virtual machine; and

performing the plurality of I/O requests received from the restored virtual machine, wherein

the performing is performed prior to completing the restoration of the virtual machine data to the local storage device, and

the performing comprises performing a first of the plurality of I/O requests to the at least one new virtual disk on the local storage device and

performing a second of the plurality of I/O requests to the at least one backup storage device.

2. The method of claim 1 , wherein the restoration of the virtual machine data comprises:

copying a first portion of the virtual machine data from a full backup stored in a first backup storage device of the at least one backup storage device; and

copying a second portion of the virtual machine data from at least one incremental backup, wherein

the at least one incremental backup is stored in at least one another backup storage device of the at least one backup storage device.

3. The method of claim 1 , wherein

the plurality of I/O requests comprise a write request, wherein

the write request specifies a first data portion, and

performing the write request comprises writing the first data portion to the at least one new virtual disk on the local storage device instead of to the backup storage device.

4. The method of claim 1 , wherein

the plurality of I/O requests comprise a read request, wherein

the read request specifies target data, and

performing the read request comprises copying the target data from the backup storage device to the at least one new virtual disk on the local storage device.

5. The method of claim 1 , wherein

the performing comprises detecting whether a target block of a first I/O request has been written in the at least one new virtual disk on the local storage device and, if so, preventing the restoration of the virtual machine data from overwriting the target block.

6. The method of claim 1 , wherein

the restoration of the virtual machine data comprises updating metadata to indicate which blocks have been restored to the at least one new virtual disk on the local storage device.

7. The method of claim 1 , wherein

the restore request specifies a subset of the virtual machine data associated with the virtual machine stored in the at least one backup storage device.

8. The method of claim 1 , further comprising:

detecting unavailability of the virtual machine on a host prior to receiving the restore request, wherein

the restore request specifies the virtual machine and the virtual machine data to be restored to an another host.

9. The method of claim 8 , further comprising:

determining whether each of the plurality of I/O requests can be performed to the at least one new virtual disk on the local storage device or to the at least one backup storage device, wherein

the local storage device is associated with the another host; and

inhibiting performance of an I/O request of the plurality of I/O requests to both the local storage device and the at least one backup storage device.

10. The method of claim 1 , wherein the processing comprises:

intercepting the plurality of I/O requests, wherein

the plurality of I/O requests specify the at least one new virtual disk on the local storage device; and

selectively redirecting at least one of the plurality of I/O requests to the at least one backup storage device.

11. The method of claim 10 , wherein

the intercepting and the selectively redirecting are performed by a filter driver, and

the filter driver is implemented in a hypervisor.

12. The method of claim 10 , wherein

the intercepting is performed by a filter driver, and

the selectively redirecting is performed by a second virtual machine.

13. A non-transitory computer readable storage medium storing program instructions executable to:

receive a restore request, wherein

the restore request specifies a virtual machine and virtual machine data,

the virtual machine data comprises at least a portion of a virtual disk associated with the virtual machine, and

the virtual machine and virtual machine data are stored in at least one backup storage device;

restore the virtual machine from the at least one backup storage device to a local storage device, wherein

the local storage device comprises at least one new virtual disk created for and assigned to the virtual machine;

initiate restoration of the virtual machine data, wherein

the restoration of the virtual machine data comprises copying at least a portion of the virtual machine data from the at least one backup storage device to the at least one new virtual disk on the local storage device;

receive a plurality of input/output (I/O) requests from the restored virtual machine; and

perform the plurality of I/O requests received from the restored virtual machine, wherein

performing the plurality of I/O requests occurs prior to completing the restoration of the virtual machine data to the local storage device, and

the performing comprising performing a first of the plurality of I/O requests to the at least one new virtual disk on the local storage device and performing a second of the plurality of I/O requests to the at least one backup storage device.

14. The non-transitory computer readable storage medium of claim 13 , wherein the instructions are further executable to:

copy a first portion of the virtual machine data from a full backup stored in a first backup storage device of the at least one backup storage device; and

copy a second portion of the virtual machine data from at least one incremental backup, wherein

the at least one incremental backup is stored in at least one another backup storage device of the at least one backup storage device.

15. The non-transitory computer readable storage medium of claim 13 , wherein the instructions are further executable to:

intercept the plurality of I/O requests, wherein

the I/O requests specify the at least one new virtual disk on the local storage device; and

selectively redirect at least one of the plurality of I/O requests to the at least one backup storage device.

16. The non-transitory computer readable storage medium of claim 13 , wherein

the plurality of I/O requests comprise a write request, wherein

the write request specifies a first data portion, and

performing the write request comprises writing the first data portion to the at least one new virtual disk on the local storage device instead of to the backup storage device.

17. The non-transitory computer readable storage medium of claim 13 , wherein

the plurality of I/O requests comprise a read request, wherein

the read request specifies target data, and

performing the read request comprises copying the target data from the backup storage device to the at least one new virtual disk on the local storage device.

18. A system comprising:

one or more processors; and

a memory coupled to the one or more processors, wherein the memory stores program instructions executable by the one or more processors to:

receive a restore request, wherein

the restore request specifies a virtual machine and virtual machine data,

the virtual machine data comprises at least a portion of a virtual disk associated with the virtual machine, and

the virtual machine and virtual machine data are stored in at least one backup storage device;

restore the virtual machine from the at least one backup storage device to a local storage device, wherein

the local storage device comprises at least one new virtual disk created for and assigned to the virtual machine;

initiate restoration of the virtual machine data, wherein

the restoration of the virtual machine data comprises copying at least a portion of the virtual machine data from the at least one backup storage device to the at least one new virtual disk on the local storage device;

receive a plurality of input/output (I/O) requests from the restored virtual machine; and

perform the plurality of I/O requests received from the restored virtual machine, wherein

performing the plurality of I/O requests occurs prior to completing the restoration of the virtual machine data to the local storage device, and

the performing comprising performing a first of the plurality of I/O requests to the at least one new virtual disk on the local storage device and

performing a second of the plurality of I/O requests to the at least one backup storage device.

19. The system of claim 18 , wherein the instructions are further executable to:

copy a first portion of the virtual machine data from a full backup stored in a first backup storage device of the at least one backup storage device; and

copy a second portion of the virtual machine data from at least one incremental backup, wherein

the at least one incremental backup is stored in at least one another backup storage device of the at least one backup storage device.

20. The system of claim 18 , wherein the instructions are further executable to:

intercept the plurality of I/O requests, wherein

the I/O requests specify the at least one new virtual disk on the local storage device; and

selectively redirect at least one of the plurality of I/O requests to the at least one backup storage device.

21. The system of claim 18 , wherein

the plurality of I/O requests comprise a write request, wherein

the write request specifies a first data portion, and

performing the write request comprises writing the first data portion to the at least one new virtual disk on the local storage device instead of to the backup storage device.

22. The system of claim 18 , wherein

the plurality of I/O requests comprise a read request, wherein

the read request specifies target data, and

performing the read request comprises copying the target data from the backup storage device to the at least one new virtual disk on the local storage device.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075763/0001 →
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 26, 2012
From: TELI, RAVINDRA V.; SHAIKH, MOHAMMED ELIYAS N.A.; DALAL, CHIRAG
To: SYMANTEC CORPORATION
Reel/Frame 029197/0133 →