Objectif
Sécuriser une VM VMware dont la chaîne de snapshots ne peut plus être ouverte ou consolidée, préserver les données avant manipulation, identifier le maillon manquant ou incohérent et privilégier une méthode de récupération supportée telle que restauration ou clone lorsque la chaîne ne peut pas être réparée sans risque.
Prérequis
- Sauvegarde récente ou copie intégrale du dossier VM sur un stockage disposant de suffisamment d’espace.
- Accès vCenter et SSH ESXi pour les commandes de diagnostic en lecture.
- Nom de la VM, datastore
- Fenêtre permettant d’arrêter les écritures ou éteindre la VM lorsque nécessaire.
- Capacité suffisante pour créer un clone ou restaurer une nouvelle VM.
Procédure pas à pas
Arrêter les opérations automatiques
Désactivez temporairement sauvegarde, réplication, snapshots automatiques et tâches de consolidation sur la VM. Si la VM peut être arrêtée sans impact majeur, éteignez-la pour figer l’état. Notez l’heure et la dernière opération réussie. Le premier objectif est de ne plus modifier la chaîne avant d’avoir compris sa structure.
- Aucune tâche automatique ne modifie les VMDK pendant l’analyse.
Préserver une copie avant toute édition
Si l’espace le permet, copiez le dossier complet de la VM ou assurez-vous qu’une sauvegarde récente est restaurable. Une copie partielle des seuls descripteurs ne protège pas les données si une erreur de manipulation touche les fichiers delta ou flat. Vérifiez que le support de secours est réellement indépendant du datastore en incident.
- Une voie de récupération existe avant toute manipulation de chaîne.
Lister tous les fichiers et repérer les ruptures
Affichez les fichiers par nom, taille et date. Recherchez une séquence -000001, -000002, etc. qui saute un niveau, des fichiers descriptor sans delta associé ou inversement. Ne concluez pas qu’un numéro manquant est forcément l’erreur : comparez avec la configuration et les descripteurs.
ls -lah /vmfs/volumes/<DATASTORE>/<VM-DIR>/
find /vmfs/volumes/<DATASTORE>/<VM-DIR>/ -maxdepth 1 -name "*.vmdk" -type f -print
- L’inventaire physique du dossier est disponible avant analyse logique.
Identifier le disque réellement attaché à la VM
Consultez le fichier VMX ou les informations vCenter pour savoir quel descriptor est actuellement référencé. Une VM peut avoir plusieurs contrôleurs et plusieurs chaînes indépendantes. Vérifiez chaque disque séparément afin de ne pas reconstruire une chaîne qui n’est pas utilisée.
grep -E "scsi[0-9]+:[0-9]+.fileName|sata[0-9]+:[0-9]+.fileName|nvme[0-9]+:[0-9]+.fileName" /vmfs/volumes/<DATASTORE>/<VM-DIR>/<VM>.vmx
- Le point d’entrée actuel de chaque chaîne de disque est connu.
Lire les descripteurs sans les modifier
Utilisez cat ou less sur les petits fichiers descriptor VMDK et notez CID, parentCID et parentFileNameHint. Construisez la chaîne du disque courant vers ses parents jusqu’au base disk. Les valeurs doivent se correspondre. Si le parent indiqué n’existe plus, recherchez d’abord une sauvegarde ou une copie avant toute reconstruction manuelle.
grep -E "^(CID|parentCID|parentFileNameHint)" /vmfs/volumes/<DATASTORE>/<VM-DIR>/<DISK>.vmdk
- La relation parent-enfant est documentée et le premier maillon incohérent est identifié.
Valider la chaîne avec vmkfstools
Lancez vmkfstools -e sur le descriptor actuellement attaché. Cette vérification permet de savoir si VMware peut ouvrir la chaîne. Conservez le message exact. Un CID mismatch, parent introuvable ou paramètre invalide doit être rapproché des fichiers réellement présents et des logs avant toute correction.
vmkfstools -e /vmfs/volumes/<DATASTORE>/<VM-DIR>/<CURRENT-DISK>.vmdk
- L’état de cohérence VMware est connu et le message exact est conservé.
Analyser vmware.log et les tâches vCenter
Recherchez la première erreur au moment où le problème est apparu : snapshot delete, consolidation, Storage vMotion, datastore plein ou copie manuelle. vmware.log peut préciser le fichier que DISKLIB n’arrive pas à ouvrir. Cette chronologie aide à distinguer un parent réellement manquant d’un descripteur mal aligné.
grep -Ei "DISKLIB|CID|parent|consolidat|snapshot" /vmfs/volumes/<DATASTORE>/<VM-DIR>/vmware.log | tail -n 100
- L’erreur de chaîne est corrélée à une opération ou un fichier précis.
Choisir restauration ou clone avant édition manuelle
Si un snapshot indispensable est absent, restaurez une sauvegarde récente dans une nouvelle VM. Si la chaîne est complète mais la consolidation vSphere échoue, un clone supporté peut reconstruire une chaîne propre selon le cas. N’éditez manuellement les descripteurs que sur une copie et lorsque la cause est parfaitement comprise ou avec le support VMware.
- La méthode retenue minimise le risque de corruption des données originales.
Consolider ou cloner avec une marge suffisante
Avant une consolidation, vérifiez l’espace libre et les I/O. Une consolidation peut être longue et générer une charge importante. Broadcom recommande de ne pas annuler arbitrairement une consolidation en cours. Surveillez la tâche et conservez les anciens fichiers jusqu’à la fin et à la validation de la VM.
df -h
esxcli storage filesystem list
- La tâche de récupération se termine sans saturation du datastore.
Valider la VM récupérée puis refaire une sauvegarde complète
Démarrez la VM récupérée sur un réseau adapté, contrôlez les volumes, services et applications puis vérifiez l’absence de Needs Consolidation. Lancez ensuite une sauvegarde complète et, si possible, un test de restauration. Ne supprimez l’ancienne copie de sécurité qu’après cette validation.
- La VM démarre depuis une chaîne propre et une nouvelle sauvegarde complète réussit.
Validation
La procédure est validée lorsque :
- vmkfstools peut ouvrir la chaîne de disque finale sans erreur.
- La VM démarre et ses volumes/applications sont cohérents.
- vCenter ne signale plus de consolidation nécessaire.
- Une nouvelle sauvegarde complète et un test de restauration réussissent.
Retour arrière
- Revenir à la copie intégrale du dossier ou à la sauvegarde si une tentative de récupération échoue.
- Ne supprimer aucun fichier de snapshot d’origine tant que la nouvelle VM n’est pas validée.
- Si un clone ne termine pas, arrêter la tentative et préserver source et logs avant de changer de stratégie.
Dépannage / erreurs fréquentes
- CID mismatch avec tous les fichiers présents : comparer précisément les descriptors ; toute correction manuelle doit se faire sur une copie ou avec support.
- Numéro de snapshot manquant et fichier réellement absent : privilégier la restauration depuis sauvegarde ; la chaîne peut être irréparable.
- Consolidation très longue : surveiller l’espace, la latence et les I/O avant de conclure à un blocage.
- Snapshot Manager vide mais delta présents : utiliser vmkfstools, VMX et logs pour déterminer la chaîne réelle au lieu de supprimer les fichiers.
Références officielles
À consulter : Snapshot Consolidation.