Prima di tutto dobbiamo capire come funziona il nostro PC che possiamo dividere in 3 blocchi: alla base vi è l'hardware, sopra vi è il sistema operativo e infine ci sono i software.
Con questi concetti in testa possiamo tornare all'argomento iniziale. Una macchina virtuale è un programma che simula un particolare hardware con caratteristiche di nostra scelta, questo hardware virtuale può essere usato come se fosse un normale PC e può avere caratteristiche anche ben diverse dall'hardware fisico che lo ospita.
Quando potrebbe tornarci utile allora la virtualizzazione?
Quante volte mi è capitato di voler provare una nuova distro linux o la beta del prossimo windows, oppure di trovare un programma che mi interessa ma di cui non conosco l'affidabilità? Ho così creato una macchina virtuale apposta con risorse limitate su cui posso testare qualsiasi programma o sistema operativo senza mettere in pericolo i miei documenti. Se mi stufo, se non mi piace, se funziona male o se è in realtà un virus posso eliminare la macchina virtuale con la stessa facilità con cui si elimina una foto od una canzone. Inoltre in caso di problemi non rischio di perdere nulla, è come se avessi un computer-cavia apposta per questi esperimenti, col vantaggio di non aver bisogno di spender soldi per comprarlo.
Sono anni che uso quasi esclusivamente linux sui miei PC, ma spesso mi capita di voler usare un programma non disponibile per la mia distribuzione. Magari perchè è disponibile solo per windows, come Photoshop, oppure richiede una vecchia versione del sistema operativo (come molti videogame degli anni '90). È molto comodo allora avere una macchina virtuale apposta per questi programmi: a differenza di una installazione stand alone nello stesso PC posso usare questi programmi senza dover riavviare il computer, non ho bisogno di particolari attenzioni per la sicurezza visto che non li uso per accedere su internet e così il sistema rimane anche più leggero, non devo stare attento a come partiziono l'HDD per far convivere più sistemi operativi sulla stessa macchina.
La rete di una impresa medio-grossa richiede spesso la presenza di più server, cioè computer che erogano un servizio ad altri computer della rete. Possono servire per la presenza di un gestionale, per il sito web, per la condivisione od il backup di file, per gestire gli utenti ammessi alla rete, per la mail, per le stampanti, etc. Non è sempre possibile far girare tutti questi servizi sulla stessa macchina, ad es. perchè il gestionale è su Windows Server ma il sito web richiede linux; inoltre non è affatto sicuro far girare il gestionale su un computer accessibile dall'intera rete. È anche vero però che questi processi, nonostante spesso richiedano comunque poche risorse, siano molto importanti per l'azienda e quindi è meglio eseguirli su macchine affidabili con un basso tasso di guasto, macchine che -ovviamente- costano parecchio.
È possibile però far condividere un unico server fra più macchine virtuali, ognuna con un suo sistema operativo, un suo firewall e delle risorse dedicate.
Nel paragrafo precedente abbiamo parlato di sicurezza, vediamo meglio che vantaggi può portare la virtualizzazione in questi termini. Anche nei server meglio gestiti può capitare che qualcosa vada storto: un programma può andare in crash bloccando la macchina, un virus può infettare il sistema nonostante le precauzioni, un file può corrompersi o anche solo si devono fare degli interventi programmati. Come dicevo, per un'azienda avere i server inusabili può costituire un danno più o meno ingente, per questo dividere i processi in più server virtuali aumenta la sicurezza. Una macchina virtuale corrotta è un pericolo limitato per gli altri servizi e può essere spenta senza rendere inusabili gli altri server.
Molto spesso si considera il PC alla stregua di un elettrodomestico, ma un computer è definito più dal software installato e dall'uso che ne facciamo, che dalle componenti di cui è fatto. Tra un web server, un file server e un pc da gaming la differenza di componenti è minima. Ovvio che il primo non richieda una scheda video potente nè l'ultimo una scheda RAID, ma la vera differenza è data dal software. Astrarre un server vuol dire scollegare un servizio dall'hardware su cui è eseguito e dai programmi non necessari ugualmente presenti: se un web server viene gestito solo da remoto, installarci sopra l'interfaccia grafica è uno spreco di risorse e un ulteriore elemento critico che va controllato e aggiornato. L'uso di tanti server virtuali permette in pratica di avere una visione migliore dell'infrastruttura informatica e rende quindi i processi meglio gestibili (oltre che, come già detto, più sicuri). Inoltre una macchina virtuale è spesso costituita da pochi file che possono essere spostati da un computer all'altro letteralmente copiando una cartella, oppure potete cambiare le impostazioni modificando i file di configurazione. Provate invece a togliere l'harddisk dal vostro PC per rimontarlo su un altro, difficilmente il sistema si avvierà come se niente fosse. :D
Ovviamente le possibilità non finiscono qua, ma come avete visto la virtualizzazione ben si adatta ad un PC di casa come ad un server aziendale, per l'uso ludico oppure professionale.
Se sono riuscito ad incuriosirvi ricordo che esistono ottimi programmi gratuiti estremamente semplici da usare con cui potete creare le vostre macchine virtuali. Provate pure, sperimentate, vi assicuro che così non rischierete più di perder file importanti o di dover formattare.