Powershell: Creazione di un report delle VM su un Hyper-V host

La gestione di host Hyper-V senza l’ausilio di Virtula Machine Manager (VMM) nel tempo può comportare alcune difficoltà come ad esempio:

  • il conteggio del totale delle vCPU assegnate alle varie VM in modo che eccedano le capacità computazionali dell’host Hyper-V;
  • il conteggio del totale della memoria assegnata alle varie VM in modo che ecceda la memoria disponibile sull’host Hyper-V; 
  • la gestione della schedulazione dell’avvio delle VM quando l’host Hyper-V viene riavviato;
  • il monitoraggio della generazione e della versione delle VM.

Per ottenere queste informazioni ho svilupato uno script disponibile al seguente repository su GitHub PowerShell/Create-ReportVMs at ermannog/PowerShell (github.com), lo script è stato testato su sistemi Windows Server 2012 R2 o superiori.

Di seguito un esempio del report che lo script può generare:

Il report confronta le capacità hardware dell’host Hyper-V in termini di processore e memoria con le vCPU e la memoria assegnata alle VM in modo da consentire rapidamente quanto le risorse hardware dell’host Hyper-V sono utilizzate e quante risorse in termini di processore e memoria sono disponibili per nuove VM.

Le VM che vengono prese in considerazione sono quelle che sono impostate “potenzialente” per l’avvio automatico, ovvero le VM che vengono avviate automaticamente o che vengono avviate perhè erano in esecuzione quanto l’host Hyper-V è stato arrestato.

La lista delle VM è ordinato in base allo start delay per permettere di capire rapidamente come le VM si avviano e come eventualmente configurare lo start delay di una nuova VM.

Può tornare utile creare il report nel desktp di tutti gli utenti con lo script batch Create-ReportVMs.cmd disponibile come esempio nel Repository su GitHub e schedularne l’avvio ad ogni logon di un’utente sull’host Hyper-V.