Purtroppo
senza una macchina adeguatamente veloce non c'è molto da fare,
VMware è avaro di risorse e più potenza di calcolo
disporrà meglio potrà agire. Fattore piuttosto
importante, però, riguarda la possibilità di avere a
disposizione un grande quantitativo di RAM e, in secondo luogo, la
configurazione degli Hard Disk virtuali.
Il
quantitativo di RAM della macchina ospite è importante, ma
ancora più importante è la porzione di memoria
assegnata alla macchina virtuale. Quando se ne crea una VMware
suggerisce l'ammontare di RAM minimo, massimo e consigliato da
assegnare. Se si superano questi limiti l'emulazione può
risultare troppo lenta. E' importante anche conoscere quant'è
la RAM disponibile sulla macchina ospite, cioè quella su cui
gira VMware. Se questa è poca o se è molto utilizzata,
allora è meglio non abbondare con la memoria della macchina
virtuale.
Altro
aspetto riguarda gli hard disk emulati. Ove possibile è meglio
scegliere di concedere ad una macchina virtuale l'utilizzo completo
ed esclusivo di un disco o di una partizione: in questo modo
l'emulazione può risultare molto più snella. Se non è
possibile agire in questa maniera, VMware consente comunque di creare
degli hard disk virtuali consistenti in normali file che sono salvati
sull'hard disk della macchina ospite. Questo rallenterà
l'emulazione, ma se questa è l'unica strada praticabile, è
consigliabile (come segnalato dallo stesso software) di assegnare
tutto lo spazio sin da subito. Nel caso contrario VMware farà
crescere il file sull'hard disk man mano che ne verranno aggiunti dei
dati, ma le performance ne risentono un pò.
Eseguire applicazioni Windows in Linux
La
prima possibilità di virtualizzazione che andremo ad
analizzare riguarda la possibilità di far girare applicazioni
Windows in Linux e viceversa. Per essere più chiari, tramite
VMware è possibile far girare un sistema operativo Linux
dentro a Windows o un sistema operativo Windows dentro a Linux.
I
possibili scenari di utilizzo di questa soluzione variano a seconda
del contesto. L'emulazione di una macchina virtuale Windows dentro
una macchina ospite Linux può essere utile per far girare
applicazioni che non sono disponibili per il sistema operativo del
pinguino. Ovviamente per risolvere questo problema non esiste solo
questa soluzione (basti pensare ad esempio a Wine), ma questa strada
è obbligata quando però le altre possibilità di
virtualizzazione o emulazione non hanno funzionato.
Nel
caso inverso (emulazione di Linux in Windows) ci si può anche
spingere oltre. Installare una distribuzione Linux in una macchina
virtuale VMware di solito può portare ad una emulazione lenta,
sopratutto se si utilizza l'ambiente grafico X. Personalmente ho
installato una macchina virtuale Suse 10.1 in Windows, giusto per
testare un po' questa distribuzione, e mi sono trovato con un sistema
decisamente poco responsivo, pur se la macchina ospite non era
affatto poco carrozzata. Da questo punto di vista è necessaria
una piccola attività di tweaking volta a configurare la
macchina virtuale per adattarsi al meglio all'ambiente emulato. Se
però c'è bisogno di emulare una o più
applicazioni specifiche, senza avere a disposizione l'intero ambiente
di X, allora VMware + Linux emulato + altri software offrono maggiori
possibilità.
Installando
una versione del server X per Windows (come ad esempio CygXWin) ed un
client telnet o SSH, sarà possibile collegarsi in remoto dalla
propria macchina ospite alla macchina virtuale, configurare la
variabile DISPLAY con l'indirizzo della macchina ospite, garantire
alla macchina virtuale l'accesso al server X della macchina ospite e
lanciare il software desiderato. Vedremo quindi apparire la sua
interfaccia grafica direttamente sul desktop di Windows.
Come
Wine consente di emulare singole applicazioni Windows in Linux,
VMware può permettere di fare la stessa cosa, pur se a costi
differenti: l'emulazione di una intera macchina virtuale.
Creazione di ambienti di test e di sviluppo
Alla
luce di quanto detto nel paragrafo precedente dovrebbe risultare
semplice comprendere come una macchina virtuale possa essere molto
utile per realizzare dei test in un processo di sviluppo software.
In
questa maniera sarà possibile testare se il proprio software
compila correttamente su diversi tipi di sistema operativo o se una
applicazione Php + Mysql si comporta correttamente sulle diverse
possibili coppie browser + sistema operativo.
Personalmente
utilizzo spesso questa soluzione per lo sviluppo web su un portatile
dual boot Windows – Linux. Per alcune applicazioni e alcuni
contesti lavorativi l'utilizzo di Windows è più comodo
rispetto a Linux, per cui sono ricorso a VMware per dover evitare
continui riavvii della macchina per passare da un ambiente ad un
altro. E' bastato configurare una macchina virtuale con VMware
installato su Windows, assegnare a questa macchina l'hard disk del
mio portatile come periferica disco fisso e poi accendere la macchina
virtuale: in questa maniera riesco ad ottenere tutti e due i sistemi
operativi in esecuzione contemporaneamente. Utilizzo questa soluzione
sia per sviluppare su Linux da Windows, sia per presentare il
prodotto finito ad un cliente utilizzando Windows.
Sempre
in merito al test si può creare una macchina virtuale per
verificare che effetto ha l'installazione di una patch o di un
aggiornamento su una macchina utilizzata in produzione. Sarà
sufficiente creare una copia del proprio disco, oppure realizzare una
installazione identica a quella reale in un ambiente virtuale,
procedere poi all'installazione della patch o del software e,
successivamente effettuare dei test di stabilità. Solamente se
questi test avranno esito positivo sarà possibile eseguire la
stessa operazione nella macchina reale, a tutto vantaggio della
stabilità del proprio ambiente di lavoro.
Altre
possibilità di test riguardano la rete: grazie alle macchine
virtuali e ai network virtuali che si possono creare tra di queste e
la macchina ospite è possibile testare differenti
configurazioni ancora prima di andare a provarle sul campo.
Sempre
per parlare di un esempio reale, ho utilizzato VMware per aiutare un
mio amico che doveva creare un controller di dominio per una rete con
Windows 2003 server e client Windows XP. Non avendo la possibilità
di recarmi sul campo, grazie a delle macchine virtuali ho potuto
testare la configurazione correttamente funzionante per la sua
soluzione e poi comunicargliela.
Integrazione e gestione di servizi di rete
La
disponibilità della rete nelle macchine virtuali VMware offre
inoltre ulteriori possibilità di utilizzo. Oltre all'esempio
già illustrato precedentemente, trazie a VMware e alla rete
sarà possibile ottenere altri scenari di utilizzo.
Una
possibilità interessante consiste nell'utilizzare una macchina
virtuale per realizzare una browser appliance, ovvero un PC emulato
con il quale navigare su internet. In questa maniera sarà
possibile navigare su internet e confinare eventuali problemi di
spam, trojan, virus e malware all'interno dell'ambiente virtuale.
Un'altra
possibilità offerta dall'utilizzo di VMware riguardante la
rete consiste nell'opportunità di utilizzare macchine virtuali
per offrire servizi di rete, quali ad esempio un web server. In
questa maniera sarà possibile estendere o modificare
l'infrastruttura di rete migrando solamente delle macchine virtuali
al posto di vere e proprie macchine fisiche. In questa maniera sarà
più semplice aggiungere più risorse al proprio web
server, spostando la relativa macchina virtuale da una macchina
ospite ad un'altra.
Per
questo scenario, poi, VMware Server permette di amministrare
semplicemente macchine virtuali da remoto, rendendo anche più
semplice l'avvio o l'arresto di servizi di rete erogati in questa
modalità.
Conclusioni
Le
possibilità offerte dalla virtualizzazione non si limitano
solo ed esclusivamente agli esempi mostrati. Spesso sono le esigenze
e la creatività a far nascere una nuova idea di utilizzo, per
cui in bocca al lupo per le vostre prove e gli esperimenti.