This is an old revision of the document!
Main Reference Article: http://www.charleslabri.com/back-up-xenserver-6-to-network-share-with-fancy-scripting-and-lots-of-fun-and-no-downtime/
Backup: http://www.8layer8.com/?p=260
Restore: http://www.8layer8.com/?p=200
You can back up all the VM's, XenServer hosts, and metadata from a single XenServer host in a XenServer pool.
Consider this a disaster recovery backup. Use a file-by-file backup such as Ahsay for daily needs.
Here we use an NFS mount for backup storage.
XVA backups are compressed on the fly.
This is a no-downtime script set; it backs up the VM “live” by taking a snapshot, and then exporting that snapshot to a mount point on Dom0.
cleanup.sh
file runs and removes old data and emails regarding what happened previouslyaudit.sh
runs and outputs the info via e-mail to the backup adminmeta-backup.sh
runs and backs up Dom0 and the XenServer database and structurevm_backup.sh
runs and backs up the VMs running on the host.lib
and the .cfg
filesvm_backup.cfg
file
Choose one of your XenServers to be the backup server. This script runs in Dom0 on a XenServer.
Here we assume you have a shared NFS folder
/backup/xenserver-backup/VA-Hosting-Pool
on IP address 10.10.1.9
and a XenServer pool named VA-Hosting-Pool
.
Mount the NFS share:
mkdir /mnt/backup vi /etc/fstab
Append:
# # Mount the backup share 10.10.1.9:/backup/xenserver-backup/VA-Hosting-Pool /mnt/backup nfs _netdev 0 0
Mount the share, check it's mounted and test a manual backup:
mount -a mount xe vm-export vm="<your-vm-name>" filename=/mnt/backup/"<your-vm-name>".xva
see also SSMTP
Modify ssmtp.conf
as necessary:
vi /etc/ssmtp/ssmtp.conf root=adminuser@yourdomain.com mailhub=mail.yourdomain.com:465 RewriteDomain=yourdomain.com FromLineOverride=YES UseTLS=YES AuthUser=smtpuser AuthPass=smtppass
mkdir -p /opt/backup && cd /opt/backup wget https://www.dropbox.com/s/0fyijjlv30mc413/XenServerBackup.zip?dl=1 -O XenServerBackup.zip unzip XenServerBackup.zip rm -rf __MACOSX/ chmod +x *.sh chmod +x dbtool cp -a ./dbtool /sbin/dbtool
You might want to use IP addresses to control which network interfaces are used for the backups.
Change the names and filenames to the names you have for your XenServers according to the article:
vi audit.sh vi cleanup.sh vi meta-backup.sh vi mailheader.txt vi vm_backup.cfg
Run the cleanup script and check for an e-mail message:
./cleanup.sh
Run the audit script and check for an e-mail message:
./audit.sh
Then run the metadata backup script. This will take longer, so let it run.
./meta-backup.sh