Tuesday, April 27, 2010

Integrating VMware VDR with Backup Exec

VMware VDR is working properly for our on-site backups and data recovery (others have had a lot of problems with it, but it works for us), and I needed to figure out a simple way to get our backups off disks and onto tape for off-site storage.  Although is possible to replicate the VDR backups for off-site storage if you are using a SAN with replication technology, I can’t allocate enough space on our SAN right now to store/replicate the backups, so that is not an option.

Our VDR appliance is sending backups to a simple NTFS share on our backup server.  The backup server has Symantec Backup Exec (2010) and an attached LTO4 tape library that I will use copy the VDR backups to tape.  The task seems pretty straightforward, except for the fact that the VDR appliance needs to be powered off in order to ensure valid backups.  You don't want VDR to start an integrity check or backup job in the middle of your copy to tape.

The first thing I thought of was to configure a scheduled task in vCenter to shut down the VDR appliance in the morning and turn it back on at night (presumably after the tape backup has completed).  This would technically work, but I don't like having VDR powered off all day.  It's a pain to power it on each time you want to check settings or to let the integrity check run. 

The solution I came up with was to add a pre-command and a post-command to the Backup Exec job to power off and power on (respectively) the VDR appliance.  The first thing I had to do was install the vSphere CLI on the backup server (I installed it to C:\vCLI, for ease of access).  Once this is installed, you'll need to create batch files for the pre/post commands (I'm not sure why, but it doesn't work if you put the commands directly into Backup Exec), then add the proper pre/post commands into Backup Exec after verifying that they do what you want (shut down and restart the VDR appliance):

  1. Install the vSphere CLI on the server that runs Backup Exec.
  2. Run the following command from the vSphere CLI:
    • C:\vCLI\bin>vmware-cmd.pl -H ESXHOST -U USERNAME -l
  3. Where ESXHOST is the ESX/ESXi host that the VDR appliance is running on and USERNAME is the account that has access to this ESX server (usually "root").
  4. The previous command will give you a list of vmx files.  Copy the line that lists the VDR appliance's vmx file.  It will probably look something like this:
    • /vmfs/volumes/4bbb70ad-10e222d0-4d79-001018645db2/VDR/VDR.vmx
  5. This gives you all the info you need to create your pre/post batch files.  They will be (starting with the pre-command batch file):
    • C:\vCLI\bin\vmware-cmd.pl -H ESXHOST -U USERNAME -P PASSWORD "VMX-FILE-PATH" stop soft
    • C:\vCLI\bin\vmware-cmd.pl -H ESXHOST -U USERNAME -P PASSWORD "VMX-FILE-PATH" start
  6. Test these batch files before starting your backup job, and make sure that they work properly!  The first one should gracefully shut down your VDR before the backup job begins, and the second one will power it back on when the backup completes.
  7. Add the batch files you created to the pre/post command fields inside your Backup Exec job.
  8. Now theVDR appliance will only be offline during the actual backup process!


  1. Nice work, I was just figuring out how to do this exact same thing.

  2. Very nice Work indeed!

    Unfortunately not usable wenn storing VDRs files on iSCSI targets, which is the method you want.

  3. Depending on what type of success you had with this method, I followed the guide provided in the whitepaper link in this forum which has worked out well for us