Monitoraggio vSphere Replication

In ESX 5 VMware ha introdotto la possibilità di replicare le VM tra due storage impostando un tempo massimo di scostamento tra la replica e l’originale (RPO).

Per maggiori informazioni consiglio di fare riferimento al sito di VMWare: http://www.vmware.com/products/vsphere/features/replication.html.

La cosa che ci interessa di più però è, una volta impostato, capire se stia funzionando correttamente e se  quando e quanto spesso venga violato l’RPO (Recovery Point Objective). Purtroppo vCenter non fornisce queste informazioni in modo semplice o diretto. La console di monitoraggio è disponibile solo tramite client Web e permette di vedere lo stato attuale ma non lo storico. Si possono impostare degli allarmi per avere un feedback immediato (solo da client Web) ma non c’è modo ad esempio di sapere rapidamente quante volte una VM sia finita fuori RPO nell’ultimo mese.

Fortunatamente può venirci in aiuto la PowerCLI e uno script powershell ad-hoc che premette di estrarre i dati dalla registrazione eventi di ogni singola VM. Partendo da questo utilissimo articolo “Reporting on RPO Violation” ho modificato lo script in modo da:

  • inviare la mail con il report
  • gestire in modo diverso le violazioni ancora in corso e le violazioni rientrate. Questo è molto utile perché permette di vedere subito se ci sono VM la cui replica è saltata e non è più funzionante
  • aggiunto il completamento di una operazione di full sync come evento di conclusione della violazione, visto che se viene cancellata e ricreata una replica in durante una violazione con lo script originale la violazione rimaneva sempre aperta

Lo script è già pronto per essere schedulato sul vCenter. Attenzione, dato che legge tutti gli eventi dal vCenter per ogni VM in ambienti con molte VM il tempo di esecuzione diventa abbastanza elevato, consiglio quindi di schedularlo al massimo un paio di volte al giorno.

Link allo script: rpocheck

Parametri nello script:

$vc
Indirizzo del vCenter

$vcuser
Utente per l’accesso al vCenter. Dato che la password sarà in chiaro nello script consiglio la creazione di un utente in sola lettura dedicato

$vcpass
Password dell’utente per l’accesso al vCenter

$mailserver
Server SMTP a cui inviare la mail

$mailsender
Indirizzo mail mittente

$mailrcpt
Indirizzo (o indirizzi) destinatario report