Con il passare del tempo la potenza dei computer e la loro capacità è aumentata in modo esponenziale, spesso in modo eccessivo rispetto ai compiti richiesti.
Grazie a questo, negli ultimi anni si stanno diffondendo alcuni programmi detti di “Virtualizzazione”. La virtualizzazione in informatica è un termine generico riferito all’astrazione di una risorsa. Il concetto che sottende a tutte le tecniche di virtualizzazione è l’isolamento dello strato “fisico” attraverso una sorta di incapsulamento. La virtualizzazione crea una interfaccia esterna che nasconde tutta la parte sottostante e permette l’accesso concorrente alle stesse risorse da parte di più istanze che funzionano in contemporanea. (Tradotto da Wikipedia ed integrato da me.)
In questo post si farà riferimento a tre tipi di virtualizzazione: nativa, full eparavirtualizzazione. Un approfondimento sui termini e parecchi link si trovano inquesta voce di Wikipedia.
Al momento della creazione di una macchina virtuale, ho a disposizione una scelta di opzioni hardware che consentono di creare un ambiente indipendente, noto, e sempre uguale. I controller del disco, la VGA, la scheda di rete, tutto l’hardware virtuale è identico a prescindere dalla macchina fisica su cui è installato il programma di virtualizzazione; persino il BIOS è sempre lo stesso.
In pratica, a parità di piattaforma software, un’immagine può essere spostata copiando semplicemente i file che la costituiscono (sono pochissimi) su un PC completamente diverso, e da quello ripartire senza neppure accorgersi che il “ferro” è cambiato.
Esistono tre aree principali in cui si utilizza la virtualizzazione:
- L’ambito personale.
- Gli ambienti di test, sviluppo e didattici.
- La server consolidation.
Le prime due sono generalmente terreno di virtualizzazione nativa e full, mentre l’ultima è principalmente campo della paravirtualizzazione.
In ambito personale la virtualizzazione si usa per creare un ambiente dove far girare un’altra copia del sistema operativo, che può essere lo stesso della macchina ospite o meno, destinato all’esplorazione di caratteristiche che non vogliamo o non possiamo avere direttamente sulla macchina fisica. Un’immagine virtuale può essere utilizzate da un utente Windows per familiarizzare con Linux, ad esempio. Oppure se da quest’ultimo si vuole provare una diversa distribuzione, o ancora se si ha la necessità di usare un prodotto che è disponibile solo per un sistema operativo diverso dal proprio. Anche l’utente Mac ne può trarre giovamento: ho utilizzato una macchina virtuale XP in rete con l’iBook fisico sulla quale girava, per una demo al BarCamp di Torino.
Per l’utenza di questo tipo, segnalo VMWare Player, che può far “girare” macchine virtuali già pronte. Inoltre, VMWare rende disponibili per il download molte immagini per gli scopi più diversi, dette “Appliances“, quasi tutte basate su sistemi operativi open source, e molte gratuite. Per iniziare consiglio Browser Appliance, che offre un ambiente virtuale orientato alla navigazione sicura. Il grosso vantaggio è che al termine della sessione si può decidere di non scrivere su disco le modifiche, mantenendo l’immagine sempre uguale a se stessa. In questo modo non ci deve preoccupare di eventuali software “maligni” che potrebbero contagiarci. Semplicemente, alla chiusura della macchina virtuale moriranno con essa.
Per gli ambienti di test, sviluppo e didattici i benefici sono sempre gli stessi, ma l’utilizzo avviene in ambito professionale, spesso in fase di sviluppo e creazione di applicazioni. La virtualizzazione consente di avere molte macchine identiche ma separate, tutte disponibili, magari con versioni diverse dell’applicativo in fase di sviluppo. La possibilità di gestire il “commit” delle modifiche è un plus: nel caso le operazioni appena compiute si rivelino fallimentari, il rollback si ottiene semplicemente non permettendo al programma di virtualizzazione di aggiornare l’immagine della macchina, la quale si ripresenterà intatta all’avvio successivo.
Anche chi utilizza reti di computer per test oppure per scopi didattici ottiene grandi benefici dall’utilizzo di queste tecniche. Ad esempio gli istruttori dei corsi e dei workshop di Microsoft utilizzano un singolo PC portatile sul quale funziona un’intero dominio completamente virtuale, con uno o più domain controller e client che “girano” contemporaneamente. Tutto questo ha indubbi vantaggi sia dal punto di vista logistico (è sufficente un notebook per simulare una intera rete locale!), che operativo: al termine delle sessioni, l’istruttore non aggiorna le immagini su disco e tutti i client e server sono pronti come nuovi per la giornata successiva (nessuna necessità di ripetere le installazioni).
Ci sono diversi prodotti destinati all’uso personale o professionale; una breve lista non esaustiva comprende:
- VMWare Server (gratuito) per PC.
- Microsoft Virtual PC (gratuito) per PC.
- Microsoft Virtual PC for Mac (commerciale) per Mac sia PowerPC che Intel.
- Qemu, per Liux, PC, Mac e Open Solaris.
- Parallels, per Mac intel.
Nel campo della server consolidation ottenuta tramite paravirtualizzazione, i prodotti di elezione sono VMWare ESX Server e Xen. Per non dilungarmi troppo, questo tema verrà trattato in un altro post.
fonte: http://www.andreabeggi.net/2007/03/19/la-virtualizzazione/