Xen: hypervisor e paravirtualization

Scritto il 19/10/2009
 

La virtualizzazione dei sistemi operativi – Capitolo 3

Xen è un hypervisor nato da un progetto open source iniziato presso l’università di Cambridge. Abitualmente i Virtual Machine Monitor (VMM) presentano alle macchine virtuali la stessa architettura hardware della macchina fisica. Sebbene questa logica, detta full virtualization, abbia il vantaggio di permettere l’esecuzione di sistemi operativi guest non modificati, genera una serie di inconvenienti, in particolar modo nell’architettura x86 che non è stata concepita per supportare la virtualizzazione.

Infatti abbiamo visto nel capitolo precedente che alcune istruzioni devono essere manipolate dal VMM per potere essere correttamente virtualizzate, in quanto se vengono eseguite con livelli di privilegio insufficienti, queste falliscono. Il problema può essere risolto solamente con l’intervento del VMM e pagando un costo in termini di performance.

La paravirtualization

Xen evita questi e altri inconvenienti della full virtualization presentando alle macchine virtuali un livello di astrazione dell’hardware simile, ma non identico, a quello sottostante. Questo approccio è detto paravirtualization e impone la modifica del sistema operativo da virtualizzare. Si noti tuttavia che è il sistema operativo a essere modificato, e non la Application Binary Interface1, quindi le applicazioni funzionano senza che sia necessario apportare alcuna modifica.

Nel caso in cui non fosse possibile modificare il sistema operativo guest, ad esempio per i sistemi operativi Windows, anche Xen adotta la tecnica della full virtualization.

In questo capitolo esaminiamo l’architettura di Xen e successivamente l’interfaccia di paravirtualizzazione soffermandoci sui tre grandi aspetti del sistema: la gestione della memoria, la CPU e l’I/O.

3.1 L’architettura di Xen

Xen è un hypervisor che viene eseguito direttamente sul server fisico (bare metal) e controlla le risorse, CPU e memoria. L’architettura di Xen è costituita da diversi componenti, che andremo a esaminare con lo scopo di avere una visione globale di come questi interagiscano tra loro.

Non fa parte del fine del documento entrare nel dettaglio del funzionamento dei singoli componenti. Per questo si rimanda ad alcuni riferimenti citati nella sezione bibliografia.

I componenti dell’ambiente virtuale di Xen sono i seguenti:

  • Xen hypervisor
  • Domain 0
  • Domain Management and Control (Xen DM&C)
  • Domain U (DomU) PV Guest
  • Domain U (DomU) HVM Guest

Il diagramma seguente mostra come sono organizzati.


Fig. 3.1: Architettura di Xen

1 Una application binary interface (o semplicemente ABI), in informatica, definisce l’interfaccia tra il sistema operativo e le proprie applicazioni a livello di linguaggio macchina.

Torna all’Indice »

Serverlab