IT ENG
Virtualizzazione e Xen
Obbiettivi

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 istruzioni e quando ne intercettava una insicura si prendeva carico di gestirla e convertirla in una sequenza equivalente di operazioni sicure.

Il successo della virtualizzazione mise 2 dei principali player del mercato di fronte a dei cambiamenti, produttori di CPU e di sistemi operativi.

Le prime modifiche ai sistemi operativi partirono dalla comunità open source, successivamente arrivarono anche nei sistemi operativi commerciali.

L'idea era questa:

Il sistema operativo deve capire che sta girando su una macchina virtuale e quando ha necessità di eseguire un'operazione insicura deve sostituirla con una sequenza alternativa di operazioni sicure.

Questa è la paravirtualizzazione, questo è l'origine di Xen.

Inizialmente Xen eseguiva versioni di kernerl linux modificate in modo da funzionare correttamente.

Questa versione modificata del kernel evita a Xen il trapping delle instruzioni e il carico per la traduzione delle istruzioni insicure in istruzioni sicure.

Questa idea è stata vincente ed il mercato ha approvato la scelta. Windows Server 2008 supporta questa tipologia di ottimizzazione.

La seconda generazione

Dopo i sistemi operativi ottimizzati è la volta delle CPU o microprocessori ottimizzati.
Intel ed AMD che sono i maggiori produttori sul mercato di CPU x86 iniziarono a sviluppare dei set di istruzioni aggiuntive per permettere ai processori di essere pronti a questa nuova sfida. Il nome di questi set di istruzioni è “Intel VT” e “AMD-V” rispettivamente per le CPU Intel e quelle AMD.

Queste estensioni permettono a Xen di segnalare alla CPU che si sta operando in un ambiente virtuale. Il set di istruzioni aggiuntive permette alle CPU di convertire una operazione insicura si un set di operazioni sicure quando si opera in un ambiente virtuale, diversamente se la CPU opera in un ambiente non virtuale questa non converte le istruzioni.

La seconda generazione quindi passa la patata bollente della conversione delle istruzioni insicure in equivalenti sicure all'hardware, nella fattispecie alla CPU. Ora è la CPU a convertire tutto.

© 2000-2008 SDV, Tecnologia che comunica
software e-commerce