Nota: Se stai leggendo questo messaggio è perchè non vedi i nostri file css, oppure perchè non hai un browser "standards-compliant browser". Leggi l'aiuto.

TechTarget Italy & 01net Network SearchCIO.it SearchNetworking.it SearchSecurity.it 01net 01netCIO 01netPMI 01netTRADE 01netNETS iTechStudio Digifocus Applicando CIO Club ProntoImprese IlSoftware
ricerca: in
powered by
Guida alla virtualizzazione
Approfondimenti
Guida alla virtualizzazione
I principi di funzionamento della metodologia che consente di creare più "ambienti virtuali" all'interno di una stessa macchina fisica.

La parola virtualizzazione sta prepotentemente entrando nel lessico informatico, ma cosa significa esattamente? Il concetto indica la creazione, mediante strumenti software, di una “macchina virtuale” ossia di un ambiente che si comporta come se fosse un computer a sé stante, ma che può esistere assieme ad altre macchine virtuali sulla stessa macchina fisica.

Si tratta di un concetto molto più avanzato rispetto al classico “multitasking”, ossia l'esecuzione contemporanea di diverse applicazioni sfruttando i tempi morti del processore. Qui abbiamo “macchine” completamente indipendenti che lavorano in contemporanea sfruttando un meccanismo interno del processore che permette appunto di creare “macchine virtuali” tra loro indipendenti e capaci di usare le risorse interne del computer (memoria, dischi, porte di comunicazione) senza andare in conflitto tra loro.

Siamo già abituati da Windows alla separazione delle applicazione e alla protezione del sistema rispetto al cattivo funzionamento di un particolare programma. Ogni applicazione dispone di una sua area di memoria riservata in cui nessun'altra può scrivere e, a sua volta, le viene impedito di scrivere o leggere al di fuori di tale area; i file aperti in modo esclusivo da una applicazione sono inaccessibili alle altre; una porta di comunicazione o una periferica di cui si stia servendo una applicazione X non possono essere acquisiti o usati contemporaneamente anche da un'applicazione Y (a meno che non sia esplicitamente previsto).

Inoltre, se a causa di un errore software un'applicazione si blocca, di solito è possibile “chiuderla” senza che le altre applicazioni in esecuzione ne risentano. Il sistema operativo non perde mai il controllo della situazione. Nella virtualizzazione però, il livello di protezione si spinge ben oltre, visto che la macchina virtuale è a tutti gli effetti indipendente dal resto del sistema.

I compiti del virtualizzatore
Un sistema di virtualizzazione non è un sistema operativo vero e proprio, bensì un'applicazione come le altre e sfrutta quindi i servizi offerti dal sistema operativo per cui è stato scritto. Esistono virtualizzatori per Windows, per Linux e per Macintosh. La stabilità del virtualizzatore dipende sia dalla qualità con cui è stato scritto sia dalla stabilità intrinseca della macchina su cui sta operando. Il virtualizzatore gestisce e amministra l'esecuzione “contemporanea” di più sistemi operativi facendo perno su funzioni hardware fornite direttamente dalla CPU.

Il suo ruolo è quello di assicurare, tra le altre, le seguenti proprietà:

  • Multitasking: supportare l'esecuzione contemporanea di più sistemi operativi ospiti (guest OS).
  • Isolamento: garantire che il crash di un sistema operativo e della relativa macchina virtuale non si ripercuota sulle altre macchine virtuali (se va in blocco il sistema principale da cui il virtualizzatore è stato avviato, naturalmente si bloccano anche tutte le macchine virtuali).
  • Amministrazione: l'utente deve avere la possibilità di avviare, interrompere, riconfigurare o clonare le macchine virtuali con facilità e senza dover arrestare quelle non interessate dall'operazione.
  • Gestione delle risorse e rispetto di limiti e quote: non deve accadere che un sistema operativo si accaparri tutta la potenza di calcolo della CPU rallentando quasi completamente gli altri, né che possa allocare tutta la memoria disponibile privandone gli altri. Per quanto riguarda le altre risorse hardware e le periferiche, si deve stabilire se una scheda di rete, una stampante, un disco USB, e così via debbano essere condivisi o assegnati in via esclusiva a uno dei guest OS.

Qualsiasi errore commesso nella macchina virtuale può essere eliminato semplicemente cancellando la macchina virtuale stessa, senza che il PC originale ne sia intaccato. Una volta che sarete sicuri che la modifica non comporti problemi, potrete portarla anche sulla macchina fisica (quella originale). Tutto questo avviene, tra l'altro, senza dover acquistare altre licenze del sistema operativo e utilizzando strumenti anche gratuiti.

Un altro impiego emergente della virtualizzazione è la navigazione Internet sicura: qualsiasi virus o minaccia riesca a entrare nella macchina virtuale, rimane confinata e scompare con la cancellazione della stessa. La macchina virtuale garantisce anche il completo anonimato.

Fino all'avvento dei virtualizzatori, per poter disporre su una stessa macchina di due ambienti di esecuzione diversi (il classico esempio è l'accoppiata Windows + Linux) oppure di due copie dello stesso ambiente, era necessario sottoporsi al tedioso e delicato processo di una installazione dual boot con partizionamento del disco fisso, definizione di tipo, numero e dimensione delle partizioni e loro formattazione, scrittura e configurazione di un boot loader, scelta del sistema operativo all'accensione e necessità di reboot ogni volta che occorreva passare da Windows a Linux e viceversa.

