Charge des VM/Hôtes/Cluster en PowerCLI

Update 2014.10.31: Suite a un commentaire demandant l’ajout de la charge des datastores, nous l’avons ajouté dans le script 🙂

Pour donner suite à notre précédent post sur la charge des cluster en PowerCLI, une petite discussion avec Alan Renouf nous a convaincu de faire un équivalent pour d’autres objets vCenter, l’idée étant d’avoir une fonction Get-Load universelle qui afficherait la charge de l’objet passé en pipeline ou spécifié explicitement, Piece Of Cake !

En y réfléchissant, on voulait que le comportement du cmdlet soit un peu identique à celui de Get-View, par exemple la possibilité de l’utiliser tel que :

Get-View -ViewType VirtualMachines
Get-VM | Get-View
Get-View -ViewType HostSystem
Get-VMHost | Get-View

Partant de là, on a regardé la définition du cmdlet Get-View en s’aidant des commandes proxy, par exemple via la commande suivante :

[System.Management.Automation.ProxyCommand]::create((New-Object System.Management.Automation.CommandMetaData(Get-Command Get-View)))

On a donc fait une fonction PowerCLI qui va afficher graphiquement dans la console la charge de différents type d’objets (machine virtuelle, hôte ESXi, cluster vSphere ou datastore). Cette fonction peut être utilisée de plusieurs manières, soit en mode standalone :

Get-Load -LoadType VirtualMachine
Get-Load -LoadType HostSystem
Get-Load -LoadType ClustercomputeResource
Get-Load -LoadType Datastore

Une autre manière de l’utiliser est de lui passer des objets via un pipeline:

Get-VM "vm*" | Get-Load
Get-VMHost | Get-Load
Get-Datastore -Location "storagepod01" | Get-Load
Get-Cluster -Location "folder01" | Get-Load

Pour l’instant, il n’y a que ces 4 types d’objets qui sont supportés, si vous essayez d’en utiliser d’autres on saura vous le rappeler :p

La fonction affichera donc en console la charge des objets demandés :

Le script Get-Load.ps1 est disponible au téléchargement sur notre page GitHub: https://github.com/v-team/powercli-toolbox