Tech: Virtual machines hot backup through Windows VSS script

It’s well-known that virtualization platforms hosted on Windows (like VMware Server, Microsoft Virtual Server, etc.) may use the Microsoft Volume Shadow Service (VSS) to perform a hot backup of running virtul machines.

There are several obstacles in doing so:

  • Some virtualization platforms are not VSS-aware (like VMware Server)
  • Some backup solutions are VSS-aware but cannot perform the hot backup (like Microsoft NTBackup)
  • At today no application is officially supported by its ISV in such scenario

Despite that customers find this approach so much better than turning off each virtual machine, performing the backup and powering it on again, that several solutions are evaluted today.

The most popular (and expensive) one requires the use of Microsoft Virtual Server 2005 R2 SP1 and the new System Center Data Protection Manager (SCDPM) 2007. But Redmond magazine published today a new article which promises to accomplish the task with a simple, free script:

Backup software that supports VS Writer can back up running virtual server VMs by creating a volume shadow copy that contains each of the VMs’ open files and then backing up the VM files associated with the shadow copy.

If your backup software does not support VSS and VS Writer, then you can still reliably back up Virtual Server VMs from the physical host using a vbscript. To back up running virtual machines, the script needs to perform the following tasks:

  1. Create a snapshot of server’s volume that stores the virtual machines.
  2. Mount the snapshot to a temporary drive letter.
  3. Copy the virtual machine files to your preferred backup location — either a locally mounted drive or a UNC path.

With that in mind, let’s look at implementing a scripted solution. Steps 1 and 2 are the toughest, and rely on vshadow.exe to create and manage the shadow copy. Vshadow.exe is included in the VSS Software Development Kit (SDK). So, to script a live backup solution, you will first need to download the VSS SDK…

Read the whole article at the source.