Andrea Beggi

Upgrade your skills to match your machine.

La virtualizzazione

A T T E N Z I O N E ! Questo post ha piu' di sei mesi. Le informazioni contenute potrebbero non essere aggiornate.

Virtualizzazione

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 e paravirtualizzazione. Un approfondimento sui termini e parecchi link si trovano in questa 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:

  1. L’ambito personale.
  2. Gli ambienti di test, sviluppo e didattici.
  3. 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:

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.

26 Commenti

Francesco | #

Credo che ormai la virtualizzazione dei sistemi possa portare solo benefici. Uso VMWare server 1.0 da quando è uscito e nella mia azienda ci sono già 4-5 macchine virtuali produttive con utilizzi specifici. Segnalo, per chi è amante della portabilità, http://www.moka5.com/, permette di creare una macchina virtuale su un disco USB, in modo da portare con se il proprio PC e accenderlo ovunque.

Mirko | #

all’istiuto di fisica di padova abbiamo montato diversi cluster WMWare, i tempi di pubblicazione sono stati letteralmente abbattuti.

Confermo la potenza della virtualizzazione.

Luigi Molinaro | #

Mi dite un buon prodotto OPenSource che giri su Gnu/linux system ?

Luca Mondini | #

Ciao Andrea,

io, utente Gentoo Linux, uso VirtualBox (http://www.virtualbox.org) per gestire una macchina virtuale Xp per un paio di applicazioni Windows only, e un’altra per testare Ubuntu.
VirtualBox ha diverse funzioni interessanti e il suo sviluppo è molto attivo. Se non lo conosci, provalo!

Luca

Mirko | #

WMware, xen, oppure se hai esperienza su nix c’è una patch del kernel che ti permette di eseguirlo come file binario virtualizzando la tua stessa macchina: il nome è UML da non confondere con il linguaggio.

Marco Fabbri | #

Un sito interessante per l’esplorazione in ambito personale di sistemi operativi (open source) è http://www.oszoo.org dove analogamente all’Appliance Market di VMware sono disponibili svariate immagini virtuali (per Qemu). Alcune immagini possono essere “provate” via applet Java all’interno del proprio Browser http://connessi.webminds.cs.unibo.it:8880/ .

Per Mac OS X è disponibile una versione più appealing di Qemu, si chiama Q (pronunciato kju) http://www.kju-app.org/kju/ .

Un appunto: Virtual PC for Mac non supporta Mac Intel (“Note: Virtual PC does not run on Intel-based Macs.”).

Alan | #

Nell’ambito della server consolidation, secondo me, non è da dimenticare Microsoft Virtual Server 2005 R2. E’ un prodotto per piattaforme x32 e x64 in ambito Windows Server con cui io mi trovo piuttosto bene.

maga | #

per Mac Intel c’è anche una versione beta di VMware che si chiama Fusion

thisend | #

ottimo post, ho accresciuto la mia conoscenza della materia..

Barbara | #

Un gran bel post Andrea, io sto usando da un pò WMWare Player per provare le varie distibuzioni Linux sul mio PC , nell’ultimo numero di PC Professionale ho visto che allegavano WMWare con preinstallato Ubuntu da provare una grande chance rispetto a qualche anno fa in cui toccava installare tutto magari in una partizione diversa etc

rxsx | #

Io preferisco VMware Workstation, costerà ma ne vale la pena. E’ ottimo per fare prove di software e sistemi.

abel | #

interessante post…ammetto che non sapevo assolutamente nulla di ciò…ora provo a utilizzarne uno…

Kalman | #

L’unico problema è che in azienda adesso si ripropone l’annoso problema del censimento delle macchine e del controllo del software installato.

Federico | #

Buon prodotto open source in ambiente linux (linux per linux):
http://www.openvz.org/

VMware bello ma ‘pesantuccio’. Preferibili le virtualizzazioni a livello di OS (senza quindi duplicazioni di OS).

La virtualizzazione è bella solo che se ti fregano un PC virtualizzato…non si perde un sistema ma ‘enne’ sistemi (parlo per esperienza diretta) 😉

Ulisse31 | #

Ma l’impatto sulle prestazione come si quantifica? Nel senso: rispetto ad un S.O. installato nativamente ci sarà per forza un rallentamente generale. Di quanto?
Ad esempio: in ambito casalingo o SOHO, quand’è che merita parlare di virtualizzazione invece che di -mettiamo- pluripartizionamento (quando proprio non (HD volante”)+ lilo?

Andrea | #

Ulisse, è evidente che qualcosa si paga, ma basta avere un PC abbastanza potente per ovviare. La soluzione che proponi tu non è paragonabile: la virtualizzazione ti permette di avere più macchine accese e funzionanti contemporaneamente, e di passare da una all’altra con un clic.
Nel post parlo di uso personale o di test, le prestazioni non sono l’obiettivo in questo caso.

Senza Identità | #

dalla lista manca Virtuozzo che è di gran lunga l’ambiente di virtualizzazione piu’ usato dagli hosting service provider.

maxiwan | #

Suggerisco di dare un’occhiata anche all’ottimo VirtualBox della Innotek. Provare per credere… 😉

maxiwan | #

…chiedo scusa, Luca Mondini l’aveva già segnalato… comunque confermo la particolare “prestanza” di questa interessante applicazione opensource.

ubik | #

Sebbene VMware sia di gran lunga il prodotto più diffuso,e che manterrà la propria posizione dominante ancora per diverso tempo, in questo momento la lotta nell’aera degli “hypervisor” (p.e. VMware ESX Server, Xen) si sta facendo molto dura.
Un altro prodotto molto interessante è Virtual Iron.
Saluti

Luca | #

Quindi, se ho capito bene, più server virtuali possono girare sullo stesso server reale, ed essere “usati” in maniera trasparente da utenti reali come se fossero dei server distinti. Ovviamenete la banda della o delle schede di rete andrà condivisa tra tutti i server concorrenti.
Un’ordine di grandezza dei costi di un server VMWare ESX?

Nico73 | #

Si puo’ usare vmwave per navigare in internet in modo pi’ sicuro , avendo sulla macchina ospitante comunque un antivirus e sul guest niente? Non vi sembra l’uovo di colombo? …

Nico73 | #

Si puo’ essere sicuri che eventuali codici maligni durante la navigazione non possano infettare la macchina principale?E poi comunque se scarico della roba infetta questa rimane nel mio HD !?