Negli ultimi anni in informatica si è registrata una crescita esponenziale del fenomeno della virtualizzazione, argomento che si è saputo imporre all’attenzione non solo dei sistemisti e dei tecnici in generale, ma anche di molti manager d’azienda che hanno saputo cogliere le opportunità (economiche) di questa nuova tecnologia. Ad oggi si stima che più del 60% dei server siano virtuali, e questa percentuale è destinata solo a salire.
I motivi di questo successo vanno cercati nella grande quantità di vantaggi che la virtualizzazione porta a quell’utenza costantemente alla ricerca di macchine sempre più performanti, dinamiche e affidabili ed al contempo economiche.
Cos’è la virtualizzazione e quali vantaggi comporta
Ma cosa si intende esattamente per virtualizzazione? E quali sono i vantaggi?
Con il termine virtualizzazione si intende il processo di creazione di una risorsa (come ad esempio un server) in modo virtuale invece che fisico.
In ambito server lo scopo della virtualizzazione è quello di creare più istanze virtuali di sistemi operativi su di un’unica macchina fisica. Questo è possibile grazie ad un software (chiamato hypervisor) che simula l’esistenza di un hardware fornendo tutte le risorse necessarie alle macchine virtuali per eseguire le proprie applicazioni. Il risultato è che tutte le macchine virtuali si comportano come server individuali, aumentando così le prestazioni dell’infrastruttura complessiva e riducendone i costi. Tutta la potenza di calcolo è riunita ed assegnata ai vari servizi mentre le risorse di elaborazione vengono replicate e distribuite durante l’esecuzione delle applicazioni.
I vantaggi di questo tipo di virtualizzazione sono sia di tipo economico che funzionale. Vediamone qui alcuni tra i principali:
- Risparmio sui costi di infrastruttura: meno investimenti sui server fisici e meno spazio occupato da macchine, rack, ecc…
- Risparmio energetico: la razionalizzazione e l’ottimizzazione delle risorse hardware porta ad un minor consumo energetico sia per l’alimentazione delle macchine fisiche che per i condizionatori necessari a tenere controllata la temperatura.
- Sicurezza: ogni singola macchina virtuale è composta da pochi files rendendo di conseguenza semplice e veloce il processo di salvataggio dell’intera macchina o la migrazione della stessa su altri server fisici. I tempi per il disaster recovery si accorciano notevolmente.
- Scalabilità: le risorse allocate ad una macchina possono variare in tempi brevissimi evitando lunghe interruzioni di servizi.
- Semplicità di amministrazione: tutte le macchine virtuali possono essere gestite da un unico pannello ed anche gli eventuali guasti hardware sono più facili da individuare e riparare.
Questi (ed altri) vantaggi dovrebbero essere presi in seria considerazione da ogni azienda e soprattutto da quelle ancora affezionate all’idea di avere i propri server "in casa" (paranoie da privacy?): salvo rare eccezioni, infatti, avere singoli server fisici non è più conveniente per nessuno, neanche per un target di piccole imprese.
VMware
Una delle prime aziende a fornire strumenti di virtualizzazione è stata la californiana VMware Inc. che, avendo capito per tempo la portata della rivoluzione in atto, è riuscita ad imporsi quale leader del nascente mercato della virtualizzazione, leadership tutt’ora indiscussa grazie ad una penetrazione pari al 50% dell’intero mercato.
In questa guida, pertanto, andremo a configurare un server proprio con il prodotto di maggior successo di VMware a livello enterprise: VMware vSphere Hypervisor, chiamato anche ESXi vSphere, giunto alla versione 6.0.
VMware ESXi
VMware ESXi è una piattaforma per la virtualizzazione di tipo bare metal ovvero si installa direttamente sul server fisico, a differenza ad esempio del prodotto VMware workstation che necessita di un sistema operativo sul quale installarsi e che magari molti di voi avranno già usato per avere macchine virtuali sul proprio PC.
Installando ESXi direttamente sul server fisico che vorremo andare a virtualizzare, esso fungerà da base per i sistemi operativi delle macchine virtuali che andremo ad installare (Windows, Linux, ecc..) facendo da tramite tra loro e l’hardware per l’approvvigionamento delle risorse necessarie come memoria, cpu, storage e rete.
E’ bene precisare fin da subito che ESXi non è propriamente un sistema operativo, come lo era invece il suo predecessore ESX: tutti gli agenti sono eseguiti su quello che Vmware chiama vmkernel, un kernel progettato per servire esclusivamente le macchine virtuali limitando l’interazione con il mondo esterno alle sole API necessarie per la gestione delle macchine virtuali. Questo rende ESXi leggero, stabile e molto sicuro.
Installazione ESXi
Hardware compatibile
Prima di iniziare è bene consultare l’elenco dei prodotti hardware compatibili con ESXi per assicurarci che i nostri rientrino fra questi. Per farlo consultate la guida di compatibilità VMware a questo link.
Come detto in precedenza vmkernel dispone di pochi drivers pertanto questa verifica è assolutamente necessaria.
Se invece dovete ancora procurarvi il server da destinare alla virtualizzazione l’ideale sarebbe valutare l’acquisto di un hardware già certificato per VMware ESXi. Potete fare questa ricerca nel sito del produttore dell’hardware di vostro interesse; ad esempio, questa è la lista dei server HP certificati per VMware.
I più temerari di voi che non vogliono arrendersi alle compatibilità dichiarate possono avventurarsi sulla rete alla ricerca di driver per il proprio hardware da aggiungere, tramite appositi tools, al software di installazione di ESXi. Ovviamente se volete intraprendere questa strada dovete mettere in conto il forte di rischio di imbattervi in instabilità su certe operazioni; è bene, quindi, valutare con la giusta prudenza il richio che qualcosa non vada per il verso giusto.
Scaricare il software dal sito VMware
Il prodotto che andremo a installare è VMware vSphere Hypervisor, che comprende VMware ESXi per l’installazione su server e vSphere Client per la gestione. Entrambi i prodotti sono gratuiti ma è necessaria la registrazione. Ad oggi l’ultima versione disponibile è la 6.0, pertanto sarà quella che andremo ad installare nella nostra guida.
Oltre alla versione standard segnalo anche l’esistenza di immagini ISO customizzate per le principali marche di server. Ad esempio per chi andrà ad installare ESXi su un server HP ProLiant può essere utile installare direttamente l’immagine ad esso dedicata. I vantaggi, come è facile intuire, riguardano soprattutto i driver, essendo queste immagini sviluppate in collaborazione con il produttore dei server che si preoccupa di inserire all’interno tutto il necessario.
Andiamo ora sul sito di VMware e procediamo con il login o la registrazione. Una volta terminato l’accesso portiamoci nella sezione dei software gratuiti e scarichiamo l’immagine ISO di VMware vSphere Hypervisor. Come vedete viene fornita anche una License Key gratuita che sarà necessaria per l’attivazione del prodotto. Leggendo la nota vediamo che possiamo usare la stessa chiave per eseguire fino a 100 installazioni su server fisici, ma per avere assistenza da VMware è necessario sottoscrivere un contratto.
Installare VMware vSphere Hypervisor
Terminato il download andiamo a scrivere l’immagine ISO su CD o sul supporto che preferiamo e avviamo il server facendogli fare il boot sull’unità con l’immagine appena scritta.
Ci viene ricordato di controllare la compatibilità del nostro hardware all’indirizzo scritto in precedenza.
Leggiamo e accettiamo la licenza con F11, poi indichiamo il disco sul quale andare a fare l’installazione. ESXi può essere installato sia su disco singolo che su raid, oppure su chiavetta USB.
Selezioniamo il layout della tastiera e assegniamo la password all’utente root:
Se non abbiamo avvisi di incompatibilità possiamo lanciare l’installazione con F11.
Terminata l’installazione e riavviato il server come richiesto, la nostra infrastruttura sarà pronta per essere utilizzata, prima però è bene controllare le impostazioni di rete settando un indirizzo IP statico e magari abilitare l’accesso con SSH.
Per accedere alla configurazione di sistema premere F2. Andare poi su Configure Management Network per impostare l’indirizzo IP statico e su Troubleshooting Options per abilitare il protocollo SSH (in alternativa è possibile abilitarlo anche dal vSphere Client).
Download, installazione e primo utilizzo di vSphere Client
Per gestire il sistema di virtualizzazione appena installato è necessario procurarsi il client che ci interfacci sul server. Nella versione free l’unico client disponibile è vSphere ed è installabile solamente su ambienti Windows.
Le alternative a pagamento sono due:
- la prima alternativa consiste nell’utilizzare vCenter Server, un prodotto più evoluto che offre una piattaforma centralizzata per la gestione degli ambienti virtuali ed è indicato per chi si trova a gestire un grande numero di server virtualizzati; tramite vCenter avremo anche la possibilità di ottenere un Web Client fruibile via browser.
- la seconda alternativa ci viene invece offerta dal prodotto di uso domestico VMware Workstation. Questo popolare software di virtualizzazione permette infatti non solo di creare macchine virtuali sul proprio PC ma anche di collegarci ai nostri server ESXi tramite la funzione Connect to a Remote Server. Il prodotto è a pagamento e installabile anche su distribuzioni Linux.
Per procedere nella nostra guida continueremo a fare riferimento al prodotto gratuito.
Per proseguire, attraverso un sistema Windows, scarichiamo vSphere Client direttamente dal nostro server aprendo il browser e digitando il suo indirizzo IP:
https://ip-del-server
facciamo poi click su Download vSphere Client. Terminato il download lanciamo l’eseguibile e seguiamo le istruzioni a video, installando così il client in locale.
Ad installazione completeta potremo lanciare il client dal seguente percorso:
Start > Programmi > VMware > VMware vSphere Client
Per il collegamento al nostro sistema ESXi sarà necessario indicare indirizzo IP del server, username e password:
Ad accesso avvenuto un avviso ci avviserà dei 60 giorni di scadenza della nostra installazione di VMware vSphere Hypervisor perciò, per prima cosa, andiamo ad attivarlo con la License Key che ci è stata fornita in fase di registrazione. Per farle ciò selezioniamo il tab configuration, dal menù a sinistra clicchiamo su Licensed Features e poi su edit. Nella finestra che si apre inseriamo la Key e le funzioni disponibili saranno attivate senza scadenze temporali.
Creazione di un server virtuale con vSphere
Abbiamo posto le basi per il nostro ambiente di virtualizzazione e ora non ci rimane che creare le macchine virtuali che vogliamo. Per farlo apriamo il nostro vSphere Client, selezioniamo il server al quale ci siamo connessi e facciamo click sull’icona New Virtual Machine.
Così facendo si aprirà il wizard per la creazione della nuova macchina virtuale dove andremo ad indicare quali e quante risorse vogliamo allocarle.
La prima scelta che ci troviamo ad affrontare è relativa al tipo di configurazione da intraprendere: Typical o Custom. Nel nostro esempio selezioneremo la prima che ci consentirà di configurare risorse e opzioni principali.
Agli step successivi dovremo:
- dare un nome alla nostra macchina virtuale;
- scegliere in quale datastore creare la nostra nuova VM (un datastore è un’unità logica di archiviazione; fate attenzione a non saturare mai il datastore altrimenti backup e snapshot delle nostre macchine non potranno essere creati);
- indicare che tipo di sistema operativo verrà installato sulla VM (attenzione! il sistema operativo NON verrà installato in automatico, ma dovremo installarlo noi manualmente), decidere quanta memoria assegnare alle VM e su quale rete collegarla;
- specificare le caratteristiche del disco che verrà creato.
Al momento della creazione del disco, oltre alla dimensione dovremo indicarne anche la tipologia scegliendo una tra le seguenti 3 opzioni:
- Thick provision lazy zeroed: lo spazio sul disco indicato viene interamente allocato ma all”interno di esso i blocchi verranno azzerati solo prima di essere scritti.
- Thick provision eager zeroed: lo spazio sul disco viene interamente allocato e tutti i relativi blocchi vengono subito azzerati alla creazione.
- Thin provision: lo spazio viene allocato dinamicamente su richiesta, senza perciò occupare subito tutta la dimensione del disco indicata. Il disco crescerà di dimensione in base alle necessità della macchina virtuale.
Un disco di tipo thin rispetto ad uno thick occuperà quindi solo quanto necessario, risparmiando spazio sullo storage. Di contro però le prestazioni di scrittura caleranno lievemente. Selezioniamo quindi l’opzione più idonea alle nostre esigenze e terminiamo le operazioni.
Come detto ad inizio guida un grande vantaggio della virtualizzazione è la scalabilità delle risorse. Quelle appena impostate alla nostra macchina possono infatti variare velocemente se un domani le esigenze della suddetta macchina cambieranno. Potremo pertanto ridimensionare ram, cpu, disco…
Una volta terminata la creazione della macchina sarà sufficiente procedere con l’installazione del sistema operativo. Facciamo click col tasto destro sulla nuova macchina e selezioniamo Open Console, la console della macchina che possiamo descrivere anche come il monitor virtuale del nostro nuovo server. Avviamo la macchina con il tasto play e carichiamo subito l’immagine del sistema operativo da installare.
Ad esempio se abbiamo un file .iso Ubuntu sul computer dal quale abbiamo lanciato vSpehere client, possiamo selezionare:
CD/DVD drive1 > Connect to ISO image on local disk
e iniziare la nostra installazione.
N.B: Sulla console la combinazione di tasti ctrl+alt+canc è sostituita da ctrl+alt+ins. In alternativa si può lanciare il comando dal menù:
VM > Guest > Send Ctrl+Alt+del
Datastore
Dopo aver visto come installare VMware ESXi e creare macchine virtuali soffermiamoci su alcuni concetti utili per approfondire la nostra esperienza riguardo a questo potente strumento.
I Datastore sono contenitori logici che nascondono le specifiche intrinseche di ogni dispositivo di archiviazione del sistema per mettere a disposizione un modello uniforme per la memorizzazione dei file della macchina virtuale (i datastore, in realtà, possono essere utilizzati anche per memorizzare altre risorse come ad esempio immagini ISO o template di macchine virtuali.
A seconda del tipo di storage utilizzato un datastore può avere due tipi di file system:
- VMFS (Virtual Machine File System): File system cluster (ovvero disponibile in lettura/scrittura a più host ESXi) ad alte prestazioni ottimizzato per le macchine virtuali.
- NFS (Network File System): File system di rete, usato tipicamente per collegare un’unità NAS.
Tipicamente i datastore risiedono internamente al server fisico, sia sotto forma di singolo disco (SAS/SATA) che di sistema RAID. Nel casi più evoluti però il datastore viene collocato all’esterno delle macchine e collegato via SAS o iSCSI tramite rete ethernet o in fibra ottica.
Per aggiungere un adattatore iSCSI andiamo sul menu:
Configuration > Storage Adapters
e selezioniamo la funzione Add…
Espolare i datastore
Per esplorare i datastore disponibili possiamo collegarci tramite SSH al server e portarci sulla seguente directory:
/vmfs/volumes
Se preferiamo invece il client vSphere, possiamo raggiungerli dal menu:
Configuration > Storage (click destro per navigare all'interno)
Gestione di Memoria e CPU
Memoria
Attraverso vSphere client possiamo vedere le impostazioni di allocazione della memoria RAM ed eventualmente modificarle. La memoria impostata al momento della creazione della macchina virtuale si chiama Guest physical memory ed è la memoria che il sistema operativo di quella macchina si vedrà disponibile. La Host physical memory invece è la memoria totale installata sul server a disposizione dell’hypervisor.
Un host ESXi alloca per ciascuna macchina la quantità di memoria che è stata indicata al momento della loro creazione e non ne assegnerà mai più di quella. Può però essere costretto ad assegnarne di meno se la somma della memoria dei Guests è superiore a quella Host. In questo caso a ciascuna macchina virtuale viene allocata una quantità di memoria pari ad un valore compreso tra i parametri Reservation e Limit gestito da ESXi stesso.
Per visualizzare la situazione attuale ed eventualmente modificarla evidenziamo l’host interessato, portiamoci sul menù Resource Allocation e selezioniamo il pulsante Memory.
Da qui possiamo settare i valori di Reservation e Limit per ciascuna macchina virtuale. Inoltre andando a modificare il valore Shares possiamo anche dire all’hyervisor l’importanza della risorsa Ram per una macchina rispetto alle altre.
CPU
Al momento della creazione di una macchina virtuale per la CPU ci viene chiesto quante socket virtuali e quanti cores per socket assegnare. Il valore significativo è il numero totale di cores che assegnamo alla CPU della nostra macchina.
La politica di gestione nell’allocazione della memoria vista in precedenza è sostanzialmente analoga a quella della CPU.
Nella sezione View spostiamoci dal tab Memory a quello CPU per avere le informazioni di utilizzo ed eventualmente gestire limiti e priorità come fatto in precedenza per la RAM.