Installazione Xen · 7 min read · Oct 08, 2025

Installazione di Xen su un server Ubuntu 8.04 (Hardy Heron) dai repository di Ubuntu

Installazione di Xen su un server Ubuntu 8.04 (Hardy Heron) dai repository di Ubuntu

Versione 1.0
Autore: Falko Timme

Questo tutorial fornisce istruzioni passo-passo su come installare Xen su un sistema server Ubuntu Hardy Heron (Ubuntu 8.04) (i386). Puoi trovare tutto il software utilizzato qui nei repository di Ubuntu, quindi non sono necessari file esterni (a parte un kernel Xen di Ubuntu fisso per abilitare la rete per le macchine virtuali) o compilazione.

Xen ti consente di creare sistemi operativi guest (sistemi operativi nix come Linux e FreeBSD), così chiamate “macchine virtuali” o domU, sotto un sistema operativo host (dom0). Utilizzando Xen puoi separare le tue applicazioni in diverse macchine virtuali che sono totalmente indipendenti l’una dall’altra (ad esempio, una macchina virtuale per un server di posta, una macchina virtuale per un sito web ad alto traffico, un’altra macchina virtuale che serve i siti web dei tuoi clienti, una macchina virtuale per DNS, ecc.), ma utilizzare comunque lo stesso hardware. Questo fa risparmiare denaro e, cosa ancora più importante, è più sicuro. Se la macchina virtuale del tuo server DNS viene compromessa, non ha alcun effetto sulle tue altre macchine virtuali. Inoltre, puoi spostare le macchine virtuali da un server Xen all’altro.

Utilizzerò Ubuntu Hardy Heron (i386) per il sistema operativo host (dom0) e Ubuntu Hardy Heron e Ubuntu Gutsy Gibbon (7.10) per i sistemi operativi guest (domU). Altre distribuzioni basate su Debian che possono essere installate utilizzando xen-tools sono Debian Etch, Debian Lenny, Debian Sid e Debian Sarge, così come Ubuntu Dapper Drake, Ubuntu Edgy Eft e Ubuntu Feisty Fawn.

Questo howto è inteso come una guida pratica; non copre i fondamenti teorici. Questi sono trattati in molti altri documenti sul web.

Questo documento viene fornito senza alcuna garanzia di alcun tipo! Voglio dire che questo non è l’unico modo per configurare un sistema del genere. Ci sono molti modi per raggiungere questo obiettivo, ma questo è il modo che seguo. Non fornisco alcuna garanzia che questo funzionerà per te!

1 Installare il sistema host Ubuntu Hardy Heron (dom0)

Puoi installare il sistema host (dom0) come mostrato nei capitoli uno a dieci di questo tutorial: https://www.howtoforge.com/perfect-server-ubuntu8.04-lts (ovviamente, non devi farlo se hai già un sistema host Ubuntu 8.04 che desideri utilizzare).

Assicurati di essere loggato come root (digita

sudo su

per diventare root), perché dobbiamo eseguire tutti i passaggi di questo tutorial come utente root. Inoltre, se desideri utilizzare vi come editor di testo (come suggerito da questo tutorial), dovresti eseguire

apt-get install vim-full

Il pacchetto vim-full assicura che l’editor di testo vi si comporti come previsto (senza vim-full, potresti riscontrare un comportamento strano nell’editor di testo vi).

È una buona idea disabilitare AppArmor:

/etc/init.d/apparmor stop  
update-rc.d -f apparmor remove

Il FQDN di dom0 in questo esempio sarà server1.example.com. L’indirizzo IP di server1.example.com sarà 192.168.0.100 in questo tutorial, e il gateway che utilizzo è 192.168.0.1, quindi le macchine virtuali dovranno utilizzare anche quello.

2 Installare Xen

Per installare Xen e tutte le dipendenze necessarie, tutto ciò che dobbiamo fare è eseguire il seguente comando:

apt-get install ubuntu-xen-server

Questo installerà anche il pacchetto xen-tools che utilizziamo in seguito per creare macchine virtuali.

