# US 9,436,489 B2 · Virtual machine data replication with shared resources

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

- Number: US 9,436,489 B2
- Document ID: US9436489B2
- Status: Granted
- Kind: B2
- Application number: 14/136,098
- Filed: 2013-12-20
- Published: 2015-06-25
- Granted: 2016-09-06
- Earliest claimed: 2013-12-20
- Assignees: Red Hat Israel, Ltd.
- Applicants: Red Hat Israel, Ltd.
- Inventors: Eduardo Warszawski; Yeela Kaplan
- Web page: https://patentgrep.com/patent/US9436489B2

## CPC

- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for virtual machine data replication with shared resources. An example method may include: identifying resources that are shared across a plurality of virtual machines, storing a copy of the resources, receiving, an indication of a portion of virtual storage of a virtual machine to be replicated, determining that the portion of virtual storage is not included in the resources, in response to the determination, updating a replicated copy of the virtual machine in view of the portion of virtual storage, the replicated copy further including the resources that are shared across a plurality of virtual machines, determining an initialization efficiency metric in relation to the replicated copy, and in response to the determination that the initialization efficiency metric exceeds an efficiency threshold, storing a copy of the virtual storage.

## Claims

### Claim 1

A method comprising:
identifying one or more resources that are shared across a plurality of virtual machines; storing a copy of each of the one or more resources;
receiving, from one of the plurality of virtual machines, an indication of a portion of a virtual storage of the one of the plurality of virtual machines to be replicated;
determining, by a processing device, that the portion of the virtual storage of the one of the plurality of virtual machines is not included in the one or more resources;
in response to a determination that the portion of the virtual storage of the one of the plurality of virtual machines is not included in the one or more resources, updating a replicated copy of the one of the plurality of virtual machines in view of the portion of the virtual storage of the one of the plurality of virtual machines, the replicated copy of the one of the plurality of virtual machines further comprising the one or more resources that are shared across a plurality of virtual machines;
determining an initialization efficiency metric in relation to the replicated copy of the one of the plurality of virtual machines, wherein the initialization efficiency metric reflects at least one of:
an amount of time that initializing a new virtual machine in view of the replicated copy is likely to entail,
an amount of processing power that initializing a new virtual machine in view of the replicated copy is likely to entail, or
a resource overhead that initializing a new virtual machine in view of the replicated copy is likely to entail; and
in response to a determination that the initialization efficiency metric of the replicated copy of the one of the plurality of virtual machines exceeds a defined efficiency threshold, storing a copy of the virtual storage of the one of the plurality of virtual machines, the copy of the virtual storage comprising the one or more resources that are shared across the plurality of virtual machines.

### Claim 2 (depends on 1)

The method of claim 1, wherein the one or more resources comprise one or more resources that are common to the one of the plurality of virtual machines and the plurality of virtual machines.

### Claim 3 (depends on 1)

The method of claim 1, wherein the one or more resources comprise one or more unused resources.

### Claim 4 (depends on 1)

The method of claim 1, further comprising generating a pause command with respect to the one of the plurality of virtual machines.

### Claim 5 (depends on 1)

The method of claim 1, wherein the indication of the portion of the virtual storage of the one of the plurality of virtual machines to be replicated comprises a modification to a portion of the virtual storage of the first virtual machine.

### Claim 6 (depends on 1)

The method of claim 1, wherein the indication of the portion of the virtual storage of the one of the plurality of virtual machines to be replicated comprises a new portion of the virtual storage of the first virtual machine.

### Claim 7 (depends on 1)

The method of claim 1, wherein updating a replicated copy of the one of the plurality of virtual machines comprises copying a portion of the virtual storage of the one of the plurality of virtual machines that is not present in the replicated copy of the one of the plurality of virtual machines to the replicated copy of the one of the plurality of virtual machines.

### Claim 8

