Sizing di un’infrastruttura server con VMware

Ho terminato la scrittura di un piccolo manuale in cui spiego come dimensionare un’infrastruttura di server/storage per passare da un ambiente fisico ad uno virtuale con VMware vSphere 4.1 (da poco è uscita la versione 5!). Dato che in Rete non ho trovato nessun documento per il dimensionamento della parte server (per la parte desktop invece ci sono alcune ottime guide) che sia leggibile e abbastanza immediato, me lo sono scritto da solo, in modo da poterlo usare come punto di riferimento :-). […]

Ho terminato la scrittura di un piccolo manuale in cui spiego come dimensionare un’infrastruttura di server/storage per passare da un ambiente fisico ad uno virtuale con VMware vSphere 4.1 (da poco è uscita la versione 5!).

matriosche

Dato che in Rete non ho trovato nessun documento per il dimensionamento della parte server (per la parte desktop invece  ci sono alcune ottime guide) che sia leggibile e abbastanza immediato, me lo sono scritto da solo, in modo da poterlo usare come punto di riferimento :-).  Anzi, in Rete ci sono tantissimi documenti che trattano l’argomento, e sono anche di gran lunga migliori del mio, ma spesso il loro problema è che sono troppo lunghi ed elaborati, risultando difficili da decifrare, con decine e decine di grafici, istogrammi, studi di performance, e 10000 tabelle. Di seguito riporto un estratto del manuale:

Vediamo una serie di best practices per progettare e dimensionare un’infrastruttura di server virtuali con VMware. I punti da tenere in considerazione durante la progettazione sono i seguenti (ordinati in base all’importanza):

  1. tipo di server (entry level, enterprise, …), al quale sono strettamente legati tutti i punti successivi, e l’espandibilità futura (scale-out e scale-up);
  2. RAM, l’elemento più critico che può limitare fortemente le VM e le loro performance all’interno dell’infrastruttura;
  3. CPU, in termini di numero di core, socket, e frequenza;
  4. storage, quantità dello spazio necessario e tecnologia usata;
  5. networking.

Il manuale è liberamente scaricabile dal link sottostante oppure dalla sezione Download, ed è la prima versione (spero presto di aggiornarlo con la nuova versione di vSphere 5, e di renderlo ancora più immediato da utilizzare ma anche completo di spiegazioni ed esempi).

DOWNLOAD del manuale (v1.1)

roghan

p.s.: se ti è piaciuto il mio manuale e reputi interessante il mio lavoro puoi offrirmi da bere… Grazie mille!!!
pulsante paypal

Cluster VMware vs cluster Microsoft

In questo post verranno trattati i vantaggi di implementare un cluster Microsoft e quelli invece di un cluster VMware vSphere. Un cluster Microsoft ha il vantaggio che sono monitorate le applicazioni all’interno del sistema operativo, ad esempio SQL Server: se l’applicazione su uno dei nodi del cluster ha un crash, subentra immediatamente l’istanza sull’altro nodo in modo da garantire continuità di servizio. Nel caso di VMware invece può essere configurato un cluster con la Fault Tolerance (FT), la funzionalità che meglio si avvicina a MSCS. […]

In questo post verranno trattati i vantaggi di implementare un cluster Microsoft e quelli invece di un cluster VMware vSphere.

cluster

Un cluster Microsoft ha il vantaggio che sono monitorate le applicazioni all’interno del sistema operativo, ad esempio SQL Server: se l’applicazione su uno dei nodi del cluster ha un crash, subentra immediatamente l’istanza sull’altro nodo in modo da garantire continuità di servizio. Nel caso di VMware invece può essere configurato un cluster con la Fault Tolerance (FT), la funzionalità che meglio si avvicina a MSCS. Con la FT attiva VMware garantisce la continuità di esecuzione di una VM, ma non delle singole applicazioni all’intero della VM:

  1. se il nodo che ospita la VM ha un malfunzionamento, una VM identica già attiva e avviata entrerà in funzione, garantendo zero disservizio;
  2. se il nodo che ospita la VM funziona correttamente ma ha un crash un’applicazione interna alla VM (un database, un server web, …), la FT non è in grado di effettuare alcun azione e il servizio non verrà più erogato.

