Sauvegarder des machines virtuelles ESXi: 3ème partie

Sauvegarder des machines virtuelles ESXi: 3ème partie 1

Pour sauvegarder une machine virtuelle, celle-ci ne doit pas être en cours d'utilisation. Comme la mise "hors ligne" d'un serveur durant toute la durée de sa sauvegarde n'est pas toujours possible, ce troisième article d'une série de six explore l'usage des SNAPSHOTS.

Création /Suppression de SnapShot

Il n’est pas possible de sauvegarder une VM si elle est on fonctionnement. Ceci est assez gênant si l’on considère que la sauvegarde peut durer plusieurs heures. Heureusement, il existe une alternative ; les SnapShots.

Initialement, un SnapShot est un outil permettant de figer l’état d’un VM à un instant donné. Il est ensuite possible soit de revenir à l’état antérieur d’un VM et ainsi supprimer touts les changements effectués sur un disque depuis le SnapShot, soit de supprimer le SnapShot et ainsi considérer l’état actuel de la VM comme définitif.

Les SnapShots présentent un grand avantage en termes de sauvegarde. En effet, lorsque l’on crée un SnapShot sur la VM « xp », le disque virtuel initial « xp.vmdk » est figé et toutes les modifications sont inscrites dans un disque « enfant » : « xp-0001.vmdk ». Par conséquent, il devient tout à fait possible de sauvegarder « xp.vmdk » alors que la VM continue de fonctionner sur « xp-0001.vmdk ». En fin de sauvegarde, il suffit de supprimer le snapshot afin d’appliquer les modifications faites à « xp-0001.vmdk » à « xp.vmdk ».

Depuis « Vmware Infrastructure Client »

Il est possible de créer des SnapShots depuis l’interface graphique d’administration de ESXi.

Sauvegarder des machines virtuelles ESXi: 3ème partie 2

Il est possible de supprimer des SnapShots depuis l’interface graphique d’administration de ESXi.

Sauvegarder des machines virtuelles ESXi: 3ème partie 3

Sauvegarder des machines virtuelles ESXi: 3ème partie 4

Depuis l’API Perl

Vmware propose un pack logiciel permettant d’administrer partiellement ESXi depuis un PC du LAN : « Vmware infrastructure remote cli » ou « RCLI ». Cet outils est disponible pour :

  • Windows (40Mo),
  • Linux (32Mo),
  • Sous la forme d’une machine virtuelle basée sur une distribution RedHat entreprise 5 (240Mo).

Sauvegarder des machines virtuelles ESXi: 3ème partie 5

Sauvegarder des machines virtuelles ESXi: 3ème partie 6

Installation de « Vmware infrastructure remote cli »

Télécharger la version Windows de RCLI depuis le site de Vmware.

Installez le « vmware infrastructure remote cli » sous une instance de Windows XP.

Sauvegarder des machines virtuelles ESXi: 3ème partie 7

