Backing up your VM’s

Backing up your VM’s is a topic often forgotten when first entering the virtualization world. There are a number of big players in the VMware backup world, and not surprisingly, they all provide with products to backup your VM’s using snapshots and ‘LAN-free’ backups (where, amongst other things, you don’t need agents in the guest OS anymore).

The downside is, that these products cost a lot of money. One of my customers did not have a decent backup-solution yet, and requested a temporary (and free) solution to this problem. I proposed esXpress, and installed a demo to show how it works.

At first, esxPress looks complicated. There are a couple of components, like CLI, the GUI and the VBA’s. The CLI application and the GUI are identical in function, both can set all the options. If you comfortable with using the CLI, I recommend using it instead of the GUI, since the GUI is actually a special VM, and will only take up resources. The VBA’s are specially created VM’s to do the actual backupjob, and are discarded after a job.

Preparation and installation

Since esXpress partly runs in the Service Console, be sure to give the SC enough memory (at least 512MB RAM).

First, you’ll need to download the required software from esXpress. Registration with a working e-mail adress is required. At the time of writing the following versions are available for download:

  • esxpress 3.1-19
  • esxpress VBA 3.1-1

Download both RPM’s to your ESX machine. Install with these commands:

rpm -i esxpressVBA-3.1-1.esx.i386.rpm
rpm -i esxpress-3.1-19.esx.i386.rpm


Start the CLI configuration application with ‘phd’, read and agree to the EULA.

Enter the ‘Setup Quick Menu’ – ‘Configure Helper Options’ menu. We’ll setup a couple of basic settings to get this up-and-running:

  • VMFS for VBA’s and GUI VM.
    Set the ‘VMFS_For_Helpers’ option to one of your (preferrably local) VMFS datastores. (Press ‘enter’ twice to get a list of datastores)
  • Number of VBA’s
    Set the ‘Max_Number_of_Helpers’ to a suitable value for your environment (where the maximum is the number of physical CPU’s +1).
  • SCSI Driver for VBA’s
    Set the value for ‘In_the_VBA_use_SCSI_Driver’ to ‘lsilogic’.

Enter the ‘Setup Quick Menu’ – ‘Network Options for VBAs’ menu to configure the network settings:

  • Port Group
    Set the ‘Network_for_Helpers’ to the network the VBA’s should connect the the network through. (Press ‘enter’ twice to get a list of port groups)
  • Default network settings for VBA’s
    Configure the netmask, gateway and DNS-server for the VBA’s using corresponding options.

Now it’s time to setup the backup targets. Enter the ‘Setup Quick Menu’ -‘Backup Targets’ menu.

  • Delete the to existing targets, they’re useless.
  • New target (#1):

    • Name: SMB
    • Transport Type: SMB
    • Network Port: 445
    • Target Type: Both
    • Roll-over Target: Yes
    • Auto Delete: Yes
    • Target IP: //
    • Backup Folder: /esXpress
    • Username / Password: esxpress/password

Now you’re ready to start the GUI, if you want. This is not a mandatory step, but only for those who are uncomfortable with using the CLI.

  • Navigate to ‘Setup Quick Menu’ – ‘Start/Stop GUI Helper’ and press ‘Yes’ to start the GUI VM.
  • Check the log to verify the GUI has started correctly. Go back to the main menu and choose ‘Tail the esXpress log’.

Note: When using the default backup schedule, all VM’s on the ESX-host get backed up at midnight every night. This ensures compliance with a VirtualCenter (DRS enabled) cluster. A full backup is made every second day of the month. All the intermediate backups are delta’s. The backup will run at full speed, possibly reducing performance of your regular VM’s.

Testing a backup

Return to the CLI, and choose ‘Backup ONE VM Now (Delta/Full)’. Since there’s no full backup yet, we’ll have to make one. Choose your VM and choose ‘FULL BACKUP’.

The process is as follows:

  1. VM Snaphots are validated
  2. A new snapshot on the VM is added
  3. A new VBA will be created and the snapshot is attached to the VBA.
  4. The VBA is powered on, and does the backup
  5. The VBA is powered off
  6. The snapshot is removed from the VM.

Let the first full backup finish. When it’s done, please do another backup of the VM, so a delta is also made.

Restoring a backup

As stated by esXpress:

Only esXpress backups are completely restorable without having our software. A Full is nothing more then a gzip copy of the -flat.vmdk file. A Delta backup is actually self restorable. If you ‘sh’ a restore menu you will be presented with the restore options. This even works in Windows with CYGWIN installed.

Restoring a VM backup (from either a full or a delta) is easy. You won’t even need esxPress, just extract the archive, and execute the deltafile. This way, even restoration to a Windows machine with VMware Workstation is possible!

Other features

  • Using the VIClient to give commands to esxPress
    It is possible to issue commands to esxPress trough the VIClient. Append a command to the display name of any VM, and the command is executed by the esXpress daemon. Examples are:

    • [xNOW] to do a delta-backup for this VM now.
    • [xFULL] to do a full backup for this VM now.
    • [xALL] to do a delta-backup for all VM’s now.
    • [xALLFULL] to do a full backup for all VM’s now.
    • [xTEST] to do benchmark tests (for network and disk I/O and CPU speed).
  • Notes
    esXpress gives statusmessages trough the annotations/notes field in every VM (both the VM being backed up and the VBA doing the backup). This way, you’ll have an easy way to keep yourself informed about your backup.