Arda Solutions s.r.l. | The Informal Blog

vSphereHighAvailability

Come detto in un precedente articolo vi avevamo promesso che avremmo parlato dell’Application awareness, la nuova API introdotta in vSphere 5 che permette di introdurre un heartbeat fra le application contenute nella macchina virtuale e l’infrastruttura VmWare. Recentemente ci è proprio capitato da un cliente di gestire ed utilizzare questa API. La necessità è quella descritta nell’articolo linkato all’inizio: la possibilità di sfruttare l’HA di VmWare senza dover introdurre un ulteriore strato di clustering molte volte meno gestibile. Nell’articolo verrà spiegato il processo che è attualmente in produzione da più di un cliente, frutto del solito impegno degli specialisti Arda Solutions

Innanzitutto la cosa più importante: il meccanismo di heartbeat introdotto da questa API è interessante perché non passa attraverso lo strato TCP, quindi sfrutta i vmware tools per comunicare con il sistema di HA di VmWare.

L’altra cosa importante (e che farà felici molti di voi ma scontenti molti dei rivenditori Symantec) è che questa API prima della 5 veniva esposta solo a vendor che ne sfruttavano le potenzialità per costruirci sopra dei prodotti, ora invece è disponibile e sfruttabile da ogni script o applicazione.

Prerequisiti

  1. E’ necessario attivare o aver attivato l’HA per il vostro cluster vsphere (infatti è questa componente che espone, fra le altre, questa preziosa API)
  2. E’ in oltre necessario configurare il cluster in modo da includere la macchina (o le macchine) virtuali all’interno del Monitoring “VM and Application Monitoring
  3. Scaricare sulle VM di cui monitorare lo stato tramite quest’api l’SDK necessaria: VMware-GuestAppMonitorSDK

Configurazione

La configurazione è abbastanza semplice e la complessità è introdotta solo dalla complessità della logica all’interno del programma o script. La cosa da ricordare è che, una volta attivato, l’infrastruttura HA si aspetta un heartbeat una volta ogni 30 secondi (aldilà delle vostre configurazioni). Le configurazioni che potete fare sono solo legate alla sensibilità dell’infrastruttura di accettare uno o più heartbeat mancanti (per capirci, quel “failure interval” si riferisce al tempo accettabile dall’ultima perdita di HB in attesa di un nuovo HB)

L’SDK che scaricherete vi permette di integrare la GuestAppMonitor all’interno delle vostre applicazioni fornendo tutte le librerie necessarie. Se invece lo utilzzerete all’interno di uno script, viene fornito anche un eseguibile che è necessario per modificare gli stati di HA della macchina. L’eseguibile (vmware-appmonitor per linux e vmware-appmonitor.exe per windows) dovrà essere richiamato a seconda delle necessità e delle logiche introdotte dallo script.

Funzionamento

Il funzionamento è meglio comprensibile se prendiamo ad esempio l’utilizzo dell’eseguibile vmware-appmonitor all’interno di uno script. Normalmente il funzionamento è il seguente:

  • Viene eseguito lo script
  • lo script controlla che il Monitoring sia abilitato: vmware-appmonitor IsEnabled
  • Se non è abilitato viene abilitato il monitoring (almeno la prima volta): vmware-appmonitor enable
  • Se la logica dello script conclude che è tutto ok, viene inviato l’heartbeat: vmware-appmonitor markActive

Se l’heartbeat non viene inviato il sotto sistema di gestione HA modifica lo stato da verde a rosso e, se viene violato il tempo di HB impostato all’inzio la macchina viene fatta riavviare. (lo stato grigio richiede la riabilitazione dell’app monitoring, quindi è da verificare)

Script / Eseguibile

Attualmente abbiamo consolidato l’esperienza nell’utilizzo della GuestAppMonitor in 2 componenti: un eseguibile (tendenzialmente per gli ambienti windows) e uno script in perl (per gli ambienti Linux) … Al momento non ci è possibile fornire uno script completo poiché stiamo completando le ultime modifiche per proporlo anche “al grande pubblico”. Se qualcuno avesse fretta può scriverci direttamente, altrimenti pubblicheremo un nuovo articolo in futuro.

Leave a Reply