NetBackup+InfiniteLoop+Snapshot=Bad

Update 29/01/2014: Raphaël a publié sur son dépot de OneLiner une commande pour retourner la liste des VM sans snapshots ayant des vmdk delta (snapshot “cachés”)

On a rencontré un problème assez intéressant récemment avec un serveur ESXi 5.0 qui a perdu la connexion avec le vCenter :

Bien que le serveur ESXi était passé en état disconnected, les machines virtuelles hébergées dessus continuaient de tourner sans problèmes, heureusement que le soucis n’était pas sur la ParentVM d’un Hyper-V, l’état des VM aurait été différent :p

Bref, les rapports vCheck nous ont remontés des erreurs assez bizarres par rapport au serveur qui avait un soucis :

Cannot synchronize host XXX. A general system error occurred: Unexpected exception reading HTTP response body: class Vmacore::Http::TruncatedResponseException(While determining chunk size, truncated HTTP response.) with trace: backtrace[00] rip 000000018013deba (no symbol) backtrace[01] rip 0000000180101518 (no symbol) backtrace[02] rip 0000000180101a5e (no symbol) backtrace[03] rip 000000018008930b (no symbol) backtrace[04] rip 000000018003fd5f (no symbol) backtrace[05] rip 00000001800444ce (no symbol) backtrace[06] rip 00000000005b27e9 (no symbol) backtrace[07] rip 0000000000583b87 (no symbol) backtrace[08]
...

Et une tentative de reconnecter le serveur ESX au vCenter échouait avec les mêmes erreurs :

On voyait énormément d’erreurs dans les logs du style :

column 3836417 while parsing property "parent" of static type VirtualDiskFlatVer2BackingInfo while parsing serialized DataObject of type vim.vm.device.VirtualDisk.FlatVer2BackingInfo at line 7

Vu que l’erreur parlait de VirtualDiskFlatVer2BackingInfo, on s’est dit que cela pouvait être lié à un problème sur les disques VMDK d’une ou plusieurs VM, on a donc commencé a regarder de plus près le dossier de certaines VM et on est tombé sur une VM qui contenait pas moins de 230 snapshots (mais aucun visible depuis la console vSphere) …

Au final, il semblerait que le problème soit venu encore une fois de l’agent NetBackup qui, suite à un incident SAN, ait créé en continue des snapshots sur la VM en cours de sauvegarde sans jamais faire le ménage (jolie boucle) …

Afin de pouvoir reconnecter le serveur au vCenter, il nous a fallu se connecter en direct sur le serveur ESXi et faire un Consolidate des disques des VM ayant eu le problème. Au bout de 5 longues heures de consolidation (on est encore agréablement surpris qu’il n’y ait pas eu plus d’incidence sur le guest), les VM avaient retrouvées leur disques sans snapshot et la reconnexion du serveur ESXi au vCenter a pu se faire sans soucis.

Moralité, Erik Bussink l’a très bien résumé dans sa réponse sur twitter :

Vivement la migration sur Veeam ;p

Hypervisor.fr a mis à jour son dépot de OneLiner pour en intégrer un qui listera les VM avec des snapshots cachés (#OL26 disponible ici http://www.hypervisor.fr/?page_id=3637) :

Get-View -ViewType VirtualMachine|?{!$_.snapshot}|?{$_|%{$_.layoutex.file}|?{$_.name -match "-delta.vmdk$"}}|select name

4 comments

  1. J’avais déjà eu ce bug il y a un an avec du Networker, et sur une autre plateforme avec du NetApp SMVI… pas mieux.

    Contournement temporaire: sur l’ESXi, dans /etc/vmware/vpxa/vpxa.cfg, modifier la valeur de 128 vers une plus grosse valeur, genre 1024.

    Ca permet de reconnecter l’hôte et faire moins peur aux admins.

  2. Merci de ton retour, dans ton cas tu avais aussi des soucis de snapshot sur une (ou plusieurs) VM ? Ou tu avais juste une déco d’un ESXi ?

    • Même chose que sur ton post : deux VMs qui avaient beaucoup trop de snapshots (231 fichiers -delta sur l’une, tout juste 115 sur la seconde…).
      Du coup, sur les hôtes, même chose aussi, erreur http truncatedresponseexception.

      Seulement, l’admin souhaitait à tout prix pouvoir gérer ses VMs, du coup il avait arrêté l’ESXi, ré-enregistré les VMs sur un autre visible, et rebelote…

      • Ah oui effectivement ça a du lui faire bizarre les ESX qui se déco après chaque register de VM (et donc coupure de prod aussi le temps du unregister/register)

Laisser un commentaire

Required fields are marked *.