[PSH] Shake My VM

Pour appliquer à chaud des settings comme un changement de VMM ou de swapfile, l’idéal c’est un bon vieux vmotion (grâce au “Power-on VM on destination host“). Le problème c’est que sur un cluster, le plus simple est de mettre les ESX en maintenance mode à tour de rôle mais c’est aussi le plus pénible ! Le top c’est un petit OneLiner de derrière les fagots qui va “secouer” vos VM :

get-vm|?{$_.PowerState -eq "PoweredOn"}|%{move-vm -vm $_ -destination (get-random @((($vmhost = $_.Host).Parent|get-view).host|%{get-view $_}|?{$_.Runtime.ConnectionState -eq "connected" -and !$_.Runtime.InMaintenanceMode -and $_.Runtime.StandbyMode -eq "none" -and $_.name -cne $vmhost.name})).name -whatif}

Pour être un peu plus précis, ce script va faire un vmotion sur un des autres ESX disponibles du cluster parent. OneLiner oblige, ce script ne tient pas compte des vm qui seraient déplacées par DRS avant son passage. Il est par contre nécessaire d’avoir un minimum de “mou” sur le cluster en question pour éviter une vilaine contention.

Dans l’état, le script vous affichera la liste des vmotion, il suffit d’ôter le “-whatif” et relancer pour agiter la pulpe :)

Tags: , , , , ,

2 Responses to “[PSH] Shake My VM”

  1. [...] et “coller”, il ne vous restera plus qu’à utiliser notre autre OneLiner Shake My VM pour effectuer un vmotion afin d’appliquer les modifications, ou d’attendre que DRS [...]

  2. [...] la commande powershell qui a permis de désactiver les large pages sur les vm (vm reboot ou “vmotion shake” pour la prise en compte) [...]

Leave a Reply