We are currently evaluating some virtual machine replication options for an ESX 3.0.1 branch office deployment. Without a SAN or iSCSI storage, we need to replicate virtual machines between ESX servers over the network. Currently, there are a few options:

  • esxReplicator from vizioncore
  • Double-Take for VMware Infrastructure

These options replicate the whole virtual machine from the outside. Of course, software exists to replicate virtual machines from within the guest operating system but we decided to exclude these for now to stay OS-agnostic.

At the moment, esxReplicator for VI3 is still in development with a public beta out soon. So we decided to take a look at Double-Take for VMware Infrastructure now and look at esxReplicator later.

Installation

The solution does not require any agents on the ESX servers . You only need a Windows Server 2003 machine (can be virtual) with the .NET Framework 2.0 installed. Installation is super simple and installs a Windows service that will be responsible for monitoring and licensing. You can connect to the service with a client that you install on your desktop or on the server itself.

Their software communicates with VirtualCenter to present you with ESX hosts and their virtual machines so you can choose which virtual machines to protect.

Note that it is highly recommended to use ESX 3.0.1 together with VirtualCenter 2.0.1. You also need to enable SSH logons with root and open the SSH client port on the ESX firewall.

How does it work?

After you start the Double-Take for VMware Infrastructure (DTVI) client, you need to provide credentials to logon to VirtualCenter. You will then be presented with a very simple interface to start creating protection jobs. Protecting a virtual machine is just a matter of launching a wizard and answering some basic questions:

  • What is the source ESX host?
  • What virtual machine you want to protect on the source ESX host?
  • What is the target ESX host?
  • What are the replication options? You can have compression, replicate when x MB of data has changed or replicate every x minutes regardless of the amount of changes.

DTVI uses standard virtual machine snapshots to do its work. When you protect a virtual machine for the first time, a snapshot is created and all vmdk files are transferred to the target ESX server. When that is finished, other files such as the vmx file are copied as well. To actually replicate the changes, DTVI creates a snapshot on the source machine and monitors it until the set treshold is reached. The snapshot is then copied from source ESX to target ESX using ssh. The source and target snapshot is then committed and a new snapshot is created on the source.

Note that the DTVI server is not involved in copying data between source and target ESX servers!

Failover

Failover is manual. If you want to use the replicated virtual machine you need to stop the replication job first. Then you simply register the target virtual machine with VirtualCenter and start it.

During our tests the software worked as expected and effectively replicated virtual machines between source and target. Note that the console network interface is used for copying.

Pitfalls

Because DTVI uses snapshots to easily capture changes and commit them to the target you should not create snapshots yourself. You should also stop using backup software that uses snapshots such as VCB. Naturally, you should not change the disk configuration of the source virtual machine while a protection is in place.

DTVI does not notify you when you do things that interfere with the protection job. It is perfectly possible to stop the source virtual machine and register/start the target without any complaint from DTVI. Administrators need to make sure that they stop or delete the protection job when they perform actions that interfere with DTVI. It is actually quite easy to corrupt your target virtual machine.

In my opinion, there are some things missing from DTVI (it is a first release after all):

  • Monitoring and alerting for protection jobs.
  • More intelligence for DTVI to notice things such as stopping and starting source and target virtual machines.
  • Command line options to stop and start monitoring and create protection jobs.

But all things considered DTVI is simple to install and does what it is supposed to do quite well. I recommend you take a look at it if you need a simple replication option for VI3!