# US 9,519,656 B2 · System and method for providing a virtualized replication and high availability environment

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

- Number: US 9,519,656 B2
- Document ID: US9519656B2
- Status: Granted
- Kind: B2
- Application number: 14/538,485
- Filed: 2014-11-11
- Published: 2015-03-05
- Granted: 2016-12-13
- Earliest claimed: 2012-01-13
- Assignees: CA, Inc.
- Applicants: Ca, Inc.
- Inventors: Jinxing Yin; Pengcheng Dun
- Web page: https://patentgrep.com/patent/US9519656B2

## CPC

- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 11/2069: {Management of state, configuration or failover}
- G06F 16/1794: {Details of file format conversion}
- G06F 16/188: Virtual file systems
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/131: Protocols for games, networked simulations or virtual reality
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The system and method described herein may provide a virtualized replication and high availability environment. In particular, a virtualized production server may run one or more virtual machines in one or more child partitions and have a replication and high availability engine installed in a parent partition. The replication and high availability engine may automatically discover the virtual machines running in the child partitions and automatically synchronize all files associated with the virtual machines to a virtualized replica server. Furthermore, the replication and high availability engine may continuously replicate subsequent changes to the files associated with the virtual machines running in the child partitions to the virtualized replica server, which may then create on-demand virtual machines from the synchronized and replicated files to handle switchover, failover, switchback, and failback events associated with the virtualized production server or the virtual machines running in the child partitions associated therewith.

## Claims

### Claim 1

A system to provide a virtualized replication and high availability environment, the system comprising:
a production server system having hardware to host a virtualization architecture, wherein the virtualization architecture comprises a virtualization stack having access to the hardware associated with the production server system, and configured to execute a plurality of virtual machines on the production server system; and
a replication and high availability engine to function with the plurality of virtual machines, wherein the replication and high availability engine is configured to:
determine identifying information of the plurality of virtual machines to discover the plurality of virtual machines;
invoke a copy service associated with the virtualization stack, based on the identifying information of one or more of the plurality of the discovered virtual machines, to capture virtual machine operation files associated with the one or more of the plurality of discovered virtual machines;
synchronize the virtual machine operation files to a replica server configured to host the virtualization architecture;
replicate a change to the virtual machine operation files associated with the one or more discovered virtual machines to the replica server;
provide a choice of (i) replication of virtual machine operation files, or changes thereto, back from the replica server to the production server system as those files or changes were previously on the production server system, or (ii) transmission from the replica server to the production server system, of virtual machine operation files, or changes thereto, that correspond to a replicated virtual machine after that replicated virtual machine has operated on the replica server, or (iii) both (i) and (ii); and
redirect an end user and/or workload from the one or more discovered virtual machines to an on-demand virtual machine created from synchronized virtual machine operation files and started on the replica server.

### Claim 2 (depends on 1)

The system recited in claim 1, wherein the copy service comprises a volume shadow copy service writer associated with the virtualization stack.

### Claim 3 (depends on 1)

The system recited in claim 1, wherein the virtual machine operation files associated with the one or more discovered virtual machines comprise a virtual hard disk file, a configuration file, and a snapshot file.

### Claim 4 (depends on 1)

The system recited in claim 1, wherein the virtualization architecture further comprises a hypervisor configured to isolate a parent partition from one or more child partitions configured to execute the plurality of virtual machines.

### Claim 5 (depends on 1)

The system recited in claim 1, wherein the replication and high availability engine is configured to automatically redirect the end user and/or the workload to the on-demand virtual machine on the replica server in response to a switchover event that relates to planned downtime associated with the production server system or the virtual machines executed thereon or in response to a failover event that relates to unplanned downtime associated with the production server system or the virtual machines executed thereon.

### Claim 6 (depends on 1)

The system recited in claim 1, wherein the replication and high availability engine is configured to automatically redirect the end user and/or the workload to the on-demand virtual machine on the replica server to balance a load associated with the production server system.

### Claim 7 (depends on 1)

The system recited in claim 1, wherein the replication and high availability engine is configured to redirect the end user and/or the workload to the on-demand virtual machine on the replica server to test the on-demand virtual machine on the replica server without disrupting the one or more discovered virtual machines executing on the production server system.

### Claim 8 (depends on 1)

The system recited in claim 1, wherein the replica server is further configured to reverse synchronize virtual machine operation files associated with the on-demand virtual machine or a change to the virtual machine operation files associated with the on-demand virtual machine, to the production server system.

### Claim 9 (depends on 8)