Lors de l’installation, « Vmware infrastructure remote cli » installe l’interpréteur PERL ActivePerl 5.8 (http://www.activestate.com/activeperl/)

Sauvegarder des machines virtuelles ESXi: 3ème partie 8

La ligne de commande RCLI est accessible depuis le menu “démarrer”, « programmes », « Vmware », « Vmware Vi remote CLI », « command prompt ».

Sauvegarder des machines virtuelles ESXi: 3ème partie 9

Les applications PERL de contrôle de ESXi sont rangées dans le dossier “/bin”.

Sauvegarder des machines virtuelles ESXi: 3ème partie 10

A titre d’exemple, la commande « vicfg-nics –server 192.168.1.60 –l » listera l’état des cartes réseaux du serveur ESXi répondant à l’adresse IP 192.168.1.60. Vous devez disposer des identifiant d’administration sur ESXi pour exploiter cette commande.

Sauvegarder des machines virtuelles ESXi: 3ème partie 11

La commande ci-dessous permets de créer un SnapShot de nommé « SNAP » pour la VM « xp » tournant sur le serveur 192.168.1.60.

perl $RCLIPath/Perl/apps/vm/snapshotmanager.pl --url https://192.168.1.60i/sdk/vimService --username root --password password --operation create --powerstatus poweredOn --snapshotname SNAP --vmname xp --children 1

La commande ci-dessous permets de supprimer le SnapShot de nommé « SNAP » pour la VM « xp » tournant sur le serveur 192.168.1.60.

perl $RCLIPath/Perl/apps/vm/snapshotmanager.pl --url https://192.168.1.60i/sdk/vimService --username root --password password --operation remove --powerstatus poweredOn --snapshotname SNAP --vmname xp --children 1


Depuis la console, Il est possible de créer un SnapShot nommé « vcb_snap » depuis la console SSH de ESXi avec la séquence suivante :

[shell]export VM_NAME=xp
export VMWARE_CMD=/bin/vim-cmd
echo "VM_NAME: $VM_NAME"
# get VM_ID
${VMWARE_CMD} vmsvc/getallvms | sed 's/[[:blank:]]{3,}/ /g' | awk -F' ' '{print """$1"";""$2"";""$3"""}' | sed 's/] /]";"/g' | sed '1,1d' > /tmp/vms_list
export VM_ID=`grep -E ""${VM_NAME}"" /tmp/vms_list | awk -F ";" '{print $1}' | sed 's/"//g'`
echo "VM_ID: $VM_ID"
echo "Create snapshot"
${VMWARE_CMD} vmsvc/snapshot.create ${VM_ID} vcb_snap VCB_BACKUP_${VM_NAME}_`date +%F`[/shell]

La procédure est un peu complexe car les outils en mode console ne savent pas exploiter le nom des VM, seulement l’identifiant interne à ESXi. La première partie du code retrouve le code associé à une VM.

La suppression du SnapShot est un peu plus complexe car il existe bien une commande “snapshot.remove” mais elle est très mal documentée. L’exemple ci-dessous semble fonctionner même s’il génère une erreur. La première partie du code liste les caractéristiques de tous les snapshots de la VM et traite le fichier résultant pour calculer le nombre de SnapShots associés à la VM (4 Snapshots numérotés de 0 à 3, par exemple). Le script supprime simplement le dernier.

[shell]export VM_NAME=xp
export VMWARE_CMD=/bin/vim-cmd
echo "VM_NAME: $VM_NAME"
${VMWARE_CMD} vmsvc/snapshot.get ${VM_ID} > /tmp/snp_list
export SNP_COUNT=`grep datastoreUrl /tmp/snp_list|wc -l`
let "SNP_COUNT=$SNP_COUNT-1"
echo "remove snapshot $SNP_COUNT"
${VMWARE_CMD} vmsvc/snapshot.remove ${VM_ID} vcb_snap ${SNP_COUNT}[/shell]

A propos Olivier Olejniczak

Cofondateur de SynerGeek.fr. Passionné d'informatique, je m'intéresse plus particulièrement aux technologies de virtualisation et de stockage. J'apprécie la liberté et la quasi-absence de frontières à mon imagination qu'offre l'OpenSource et Linux. Professionnellement, je travaille exclusivement avec les outils Microsoft. Les pieds bien sur terre et ancrés dans le quotidien de l'entreprise, j'aime faire partager mes découvertes et contribuer à un meilleur usage des technologies. Vous aussi, rejoignez-nous sur Synergeek et partagez votre expérience!

Je vous propose également...

J'ai tout cassé mon Xpenology 12

J'ai tout cassé mon Xpenology

Cette semaine, je me suis offert un disque SSD, un Intel 530 de 240 Go, suite à la vente d'un vrai Synology CS-407. L'objectif étant de m'en servir pour héberger mes VM du HP N54L. Tout content, je m'empresse de déplacer mes quelques VM, Ubuntu, Debian, Zeroshell, Pfsense, Win 7 et enfin Xpenology... Et là c'est le drame !!!

Utiliser un disque en Raw Device Mapping (RDM) pour Xpenology 13

Utiliser un disque en Raw Device Mapping (RDM) pour Xpenology

Suite à mon dernier article sur l'installation des VmWare tools sur la VM Xpenology, un lecteur m'a rapporté en commentaire quelques soucis pour intégrer un disque en RDM. Comme je ne m'étais pas fait de doc, c'est l'occasion de me rappeler la procédure.