Dunque nella scelta tra MSCS e VMware deve essere tenuto in considerazione il livello di protezione garantito, che è maggiore con MSCS ma con lo svantaggio di costi maggiori e di un maggior livello di complessità. Con MSCS infatti devono essere configurati singolarmente i nodi del cluster, così come devono essere configurati disco di quorum e RDM. In VMware invece la configurazione del cluster è molto più semplice ed intuitiva, e viene fatta interamente attraverso vCenter Server, il quale si occuperà sia di monitorare le VM sia di eseguire le azioni opportune in caso di crash. In definitiva, MSCS è da preferire per applicazioni mission-critical, come un database, in cui un disservizio anche minimo può causare notevoli problemi, mentre per altri tipi di servizi, come server DHCP, DNS, o anche server web, un cluster con VMware FT (o eventualmente HA se può essere tollerato un disservizio di alcuni minuti) offre una protezione più che adeguata.

L’alternativa è quella di ricorrere ad un cluster Microsoft direttamente all’interno di un cluster VMware, in modo da unire i benefici della virtualizzazione ad una continuità di servizio 24h/24 per le applicazioni più critiche. Inoltre, si ha un ulteriore vantaggio, che consiste nella possibilità di “spostare” un’applicazione da una VM ad un’altra senza alcun disservizio, ad esempio se si deve effettuare qualche operazione di manutenzione. E’ da notare però che in questo caso sono supportati cluster solo di alcune versioni di Windows. Per maggiori dettagli consultare i collegamenti seguenti:

roghan

VMware HA e nodi isolati

Vedremo in questo post il comportamento di un cluster virtualizzato in cui è stata abilitata la funzionalità HA. Da ricordare che un cluster può essere configurato unicamente tramite un vCenter Server, che resta necessario per il corretto funzionamento di funzionalità quali vMotion e DRS, ma non per l’HA: se il vCenter Server si blocca o ha un guasto, l’HA è comunque garantita per tutti i nodi del cluster. […]

Vedremo in questo post il comportamento di un cluster virtualizzato con VMware in cui è stata abilitata la funzionalità HA. Da ricordare che un cluster può essere configurato unicamente tramite un vCenter Server, che resta necessario per il corretto funzionamento di funzionalità quali vMotion e DRS, ma non per l’HA: se il vCenter Server si blocca o ha un guasto, l’HA è comunque garantita per tutti i nodi del cluster.

ha_p2p
Interrogazione dei nodi in un cluster con HA

L’architettura di funzionamento su cui è basata l’HA è di tipo p2p, ossia ogni nodo effettua a intervalli regolari un ping verso ogni altro nodo del cluster e anche verso il gateway. I ping vengono effettuati dalla scheda di management di un nodo e verso la management di ogni altro nodo (Service Console nel caso di ESX e CLI di management per ESXi). Il funzionamento dell’HA è quindi strettamente legato al networking e alle schede di rete, e qualora la scheda di rete della management di un nodo si guasti il nodo stesso diventa isolato. Studiamo questo caso:

  1. ogni nodo controlla se ogni altro nodo è raggiungibile;
  2. se in un nodo si guasta la scheda di rete di management questo diventa isolato;
  3. di default, un nodo isolato spegne tutte le sua macchine virtuali.

Il comportamento di default potrebbe essere ragionevole nel caso in cui un nodo abbia schede di rete ridondate per la management, ma è in generale altamente consigliato cambiare l’impostazione default. Proviamo a immaginare cosa succederebbe se si guastasse uno switch fisico a cui sono collegati tutti i nodi e pure il gateway? Tutti i nodi risulterebbero isolati, con la conseguenza che ogni nodo spegnerebbe tutte le sue macchine virtuali! E’ una situazione assolutamente da evitare. Pertanto è necessario modificare l’impostazione host isolation response durante la configurazione del cluster, visibile alla schermata seguente:

ha_vcenter
Modificare impostazioni default

Riepilogando, è buona norma modificare il comportamento default di un cluster HA per quanto riguarda l’isolamento del nodo, ed inoltre è buona cosa ridondare la NIC di management.

roghan

[Virtualizzazione] Cluster in HA e Disaster Recovery

Sempre più diffusi sono i sistemi cluster, costituiti da gruppi di computer (tipicamente server) collegati tra loro ed in grado di lavorare insieme. Il sistema cluster minimo prevede l’utilizzo di due nodi collegati tra loro. Nello specifico esistono tre tipi di cluster:

* attivo/passivo, detto anche cluster in HA (High Availability), o anche cluster failover;
* attivo/attivo ad alte performance, o cluster di nodi che lavorano in parallelo;
* attivo/attivo con bilanciatore di carico (NLB, Network Load Balancing).

