IP Library Granted Patent US 11,442,768
Granted Patent B2
US 11,442,768 · App. 16/816,934 · Granted Sep 13, 2022

Cross-hypervisor live recovery of virtual machines

Inventor: Sanjay Kumar (Morganville, NJ)
Assignees: COMMVAULT SYSTEMS, INC.; KNOBBE, MARTENS, OLSON & BEAR LLP
G06F9/45558G06F3/0604G06F3/0659G06F3/0664G06F3/0673G06F9/4401G06F11/1469G06F2009/45562G06F2009/45575G06F2009/45583G06F2201/815
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,442,768
App. No.
16/816,934
Granted
Sep 13, 2022
Kind
B2
Abstract

Certain embodiments described herein relate to an improved virtual machine restoration system. In one embodiment, an information management system receives a request to perform a restore of a virtual machine using virtual machine data stored on a secondary storage device. In response, the information management system boots up the virtual machine after restoring only a portion of the virtual machine data that is needed to boot up the virtual machine, thereby reducing latencies associated with virtual machine boot-up. The information management system continues to retrieve additional portions of the virtual machine data from the secondary storage device as such portions are requested by the virtual machine, thereby reducing or minimizing unnecessary data transfer from the secondary storage device.

Claims (71)

1. A computer-implemented method comprising:

storing virtual machine data associated with a first virtual disk on a primary storage device onto a secondary storage device, wherein the first virtual disk is associated with a first disk identifier;

receiving a request from a client computing device to restore the virtual machine data stored in the secondary storage device onto a destination storage device;

creating a second virtual disk in a temporary storage device, wherein the second virtual disk is associated with a second disk identifier is accessible via a virtual network path;

creating a virtual machine configured to access the second virtual disk via the virtual network path;

generating a mapping of the second disk identifier associated with the second virtual disk to the first disk identifier associated with the first virtual disk;

prior to loading at least some of the virtual machine data from the secondary storage device onto the second virtual disk, booting up the virtual machine; and

moving the second virtual disk from the temporary storage device to the destination storage device.

2. The computer-implemented method of claim 1 , further comprising, prior to booting up the virtual machine, restoring boot data needed to boot up the virtual machine from the secondary storage device onto the second virtual disk.

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

receiving a request to access executable data usable to execute an application on the virtual machine;

determining, based at least on the mapping of the second disk identifier to the first disk identifier, that the executable data is stored at a first location in the secondary storage device; and

restoring the executable data from the first location in the secondary storage device onto the second virtual disk such that the executable data usable to execute the application on the virtual machine is stored on the second virtual disk.

4. The computer-implemented method of claim 1 , further comprising:

receiving, from a hypervisor hosting the virtual machine, a request to access data from the second virtual disk;

determining, based at least on the mapping of the second disk identifier to the first disk identifier, that the requested data is stored at a second location in the secondary storage device;

restoring the requested data from the second location of the secondary storage device onto the secondary storage device; and

transmitting the requested data to the hypervisor hosting the virtual machine.

5. The computer-implemented method of claim 1 , further comprising storing an association between the first disk identifier and a location of the virtual machine data in the secondary storage device.

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

subsequent to restoring all of the virtual machine data onto the second virtual disk, receiving, from the virtual machine, a request to access data on the second virtual disk; and

transmitting the requested data to the virtual machine without having to retrieve the requested data from the secondary storage device.

7. The computer-implemented method of claim 1 , further comprising, prior to moving the second virtual disk from the temporary storage device to the destination storage device, restoring all of the virtual machine data from the secondary storage device onto the second virtual disk.

8. A networked information management system comprising:

a primary storage device configured to store data associated with one or more virtual disks;

a secondary storage device configured to store copies of the data associated with the one or more virtual disks; and

a destination computing device comprising physical hardware and associated with a destination storage device, wherein the destination computing device is configured to:

cause virtual machine data associated with a first virtual disk on the primary storage device to be stored onto the secondary storage device, wherein the first virtual disk is associated with a first disk identifier;

receive a request from a client computing device to restore the virtual machine data stored in the secondary storage device onto the destination storage device;

cause a second virtual disk to be created in a temporary storage device, wherein the second virtual disk is associated with a second disk identifier is accessible via a virtual network path;

cause a virtual machine to be created, wherein the virtual machine is configured to access the second virtual disk via the virtual network path;

generate a mapping of the second disk identifier associated with the second virtual disk to the first disk identifier associated with the first virtual disk;

