L’abc della virtualizzazione
La storia della virtualizzazione ha attraversato tutte le ere dell’IT, tornando più volte in auge al mutare delle tecnologie e delle esigenze del mercato.
Concepita quando il personal computer era fantascienza e chi doveva elaborare dati era costretto a contendersi poche centinaia di grandi mainframe, fu un brillante artificio per far lavorare con più persone contemporaneamente le grandi macchine, dividendo logicamente le risorse del sistema.
Oggi le tecniche di virtualizzazione sono utilizzate praticamente ovunque, dalle infrastrutture di rete ai videogiochi, dal software ai servizi, dallo storage al microcodice all’interno di un processore.
Il più diffuso tipo di virtualizzazione è quello basato sulla creazione di macchine virtuali, ovvero programmi che si comportano in modo da simulare un sistema hardware completo, con tanto di Cpu, Ram e periferiche. Le macchine virtuali sono indicate come guest, mentre il sistema che le ospita, e può eventualmente farne girare un certo numero in parallelo, è l’host. Sull’host girerà il software capace di abilitare la creazione e la gestione di macchine virtuali, chiamato hypervisor.
Il primo hypervisor fu prodotto dal Cambridge Scientific Center di IBM nel 1967 e si chiamava CP-40. Era già in grado di far girare fino a 14 istanze di un sistema operativo client, ciascuna con il suo hardware virtuale S/360 e 256K di Ram dedicata.
Quella ottenuta dal CP-40 è la cosiddetta hardware virtualization, da non confondere con la ben più semplice emulazione hardware il cui obiettivo non è creare una serie di macchine virtuali indipendenti dal sistema sottostante, bensì costringere un sistema hardware a imitarne un altro.
Il più diffuso tipo di virtualizzazione è quello basato sulla creazione di macchine virtuali, ovvero programmi che si comportano in modo da simulare un sistema hardware completo
Le macchine virtuali non sono utili solo a massimizzare lo sfruttamento delle risorse di elaborazione, possono anche migliorare sensibilmente la sicurezza di un sistema complesso. Di ogni macchina virtuale è infatti possibile salvare agevolmente lo stato, il cosiddetto snapshot, a scopo di backup, in qualsiasi momento, per esempio prima di un aggiornamento rischioso. Inoltre la velocità con cui possono essere accese o spente consente di metterle a disposizione on demand con la massima facilità. Questa caratteristica ha fatto della virtualizzazione la principale tecnologia abilitante per il Cloud computing, dove un limitato numero di server reali fanno girare molti più server virtuali che erogano effettivamente i servizi.
Inoltre, essendo indipendenti dall’hardware sottostante, ma solo dall’hypervisor, le macchine virtuali possono essere facilmente esportate su un host differente, a patto che sia in grado di eseguire lo stesso hypervisor.
Quanti hypervisor
Il numero dei componenti software sul mercato in grado di gestire un sistema di macchine virtuali cresce costantemente, anche se a un ritmo non troppo sostenuto. Alle consolidate soluzioni enterprise si affiancano infatti prodotti innovativi e talvolta più specializzati. Il mondo delle grandi aziende è comunque dominato da due sole realtà: VMware e Microsoft, anche perché l’impossibilità di esportare macchine virtuali da un hypervisor a un altro differente, impone al mercato un’elevata standardizzazione. L’architettura ESX di VMware è quella che vanta il maggior numero di implementazioni, il che si traduce in un’ampia compatibilità e disponibilità di soluzioni aggiuntive, ma anche l’Hyper-V del colosso di Redmond è stato scelto da molte aziende, soprattutto quelle legate ad altre applicazioni Microsoft, anche per la disponibilità di una versione a costo più basso rispetto al concorrente. Per chi vuole sperimentare e spendere ancora meno, esistono anche soluzioni open source, come KVM, spinto da Red Hat e particolarmente apprezzato in campo educational.
Virtualizzazione e storage
Quello dell’archiviazione di massa è uno dei campi che ha maggiormente beneficiato dell’applicazione di tecniche di virtualizzazione.
Laddove è necessario ottimizzare lo spazio disponibile e garantire un equilibrio tra ridondanza (che implica sicurezza e affidabilità), risparmio e prestazioni, diventa infatti vincente rendere i blocchi logici di dati separati dall’hardware di archiviazione. In questa modalità, definita Block virtualization, l’astrazione dal livello fisico consente anche la massima flessibilità e scalabilità delle offerte per chi vende storage come servizio. Inoltre semplifica i processi di migrazione, rendendo possibile trasferire i dati su un diverso host fisico senza nemmeno interromperne l’accesso. Così si possono sviluppare algoritmi in grado di trasferire i dati su hardware più veloce, come lo storage allo stato solido, quando sono necessarie maggiori performance, per poi riportarli su dischi meno costosi quando le richieste di accesso si fanno più sporadiche.