Reload du vmx en powershell

En environnement NFS, lors d’une grosse coupure réseau ou d’une opération de maintenance, il arrive que le status d’une VM devienne “invalid” ou “inaccessible” car l’ESX(i) a perdu la liaison avec le fichier vmx de la VM :

vmx_invalid vmx_inaccessible

Après vérification de la connectivité avec le datastore, il faut reloader la VM pour qu’elle soit de nouveau accessible. A l’origine, seul un restart du service hostd ou un reload du vmid en vimsh permettait de corriger le problème et obligeait de se connecter à chaque ESX(i) pour effectuer l’opération (ssh ou vMA) :

vmx_vimsh

Grâce au powershell et au PowerCLI (aka VI toolkit), il est possible d’identifier les VM dont le status est “invalid” ou “inaccessible” et forcer le reload du vmx

(Get-View -ViewType VirtualMachine) |?{$_.Runtime.ConnectionState -eq "invalid" -or $_.Runtime.ConnectionState -eq "inaccessible"} |%{$_.reload()}

vmx_reload

Tags:

8 Responses to “Reload du vmx en powershell”

  1. Timo Sugliani Says:
    November 3rd, 2009 at 13:39

    Voila un script fort utile !

  2. Bon retour sur Hypervisor.fr Timo :)
    edit: ça sent le vécu ça…

  3. [...] thanks to Raphael Schitz (@hypervisor_fr) http://www.hypervisor.fr for pointing me to his post http://www.hypervisor.fr/?p=1348 to use the reload() function to reload a VM into inventory without having to use either maintenance [...]

  4. Simon Loiselle Says:
    May 10th, 2013 at 15:13

    Merci, vous m’avez éviter bien du trouble.

  5. you’re welcome

  6. Very useful! Made my and my customer’s life easy!

  7. you’re very welcome too :)

  8. [...] links to a French language blog, hypervisor.fr, and I really like the PowerCLI one-liner that I found there.  It was quick and effective to [...]

Leave a Reply