L’architettura di Xen: Hypervisor, Domain 0 e Domain U

Scritto il 25/11/2009
 

La virtualizzazione dei sistemi operativi – Capitolo 3

Xen Hypervisor

Il componente Xen Hypervisor si occupa di creare un livello di astrazione che mette in comunicazione l’hardware dell’host fisico con il sistema operativo delle macchine virtuali.

È responsabile dello scheduling1 della CPU e della ripartizione della memoria tra le varie virtual machine che sono in esecuzione sull’host fisico. Inoltre l’hypervisor controlla l’accesso delle virtual machine nel caso in cui queste condividano processi comuni.
È da notare che l’hypervisor non si occupa delle normali operazioni I/O come la rete, l’accesso allo storage, il monitor, ecc.

Domain 0

Domain 0 è una macchina virtuale con sistema operativo Linux con kernel modificato. È l’unica macchina virtuale in funzione sull’hypervisor che ha diritti speciali di accesso alle risorse fisiche di I/O e di interagire con le altre macchine virtuali denominate Domain U.

Per poter mandare in esecuzione una macchina virtuale Domain U è necessario che Domain 0 sia operativa.

Domain 0 utilizza due driver per supportare le richieste di accesso allo storage e alla rete da parte dei Domain U PV: il Network Backend Driver e il Block Backend Driver. Il Network Backend Driver processa tutte le richieste di accesso alla rete provenienti dai Domain U. Il Block Backend Driver comunica con i dischi locali e legge o scrive i dati sui volumi in base alle richieste provenienti dai Domain U.

Domain 0 e i driver di comunicazione
Fig 3.2: Domain 0 e i driver di comunicazione

Domain U

Nell’architettura di Xen sono chiamate Domain U tutte le macchine virtuali in esecuzione sullo Xen Hypervisor.

È importante operare una distinzione tra i Domain U PV e Domain U HVM.

I Domain U PV sono quelle macchine virtuali che utilizzano la tecnica della paravirtualizzazione. Il loro kernel è stato modificato per ottimizzarne l’esecuzione sullo Xen Hypervisor. Si tratta di macchine virtuali con sistemi operativi Linux, Solaris, FreeBSD e altri sistemi open source.
A livello accademico è stata creata anche una versione paravirtualizzata di Windows XP in collaborazione con Microsoft.

I Domain U HVM sono invece le macchine virtuali che sono completamente virtualizzate in quanto dotate di sistema operativi con kernel non modificabile, ad esempio tutti i sistemi operativi di Microsoft.

I Domain U PV Guest sono “coscienti” che stanno operando sullo Xen Hypervisor e che ci sono altri Domain U in esecuzione. Sono dotati quindi di due driver per gestire le loro operazioni sulla rete e sullo storage che si interfacciano con i driver di back end presenti sul Domain 0.

Domain U PV Guest
Fig. 3.3: Domain U PV Guest

Diversamente, i Domain U HVM Guest non hanno questi driver di comunicazione con i corrispondenti back end drivers di Domain 0. La comunicazione con le risorse di I/O avviene invece attraverso un processo speciale chiamato Qemu-dm che viene istanziato su Domain 0. Ogni Domain U HVM Guest in esecuzione dispone di una corrispondente istanza del processo su Domain 0. All’avvio della macchina virtuale viene caricato uno strato software denominato Xen Virtual Firmware. In questo modo la macchina virtuale effettua la procedura di boot come se avesse a disposizione dell’hardware fisico.

Domain U HVM Guest
Fig 3.4: Domain U HVM Guest

1 Per scheduling si intende la gestione dell’utilizzo della CPU fisica alla quale accedono le virtual machine.

Torna all’Indice »

Per scheduling si intende la gestione dell’utilizzo della CPU fisica alla quale accedono le virtual machine.

Serverlab