Le site des administrateurs systèmes sous Mac OS X
  Il existe toujours de nombreuses manières de faire : la bonne et les autres.



Accueil du site > Dossiers > Sauvegarde ESXi avec xsibackup
Sauvegarde ESXi avec xsibackup

mercredi 6 mai 2015, par Jayce Piel

Après l’article sur l’installation d’ESXI sur Mac et sur l’utilisation du Shell dans ESXi, il reste un sujet très important à traiter… La sauvegarde ! C’est en effet bien de pouvoir virtualiser ses serveurs, mais sans sauvegarde, c’est aussi dangereux qu’une machine physique (plus dangereux encore puisqu’il y a plusieurs VMs par machine). Nous verrons dans cet article une solution gratuite et efficace !


Introduction

L’inconvenient de passer par ESXi, la version gratuite de l’hyperviseur de VMWare, est que l’on a du coup pas accès à tous les outils performants de la suite vSphere, notamment la migration des VMs ou la répartition automatique sur les différentes machines avec vMotion. Il y a cependant des outils permettant de contourner cela. L’un de ces outils est xsibackup. Ce script permet de sauvegarder les machines virtuelles que vous hébergez, qu’elles soient actives ou non, et sans les suspendre pendant le temps de la sauvegarde !

Nous devons ce script à 33hops, une société espagnole spécialisée (entre autres) dans les solutions de virtualisation. Puisque c’est un script, il est nécessaire d’avoir au préalable activé le shell sur votre hôte ESXi. Vous pouvez trouver le script et de la documentation sur le site de 33hops, ainsi qu’un forum où le développeur est réactif sur la page sourceforge du projet.

xsibackup est gratuit, mais vous pouvez (et je vous encourage à le faire) faire un don à l’auteur, via le site de 33hops.

Installation

L’installation est des plus simples. Comme indiqué sur le site, l’installation est en fait possible en une ligne :

wget http://33hops.com/downloads/?f=xsib&hellip ; -O xsibackup.zip ;unzip -o xsibackup.zip ;chmod 0700 xsibackup*

Cette commande récupère la dernière version de xsibackup sur le site, décompresse l’archive et change les droits des éléments.

Ceci est la théorie. En pratique, comme indiqué dans le précédent article, il faut gérer la persistence des fichiers que l’on ajoute à l’hôte ESXi. Je vais donc considérer que vous avez suivi mes recommendations et que vous avez placé vos scripts dans un dossier /mosx.

Par sécurité, déjà, je vous conseille de garder l’archive de toutes les versions du script que vous utilisez. AInsi, si une mise à jour du script casse quelque chose, il est alors très facile de revenir en arrière. Pour cela, notez la version dans le nom de l’archive :


~ # cd /mosx
/mosx # wget http://33hops.com/downloads/?f=xsibackup.zip -O xsibackup_4.2.4.zip

Comme j’aime bien séparer les choses, je mets tout ce qui concerne xsibackup dans un dossier séparé :


/mosx # mkdir xsibackup
/mosx # cd xsibackup
/mosx/xsibackup # unzip -o ../xsibackup_4.2.4.zip
Archive:  ../xsibackup_4.2.4.zip
 inflating: README.txt
 inflating: xsibackup
 inflating: xsibackup-rsync
 inflating: LICENSE.txt
/mosx/xsibackup # chmod 0700 xsibackup*

Le script xsibackup est un script shell que vous pouvez consulter si vous souhaitez vous inspirer de son fonctionnement pour vos propres scripts. L’exécutable xsibackup-rsync est en fait seulement une version compilée de l’utilitaire rsync que xsibackup utilise dans certaines configurations de sauvegardes.

Utilisation

xsibackup est un logiciel complet, pour connaître toutes ses options, il suffit de le lancer sans paramètres. Je me suis fait un petit script pour lancer la sauvegarde manuellement de toutes mes machines virtuelles :


#!/bin/sh

DESTBCK=/vmfs/volumes/ReadyNAS-NFSShare/BackupVMs/Manuals/

if [ -e ${DESTBCK} ]
then
 ./xsibackup --backup-point=${DESTBCK} --backup-type=all --mail-from=jayce@mosx.org --mail-to=jayce@mosx.org --smtp-srv=mail.mosx.org --smtp-port=25 --subject="Backup report of ESXiSrv" --smtp-auth=none
else
 echo "ERROR: ${DESTBCK} doesn't exist"
fi

Voici le courriel de rapport envoyé : Rapport xsibackup

Programmation des sauvegardes

Vous avez deux manières de programmer les sauvegardes. Soit en utilisant la crontab comme indiqué dans le précédent article, et en indiquant les différentes sauvegardes directement dans la crontab via le fichier local.sh. Soit, vous pouvez utiliser le mécanisme de xsibackup pour cela. Penchons nous sur cette dernière façon :

  • Il faut tout d’abord créer le fichier xsibackup-cron qui contiendra l’ensemble des commandes programmées, et installer ce qu’il faut pour qu’il soit consulté régulièrement. Pour cela on va simplement utiliser la commande
    ./xsibackup —install-cron
  • Modifier le fichier xsibackup-cron créé dans le dossier courant. Voici à quoi ressemble le mien :

# !/bin/sh # This is your XSIBackup crontab, you can add your backup sechedules here. # You can use regular XSIBackup commands appending the parameter —time=« Day HH:mm », i.e. —time=« Mon 21:57 » DESTBCK=/vmfs/volumes/ReadyNAS-NFSShare/BackupVMs/Automatics/

