# US 2023/0067904 A1 · Cross-hypervisor live recovery of virtual machines

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2023/0067904 A1
- Document ID: US20230067904A1
- Status: Published application
- Kind: A1
- Application number: 17/817,493
- Filed: 2022-08-04
- Published: 2023-03-02
- Earliest claimed: 2020-03-12
- Assignees: Commvault Systems, Inc.
- Applicants: Commvault Systems, Inc.
- Inventors: Sanjay Kumar
- Web page: https://patentgrep.com/patent/US20230067904A1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0664: {at device level, e.g. emulation of a storage device or system}
- G06F 3/0673: {Single storage device}
- G06F 9/4401: Bootstrapping (security arrangements therefor G06F21/57)
- G06F 11/1469: {Backup restoration techniques}
- G06F 11/1451: {by selection of backup contents}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/45575: {Starting, stopping, suspending or resuming virtual machine instances}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2201/815: Virtual
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim at position 1

1-20. (canceled)

### Claim 21

A computer-implemented method comprising:
storing virtual machine data of a first virtual disk into a secondary storage device;
receiving a request from a client computing device to restore the virtual machine data from the secondary storage device;
creating a second virtual disk in a temporary storage device, wherein the second virtual disk is accessible via a virtual network path;
creating a virtual machine hosted by a hypervisor, wherein the virtual machine is configured to access the second virtual disk via the virtual network path;
generating a mapping of the second virtual disk to the first virtual disk;
prior to booting up the virtual machine, in response to one or more read requests from the hypervisor, restoring boot data from among the virtual machine data in the secondary storage device, wherein the mapping enables identifying one or more locations in the secondary storage device from which to retrieve the boot data requested by the hypervisor in the one or more read requests; and
at a first time, using the restored boot data to boot up the virtual machine, wherein, at the first time, all of the virtual machine data has not been restored from the secondary storage device into the second virtual disk.

### Claim 22 (depends on 21)

The computer-implemented method of claim 21, wherein after booting up the virtual machine, the second virtual disk is moved from the temporary storage device to a destination storage device, without having restored all of the virtual machine data from the secondary storage device into the second virtual disk.

### Claim 23 (depends on 21)

The computer-implemented method of claim 21, wherein after booting up the virtual machine, the second virtual disk is moved from the temporary storage device to a destination storage device after restoring all of the virtual machine data from the secondary storage device into the second virtual disk.

### Claim 24 (depends on 21)

The computer-implemented method of claim 21, wherein the virtual machine data is restored from the secondary storage device on an as-needed basis in response to one or more read requests from the hypervisor.

### Claim 25 (depends on 21)

The computer-implemented method of claim 21, wherein storing the virtual machine data of the first virtual disk into the secondary storage device is performed in a backup operation of the first virtual disk.

### Claim 26 (depends on 21)

The computer-implemented method of claim 21, wherein the hypervisor that hosts the virtual machine is of a different type than a second hypervisor that hosted a second virtual machine that generated the virtual machine data of the first virtual disk.

### Claim 27 (depends on 26)

The computer-implemented method of claim 26, wherein the virtual machine data comprises payload data and metadata, wherein the metadata describes how the payload data is organized in the first virtual disk, and wherein restoring the virtual machine data from the secondary storage device into the second virtual disk comprises using the metadata for converting the payload data to a format of the hypervisor that hosts the virtual machine.

### Claim 28 (depends on 21)

The computer-implemented method of claim 21, further comprising:
receiving a first request to access executable data usable to execute an application on the virtual machine;
determining, based at least on the mapping, 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 into the second virtual disk.

### Claim 29 (depends on 21)

The computer-implemented method of claim 21, further comprising:
receiving, from the hypervisor hosting the virtual machine, a first request to access first data from the second virtual disk;
determining, based at least on the mapping, that the first data is stored at a second location in the secondary storage device;
restoring the first data from the second location of the secondary storage device into the secondary storage device; and
transmitting the first data to the hypervisor hosting the virtual machine.

### Claim 30 (depends on 21)