A system comprising:
a memory; and
a processing device, operatively coupled to the memory, to:
identify one or more resources that are shared across a plurality of virtual machines;
store a copy of each of the one or more resources;
receive, from one of the plurality of virtual machines, an indication of a portion of a virtual storage of the one of the plurality of virtual machines to be replicated;
determine that the portion of the virtual storage of the one of the plurality of virtual machines is not included in the one or more resources;
in response to a determination that the portion of the virtual storage of the one of the plurality of virtual machines is not included in the one or more resources, update a replicated copy of the one of the plurality of virtual machines in view of the portion of the virtual storage of the one of the plurality of virtual machines, the replicated copy of the one of the plurality of virtual machines further comprising the one or more resources that are shared across a plurality of virtual machines;
determine an initialization efficiency metric in relation to the replicated copy of the one of the plurality of virtual machines, wherein the initialization efficiency metric reflects at least one of:
an amount of time that an initialization of a new virtual machine in view of the replicated copy is likely to entail,
an amount of processing power that an initialization of a new virtual machine in view of the replicated copy is likely to entail, or a resource overhead that an initialization of a new virtual machine in view of the replicated copy is likely to entail; and
in response to a determination that the initialization efficiency metric of the replicated copy of the one of the plurality of virtual machines exceeds a defined efficiency threshold, store a copy of the virtual storage of the one of the plurality of virtual machines, the copy of the virtual storage comprising the one or more resources that are shared across the plurality of virtual machines.

### Claim 9 (depends on 8)

The system of claim 8, wherein the one or more resources comprise one or more resources that are common to the one of the plurality of virtual machines and the plurality of virtual machines.

### Claim 10 (depends on 8)

The system of claim 8, wherein the one or more resources comprise one or more unused resources.

### Claim 11 (depends on 8)

The system of claim 8, wherein the processing device is further to generate a pause command with respect to the one of the plurality of virtual machines.

### Claim 12 (depends on 8)

The system of claim 8, wherein the indication of the portion of the virtual storage of the one of the plurality of virtual machines to be replicated comprises a modification to a portion of the virtual storage of the first virtual machine.

### Claim 13 (depends on 8)

The system of claim 8, wherein the indication of the portion of the virtual storage of the one of the plurality of virtual machines to be replicated comprises a new portion of the virtual storage of the first virtual machine.

### Claim 14 (depends on 8)

The system of claim 8, wherein to update a replicated copy of the one of the plurality of virtual machines, the processing device is further to copy a portion of the virtual storage of the one of the plurality of virtual machines that is not present in the replicated copy of the one of the plurality of virtual machines to the replicated copy of the one of the plurality of virtual machines.

### Claim 15

A non-transitory computer-readable storage medium having instructions that, when executed by a processing device, cause the processing device to:
identify one or more resources that are shared across a plurality of virtual machines;
store a copy of each of the one or more resources;
receive, from one of the plurality of virtual machines, an indication of a portion of virtual storage of the one of the plurality of virtual machines to be replicated;
determine that the portion of the virtual storage of the one of the plurality of virtual machines is not included in the one or more resources;
in response to a determination that the portion of the virtual storage of the one of the plurality of virtual machines is not included in the one or more resources, update, by the processing device, a replicated copy of the one of the plurality of virtual machines in view of the portion of the virtual storage of the one of the plurality of virtual machines, the replicated copy of the one of the plurality of virtual machines further comprising the one or more resources that are shared across a plurality of virtual machines;
determine an initialization efficiency metric in relation to the replicated copy of the one of the plurality of virtual machines, wherein the initialization efficiency metric reflects at least one of:
an amount of time that an initialization of a new virtual machine in view of the replicated copy is likely to entail,
an amount of processing power that an initialization of a new virtual machine in view of the replicated copy is likely to entail, or
a resource overhead that an initialization of a new virtual machine in view of the replicated copy is likely to entail; and
in response to a determination that the initialization efficiency metric of the replicated copy of the one of the plurality of virtual machines exceeds a defined efficiency threshold, store a copy of the virtual storage of the one of the plurality of virtual machines, the copy of the virtual storage comprising the one or more resources that are shared across the plurality of virtual machines.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the one or more resources comprise one or more resources that are common to the one of the plurality of virtual machines and the plurality of virtual machines.

### Claim 17 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the processing device is further to generate a pause command with respect to the one of the plurality of virtual machines.

### Claim 18 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the indication of the portion of the virtual storage of the one of the plurality of virtual machines to be replicated comprises a modification to a portion of the virtual storage of the first virtual machine.

### Claim 19 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the indication of the portion of the virtual storage of the one of the plurality of virtual machines to be replicated comprises a new portion of virtual storage of the first virtual machine.

### Claim 20 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein to update a replicated copy of the one of the plurality of virtual machines the processing device is further to copy a portion of the virtual storage of the one of the plurality of virtual machines that is not present in the replicated copy of the one of the plurality of virtual machines to the replicated copy of the one of the plurality of virtual machines.
