Progetto

Generale

Profilo

Installazione del sistema di virtualizzazione Xen e di una immagine di Debian Etch

Occorre anzitutto avere installato una distribuzione Debian Etch, i prerequisiti per l'installazione dei sorgenti, secondo quanto indicato sul sisto di Xen sono i seguenti:
  • A working Linux distribution using the GRUB bootloader and running on a P6-class or newer CPU.
  • The iproute2 package.
  • The Linux bridge-utils2.1 (e.g., /sbin/brctl)
  • The Linux hotplug system2.2 (e.g., /sbin/hotplug and related scripts). On newer distributions, this is included alongside the Linux udev system2.3.
  • Build tools (gcc v3.2.x or v3.3.x, binutils, GNU make).
  • Development installation of zlib (e.g., zlib-dev).
  • Development installation of Python v2.2 or later (e.g., python-dev).

gran parte di tutto ciò è già disponibile nell'installazione del sistema base, il solo pacchetto che va agggiunto a mano è bridge-utils, questo lo si farà, dopo aver aggiornato l'indice dei pacchetti e tutte le dipendenze, con i comandi:

apt-get update
apt-get dist-upgrade
apt-get install bridge-utils

fatto questo si dovranno installare i pacchetti specifici per poter utilizzare Xen:
apt-get install xen-utils-3.0-unstable-1          \
                xen-hypervisor-3.0.3-1-i386       \
                xen-ioemu-3.0-unstable            \
                xen-docs-3.0-unstable             \
                linux-image-2.6.18-2-xen-686      \
                linux-modules-2.6.18-2-xen-686    \
                libc6-xen                         \
                xen-tools                         \
                sysfsutils                        \
                file                              \

in particolare libc6-xen è fondamentale nelle macchine virtuali Xen con Debian, in quanto il supporto delle GLIBC ordinarie da luogo a problemi sugli indirizzi virtuali.

Una volta fatto questo si dovrà modificare il file di configurazione di Xen che si trova in /etc/xen/xend-config.sxp per inserire le corrette impostazioni di rete; si devono decommentare le seguenti righe:

(network-script network-bridge)
(vif-script vif-bridge)

mentre si devono commentare tutte le restanti impostazioni relative a vif-script and network-script.

Creazione delle macchine virtuali

In rete si trovano varie immagini di distribuzioni già pronte per l'uso con Xen, che si possono utilizzare direttamente. Si tenga presente però che per ciascuna di esse sarà comunque utilizzato il kernel installato a ring 0 (vale a dire sulla distribuzione ospite). Questo può dare luogo a problemi qualora poi all'interno della distribuzione si debbano utilizzare delle funzionalità che necessitano di moduli aggiuntivi rispetto a quelli caricati all'avvio dal RAM-disk iniziale.

In tal caso infatti la distribuzione eseguita a ring 1 non disporrà dei necessari file sotto /lib/modules, pertanto sarà opportuno copiare la relativa directory (nel caso dei pacchetti citati in questo esempio /lib/modules/2.6.18-2-xen-686) dal sistema ospite sul filesystem radice della macchina virtuale (che si sarà opportunamente montato in loopback a macchina virtuale spenta).

Per gestire le immagini delle macchine virtuali si utilizzeranno i programmi del pacchetto xen-tools; anzitutto si dovrà creare una directory che ospiterà i files della immagine da creare:

mkdir /home/xen

poi occorrerà modificare il file /etc/xen-tools/xen-tools.conf perché sia compatibile con la nostra installazione nel seguente modo:

dir=/home/xen 
#opzione per usare debootstrap per creare l'immagine
debootstrap = 1
size = 4Gb
memory = 128 Mb
swap = 128Mb
fs = ext3 è 
dist = etch
image = sparse
#imposta gateway e netmask secondo le tue impostazioni di rete
gateway = 192.168.1.1 
netmask = 255.255.255.0
dhcp = 1
passwd = 1
#Kernel e ramdisk da usare con i server virtuali
#controlla che esistano realmente altrimenti creali
kernel = /boot/vmlinuz-2.6.17-2-xen-686
initrd = /boot/initrd.img-2.6.17-2-xen-686
mirror = http://ftp.us.debian.org/debian/

Per creare una immagine si potrà utilizzare il seguente comando:

xen-create-image --hostname=nomeImmagine --passwd

e l'utente dovrà inserire una password di root. Dopo che l'installazione è terminata è possibile fare il boot dell'immagine col seguente comando:

xm create /etc/xen/nomeImmagine.cfg -c

dove l'opzione -c serve ad agganciare una console al sistema che è stato fatto avviare.

Amministrazione dei sistemi virtuali

Si tenga presente che benché molto simili ad un sistema reale, i sistemi virtualizzati presentano comunque delle differenze rispetto ad un sistema ordinario, in particolare va tenuto presente che il tempo di sistema viene gestito in maniera unica a ring 0, cioè non sarà possibile impostare il tempo o la data nei vari sistemi virtualizzati, ma soltanto nel sistema ospite che appunto viene eseguito a ring 0.

E' una buona regola dopo avere creato la macchina creare uno standard file debian /etc/hosts usato per convertire i nomi degli elaboratori in numeri IP e viceversa (nel quale inserire il nome della macchina).