Nel linguaggio informatico il termine "virtualizzazione" esprime un concetto che fa riferimento
all'astrazione di una determinata risorsa o attività . Con questa parola si intende dunque la creazione di una versione virtuale di una risorsa che solitamente è resa disponibile da apparati fisici e realmente esistenti.
In generale ogni tipo di risorsa, sia hardware che software, può essere resa virtuale, a partire dai sistemi operativi, per arrivare a specifici ambienti, aree di memoria e array di dischi.
L'aspetto di fondo che aggrega i diversi tipi di virtualizzazione oggi esistenti riguarda la
separazione tra lato "fisico" e quello che viene definito risorsa "virtuale". Esiste di fatto un isolamento tra uno strato e l'altro, in modo che il sistema virtualizzato sia accessibile tramite un'interfaccia esterna dedicata e che si occupa di mascherare le singole componenti che la costituiscono.
Questo consente accessi multipli alle risorse e la gestione di più istanze concorrenti.
La costante crescita di interesse per la tecnologia di virtualizzazione, che una volta era ad appanaggio esclusivo delle grandi capacità di calcolo, deriva fondamentalmente dalla notevole potenza di calcolo espressa oggi dai sistemi hardware disponibili a ogni livello e da soluzioni software che una volta risiedevono su un mega server e oggi, con i nuovi sistemi operativi server, possono stare su un server di classe entry level, almeno nel prezzo. A questo si aggiunge la possibilità di gestire più nuclei all'interno di un singolo processore, l'aumento della quantità di RAM e di spazio su disco: tutto questo ha permesso di introdurre nuove tecniche di controllo. Tra queste, la parallelizzazione delle attività e l'affiancamento di più sistemi capaci di elaborare e smistare dati di diverso tipo e in modo autonomo.
[tit:Perchà© virtualizzare?]
Come si è detto, la continua crescita di prestazioni dei sistemi hardware ha permesso di introdurre tecnologie di virtualizzazione,
ma perchà© farlo? Perchà© creare sistemi astratti invece di affiancare PC e server "fisici"? I vantaggi offerti da questo sistema sono
molteplici e stanno muovendo le aziende sempre più in questa direzione. Partendo dal più elementare e assolutamente di primo piano in questi ultimi anni, il
consumo energetico.
Macchine multicore sempre più potente "spingono" il trend della virtualizzazione in ogni ambiente.Un determinato numero di PC che svolgono particolari funzioni richiede infatti un assorbimento di corrente notevole, mentre una sola macchina che svolge funzioni di più sistemi rappresenta di fatto un consistente risparmio energetico. A livello di server farm, di data center per aziende di livello enterprise, questo significa risparmiare milioni di Watt all'anno e si traduce in un abbattimento di costi molto interessante. Al di là dell'aspetto relativo ai consumi, la virtualizzazione offre una serie di vantaggi pratici negli ambienti produttivi. àˆ possibile dividere le aree di interesse in base alle applicazioni specifiche, a partire dagli ambiti di test e di sviluppo per scopi lavorativi e didattici, a quelli personali, agli ambienti professionali a livello server.
[tit:Virtualizzare in contesti diversi]
La creazione di macchine virtuali in ambienti di sviluppo offre benefici pratici immediatamente percepibili. Consente infatti di realizzare sistemi dedicati sempre disponibili per la generazione e l'esecuzione di specifici programmi, al fine di verificare lo stato di funzionamento in condizioni differenti. Oppure, a parità di condizioni, è possibile eseguire software in fase di sviluppo e con release diverse, per comprendere quale versione è più stabile o più affidabile.In queste situazione, la possibilità di effettuare il ripristino dell'immagine dopo i test, consente massima libertà agli sviluppatori che, in caso di blocchi o problemi, ritroveranno la macchina virtuale intatta al riavvio successivo. Per scopi didattici, i sistemi di virtualizzazione permettono di approntare intere sale per convegni e seminari in poco tempo e di ripristinare lo stato dei singoli client/server per l'evento successivo. àˆ infatti possibile rendere virtuale un'intera struttura di dominio, con macchine server e client, con un enorme vantaggio in termini logistici. Non è dunque necessario trasportare pesanti e ingombranti macchinari e neppure pensare al ripristino manuale degli stessi dopo la lezione.
In un ambiente domestico invece, la creazione di sistemi virtuali permette a chi possiede un personal computer, di installare un secondo sistema operativo indipendente. Tale sistema potrà essere di qualsiasi natura, purchà© compatibile con le specifiche hardware di base. Se dunque il nostro PC utilizza Windows XP, per esempio, è possibile generare una macchina virtuale con un sistema Windows 2000 o Vista, in alternativa potremo installare una distribuzione Linux. Per tali scopi potremo utilizzare specifici programmi che si occupano di creare e gestire le immagini immagazzinate sul disco fisso "reale". Così, se per esempio desideriamo installare e provare applicativi in continuazione, potremo farlo con il sistema virtuale, evitando così di danneggiare o bloccare il sistema di base.
A livello mainframe, server e supercomputer, i vantaggi della virtualizzazione permettono riduzione dei costi di gestione delle macchine e un minore dispendio di risorse hardware. Grazie alle soluzione di disaster recovery è possibile ripristinare una macchina virtuale in meno tempo rispetto alla controparte fisica, riducendo cosi i tempi di inattività non previsti. Questo porta in generale a un incremento della produttività , una riduzione dei costi e quindi a un miglioramento della qualità in diversi ambiti.
[tit:Cosa virtualizzare?]
Con
Virtual Machine si intende la realizzazione di ambienti di lavoro multipli all'interno dei uno stesso elaboratore o di un gruppo di elaboratori. L'utilizzo delle diverse sessioni virtuali da parte di più utenti offre notevoli benefici e può essere gestito in modo centralizzato tramite sistemi di monitoring. La principale applicazione derivata dal mondo delle macchine virtuali è dunque quella di replicare interi sistemi. Con le "Application virtual machine" si intendono quei programmi che emulano un computer "astratto" e che permette l'esecuzione di programmi scritti appositamente nel linguaggio scelto e compilato in base alle specifiche esigenze.
Più diffusa in ambienti di piccole dimensioni e a livello domestico, la "
virtualizzazione di una piattaforma", ossia le creazione di un personal computer "fittizio". Si tratta di generare e gestire il microcodice e le specifiche hardware di una macchina che di fatto non esiste ma viene emulata da quella reale, allo scopo di consentire l'installazione e l'esecuzione di un secondo sistema operativo e altri programma real-time. Durante la creazione di una macchina virtuale è possibile configurare un sistema a partire da una serie di componenti standard e sempre uguali. In questo modo tutto l'hardware che va a comporre il sistema virtuale (controller, schede interne, dischi, eccetera) rimane identico e slegato dalla macchina fisica sulla quale gira.
Un ulteriore impiego delle tecniche di virtualizzazione consiste nella realizzazione di cluster di sistemi per il calcolo coordinato. Le Parallel Virtual Machine consentono di collegare tra loro centinaia di calcolatori per gestire in modo più veloce l'elaborazione di calcoli particolarmente pesanti.