# US 10,768,961 B2 · Virtual machine seed image replication through parallel deployment

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

- Number: US 10,768,961 B2
- Document ID: US10768961B2
- Status: Granted
- Kind: B2
- Application number: 15/210,407
- Filed: 2016-07-14
- Published: 2018-01-18
- Granted: 2020-09-08
- Earliest claimed: 2016-07-14
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Paul L. Bradshaw; Richard E. Harper; Valentina Salapura
- Web page: https://patentgrep.com/patent/US10768961B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 8/60: Software deployment
- G06F 8/63: {Image based installation; Cloning; Build to order}
- G06F 11/2023: {Failover techniques}
- G06F 11/2038: {with a single idle spare processing component}
- G06F 11/2048: {where the redundant components share neither address space nor persistent storage}
- G06F 11/2056: {by mirroring}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/45575: {Starting, stopping, suspending or resuming virtual machine instances}
- G06F 2009/45579: {I/O management, e.g. providing access to device drivers or storage}
- G06F 2201/815: Virtual
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Generating secondary virtual machine seed image storage is provided. An input is received to deploy a primary virtual machine and a secondary virtual machine based on a golden virtual machine image. In response, the primary virtual machine from the golden virtual machine image on a primary data processing site and the secondary virtual machine from the golden virtual machine image on a secondary data processing site are deployed. Execution of the secondary virtual machine is suspended on the secondary data processing site. Using the golden virtual machine image, a seed image corresponding to the secondary virtual machine is generated that is up-to-date at that point in time in storage at the secondary data processing site to form the secondary virtual machine seed image storage. The secondary virtual machine seed image storage is enabled to receive state data updates from the primary virtual machine on the primary data processing site.

## Claims

### Claim 1

A computer-implemented method for generating secondary virtual machine seed image storage, the computer-implemented method comprising:
receiving, by a computer, an input to deploy a primary virtual machine on a primary data processing site and a secondary virtual machine on a secondary data processing site, wherein a first copy of a golden virtual machine image used to deploy the primary virtual machine is maintained on the primary data processing site, and wherein an out-of-date copy of the golden virtual machine image is stored on the secondary data processing site;
responsive to the computer receiving the input, deploying, by the computer, the primary virtual machine from the first copy of the golden virtual machine image on the primary data processing site, generating a phantom virtual machine seed image on the secondary data processing site, and deploying the secondary virtual machine from the out-of-date copy of the golden virtual machine image on the secondary data processing site;
enabling, by the computer, the primary virtual machine to execute on the primary data processing site and sending, by the computer, state data updates corresponding to the primary virtual machine to the secondary data processing site;
utilizing, by the computer, the phantom virtual machine seed image to receive the state data updates from the primary virtual machine while running software on the secondary virtual machine to update the out-of-date copy of the golden virtual machine image to match the first copy of the golden virtual machine image;
suspending, by the computer, execution of the secondary virtual machine on the secondary data processing site;
generating, by the computer, a complete seed image corresponding to the secondary virtual machine that is up-to-date at that point in time in storage at the secondary data processing site to form the secondary virtual machine seed image storage by merging a partial seed image generated from the updated golden virtual machine image with the phantom virtual machine seed image; and
enabling, by the computer, the secondary virtual machine seed image storage to receive state data updates from the primary virtual machine on the primary data processing site.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1 further comprising:
responsive to the computer determining that the primary virtual machine has failed on the primary data processing site, executing, by the computer, the secondary virtual machine using the secondary virtual machine seed image storage on the secondary data processing site for failure recovery.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the first copy of the golden virtual machine image is customizable and deployable to generate production virtual machine images on the primary data processing site.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the computer deploys the primary virtual machine on the primary data processing site and the secondary virtual machine on the secondary data processing site at a same time.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the computer deletes the phantom virtual machine seed image from the storage of the secondary data processing site after merging content of the phantom virtual machine seed image with the partial seed image on the secondary data processing site.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the software executed to update the out-of-date golden virtual machine image on the secondary data processing site is one or more of a patch or an upgrade.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, further comprising:
selecting, by the computer, a site from a set of candidate data processing sites to be the secondary data processing site based on the versions of the golden virtual machine images on the candidate sites and a customer workload being performed on the primary data processing site.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, wherein the computer lazy copies golden virtual machine images not resident on the selected secondary site from other secondary data processing sites not selected in the set of candidate secondary data processing sites.

### Claim 9