# Hour in UTC !!!

/mosx/xsibackup/xsibackup —time=« Mon 20:00 » —backup-point=$DESTBCK —backup-type=custom —backup-vms=MosX,« YosSrvVM » —mail-from=jayce mosx.orgmail-to=jayce mosx.org —smtp-srv= /mosx/xsibackup/xsibackup —time=« Tue 20:00 » —backup-point=$DESTBCK —backup-type=custom —backup-vms=MosX,« YosSrvVM » —mail-from=jayce mosx.orgmail-to=jayce mosx.org —smtp-srv= /mosx/xsibackup/xsibackup —time=« Wed 20:00 » —backup-point=$DESTBCK —backup-type=custom —backup-vms=MosX,« YosSrvVM » —mail-from=jayce mosx.orgmail-to=jayce mosx.org —smtp-srv= /mosx/xsibackup/xsibackup —time=« Thu 20:00 » —backup-point=$DESTBCK —backup-type=custom —backup-vms=MosX,« YosSrvVM » —mail-from=jayce mosx.orgmail-to=jayce mosx.org —smtp-srv= /mosx/xsibackup/xsibackup —time=« Fri 20:00 » —backup-point=$DESTBCK —backup-type=custom —backup-vms=MosX,« YosSrvVM » —mail-from=jayce mosx.orgmail-to=jayce mosx.org —smtp-srv= /mosx/xsibackup/xsibackup —time=« Sat 20:00 » —backup-point=$DESTBCK —backup-type=custom —backup-vms=MosX,« YosSrvVM » —mail-from=jayce mosx.orgmail-to=jayce mosx.org —smtp-srv= /mosx/xsibackup/xsibackup —time=« Sun 20:00 » —backup-point=$DESTBCK —backup-type=custom —backup-vms=MosX,« YosSrvVM » —mail-from=jayce mosx.orgmail-to=jayce mosx.org —smtp-srv=

Un point très important à noter : Attention aux logs !!! Par défaut, les logs de xsibackup sont envoyés dans un fichier xsibackup-cron.log au même niveau que le script. Mais cela peut être changé soit dans le fichier /etc/rc.local.d/local.sh , soit en déplaçant le fichier ailleurs et en faisant un lien symbolique.

Il est très important de déplacer ce fichier de logs car il grossit relativement vite, et le petit espace libre disponible en mémoire pour faire tourner l’hôte ESXi va vite devenir trop petit. Et quand le disque de boot de ESXi est plein, comme tous les OS, ça se passe pas vraiment bien…

Utilisation des sauvegardes

Ceci est des plus simples en fait. xsibackup fait un clone des machines virtuelles. Les clones sont directement utilisables. En cas de problème avec la VM ou le disque d’origine, vous pouvez cloner dans le sens inverse la machine, ou a rajouter au catalogue de l’hôte.

Pour rajouter une machine au catalogue de votre serveur ESXi, le plus simple reste encore d’utiliser vSphere Client. Ouvrez vSphere Client et dans les informations de votre serveur, faites un clic droit sur l’espace de stockage sur lequel votre sauvegarde est, et sélectionner parcourir la base de données. Parcourir un datastore Ensuite, naviguez jusqu’à la sauvegarde désirée, puis sélectionnez le fichier.vmx et sélectionnez “Ajouter à l’inventaire“. Ajouter une VM au catalogue

Sauvegarde vers un autre hôte ESXi

Si il est utile de cloner les VMs sur un autre disque de votre serveur, ou même sur une baie d’archivage, il peut être encore mieux de rajouter un clonage vers un autre serveur ESXi. Cela permet un possible retour à la normal en cas de problème en un temps réduit.

Pour cela, xsibackup nécessite de pouvoir communiquer entre les deux hôtes sans avoir à rentrer de mot de passe.

./xsibackup —link-srv=[second.esxi.system.ip]
va générer une clé DSA et l’envoyer sur l’hôte second.esxi.system.ip. Attention à chaque redémarrage du serveur il sera nécessaire de regénérer la clé. Si vous utilisez cela, pensez donc à lancer cette commande dans votre script de démarrage.

l’argument de —backup-point s’écrit alors de la manière suivante : -backup-point=[IP or URL of remote host]:[port]:[/path/in/remote/host]:[(F|D)] F pour Full Backup, D pour Delta Backup où seuls les bits qui ont changé seront copiés.

Principe de fonctionnement

xsibackup va créer un dossier dont le nom contient la date et l’heure et va cloner la VM dedans.

Pour cloner la VM, xsibackup va commencer par supprimer tous les snapshots éventuellement existants, puis crée un snapshot et clone le disque à partir de celui-ci. Ceci pour permettre de cloner la machine sans avoir à l’éteindre ou la suspendre. Une fois le clone du disque effectué, le snapshot est supprimé. Les fichiers de configuration de la VM sont alors copiés dans le dossier avec le clone.

Vous pouvez bien sûr modifier le script à votre convenance, notamment pour changer l’apparence du courriel envoyé.


[ Haut ] Enregistrer au format PDF

Creative Commons License

Cette création est mise à disposition sous un contrat Creative Commons.




Recommandez ce site à un ami :

Votre Prénom : E-mail de votre ami :

Valid XHTML 1.0 Transitional

FORUM DE L'ARTICLE :