giovedì 12 agosto 2010

Virtualizzazione: la mia scelta

Virtualizzazione, un tema ormai all'ordine del giorno. Tutti, chi più chi meno, la valutiamo, la studiamo, la integriamo, la critichiamo, la benediciamo e la malediciamo.

Alla fine del 2009 mi sono trovato con i server aziendali imballati, arrivati al collasso. Quale migliore occasione per sperimentare la virtualizzazione approfittando dell'opportunità di aggiornare l'infrastruttura?

Esigenze
L'Azienda lavora con circa 80 client di rete e 7 sedi sul territorio.
Gli applicativi principali risiedono nella sede centrale e, in particolare:
  • Gestione utenti e sicurezza
  • Posta elettronica
  • Intranet
  • Cartelle di rete
  • Applicativi verticali

Lavori svolti pre-virtualizzazione
Nel 2009 accentrai la posta (Exchange su Small Business 2003) e le cartelle di rete di quasi tutte le sedi (in una in particolare c'era un server dedicato con un dominio a parte).
Inoltre, implementai una rete geografica VPN con centro stella nella sede centrale.

Valutazione dell'infrastruttura
Le esigenze non sono fuori dal normale, anzi. La scelta è caduta su IBM Blade S, ovvero una soluzione integrata comoda e poco onerosa per gestire server modulari scalabili e una SAN non troppo pretenziosa ma comunque già di livello.

Il problema è stata la scelta dello strato di virtualizzazione: Hyper-V o VMware?
Vantaggi e svantaggi di entrambi decisamente risaputi e largamente condivisi ma, intanto, dovevo operare una scelta.
All'inizio ho valutato le caratteristiche e non ho notato grandissime differenze a livello base. Aumentando le richieste, però, VMware dimostra maggiori capacità. Per contro, Hyper-V è un pacchetto completo che non richiede licenze particolari o upgrade: è distribuito "così" e basta!
Senza stare a dilungarmi in analisi comparative (largamente discusse e già dibattute sulla rete), alla fine ha prevalso il discorso economico: dato il numero di server da attivare, infatti, Hyper-V garantiva il costo minore (e non di poco!).
Scelta in contro-tendenza? Probabile, ma la soluzione, ad oggi, mi sta piacendo ugualemente ed è sufficientemente stabile e flessibile per le mie esigenze.
Per i sistemi operativi sono andato su Windows Server 2008 R2 64 bit (in inglese!).

L'implementazione
Posizionati i server in una zona lontana da orecchie sensibili, abbiamo dato fuoco alle polveri!
4 lame:
  1. Domain Controller
  2. Exchange Server
  3. Host di virtualizzazione 1
  4. Host di virtualizzazione 2
Abbiamo impiegato un paio di giorni a configuare il tutto e siamo stati penalizzati da un problema su di una lama che, inspiegabilmente, non effettuava più il boot da Windows. Chiamato IBM, abbiamo risolto in poche ore (strappate alla notte!).
Essendo la rete esistente basata su Windows 2003 SBE ed avendo il dominio un nome che richiamava la vecchia ragione sociale, ho deciso di prendere il toro per le corna e cambiare completamente l'AD.
Ergo: tutti i computer sono stati oggetto di "salva e sposta i dati"... Per fortuna, il lavoro ha portato via "solo" circa 50 ore.
Tornando sui server (argomento molto più "succoso"), i due Host hanno visto l'installazione della versione Enterprise di Windows 2008 e la creazione di un cluster per la gestione della virtualizzazione da entrambe le macchine.
Le due lame, dotate di doppio processore quad-core e di 20GB di Ram cadauna, reggono bene il carico di numerosi server (per test siamo andati a 10 su ogni lama) e senza particolari problemi.

Note personali
Bisogna bilanciare bene i carichi, però, per evitare che, in caso di collasso di una lama, l'altra non riesca a gestire tutte le VM.
E' altresì necessario impostare correttamente i tempi di HA necessari per dare priorità alle VM più importanti (nel mio caso il file server, l'application server ed il db server) e facendo sì che le VM non "risucchino" tutte le energie.
Inoltre, bisogna fare attenzione alla distribuzione della Ram: le VM lavorano con pochi MB e sono estremamente performanti. Non bisogna però tirarle al massimo, come in un primo tempo ho fatto io, cercando di far stare più VM possibili! Alla fine mi sono fermato, ho riflettuto, ed ho ottimizzato i carichi cercando di specializzare ogni VM con determinati applicativi senza però creare decine di macchine.

Problemi riscontrati
Sezione dolorosa per tutti.
Diciamo che il problema principale è quello della gestione dell'ora delle VM. Sì, proprio quel problema che sembrava essere risolto da una vita!
In pratica, le VM che hanno un uso più intensivo della CPU si trovano a non gestire correttamente l'ora. Questo problema si traduce in una più frequente correzione dell'allineamento. Niente di gravissimo però, ad un certo punto, il DC replica (una macchina virtuale) ha cominciato ad andare per i fatti suoi ed alcuni utenti, che si autenticavano su di essa, si sono visti negare l'accesso perché l'ora non era sincronizzata.
Questo disagio non è nuovo e si verifica anche su VMware (all'inizio ho subito puntato il dito contro Microsoft, lo ammetto). Pochi se ne accorgono perché se il dominio è configurato correttamente, la correzione viene solo registrata sui log ma non genera problemi.

Conclusioni
Sono contento! :-)
Ora il sistema funziona con una decina di server (4 reali più 6 virtuali) e le prestazioni sono notevoli.
Il bello è la flessibilità: una VM è poco performante? Nessun problema, la "upgradiamo" in pochi minuti spegnendola, aggiungendo una CPU o un po' di RAM e riavviandola! Fantastico!
Ma ancora più bello è il down-time: durante una prova abbiamo "staccato" una lama. Pochi secondi dopo le VM ripartivano sull'host ancora in piedi. Persi "ben" 6 ping!!
Certo, ora mi devo autocontrollare: avvierei nuovi server ogni giorno per ogni nuovo servizio! :-)

Nessun commento:

Posta un commento