Il primo tipo di cluster viene anche definito HA (High Availability), e la sua funzionalità è quella di garantire sempre un determinato servizio. Tale servizio viene erogato dal computer attivo, ma qualora dovesse verificarsi un malfunzionamento, il sistema cluster provvederebbe ad avviare immediatamente uno degli altri nodi, che entrerebbe in sostituzione di quello appena guastato. Generalmente questo tipo di cluster adotta il supporto dei dischi di Quorum per condividere con tutti i nodi i dati precedentemente utilizzati dalla macchina che è andata in failure. Il secondo tipo di cluster è costituito da nodi che lavorano in parallelo per garantire elevate prestazioni. Ogni processo sottomesso al sistema cluster viene suddiviso tra le macchine che compongono il sistema. L’ultimo tipo di cluster è quello attivo/attivo, in cui tutti i nodi che lo compongono sono sempre attivi, e vi è un bilanciatore di carico che distribuisce le richieste al nodo meno occupato. […]

Sempre più diffusi sono i sistemi cluster, costituiti da gruppi di computer (tipicamente server) collegati tra loro ed in grado di lavorare insieme. Il sistema cluster minimo prevede l’utilizzo di due nodi collegati tra loro. Nello specifico esistono tre tipi di cluster:

  • attivo/passivo, detto anche cluster in HA (High Availability), o anche cluster failover;
  • attivo/attivo ad alte performance, o cluster di nodi che lavorano in parallelo;
  • attivo/attivo con bilanciatore di carico (NLB, Network Load Balancing).

Il primo tipo di cluster viene anche definito HA (High Availability), e la sua funzionalità è quella di garantire sempre un determinato servizio. Tale servizio viene erogato dal computer attivo, ma qualora dovesse verificarsi un malfunzionamento, il sistema cluster provvederebbe ad avviare immediatamente uno degli altri nodi, che entrerebbe in sostituzione di quello appena guastato. Generalmente questo tipo di cluster adotta il supporto dei dischi di Quorum per condividere con tutti i nodi i dati precedentemente utilizzati dalla macchina che è andata in failure. Il secondo tipo di cluster è costituito da nodi che lavorano in parallelo per garantire elevate prestazioni. Ogni processo sottomesso al sistema cluster viene suddiviso tra le macchine che compongono il sistema. L’ultimo tipo di cluster è quello attivo/attivo, in cui tutti i nodi che lo compongono sono sempre attivi, e vi è un bilanciatore di carico che distribuisce le richieste al nodo meno occupato.

I sistemi cluster sono fondamentali in un mondo in cui le persone vogliono sempre tutto e subito; sono fondamentali per molte aziende che devono rendere costantemente disponibili i propri servizi, e dove per costantemente si intende 24h su 24, tutti i giorni dell’anno! Ecco che entra in gioco il ruolo del cluster HA appena descritto, o meglio un insieme di più nodi organizzati in modo tale da offrire un servizio quanto più possibile continuo.laptop-fire L’errore che molto spesso viene fatto nelle aziende (ho saputo di casi reali avvenuti a clienti dell’azienda in cui lavoro :-(!), è quello di acquistare come nodo primario un sistema ultra-veloce, come potrebbe essere una Ferrari, ed adoperare invece come nodo secondario un vecchio computer, paragonabile ad una memorabile Panda. Mai commettere questo errore! In caso di disaster recovery il sistema super-veloce smetterebbe di funzionare, e tutte le richieste verrebbero dunque inoltrate al secondo nodo, la vecchia Panda: siamo sicuri che la Pandina una volta entrata in funzione sia in grado di gestire tutto il carico in arrivo? Molto spesso infatti il secondo nodo non è in grado di supportare neppure metà dei servizi di quello principale, con il risultato che tutto il sistema si potrebbe bloccare dopo non molto.

Pertanto, la soluzione migliore è di configurare il cluster con nodi tutti identici. Nel caso dell’esempio precedente la soluzione è di usare due belle BMW in grado di raggiungere buone prestazioni, anche se inferiori alla Ferrari, ma prestazioni sicuramente costanti (con e senza failover)!

Inoltre, un altro errore molto diffuso nelle aziende è quello di non simulare mai un disaster recovery, un po’ come avviene per i dati di backup. Quanti di voi controllano che i dati appena salvati sia coerenti e privi di errori?? Quindi, prevenire piuttosto che curare, e pianificare con attenzione ogni scelta da fare!

Alla prossima…

Matteo