Capitolo 17. Virtualizzazione con Xen

Sommario

17.1. Installazione di Xen
17.2. Installazione del dominio
17.3. Avvio e controllo dei domini Xen con xm
17.4. Risoluzione dei problemi
17.5. Ulteriori informazioni

Estratto

Xen consente di eseguire più sistemi Linux in un unico computer. L'hardware per i diversi sistemi viene fornito in modo virtuale. In questo capitolo viene fornita una panoramica delle potenzialità e delle limitazioni di questa tecnologia. Le sezioni relative all'installazione, la configurazione e l'esecuzione di Xen completano questa introduzione.

Nei computer virtuali l'hardware necessario per il funzionamento di un sistema deve essere in genere emulato. L'hardware emulato è tuttavia molto più lento di quello reale. In Xen viene adottato un approccio diverso. L'emulazione viene limitata al minimo indispensabile. A questo scopo, viene utilizzata la paravirtualizzazione. Si tratta di una tecnica che presenta i computer virtuali all'hardware sottostante in modo simile, ma non identico. I sistemi operativi host e guest vengono quindi adattati a livello di kernel mentre lo spazio utente rimane immutato. In Xen la gestione dell'hardware viene eseguita tramite un ipervisore e un guest di controllo, denominato anche Domain-0, che forniscono tutti i dispositivi virtuali di rete e del blocco. I dispositivi virtuali di rete e del blocco vengono utilizzati per l'esecuzione dei sistemi guest e la connessione ad altri guest o alla rete locale. Se più computer che eseguono Xen sono configurati in modo da disporre dei dispositivi virtuali di rete e del blocco, è inoltre possibile eseguire la migrazione di un sistema guest da un componente hardware a un altro in fase di esecuzione. Xen è stato originariamente sviluppato per eseguire fino a 100 sistemi guest in un computer. Il numero effettivo, tuttavia, dipende dai requisiti dei sistemi guest in esecuzione, in particolare dal consumo di memoria.

Per limitare l'utilizzo della CPU, l'ipervisore di Xen dispone di tre diversi scheduler. Lo scheduler può inoltre essere modificato mentre il sistema guest è in esecuzione in modo da cambiare la priorità dei sistemi guest eseguiti. A un livello superiore, la migrazione di un guest consente inoltre di modificare le risorse della CPU disponibili.

Il sistema di virtualizzazione Xen comporta anche alcuni limiti relativi all'hardware supportato. Diversi driver closed source, ad esempio quelli di Nvidia o ATI, non funzionano nel modo previsto. In questi casi, è necessario utilizzare i driver open source, se disponibili, anche se non supportano tutte le funzionalità dei chip. Diversi chip WLAN e bridge CardBus non sono supportati quando si utilizza Xen. Nella versione 2 di Xen, PAE (Physical Address Extension, estensione indirizzo fisico) non è supportata, il che implica una limitazione alla quantità di memoria supportata che è pari a 4 GB. L'ACPI non è supportato. La gestione dell'alimentazione e di altre modalità dipendenti da ACPI non funziona. Un'altra limitazione di Xen consiste nel fatto che attualmente non è possibile avviare semplicemente un dispositivo a blocchi. Per eseguire l'avvio, è sempre necessario che in Domain-0 siano disponibili il kernel corretto e initrd.

Figura 17.1. Panoramica di Xen

Panoramica di Xen

17.1. Installazione di Xen

La procedura di installazione di Xen prevede la configurazione di un dominio Domain-0 e l'installazione dei client Xen. Accertarsi innanzitutto che siano installati i pacchetti necessari, ovverro python, bridge-utils, xen, xen-tools, xen-tools-ioemu e un pacchetto kernel-xen. Se si seleziona Xen durante l'installazione, Xen viene aggiunto alla configurazione di GRUB. In caso contrario, aggiungere una voce in boot/grub/menu.lst. Tale voce deve essere analoga alla seguente:

title Xen3
    kernel (hd0,0)/boot/xen.gz
    module (hd0,0)/boot/vmlinuz-xen <parameters>
    module (hd0,0)/boot/initrd-xen

Sostituire (hd0,0) con la partizione che contiene la directory /boot. Vedere anche Capitolo 9, Boot Loader. Sostituire <parametri> con i parametri generalmente utilizzati per avviare un kernel del Linux. Riavviare quindi il sistema in modalità Xen. In questo modo vengono avviati l'ipervisore di Xen e un kernel Linux leggermente modificato come Domain-0 che esegue la maggior parte dell'hardware. Ad eccezione degli elementi descritti in precedenza, il funzionamento dovrebbe risultare normale.