Hôte ESXi (4.1) autonome sans serveur vCenter.
Comment sauvegarder des machines virtuelles aussi rapidement et facilement que possible pour le stockage?
Je sais que je peux accéder à la console ESXi et utiliser la commande standard Unix cp
, mais cela a pour inconvénient de copier tous les fichiers VMDK, pas seulement leur espace réellement utilisé; ainsi, pour un VMDK de 30 Go dont seulement 1 Go est utilisé, la sauvegarde prendrait 30 Go d'espace complet et prendrait du temps en conséquence.
Et oui, je connais les disques virtuels à allocation dynamique, mais ils ont tendance à se comporter très mal lorsqu'ils sont copiés physiquement, et/ou à exploser à leur taille totale; en outre, ils ne sont pas recommandés pour les performances réelles VM.
Il est correct pour moi d'arrêter les machines virtuelles avant de les sauvegarder (c'est-à-dire que je n'ai pas besoin de sauvegardes "en direct"); mais j'ai besoin d'un moyen de les copier efficacement; et oui, un moyen d'automatiser l'arrêt/le démarrage lors de la sauvegarde serait également utile.
Je n'ai que ESXi; pas de console de service, pas de vCenter Server ... quelle est la meilleure façon de gérer cette tâche? Et qu'en est-il des restaurations?
J'ai fini par écrire un script qui copie les fichiers de configuration VM et utilise vmkfstools -d
pour cloner les VMDK tout en préservant l'allocation dynamique.
Pour référence:
#!/bin/sh
if [ $# != 2 ]; then
echo "Usage: $(basename $0) <SOURCE VM PATH> <DESTINATION PATH>"
echo "Example: $(basename $0) /vmfs/volumes/datastore1/VM1 /vmfs/volumes/datastore2"
exit
fi
vmx=$(basename $(/bin/ls $1/*.vmx))
name=$(grep displayName $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')
vmxf=$(grep vmxf $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')
nvram=$(grep nvram $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')
vmdks=$(grep vmdk $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')
echo "Started copying VM $name"
vmdir=$(basename $1)
destpath="$2/$vmdir"
echo "Source path: $1"
echo "Destination path: $destpath"
echo "Creating destination path $destpath"
/bin/mkdir -p $destpath
echo "Copying configuration files:"
echo $vmx
/bin/cp $1/$vmx $destpath
echo $vmxf
/bin/cp $1/$vmxf $destpath
echo $nvram
/bin/cp $1/$nvram $destpath
echo "Copying virtual disks:"
for vmdk in $vmdks;
do
echo $vmdk
/sbin/vmkfstools -d thin -i $1/$vmdk $destpath/$vmdk
done
echo "Completed copying VM $name"
Cela nécessite que le VM soit éteint et n'ait aucun instantané actif.
Ma solution préférée pour cela est de simplement les exporter vers un fichier ovf ou ova à l'aide du client vSphere ou du ligne de commande ovftool .
Dans vSphere Client, assurez-vous que le VM est désactivé, puis mettez-le en surbrillance et allez dans Fichier-> Exporter> Exporter le modèle OVF. Ensuite, suivez simplement les invites.
La restauration est un jeu d'enfant, il suffit de faire l'inverse (l'option de menu est "Déployer le modèle OVF", je pense).
Pour créer une sauvegarde légère à l'aide d'ovftool
ovftool -dm=thin vi://<user>@<esxi-Host>/<vm-name> <local-file>.ovf
Vous pouvez également consulter certaines des options sur http://www.virtuallyghetto.com/ , je sais qu'elles sont très populaires et je pense qu'il existe de bons choix pour les sauvegardes, même si je n'ai pas 't regardé l'un d'eux trop récemment.
Je ne sais pas si cela vous convient, mais VM Explorer fait un bon travail pour effectuer des sauvegardes à chaud ou à froid des machines virtuelles. Je crois qu'avec ESXi 4.1 VM Explorer vous permet d'effectuer des sauvegardes d'invité VM d'un hôte vers un autre hôte également).
J'essaierais d'utiliser une solution éprouvée d'une sorte plutôt que de rouler la vôtre. Les tracas, le temps et les risques réduits seront facilement amortis même si vous optez pour une solution qui n'est pas gratuite. Tous ces problèmes qui vous préoccupent sont traités dans toute solution de sauvegarde moderne pour ESXi.
La solution qu'un client utilise avec succès dans son environnement ESXi est Veeam. Il existe même une édition gratuite qui peut fonctionner pour vos besoins: https://www.veeam.com/virtual-machine-backup-solution-free.html
Ghetto VCB peut faire la sauvegarde pendant que la machine fonctionne. Pour l'espace, vous pouvez utiliser un système de fichiers de déduplication + compression comme lessfs sur le serveur de sauvegarde.
XSIBackup est un service ESXi qui s'exécute dans le système d'exploitation hyperviseur ESXi et a une empreinte minimale. En fait, vos utilisateurs ne remarqueront pas qu'une sauvegarde a lieu en arrière-plan.
Il propose deux outils différents: XSIBackup-Free et XSIBackup-Pro.
XSIBackup-Free offre toutes les fonctionnalités présentes dans la version Pro, telles que:
La version Pro offre tous les outils ci-dessus et étendus qui accéléreront vos transferts de données (XSIDiff), la certification de sauvegarde via la somme de contrôle, les méthodes de comparaison de fichiers rapides et une interface graphique SSH (Interface utilisateur graphique) qui permet de configurer toutes les options à partir d'un assistant, accélérer la configuration des tâches de sauvegarde.
cpio
peut copier des fichiers épars tout en préservant les "trous" qu'ils contiennent.
J'exporte également au format OVF. C'est très bien car il compresse à la volée l'image avec gzip.
Mais les licences ont disparu, car avec l'importation d'un fichier OVF dans un ESXI, une machine avec un nouveau matériel est créée.
Solution:
Je sauvegarde (télécharge) le dossier de fichiers de la machine virtuelle sans la grande image et les compresse.
Les deux - dossier ovf et copie compressée des fichiers d'images virtuelles (sans grande image) - sont dans le même dossier.
Restauration:
-> Importer OVF dans ESXI et télécharger la configuration non compressée (à partir du dossier de fichiers sauvegardés) -> La machine virtuelle est à nouveau correcte
ismail