The computer-implemented method of claim 21, further comprising:
after restoring all of the virtual machine data into the second virtual disk, receiving, from one or more of: the hypervisor and the virtual machine, a first request to access first data on the second virtual disk; and
transmitting the first data responsive to the first request without having to retrieve the first data from the secondary storage device.

### Claim 31

A system comprising:
one or more hardware processors; and
one or more non-transitory computer-readable media carrying programming instructions that, when executed by the one or more hardware processors, configure the system to:
back up virtual machine data of a first virtual disk into a secondary storage device;
receive a request to restore the virtual machine data from the secondary storage device;
create a second virtual disk in a temporary storage device, wherein the second virtual disk is accessible via a virtual network path;
create a virtual machine hosted by a hypervisor, wherein the virtual machine is configured to access the second virtual disk via the virtual network path;
generate a mapping between the first virtual disk and the second virtual disk;
prior to booting up the virtual machine, in response to one or more read requests from the hypervisor, restoring, into the second virtual disk, boot data from among the virtual machine data in the secondary storage device, wherein the mapping enables the system to identify one or more locations in the secondary storage device from which to retrieve the boot data requested by the hypervisor in the one or more read requests; and
at a first time, use the restored boot data to boot up the virtual machine, wherein, at the first time, all of the virtual machine data has not been restored from the secondary storage device into the second virtual disk.

### Claim 32 (depends on 31)

The system of claim 31, wherein the system is further configured to: after booting up the virtual machine, move the second virtual disk from the temporary storage device to a destination storage device, without having restored all of the virtual machine data from the secondary storage device into the second virtual disk, wherein the destination storage device is distinct from the temporary storage device.

### Claim 33 (depends on 31)

The system of claim 31, wherein the system is further configured to: after booting up the virtual machine, move the second virtual disk from the temporary storage device to a destination storage device after all of the virtual machine data has been restored from the secondary storage device into the second virtual disk, wherein the destination storage device is distinct from the temporary storage device.

### Claim 34 (depends on 31)

The system of claim 31, wherein the system is further configured to: restore the virtual machine data on an as-needed basis from the secondary storage device, in response to one or more read requests from the hypervisor.

### Claim 35 (depends on 31)

The system of claim 31, wherein after booting up the virtual machine, the system is further configured to: provide, to the virtual machine, on-demand access to parts of the virtual machine data, by restoring into the second virtual disk the parts that are requested by one or more read requests.

### Claim 36 (depends on 31)

The system of claim 31, wherein the hypervisor that hosts the virtual machine is of a different type than a second hypervisor that hosted a second virtual machine that generated the virtual machine data of the first virtual disk.

### Claim 37 (depends on 36)

The system of claim 36, wherein the virtual machine data comprises payload data and metadata, wherein the metadata describes how the payload data is organized in the first virtual disk, and wherein the system is further configured to: use the metadata to convert the payload data to a format of the hypervisor that hosts the virtual machine in order to restore the virtual machine data from the secondary storage device into the second virtual disk comprises.

### Claim 38 (depends on 31)

The system of claim 31, further comprising:
receive a first request to access executable data usable to execute an application on the virtual machine;
determine, based at least on the mapping, that the executable data is stored at a first location in the secondary storage device; and
restore the executable data from the first location in the secondary storage device into the second virtual disk.

### Claim 39 (depends on 31)

The system of claim 31, further comprising:
receive, from the hypervisor hosting the virtual machine, a first request to access first data from the second virtual disk;
determine, based at least on the mapping, that the first data is stored at a second location in the secondary storage device;
restore the first data from the second location of the secondary storage device into the secondary storage device; and
transmit the first data to the hypervisor hosting the virtual machine.

### Claim 40 (depends on 31)

The system of claim 31, further comprising:
after restoring all of the virtual machine data into the second virtual disk, receive, from one or more of: the hypervisor and the virtual machine, a first request to access first data on the second virtual disk; and
transmit the first data responsive to the first request without having to retrieve the first data from the secondary storage device.