Il pacchetto ubuntu-xen-server installa il kernel Ubuntu 2.6.24-16-xen; sfortunatamente c’è un brutto bug in questo kernel che causa il malfunzionamento della rete per le macchine virtuali (vedi https://bugs.launchpad.net/ubuntu/+source/xen-3.2/+bug/204010 e https://bugs.launchpad.net/ubuntu/+source/linux/+bug/218126). Fortunatamente Hirano Takahito ha patchato questo kernel e ha reso disponibili le versioni patchate (per i386 e amd64) su http://www.il.is.s.u-tokyo.ac.jp/~hiranotaka/ (ho creato uno specchio di questi pacchetti su http://downloads.howtoforge.com/ubuntu_8.04_server_xen_from_repositories/ nel caso in cui il link originale non funzioni più un giorno). Scarica il pacchetto linux-image corretto per la tua architettura (i386 o amd64), ad esempio:

wget http://www.il.is.s.u-tokyo.ac.jp/~hiranotaka/linux-image-2.6.24-16-xen_2.6.24-16.30zng1_i386.deb

Quindi sostituisci il kernel Ubuntu 2.6.24-16-xen con esso in questo modo:

dpkg -i linux-image-2.6.24-16-xen_2.6.24-16.30zng1_i386.deb

Successivamente fai questo:

mv /lib/tls /lib/tls.disabled

Dobbiamo anche aggiungere il modulo loop al kernel ogni volta che avviamo il nostro sistema, quindi modifichiamo /etc/modules. Se hai già una riga loop lì dentro, falla apparire così, altrimenti aggiungila:

vi /etc/modules

| [...] loop max_loop=64 [...] |

Ora dai un’occhiata alla directory /boot per vedere quali kernel e ramdisk sono installati:

ls -l /boot/
root@server1:~# ls -l /boot/  
total 34380  
-rw-r--r-- 1 root root  426444 2008-04-10 18:55 abi-2.6.24-16-server  
-rw-r--r-- 1 root root   80203 2008-04-10 18:55 config-2.6.24-16-server  
-rw-r--r-- 1 root root   85149 2008-04-19 23:17 config-2.6.24-16-xen  
drwxr-xr-x 2 root root    4096 2008-05-06 15:19 grub  
-rw-r--r-- 1 root root 7323503 2008-04-24 11:47 initrd.img-2.6.24-16-server  
-rw-r--r-- 1 root root 7047843 2008-04-24 11:45 initrd.img-2.6.24-16-server.bak  
-rw-r--r-- 1 root root 7056979 2008-05-06 15:19 initrd.img-2.6.24-16-xen  
-rw-r--r-- 1 root root 7062168 2008-05-06 15:09 initrd.img-2.6.24-16-xen.bak  
-rw-r--r-- 1 root root  103204 2007-09-28 12:06 memtest86+.bin  
-rw-r--r-- 1 root root  933296 2008-04-10 18:55 System.map-2.6.24-16-server  
-rw-r--r-- 1 root root  883544 2008-04-19 23:17 System.map-2.6.24-16-xen  
-rw-r--r-- 1 root root 1987288 2008-04-10 18:55 vmlinuz-2.6.24-16-server  
-rw-r--r-- 1 root root 1730344 2008-04-19 23:17 vmlinuz-2.6.24-16-xen  
-rw-r--r-- 1 root root  370610 2008-04-11 03:16 xen-3.2.gz  
root@server1:~#

Il kernel /boot/vmlinuz-2.6.24-16-xen è il nuovo kernel Xen patchato, e /boot/initrd.img-2.6.24-16-xen è il suo ramdisk. Ne avremo bisogno presto.

Puoi anche dare un’occhiata alla directory /usr/lib/xen-tools perché rivela quali distribuzioni possono essere installate in una macchina virtuale con xen-tools:

ls -l /usr/lib/xen-tools
root@server1:~# ls -l /usr/lib/xen-tools  
total 36  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 centos-4.d  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 centos-5.d  
-rwxr-xr-x 1 root root 4409 2008-04-06 03:12 common.sh  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 dapper.d  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 debian.d  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 edgy.d  
lrwxrwxrwx 1 root root    8 2008-05-06 15:08 etch.d -> debian.d  
lrwxrwxrwx 1 root root   15 2008-05-06 15:08 fedora-core-4.d -> fedora-core-6.d  
lrwxrwxrwx 1 root root   15 2008-05-06 15:08 fedora-core-5.d -> fedora-core-6.d  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 fedora-core-6.d  
lrwxrwxrwx 1 root root   15 2008-05-06 15:08 fedora-core-7.d -> fedora-core-6.d  
lrwxrwxrwx 1 root root    6 2008-05-06 15:08 feisty.d -> edgy.d  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 gentoo.d  
lrwxrwxrwx 1 root root    6 2008-05-06 15:08 gutsy.d -> edgy.d  
lrwxrwxrwx 1 root root    6 2008-05-06 15:08 hardy.d -> edgy.d  
lrwxrwxrwx 1 root root    8 2008-05-06 15:08 lenny.d -> debian.d  
lrwxrwxrwx 1 root root    8 2008-05-06 15:08 sarge.d -> debian.d  
lrwxrwxrwx 1 root root    8 2008-05-06 15:08 sid.d -> debian.d  
root@server1:~#

Come vedi, possiamo installare le seguenti distribuzioni:

  • Debian: Etch, Lenny (testing), Sid (unstable), Sarge
  • Ubuntu: Dapper Drake, Edgy Eft, Feisty Fawn, Gutsy Gibbon, Hardy Heron
  • CentOS 4, CentOS 5
  • Fedora Core 4, 5, 6, Fedora 7
  • Gentoo

(Non ho ancora provato a installare CentOS, Fedora e Gentoo con xen-tools, quindi non posso dire quanto bene funzioni.)

Voglio memorizzare le mie macchine virtuali nella directory /home/xen, quindi la creo ora:

mkdir /home/xen

Utilizzeremo xen-tools per creare macchine virtuali. xen-tools rende molto facile creare macchine virtuali - ti preghiamo di leggere questo tutorial per saperne di più: https://www.howtoforge.com/xen_tools_xen_shell_argo. Come accennato prima, il pacchetto xen-tools è stato installato insieme al pacchetto ubuntu-xen-server.

Ora modifichiamo /etc/xen-tools/xen-tools.conf. Questo file contiene i valori predefiniti utilizzati dallo script xen-create-image a meno che tu non specifichi altri valori sulla riga di comando. Ho cambiato i seguenti valori e lasciato il resto intatto:

vi /etc/xen-tools/xen-tools.conf

| [...] dir = /home/xen [...] dist = hardy # Distribuzione predefinita da installare. [...] gateway = 192.168.0.1 netmask = 255.255.255.0 broadcast = 192.168.0.255 [...] passwd = 1 [...] mirror = http://archive.ubuntu.com/ubuntu/ [...] |

La riga dist contiene la distribuzione predefinita che desideri installare in una macchina virtuale. I contenuti della directory /usr/lib/xen-tools rivelano quali distribuzioni sono disponibili (vedi sopra).

La riga kernel deve contenere il nostro kernel Xen, e la riga initrd il suo ramdisk. Il file predefinito /etc/xen-tools/xen-tools.conf ha i valori kernel = /boot/vmlinuz-uname -r e initrd = /boot/initrd.img-uname -r che si traducono automaticamente nel kernel e ramdisk corretti, quindi non dobbiamo modificare queste righe.

La riga passwd = 1 fa sì che tu possa specificare una password di root quando crei un nuovo dominio guest. Nella riga mirror specifica uno specchio di Ubuntu vicino a te.

Assicurati di specificare un gateway e una netmask. Se non lo fai, e non specifichi un gateway e una netmask sulla riga di comando quando utilizzi xen-create-image, i tuoi domini guest non avranno rete anche se hai specificato un indirizzo IP!

Ora riavvia il sistema:

reboot

Se il tuo sistema si riavvia senza problemi, allora tutto va bene!

Esegui

uname -r

e il tuo nuovo kernel Xen dovrebbe apparire:

root@server1:~# uname -r  
2.6.24-16-xen  
root@server1:~#
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.