IT ENG
Virtualizzazione e Xen
Obiettivi possibili internet

Da qualche mese in maniera più intensa si parla di Virtualizzazione.
Questa tecnologia, non recente nell'idea, sta diventando sempre più argomenti di conversazioni informatiche e Xen in qualche modo ne fa parte. Spesso si associa Virtualizzazione a Vmware, tuttavia questo non è il solo.

Xen è un valido e testato concorrente in ambiente server, con molte implementazioni accademiche e per la ricerca. Xen è l'argomento di questa documentazione.

Xen è un hypervisor open source che permette di creare dei "computer virtuali" dentro ad un computer fisico. E' utile per il consolidamento dei server e per l'ottimizzazione delle risorse.

Con 1 solo server potrete disporre di diverse decine di server.

Da un punto di vista teorico Xen è stato sviluppato per garantire alle macchine virtuali lo SLA desiderato per le CPU e le operazioni di I/O.

Da molti Xen viene considerata la tecnologia di virtualizzazione più veloce e sicura. Xen è utilizzato da 20 tra i maggiori fornitori di tecnologia quali AMD, DELL, HP, IBM, INTEL, NOVELL, SUN...

Xen è GPL ed è liberamente utilizzabile e distribuibile.

 

Introduzione alla virtualizzazione

 

Cos'è la virtualizzazione?

Il concetto di virtualizzazione risale a diverse decine di anni addietro.
Dai primi anni del 1960.

La virtualizzazione è un meccanismo mediante in quale vengono astratte dall'hardware i concetti di CPU, hard disk, scheda video e via discorrendo.

Utilizzando un solo computer è possibile creare diversi computer virtuali al suo interno.

Un esempio di virtualizzazione è legato alla memoria RAM.
La memoria virtuale o swap file che dir si voglia è un esempio pratico di virtualizzazione. Il sistema operativo riserva una parte dell'hard disk per simulare altra memoria RAM in modo da rendere possibile l'esecuzione di un maggior numero di programmi contemporaneamente.

Al programma eseguito all'interno del sistema operativo quindi risulterà una quantità di memoria RAM maggiore di quella realmente presente nel computer.

Introduciamo il concetto di Macchina Virtuale.

Xen è un software di virtualizzazione, esso permette di simulare la presenza di diversi computer all'interno di un unico computer. Questo è possibile grazie alla creazione di macchine virtuali, veri e propri computer dotati di microprocessore, RAM, hard disk e tutto il resto necessario.

Ricordate quando ho scritto che dai primi anni 60 esiste la virtualizzazione?
Mi riferivo ai Mainframe, veri e propri armadi di computer che potevano essere suddivisi in domini ed utilizzati da diversi utenti in maniera più razionale ed ottimizzata.

Nel corso degli anni successivi l'aumento di prestazioni dei normali computer e dei server ha permesso l'introduzione dei concetti di virtualizzazione anche in questo ambiente (x86), non solo quindi nei mainframe.

Le macchine virtuali create appaiono all'esterno come veri e propri computer, ognuno con il proprio sistema operativo, il proprio indirizzo IP, i propri utenti e quant'altro sarebbe presente su un vero e proprio computer.

L'hardware fisico sottostante le macchine virtuali viene suddiviso tra di esse dopo essere stato convertito in modo da poter garantire lo spostamento di una macchina virtuale da un computer fisico all'altro.

In altre parole le macchine virtuali non vedono l'hardware fisico sottostante ma dell'hardware speciale che è sempre lo stesso e quindi anche spostando la macchina virtuale su un nuovo server Xen questa continua a funzionare come se nulla fosse cambiato.


Mainframe, computer x86 e maggiori prestazioni....

Virtualizzazione, storia breve schematica


I mainframe furono progettati per supportare attivamente i concetti di virtualizzazione.

Diversamente i microprocessori x86 non lo furono e i concetti di virtualizzazione non erano applicabili a questi. I processori x86 rendevano impossibile separare le operazioni delle varie macchine virtuali una dall'altra.

La prima generazione

Inizialmente venne alla luce un software che emulava completamente una macchina fisica cercando di ottimizzare l'accesso al processore ed alla memoria facendo eseguire le operazioni sicure direttamenta la processore, questa ottimizzazione rese più veloce la virtualizzazione.

La complessità di queste scelte rendeva il codice molto complesso e si generavano diverse inefficienze. Il software monitorava tutte le istruzio