Comment sauvegarder des machines virtuelles sur un hôte ESXi autonome?

17

Hôte ESXi (4.1) autonome sans vCenter Server.

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 cpcommande Unix standard , mais cela a pour inconvénient de copier l'intégralité des 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 des 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?

Massimo
la source

Réponses:

17

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 ovftool en ligne de commande .

Dans vSphere Client, assurez-vous que la machine virtuelle est désactivée, puis mettez-la en surbrillance et accédez à Fichier-> Exporter-> Exporter le modèle OVF. Suivez ensuite 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 que celles-ci sont très populaires et je pense qu'il existe de bons choix pour les sauvegardes, bien que je n'en ai examiné aucune. trop récemment.

Jed Daniels
la source
La sauvegarde et la restauration OVF semblent fonctionner à merveille comme option de sauvegarde VMWare d'un pauvre. Finalement, j'ai l'intention d'automatiser l'utilisation du cli ovftool, mais arrêter le vm à l'intérieur du script pendant la sauvegarde sera la partie la plus délicate.
propulsé par vapeur
OVF est très lent. Si vous souhaitez éviter les temps d'arrêt, vous pouvez utiliser le client Web pour cloner une machine virtuelle en cours d'exécution en payant pour vMotion, puis arrêter et sauvegarder le clone. Aucun temps d'arrêt.
propulsé par vapeur
5

Je ne sais pas si cela vous convient, mais VM Explorer fait un bon travail en effectuant des sauvegardes à chaud ou à froid des machines virtuelles. Je crois qu'avec ESXi 4.1 VM Explorer vous permet également d'effectuer des sauvegardes d'invité VM d'un hôte à un autre hôte.

joeqwerty
la source
Je vais devoir y regarder plus, mais dès le début, je vois quelque chose que j'aime - sous licence par installation.
Chadddada
La version de base est gratuite
Matthew Lock
Bon à noter que ce n'est plus gratuit, le niveau le plus bas est "Professionnel" à 699 $
Douglas Gaskell
4

J'ai fini par écrire un script qui copie les fichiers de configuration de la machine virtuelle et les utilise vmkfstools -dpour cloner les VMDK tout en préservant le provisionnement fin.

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 la machine virtuelle soit mise hors tension et qu'elle n'ait aucun instantané actif.

Massimo
la source
Salut, qu'en est-il des paresseux épais?
rovshango
Grand script @Massimo, mais j'ai dû ajouter des guillemets doubles à l'affectation vmx pour éviter une erreur de syntaxe de nom de base: vmx = $ (nom de base "$ (/ bin / ls $ 1 / *. Vmx)"). Mais maintenant, si $ 1 path contient des espaces, il se bloque car $ 1 n'est pas cité. Je n'ai pas pu me débarrasser de ce problème. Une idée?
Blazeag
4

J'essaierais d'utiliser une solution éprouvée d'une sorte plutôt que de lancer 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

Josh Richards
la source
1
L'édition gratuite nécessite toujours une licence ESXi.
Overmind
@Overmind Vous avez absolument raison. J'ai oublié que cela ne fonctionne pas (ironiquement, peut-être) avec l'édition gratuite de vSphere Hypervisor.
Josh Richards du
2

Ghetto VCB peut effectuer 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.

Mircea Vutcovici
la source
1

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:

  • Sauvegardes à chaud
  • Planification Cron
  • Sauvegardes différentielles instantanées (OneDiff)
  • Déduplication native au niveau du bloc plus compression vers les banques de données locales et les serveurs Linux (XSITools).

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.

https://33hops.com/xsibackup-pro-vmware-esxi-backup.html

Daniel J.
la source
0

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

Ismail
la source
0

cpio peut copier des fichiers clairsemés tout en préservant les "trous" qu'ils contiennent.

MattBianco
la source
AFAIK, aucun outil ne pouvait gérer les fichiers sparse.vmdk de manière native, à l'exception de vmkfstools, qui est limité à la copie de fichiers dans un système de fichiers local. C'est pourquoi nous avons créé (c) XSIDiff dans le cadre de notre suite d'outils pour ESXi. Il copie uniquement les blocs utilisés comme le fait vmkfstools, mais vous pouvez copier des données via SSH et également en tant qu'application client / serveur TCP / IP. Vous pouvez télécharger une version de travail gratuite ici: 33hops.com/download-xsidiff-trial.html
Daniel J.