Con un virtualizzatore tutto questo non è più necessario: l'installazione di un nuovo sistema operativo aggiuntivo si può addirittura effettuare in finestra, mentre si sta operando nel familiare ambiente Windows, e nella fase di partizionamento del disco non c'è da temere per i nostri dati, visto che il “disco” che l'installer di Linux sta partizionando e formattando non è altro che un disco virtuale, ospitato da un unico grosso file creato dal virtualizzatore all'interno del file system di Windows.

I virtualizzatori possiedono anche la capacità di “congelare” l'esecuzione delle virtual machines salvandone lo stato interno in modo persistente, emulando in tal modo una funzionalità di Standby/Resume o Suspend. Anche in questo caso lo stato può essere replicato, copiato e/o trasferito da un PC all'altro insieme con l'immagine del file system.

Riassumendo sono quattro i principali ambiti di elezione per la virtualizzazione

  • Aggiornare o aggiungere un sistema operativo senza necessità di dual boot o di partizionamento del disco
  • Creare sistemi di testing
  • Isolare le applicazioni IT dalle applicazioni utente
  • Supportare applicazioni legacy obsolete ma ancora perfettametne funzionanti e utilizzate

La server consolidation
Grazie a tutte queste proprietà, i software di virtualizzazione hanno trovato immediatamente impiego in diversi campi che hanno esigenza di poter disporre di un gran numero di macchine o server amministrabili centralmente con facilità, remotizzabili e accessibili via rete.

Per esempio, nel campo del software testing di determinati tipi di applicazioni (monitoraggio di processo, telesorveglianza, etc.) che gestiscono via rete una pluralità di dispositivi, è frequente la necessità di provare gli applicativi in condizioni realistiche d'impiego; questo si può fare a basso costo e con rapidità installando decine di PC virtuali su un'unica macchina fisica, grazie a un virtualizzatore.

Altro importante esempio sono le cosiddette server farm, strutture nelle quali sono installate e gestite macchine di classe server che, a pagamento, vengono messe a disposizione di chiunque necessiti di mettere in linea siti Internet e servizi di rete: in questi ambienti poter disporre di tecniche e sistemi che consentono di gestire in modo elastico il numero di server virtuali attivabili, senza per forza dover effettuare investimenti in nuovo hardware fisico anche solo per aggiungere una singola macchina, significa aumentare la flessibilità e l'adattabilità del business, ridurre i costi e le immobilizzazioni di capitali e ridurre i rischi.

L'introduzione dei virtualizzatori può essere fatta anche in situazioni pregresse in cui una schiera di server fisici di media potenza parzialmente sfruttati viene rimpiazzata da poche potenti macchine multiprocessore su cui, grazie a virtualizzatori, vengono installate macchine virtuali che assolvono agli stessi incarichi di quelle fisiche, che possono così essere dismesse. In questo caso si parla di server consolidation. Qui i vantaggi sono considerevoli e consistono, innanzitutto, in una ottimizzazione dell'investimento, in quanto la riserva di potenza di calcolo viene messa a fattor comune fra tutte le macchine virtuali del server centralizzato, e non inutilmente replicata su N macchine fisiche: il server centralizzato può così avere una potenza (e un costo) minore della somma delle potenze (e dei costi) delle macchine usate in precedenza, sebbene le prestazioni osservate da chi accede ai servizi siano le stesse di prima, o perfino superiori, nei picchi di carico.

I costi operativi calano, in quanto le esigenze di spazio, climatizzazione e alimentazione di un server centralizzato sono nettamente minori di quelle degli N server di fascia media utilizzati in precedenza. Inoltre, i costi amministrativi decrescono enormemente in quanto le operazioni di installazione, suspend/resume, aggiunta di nuove macchine virtuali, sorveglianza, upgrade software, etc. sono più semplici e possono essere effettuate da remoto agendo su più macchine con strumenti di amministrazione omogenei.

Un fenomeno in esplosione: le Virtual Appliances
Dopo l'apparizione sul mercato dei software di virtualizzazione, è immediatamente esploso il fenomeno degli archivi di Virtual Machine di pubblico dominio, preconfigurate da appassionati con OS e applicativi adatti per assolvere a un determinato scopo e messe a disposizione su Internet. È importante sottolineare che la loro installazione richiede un impegno enormemente minore di quello richiesto per l'installazione e configurazione manuale dei singoli OS e applicativi che le compongono.

Queste VM, che possono essere scaricate e messe in funzione nel giro di minuti, vengono spesso dette Virtual Appliances, quasi sempre adottano Linux come sistema operativo in modo tale da azzerare i costi di licenze per l'OS, e ne esistono per i più svariati scopi: fra le virtual appliance più utili, ricordiamo:

  • VA con funzionalità di router/firewall/proxy/mail server/anti spam;
  • VA utilizzabili per mettere in piedi in pochi minuti una macchina completa LAMP (Linux-Apache-MySQL-PHP) per far girare applicazioni server per il Web;
  • VA destinate agli amministratori di rete, complete di tutti gli strumenti di analisi del traffico e di intrusion detection;
  • VA che contengono un ambiente di supporto al lavoro cooperativo;
  • VA che implementano un motore di ricerca completamente autonomo da attivare sulla propria Intranet aziendale;
  • VA che implementano tutto il necessario per realizzare un chioschetto informativo multimediale;
  • VA che implementano completamente in software dei centralini VOIP (VOIP PBX) già pronti per l'uso e basati su software gratuito.

Il Sole 24 ORE S.p.A.

Sede Legale in Milano, Via Monte Rosa, 91 - Sede Operativa in Milano, Via Patecchio, 2

Partita Iva - Codice Fiscale 00777910159 - Dati societari