Je débute ici une série de six articles traitant des sauvegardes des machines virtuelles sous VMware ESXi.
Cette première partie va présenter les outils mis à disposition par Vmware puis, comment ouvrir l’accès SSH à ESXi, afin de réaliser des sauvegardes depuis la ligne de commande.
Que sauvegarder?
Les fichiers qui composent des machines virtuelles sont principalement de 5 types :
- .vmx : le fichier de configuration de la machine virtuelle,
- .vmdk: le fichier de metadata (c.a.d. configuration) d’un disque virtuel,
- -flat.vmdk: le fichier contenant les données du disque virtuel,
- .vmsn: le fichier de metadata d’un disque de snapshot,
- -delta.vmdk: le fichier contenant les données du snapshot de fichier virtuel.
Dans le cadre d’une sauvegarde de VM, il est avant tout essentiel de sauvegarde les fichiers de disque soit les .vmdk et –flat.vmdk. Selon l’interface que l’on utilise pour se connecter à ESXi les fichiers –flat.vmdk peuvent ou pas être affichés.
Toutes les procédures décrites dans ce document requièrent les droits d’administration sur l’ESXi.
Sauvegarde depuis « Vmware Infrastructure Client »
« Vmware Infrastructure Client » est une interface graphique d’administration de ESXi pour Windows. Elle propose également un module de gestion de datastore avec la possibilité de transferts de fichiers en « upload » et en « download ». Vous pouvez utiliser le bouton « download » pour sauvegarder les fichiers .vmdk. Néanmoins, cette approche manuelle est assez fastidieuse et particulièrement lente.
Depuis l’interface WEB
Esxi dispose également d’une interface WEB pour accéder aux datastore. Elle est accessible depuis l’URL https://IP du server.
Cette approche manuelle est assez fastidieuse et particulièrement lente.
Depuis l’interface SSH
Esxi ne dispose pas d’une interface en ligne de commande à l’OS Linux sous-jacent au moteur de virtualisation. Toutefois, cette fonctionnalité peut être activée mais elle est non documentée et non supportée par Vmware.
Ouvrir l’interface SSH de ESXi
La procédure est décrite ici.
Interagir avec la console SSH de ESXi depuis Windows
Les outils permettant de dialoguer depuis Windows avec la console de ESXi au travers du protocole SSH sont décrits ici.
Accéder aux fichiers de VM depuis la console
Les fichiers qui composent les machines virtuelles sont stockées dans le dossier « /vmfs/volumes ». L’arborescence sous-jacente reprend les noms de datastore. Tous datastores locaux (disques de l’ESXi) ou distants (NFS, iSCSI ou FiberChannel) sont accessibles de façon transparents. Chaque datastore est accessibles depuis deux dossiers : l’un au nom alphanumérique du datastore, l’un avec code interne. En retrouve ensuite dans l’arborescence de chaque datastore, les dossiers au nom de chaque VM. Ce dossier contient tout le fichier de la VM.
Si l’on crée un VM depuis l’assistant, tous les fichiers de la VM sont stockés dans un même datastore, dans un dossier au nom la VM et le nom des disques virtuels de la VM sont de la forme « nom de la VM »*.vmdk.
Copie vers datastore avec « cp »
La commande Linux pour copier le disque virtuel « xp.vmdk » du dossier « xp » sur « datastore1 » vers « datastore2 » est :
cp –v /vmfs/volumes/datastore1/xp/xp.vmdk /vmfs/volumes/datastore2/xp.vmdk
Cette approche est un peu plus complexe à mettre en œuvre que les méthodes de sauvegarde précédentes mais elle semble moins lourde en terme de charge réseau. Par contre, la commande « cp » semble ralentir le fonctionnement de ESXi.
Copie vers datastore avec vmkfstools
Vmware fournit un outil plus efficace que « cp » : vmkfstools.
La commande Linux pour copier le disque virtuel « xp.vmdk » du dossier « xp » sur « datastore1 » vers « datastore2 » est :
vmkfstool –i /vmfs/volumes/datastore1/xp/xp.vmdk /vmfs/volumes/datastore2/xp.vmdk
Cette commande est beaucoup plus respectueuse du fonctionnement de ESXi et ralenti moins les VM.
Copie vers datastore avec vmkfstools (mode « Thin»)
« vmkfstools» dispose d’une option forte intéressante : le mode « Thin». Avec cette option, seuls les secteurs utilisés du disque sont effectivement copiés. Ainsi, si la VM dispose d’un disque de 20Go dont seulement 2Go sont utilisés, la copie ne portera que sur 2Go. Le temps de sauvegarde est considérablement réduit.
La commande Linux pour copier le disque virtuel « xp.vmdk » du dossier « xp » sur « datastore1 » vers « datastore2 » est :
vmkfstool –i /vmfs/volumes/datastore1/xp/xp.vmdk –d thin /vmfs/volumes/datastore2/xp.vmdk
Le fait qu’un disque virtuel soit “Thin” ou “Fat” n’affecte pas le fonctionnement de ESXi qui rapportera toujours la taille du disque “Fat”. Notamment, si votre datastore a une capacité de 100Go, le fait que le disque « xp.vmdk » occupe réellement 2Go pour 20Go déclaré ne permettra pas de créer plus de 5 VM.
L’objectif d’une version free pour un produit commercial, c’est de faire goûter au produit… sans donner la possibilité de le mettre en production sur du plus long terme, sinon qui achèterait?
Avec les versions précédentes d’Esx free, il était possible de “bidouiller” dans la console pour sauvegarder et éventuellement de planifier cette tâche mais il me semble que cela ne soit plus possible.
C’est d’ailleurs la raison pour laquelle nous avons choisi Proxmox comme plateforme de virtu que nous utilisons comme labo et qui héberge SynerGeek.fr.
Bonjour à tous
Je souhaitais savoir si il existe un produit meme payant qui sauvegarde les vms esxi et hyper-v, mais d’un esx free.
par exemple veeam en version payante lui ne fonctionne pas.
que la version free mais la version free ne peu etre planifier et ne sauvegarde qu’une vm a la fois.
Merci de vos lumière
Il en existe pas beaucoup, j’en ai développé un que j’ai mis en ligne gratuitement sur mon site
http://www.spidsoft.com
Je recommande la solution Veeam Backup.
Une edition Free est dispo pour vSphere et Hyper-V.
Les perfs sont super bonne et le produit est très facile d’usage
Bonjour les experts
J’aimerais transférer l’ensemble des fichiers qui compose une VM (.vmx, .vmdk… etc) qui se trouve sur un disque dur Externe en USB vers un Datastore local d’un ESXi en utilisant vmkfstools ou CP.
En ligne de commande je vois comment trouver la cible mais comment spécifier la source?
Faut-il monter ce disque dur avant? par un mount comme sur un linux?
car le transfert via vClient est vraiment vraiment lent…
Merci pour votre réponse
bonne soirée
cordialement
salut est qu’on peut faire la saunegarde des VM sur le reseau via le script ghettoVCB.sh c’est à dire sur un autre serveur (robot de sauvegarde) situé sur le LAN??
Bonjour,
Cette commande marche telle à chaud? (quand la machine tourne toujours)
Bonjour, oui je fait une copie d’une VM sur le même datastore (RAID5) et ce en local via Putty.
Cdt,
Pas évident de vous aider sur ce coup… J’ai eu moi-même quelques soucis avec des partages NFS.
Mais d’après la commande, vous faites la sauvegarde/copie sur un disque local du serveur hote non ?
Bonjour,
encore merci pour tous vos tutos…
Cette technique marchais parfaitement jusqu’à là mais depuis hier j’ai cette erreur ?
~ # vmkfstools -i /vmfs/volumes/esxi1_RAID5/machine1/machine1.vmdk /vmfs/volumes/esxi1_RAID5/machine7/machine7.vmdk
Destination disk format: Thin
Cloning disk ‘/vmfs/volumes/esxi1_RAID5/machine1/machine1.vmdk’…
Failed to clone disk: The system cannot find the file specified (25).
J’ai juste ajouter depuis des datastores distants NFS, en est-ce la cause ?
Cordialement,