vCloud VM and VApp Backups with PowerCLI
There are times when a snapshot doesn't cut it, and asking the Backup Administrator or Cloud Provider to set up backups doesn't make sense. Just a couple examples I've run into as a Cloud Provider:
- Upgrades with testing could take longer than a snapshot should exist for.
- Temporary workloads may need backups for "warm storage"
So where is the in-between? Wouldn't it be great to hot clone a VM or VApp with some light scheduling and retention capabilities?
vCloudBackups is the Powershell module for doing this.
The vCloudBackups powershell module allows you to create local backups of VMs and vApps at any cloud provider running vCloud Director 1.5 or 5.1. By local, I mean the VMs and vApps will currently be cloned to the same storage the workloads are currently running on. If you don't trust your SAN with this level of backup, you probably need to talk to you Backup Administrator or cloud provider for that off-site backup. :)
How does it work?
Very simply, the module is just doing hot-clones of VMs or vApps through the vCloud API. When backing up just VMs, they are stored inside a vApp simply called 'Backups.' Each VM backup is named with the vApp origination, VM name, and a date/time of the backup.
VApp backups are simply just exact copies of the originals, except named titled as Backup with a date/time of the backup.
"Retention" is built into the module as a number to keep. The oldest will automatically be deleted.
Scheduling is accomplished through your Windows Task Scheduler and an included script called MyBackups.ps1. Credentials for your vCloud Director login are stored encrypted in a configuration file, meaning NO PLAIN TEXT PASSWORDS!