La virtualizzazione è probabilmente la più grande innovazione nel campo delle strutture informatiche degli ultimi 50 anni.
Ha radici molto profonde, basti solo pensare che affonda le sue radici nei primi anni 60 quando una più che mai innovativa IBM, stava studiando un modo per condividere le risorse dei suoi mainframe per limitare gli sprechi.
Proprio da questo concetto, ovvero la limitazione degli sprechi, nasce l’esigenza di studiare soluzioni di virtualizzazione.
La virtualizzazione non è nient’altro che un sistema tecnologico per ottenere due risultati principali :
Ottimizzazione delle risorse.
Portabilità delle macchine virtuali.
Analizziamoli nel dettaglio. Il primo consiste nell’ottimizzazione delle risorse, dobbiamo ragionare i computer (ma anche i server, che in definitiva sono computer molto potenti) come composti da due componenti principali: hardware e software.
La prima, hardware, è tutto quello che è fisico e tangibile, quindi i computer propriamente detti, mentre la seconda, il software, sono i programmi che vi girano sopra.
In tutti i nostri computer queste due componenti sono strettamente legate e interagiscono in modo diretto.
La potenza delle nostre macchine non è pienamente sfruttata dai S.O. se potessimo dividere le risorse in modo da usarle in modo più completo avremmo un spreco molto minore di risorse “potenziali”
Per quanto riguarda invece la portabilità, ci scontriamo con la grande connessione che intercorre tra hardware e software.
Il più grande limite consiste nella grande difficoltà (o nell’impossibilità) di adattare una soluzione software (un sistema operativo come windows ad esempio) a un ambiente hardware differente da quello per cui è stata creata.
La virtualizzazione vuole porsi come intermediario tra la prima e la seconda componente, la possibilità di rendere hardware e software indipendente l’uno dall’altro è uno dei suoi obiettivi principali.
Cosa succede quindi nei sistemi di virtualizzazione? Semplicemente non viene installato un SO classico (come Windows 7) sulla macchina ma quello che si chiama Hypervisor, ovvero un “S.O.” il cui unico scopo è gestire l’hardware per metterlo al servizio delle macchine virtuali.
Cosa sono le macchine virtuali ? Sono dei veri e propri computer che invece di essere fisici, sono fatti funzionare all’interno di una finestra (o tramite connessioni di vario tipo) come fossero dei programmi.
Gli Hypervisor sono di due tipi, il tipo 1 è installato direttamente dentro una macchina fisica e ne acquisisce il controllo esclusivo, vale a dire che esisterà solo lui sul nostro server.
Il tipo 2 invece si appoggia a un sistema operativo con cui condivide le risorse.
Giusto per fare dei nomi Vmware VSphere è di tipo 1 mentre Microsoft Hyper-V e Vmware Player sono di tipo 2.
Il tipo 1 offre sicuramente un’ottimizzazione Hardware maggiore poiché non ha nulla sotto di se, mentre il tipo 2 permette sicuramente una maggiore facilità d’uso.
Indipendentemente dalla soluzione che adottiamo, gli hypervisor ci permettono numerosi vantaggi rispetto a una installazione hardware-software standard :
- Scalabilità delle risorse
- Portabilità delle VM
- Retro computing
- Simultaneità delle esecuzioni
Scalabilità
Creando differenti VM possiamo assegnare ad ognuna le risorse che le competono in modo da poter sfruttare le risorse del sistema in modo efficiente, se avremo una macchina che necessita di 4Gb di memoria e non di più, perché installarla su una macchina fisica con 8Gb ? Assegnamone 4 a quella VM specifica e i restanti 4 a un’altra VM, se poi in futuro le esigenze dovessero cambiare potremo scalare nuovamente le risorse.
Portabilità
Le VM una volta spente non sono altro che de i file che possono essere spostati da un sistema all’altro, quindi non importa su che Hardware stava girando una VM se la metteremo sulla stessa versione di Hypervisor ripartirà senza variazioni, per versioni diverse esistono appositi convertitori.
Retro computing
Molte aziende necessitano ancora di utilizzare vecchi gestionali o software antiquati per le loro operazioni, creando (o convertendo dalle macchine fisiche) delle apposite VM potremo utilizzare ancore questi programmi che nelle nuove versioni dei S.O. non sono più funzionanti.
Simultaneità
Utilizzando più VM potremo svolgere compiti che sulla stessa macchina potrebbero essere incompatibili o troppo onerosi.
I sistemi di virtualizzazione permettono sia per i risparmi in termini di corrente (circa il 30 % dei consumi) sia in termini di materiale fisico con cui sono prodotti i server.
Tirando le somme quindi, la virtualizzazione si pone come il vero futuro dei sistemi di computing in un mondo sempre più performante e avaro di risorse sia informatiche che energetiche.