script Backup pour XenServer
La sauvegarde de VM sous XenServer 5 n’est pas chose évidente. Heureusement depuis la version 5.5 il est possible de le faire avec le logiciel de PHD Virtual.
En tous cas, voici un petit script qui sauvegarde à froid les VMs:
#!/bin/sh #----------------------------------------------------------------- # les variables #----------------------------------------------------------------- DST=/mnt/usbdisk XE=/usr/bin/xe #----------------------------------------------------------------- # la fonction sauvegarde #----------------------------------------------------------------- backupVM(){ echo ">>>Debut de sauvegarde de la VM: $1" date -R [ -f "$DST/$1.xva" ] && rm -f $DST/$1.xva if [ -z "$($XE vm-list name-label=$1 power-state=running)" ] ; then $XE vm-export vm=$1 filename=$DST/$1.xva; else $XE vm-shutdown force=false vm=$1; $XE vm-export vm=$1 filename=$DST/$1.xva; $XE vm-start vm=$1; fi echo ">>>Fin de sauvegarde de la VM: $1" date -R } #----------------------------------------------------------------- # l’execution du script # mettre autant de ligne backupVM que de VM a sauvegarder #----------------------------------------------------------------- [ -d $DST ] || rmdir $DST; mount /dev/sda1 $DST backupVM VM1 backupVM VM2 ... umount $DST |
Ce script monte un périphérique ici un disque usb (ca pourrait être un partage réseau), puis il efface la précédente sauvegarde, si la VM est allumé il l’éteint avant de la sauvegarder puis il la redémarre et enfin il démonte le périphérique.
Les fichiers sauvegarder peuvent ensuite être simplement restaurer à partir du XenCenter en faisant un « Import VM » ou en ligne de commande avec un « xe vm-import« .
Pour que le script fonctionne, il faut mettre le fichier exécutable (chmod +x), le disque usb doit être formaté dans un format qui accepte les fichier de plus de 2 Go (NTFS ou Ext3) et dans la fin du script il faut mettre la liste des VMs à sauvegarder (autant de ligne backupVM nom_de_la_VM que de VM à sauvegarder).
Et pour info, voici le lien vers un script plus complexe qui permet de faire des sauvegardes à chaud des VMs en s’appuyant sur les Snapshots (à partir de la version 5.5):
