FAQ e problemi comuni di Xen
Ecco qua una lista di domande che sono frequentemente poste dagli utenti di Xen ai vari servizi di supporto e una serie di soluzioni ai problemi più comuni che si possono verificare usando il noto software per la virtualizzazione.
Cos’è Xen?
Xen è un ipervisore di macchine virtuali, rilasciato sotto la licenza GNU GPL 2, per piatteforme x86 e x86_64. Xen permette di gestire più virtual machine su una stessa macchina fisica.
E’ possibile usare Windows?
Windows può essere usato come sistema operativo su una macchina virtuale a patto che il computer che la fa girare abbia un processore con le estensioni per la virtualizzazione (Intel VT-x o AMD pacifica). Questo perché Xen necessita di un sistema operativo che abbia delle particolari funzioni, che nei sistemi operativi di Microsoft non sono presenti. Potendo invece adoperare le istruzioni disponibili grazie ai nuovi processori è possibile virtualizzare anche un sistema operativo non modificato per Xen. Purtroppo non è possibile installare l’ipervisore su un sistema Windows, ma solo su una virtual machine.
Che differenza c’è tra para virtualizzazione e virtualizzazione?
Per virtualizzazione si intendono le tecniche per virtualizzare, mentre paravirtualizzazione è un dei tanti modi per virtualizzare un sistema operativo. Con la paravirtualizzazione il sistema operativo da caricare su una virtual machine deve avere delle particolari istruzioni o funzioni che permettano questa pratica.
Cos’ è il dom0 e il domU?
Il dom0 o dominio zero è un’ambiente protetto nel quale gira il programma che serve per gestire (creare, eliminare,configurare) le macchine virtuali. Il domU rappresenta le macchine virtuali che sono disponibili sul computer.
Ogni domU ha la sua propria configurazione e è amministrabile separatamente dagli altri domini U.
E’ possibile usare un domU con kernel che supporta Xen 3.0.3 su un dom0 con kernel 3.1.0?
Non ci sono problemi a adoperare nella virtual machine un kernel della serie 3 rispetto al dominio zero. Invece se si usa un kernel più recente nel dominio U rispetto al dom0 potrebbero verificarsi delle incompatibilità.
Come si fanno a limitare le interfacce di rete create per le macchine virtuali?
Solitamente vengono create molte vif e veth, per ridurne il numero è possibile mettere come parametro per l’avvio del kernel del dom0, netloop.nloopbacks, il numero di interfaccie desiderato.
Si può fare girare un domU a 32 bit su un computer 64 bit con kernel del dom0 a 64 bit?
Attualmente non è possibile usare un domU con kernel a 32 bit su un dom0 a 64 bit. Non è detto che in futuro non si possa trovare una soluzione.
Problemi Comuni
Durante l’avvio del domU appare la seguente scritta “Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(0,0)” e il caricamento si blocca.
E’ opportuno specificare un valore per il parametro ramdisk. Es: ramdisk=/boot/initrd-2.6.18.2-34-xen dove il file initrd è il ramdisk per avviare la virtual machine.
Sempre nella creazione della virtual machine appare “Error: Not enough memory is available, and dom0 cannot be shrunk any further”.
Nel file di configurazione del dominio è utile assegnare 0 al valore del parametro dom0-min-men (così che la minima memoria assegnata al dom0 sia ridimensionata automaticamente. Se è necessario limitarla è opportuno specificare la dimensione minima nei parametri di avvio del kernel con xen (es: kernel /boot/xen.gz dom0_mem=131072).
Quando avvio la macchina virtuale mi appare il seguente messaggio “WARNING: Currently emulating unsupported memory accesses in /lib/tls glibc libraries. The emulation is slow. […]”.
Questo è dovuto perchè non solo il kernel deve essere compatibile con xen ma anche le glibc. Il problema si può risolvere installando le librerie glibc compatibili con xen oppure disabilitando /lib/tls del domU così:mv /lib/tls /lib/tls.disabled
Durante l’avvio mi appaiono le scritte: “xen_blk: can’t get major 8 with name sd”.
Nella compilazione del kernel per il domU bisogna disabilitare la voce CONFIG_SCSI=n.
Ho creato un file di configurazione per preparare un domU con Windows, quando lancio il dominio non appare nulla e nel file di log xend.log trovo la seguente scritta “Domain Win (1) unpaused”. Dove Win è il nome del domU e 1 è il numero assegnato da Xen.
E’ opportuno disabilitare SELinux, se attivo, e mettere l’immagine iso e l’immagine del disco dove verrà installato windows nella cartella di xen ( /var/lib/xen/images ). Per disabilitare SELinux si può modificare il parametro SELINUX nel file /etc/selinux/config mettendolo a disabled oppure inserendo come parametro di boot del kernel selinux=0. Inoltre è opportuno abilitare, nel file di configurazione, sia acip che apic mettendoli entrambi a 1.