prior to loading at least some of the virtual machine data from the secondary storage device onto the second virtual disk, cause the virtual machine to be booted up; and

cause the second virtual disk to be moved from the temporary storage device to the destination storage device.

9. The networked information management system of claim 8 , wherein the destination computing device is further configured to, prior to booting up the virtual machine, cause boot data needed to boot up the virtual machine to be restored from the secondary storage device onto the second virtual disk.

10. The networked information management system of claim 8 , wherein the destination computing device is further configured to:

receive a request to access executable data usable to execute an application on the virtual machine;

determine, based at least on the mapping of the second disk identifier to the first disk identifier, that the executable data is stored at a first location in the secondary storage device; and

cause the executable data to be restored from the first location in the secondary storage device onto the second virtual disk such that the executable data usable to execute the application on the virtual machine is stored on the second virtual disk.

11. The networked information management system of claim 8 , wherein the destination computing device is further configured to:

receive, from a hypervisor hosting the virtual machine, a request to access data from the second virtual disk;

determine, based at least on the mapping of the second disk identifier to the first disk identifier, that the requested data is stored at a second location in the secondary storage device;

cause the requested data to be restored from the second location of the secondary storage device onto the secondary storage device; and

cause the requested data to be transmitted to the hypervisor hosting the virtual machine.

12. The networked information management system of claim 8 , wherein the destination computing device is further configured to cause an association between the first disk identifier and a location of the virtual machine data in the secondary storage device to be stored.

13. The networked information management system of claim 8 , wherein the destination computing device is further configured to:

subsequent to restoring all of the virtual machine data onto the second virtual disk, receive, from the virtual machine, a request to access data on the second virtual disk; and

cause the requested data to be transmitted to the virtual machine without having to retrieve the requested data from the secondary storage device.

14. The networked information management system of claim 8 , wherein the destination computing device is further configured to, prior to moving the second virtual disk from the temporary storage device to the destination storage device, cause all of the virtual machine data to be restored from the secondary storage device onto the second virtual disk.

15. A non-transitory computer-readable medium storing instructions that, when executed by at least one computing device comprising one or more processors and computer memory, cause the at least one computing device to perform operations comprising:

causing virtual machine data associated with a first virtual disk on the primary storage device to be stored onto the secondary storage device, wherein the first virtual disk is associated with a first disk identifier;

receiving a request from a client computing device to restore the virtual machine data stored in the secondary storage device onto the destination storage device;

causing a second virtual disk to be created in a temporary storage device, wherein the second virtual disk is associated with a second disk identifier is accessible via a virtual network path;

causing a virtual machine to be created, wherein the virtual machine is configured to access the second virtual disk via the virtual network path;

generating a mapping of the second disk identifier associated with the second virtual disk to the first disk identifier associated with the first virtual disk;

prior to loading at least some of the virtual machine data from the secondary storage device onto the second virtual disk, causing the virtual machine to be booted up; and

causing the second virtual disk to be moved from the temporary storage device to the destination storage device.

16. The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise, prior to booting up the virtual machine, causing boot data needed to boot up the virtual machine to be restored from the secondary storage device onto the second virtual disk.

17. The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise:

receiving a request to access executable data usable to execute an application on the virtual machine;

determining, based at least on the mapping of the second disk identifier to the first disk identifier, that the executable data is stored at a first location in the secondary storage device; and

causing the executable data to be restored from the first location in the secondary storage device onto the second virtual disk such that the executable data usable to execute the application on the virtual machine is stored on the second virtual disk.

18. The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise:

receiving, from a hypervisor hosting the virtual machine, a request to access data from the second virtual disk;

determining, based at least on the mapping of the second disk identifier to the first disk identifier, that the requested data is stored at a second location in the secondary storage device;

causing the requested data to be restored from the second location of the secondary storage device onto the secondary storage device; and

causing the requested data to be transmitted to the hypervisor hosting the virtual machine.

19. The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise causing an association between the first disk identifier and a location of the virtual machine data in the secondary storage device to be stored.

20. The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise:

subsequent to restoring all of the virtual machine data onto the second virtual disk, receiving, from the virtual machine, a request to access data on the second virtual disk; and

causing the requested data to be transmitted to the virtual machine without having to retrieve the requested data from the secondary storage 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 Mar 12, 2020
From: KUMAR, SANJAY
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 052102/0856 →
Continuity (1)
Related Publication 20210286639A1 · Sep 16, 2021
Cited By (1)
US 12,306,775