A computer system for generating secondary virtual machine seed image storage, the computer system comprising:
a bus system;
a storage device connected to the bus system, wherein the storage device stores program instructions; and
a processor connected to the bus system, wherein the processor executes the program instructions to:
receive an input to deploy a primary virtual machine on a primary data processing site and a secondary virtual machine on a secondary data processing site, wherein a first copy of a golden virtual machine image used to deploy the primary virtual machine is maintained on the primary data processing site, and wherein an out-of-date copy of the golden virtual machine image is stored on the secondary data processing site;
deploy the primary virtual machine from the first copy of the golden virtual machine image on the primary data processing site, generate a phantom virtual machine seed image on the secondary data processing site, and deploy the secondary virtual machine from the out-of-date copy of the golden virtual machine image on the secondary data processing site in response to receiving the input;
enable the primary virtual machine to execute on the primary data processing site and send state data updates corresponding to the primary virtual machine to the secondary data processing site;
utilize the phantom virtual machine seed image to receive the state data updates from the primary virtual machine while running software on the secondary virtual machine to update the out-of-date copy of the golden virtual machine image to match the first copy of the golden virtual machine image;
suspend execution of the secondary virtual machine on the secondary data processing site;
generate a complete seed image corresponding to the secondary virtual machine that is up-to-date at that point in time in storage at the secondary data processing site to form the secondary virtual machine seed image storage by merging a partial seed image generated from the updated golden virtual machine image with the phantom virtual machine seed image; and
enable the secondary virtual machine seed image storage to receive state data updates from the primary virtual machine on the primary data processing site.

### Claim 10 (depends on 9)

The computer system of claim 9, wherein the processor further executes the program instructions to:
delete the phantom virtual machine seed image from the storage on the secondary data processing site after merging the phantom virtual machine seed image with the partial seed image on the secondary data processing site.

### Claim 11 (depends on 9)

The computer system of claim 9, wherein the processor further executes the program instructions to:
execute the secondary virtual machine using the secondary virtual machine seed image storage on the secondary data processing site for failure recovery in response to determining that the primary virtual machine has failed.

### Claim 12 (depends on 9)

The computer system of claim 9, wherein the first copy of the golden virtual machine image is customizable and deployable to generate production virtual machine images on the primary data processing site.

### Claim 13

A computer program product for generating secondary virtual machine seed image storage, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform a method comprising:
receiving, by the computer, an input to deploy a primary virtual machine on a primary data processing site and a secondary virtual machine on a secondary data processing site, wherein a first copy of a golden virtual machine image used to deploy the primary virtual machine is maintained on the primary data processing site, and wherein an out-of-date copy of the golden virtual machine image is stored on the secondary data processing site;
responsive to the computer receiving the input, deploying, by the computer, the primary virtual machine from the first copy of the golden virtual machine image on the primary data processing site, generating a phantom virtual machine seed image on the secondary data processing site, and deploying the secondary virtual machine from the out-of-date copy of the golden virtual machine image on the secondary data processing site;
enabling, by the computer, the primary virtual machine to execute on the primary data processing site and sending, by the computer, state data updates corresponding to the primary virtual machine to the secondary data processing site;
utilizing, by the computer, the phantom virtual machine seed image to receive the state data updates from the primary virtual machine while running software on the secondary virtual machine to update the out-of-date copy of the golden virtual machine image to match the first copy of the golden virtual machine image;
suspending, by the computer, execution of the secondary virtual machine on the secondary data processing site;
generating, by the computer, a complete seed image corresponding to the secondary virtual machine that is up-to-date at that point in time in storage at the secondary data processing site to form the secondary virtual machine seed image storage by merging a partial seed image generated from the updated golden virtual machine image with the phantom virtual machine seed image; and
enabling, by the computer, the secondary virtual machine seed image storage to receive state data updates from the primary virtual machine on the primary data processing site.

### Claim 14 (depends on 13)

The computer program product of claim 13 further comprising:
responsive to the computer determining that the primary virtual machine has failed on the primary data processing site, executing, by the computer, the secondary virtual machine using the secondary virtual machine seed image storage on the secondary data processing site for failure recovery.

### Claim 15 (depends on 13)

The computer program product of claim 13, wherein the first copy of the golden virtual machine image is customizable and deployable to generate production virtual machine images on the primary data processing site.

### Claim 16 (depends on 13)

The computer program product of claim 13, wherein the computer deletes the phantom virtual machine seed image from the storage of the secondary data processing site after merging content of the phantom virtual machine seed image with the partial seed image on the secondary data processing site.