The system recited in claim 8, wherein the replication and high availability engine is further is configured to redirect the end user and/or the workload from the on-demand virtual machine on the replica server to one or more of the virtual machines on the production server system in response to the replica server having reverse synchronized, so as to perform switchback or fallback from the replica server to the production server system.

### Claim 10

A method to provide a virtualized replication and high availability environment, the method comprising:
hosting a virtualization architecture on a production server system, wherein the virtualization architecture comprises a virtualization stack having access to hardware associated with the production server system, and configured to execute a plurality of virtual machines on the production server system;
discovering, via a replication and high availability engine, the plurality of virtual machines, wherein the discovering comprises determining identifying information of the plurality of virtual machines;
invoking a copy service associated with the virtualization stack, based on the identifying information of one or more of the plurality of the discovered virtual machines, to capture virtual machine operation files associated with the one or more of the plurality of discovered virtual machines;
synchronizing, via the replication and high availability engine, the virtual machine operation files to a replica server;
replicating, via the replication and high availability engine, a change to the virtual machine operation files associated with the one or more discovered virtual machines to the replica server;
providing a choice of (i) replication of virtual machine operation files, or changes thereto, back from the replica server to the production server system as those files or changes were previously on the production server system, or (ii) transmitting from the replica server to the production server system, of virtual machine operation files, or changes thereto, that correspond to a replicated virtual machine after that replicated virtual machine has operated on the replica server, or (iii) both (i) and (ii); and
redirecting an end user and/or workload from the one or more discovered virtual machines to an on-demand virtual machine created from synchronized virtual machine operation files and started on the replica server.

### Claim 11 (depends on 10)

The method recited in claim 10, wherein the copy service comprises a volume shadow copy service writer associated with the virtualization stack.

### Claim 12 (depends on 10)

The method recited in claim 10, wherein the virtual machine operation files associated with the one or more discovered virtual machines comprise a virtual hard disk file, a configuration file, and a snapshot file.

### Claim 13 (depends on 10)

The method recited in claim 10, wherein the virtualization architecture further comprises a hypervisor configured to isolate a parent partition from one or more child partitions configured to execute the plurality of virtual machines.

### Claim 14 (depends on 10)

The method recited in claim 10, wherein the redirecting comprises automatically redirecting the end user and/or the workload to the on-demand virtual machine on the replica server in response to a switchover event that relates to planned downtime associated with the production server system or the virtual machines executed thereon or in response to a failover event that relates to unplanned downtime associated with the production server system or the virtual machines executed thereon.

### Claim 15 (depends on 10)

The method recited in claim 10, wherein the redirecting comprises automatically redirecting the end user and/or the workload to the on-demand virtual machine on the replica server to balance a load associated with the production server system.

### Claim 16 (depends on 10)

The method recited in claim 10, wherein the redirecting comprises automatically redirecting the end user and/or the workload to the on-demand virtual machine on the replica server to test the on-demand virtual machine on the replica server without disrupting the one or more discovered virtual machines executing on the production server system.

### Claim 17 (depends on 10)

The method recited in claim 10, further comprising reverse synchronizing virtual machine operation files associated with the on-demand virtual machine or a change to the virtual machine operation files associated with the on-demand virtual machine, to the production server system.

### Claim 18

A computer program product comprising:
a non-transitory computer readable storage medium storing information, the stored information comprising:
instructions configured to cause a computing device to:
host a virtualization architecture on a production server system, wherein the virtualization architecture comprises a virtualization stack having access to hardware associated with the production server system, and configured to execute a plurality of virtual machines on the production server system;
determine, via a replication and high availability engine, identifying information of the plurality of virtual machines to discover the plurality of virtual machines;
invoke a copy service associated with the virtualization stack, based on the identifying information of one or more of the plurality of the discovered virtual machines, to capture virtual machine operation files associated with one or more of the plurality of discovered virtual machines;
synchronize, via the replication and high availability engine, the virtual machine operation files to a replica server; and
replicate, via the replication and high availability engine, a change to the virtual machine operation files associated with the one or more discovered virtual machines to the replica server;
provide a choice of (i) replication of virtual machine operation files, or changes thereto, back from the replica server to the production server system as those files or changes were previously on the production server system, or (ii) transmission from the replica server to the production server system, of virtual machine operation files, or changes thereto, that correspond to a replicated virtual machine after that replicated virtual machine has operated on the replica server, or (iii) both (i) and (ii); and
redirect an end user and/or workload from the one or more discovered virtual machines to an on-demand virtual machine created from synchronized virtual machine operation files and started on the replica server.
