XenOnSargeHowto » Cronologia » Versione 6
« Precedente |
Versione 6/12
(diff)
| Successivo »
Amministratore Truelite, 28-02-2006 12:13
= Come creare un server di virtualizzazione usando Xen su una Debian Sarge =
Si considerino i presenti requisiti di base:
- una distribuzione linux debian, release Sarge, installata;
- una buona quantità di spazio su disco libero su una partizione;
- almeno due interfacce di rete (eth0, eth1);
- una quantità di memoria ram maggiore o uguale a 512MB.
Il primo passo è l'installazione del kernel xen e dei relativi tool che vanno presi da un repository esterno in quanto non presenti in sarge.
I seguenti comandi abilitano il repository esterno ed installano i pacchetti necessari.
{{{
echo "deb http://packages.debianbase.de/sarge/i386/xen3 ./" >> /etc/apt/sources.list
apt-get update
apt-get install iproute xen udev hotplug bridge-utils linux-xen0-2.6
cd /usr/src
dpkg -i kernel-xen0-2.6.12.6-xen_tha1_i386.deb
mv /lib/tls /lib/tls.disabled
}}}
Una volta installati i pacchetti, è necessario rigenerare l'initrd per il vostro sistema con il comando
{{{
mkinitrd -o /boot/xen-modules-2.6.12.6-xen 2.6.12.6-xen
}}}
- Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST
kernel /boot/xen-3.0.1.gz
module /boot/xen-linux-2.6.12.6-xen root=/dev/hda1 ro
module /boot/xen-modules-2.6.12.6-xen
- BEGIN AUTOMAGIC KERNELS LIST
- lines between the AUTOMAGIC KERNELS LIST markers will be modified
- by the debian update-grub script except for the default options below
- DO NOT UNCOMMENT THEM, Just edit them to your needs
}}}
Ipotizzando che ''eth0'' sia l'interfaccia di rete in ascolto sulla rete locale con dhcp e che ''eth1'' sia collegata ad uno switch per una rete interna di test, possiamo creare un nuovo bridge da fare usare alle macchine virtuali; di default xen crea un bridge sulla ''eth0'' per le sue interfacce virtuali.
Il file {{{ "/etc/network/interfaces" }}} dovrebbe quindi avere questo aspetto. {{{- The primary network interface
auto eth0
iface eth0 inet dhcp
auto xen-br-testlan
iface xen-br-testlan inet static
address 10.0.0.0
network 10.0.0.0
netmask 255.255.255.0
bridge_ports eth1
post-up ifconfig xen-br-testlan 0.0.0.0; ifconfig xen-br-testlan up
}}}
A questo punto è possibile riavviare il sistema nel nuovo domain0 xen.
Se il sistema si è avviato senza problemi possiamo creare una nuova istanza di debian sarge che girerà come ospite (guest) sul sistema host.
La prima cosa da fare è la creazione di due file da usare rispettivamente come partizione di root da 2GB e come swapfile da 512MB.
{{{
mkdir -p /home/vserver/images
cd /home/vserver/images
dd if=/dev/zero of=sarge-base.img seek=2048000k bs=1 count=1
dd if=/dev/zero of=swap.img seek=512000k bs=1 of=1
mkfs.ext3 sarge-base.img
mkswap swap.img
}}}
Una volta create e formattate le partizioni, è necessario installare debootstrap con {{{ "apt-get install debootstrap" }}} per poi procedere all'installazione di un sistema base.
{{{
modprobe loop
mount -o loop sarge-base.img /mnt
debootstrap sarge /mnt http://ftp.it.debian.org/debian
}}}
Il passo successivo è l'installazione dei moduli del kernel xen sul nuovo sistema guest seguito dalla creazione di alcuni file necessari ed alla modifica di alcune impostazioni di sistema.
Disabilitazione delle librerie TLS
{{{
cp -a /lib/modules/2.6.12.6-xen /mnt/lib/modules
mv /mnt/lib/tls /mnt/lib/tls.disabled
}}}
Creazione del file ''/mnt/etc/fstab''
{{{
/dev/hda1 / ext3 defaults,errors=remount-ro 0 1
/dev/hda2 none swap sw 0 0
}}}
- Note that on most Debian systems tty7 is used by the X Window System,
- so if you want to add more getty's go ahead but skip tty7 if you run X.
#
1:2345:respawn:/sbin/getty 38400 tty1
#2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6
}}}
A questo punto è possibile smontare il disco virtuale con {{{ umount /mnt }}} e procedere alla creazione del file di configurazione per la macchina vituale xen che chiameremo ''sarge-base.sxp''
{{{
name ="sarge-base"
kernel ="/boot/xen-linux-2.6.12.6-xen"
ramdisk ="/boot/initrd-2.6.12-xen"
root ="/dev/hda1 ro"
memory =64
disk = [ 'file:/home/vserver/images/sarge_base.img,hda1,w' , 'file:/home/vserver/images/swap.img,hda2,w']
- network
vif = ['bridge=xenbr0', 'bridge=xen-br-testlan']
}}}
Una volta salvato il file, sarà possibile avviare la macchina virtuale con il comando {{{ xm create -c sarge-base.sxp }}}. Se tutto procede senza problemi, verrà avviata una macchina virtuale con 64MB di ram, e due interfacce di rete. Il parametro "-c" passato alla linea di comando fa si che la console virtuale venga agganciata subito (in caso contrario la macchina virtuale viene avviata in background).
Il comando {{{ "xm" }}} permette di effettuare alcune operazioni sulle macchine virtuali e di controllarne lo stato.
{{{ xm list }}} mostra la lista delle macchine virtuali attive.
{{{ xm reboot }}} forza il riavvio di una macchina virtuale.
{{{ xm shutdown }}} forza lo shutdown di una macchina virtuale.
{{{ xm destroy }}} distrugge istantaneamente una macchina virtuale.
{{{ xentop }}} consente di avere l'equivalente del comando ''top'' per le macchine virtuali in esecuzione.
Aggiornato da Amministratore Truelite quasi 19 anni fa · 6 revisions