Progetto

Generale

Profilo

XenOnSargeHowto » Cronologia » Versione 11

Amministratore Truelite, 25-07-2006 14:24

1 7 Amministratore Truelite
[[TracNav(TOC)]]
2
= Come creare un server di virtualizzazione usando Xen su una Debian Sarge =
3 1 Amministratore Truelite
4
Si considerino i presenti requisiti di base:
5
6
 * una distribuzione linux debian, release Sarge, installata;
7
 * una buona quantità di spazio su disco libero su una partizione;
8
 * almeno due interfacce di rete (eth0, eth1);
9
 * una quantità di memoria ram maggiore o uguale a 512MB.
10
11
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.
12
I seguenti comandi abilitano il repository esterno ed installano i pacchetti necessari.
13
{{{
14
echo "deb http://packages.debianbase.de/sarge/i386/xen3 ./" >> /etc/apt/sources.list
15
apt-get update
16 3 Amministratore Truelite
apt-get install iproute xen udev hotplug bridge-utils linux-xen0-2.6
17 1 Amministratore Truelite
cd /usr/src
18
dpkg -i kernel-xen0-2.6.12.6-xen_tha1_i386.deb
19 3 Amministratore Truelite
mv /lib/tls /lib/tls.disabled
20 2 Amministratore Truelite
}}}
21
22
Una volta installati i pacchetti, è necessario rigenerare l'initrd per il vostro sistema con il comando
23
{{{
24
mkinitrd -o /boot/xen-modules-2.6.12.6-xen 2.6.12.6-xen
25 1 Amministratore Truelite
}}}
26 2 Amministratore Truelite
27 3 Amministratore Truelite
e successivamente aggiungere a grub le voci necessarie per fare il boot con il kernel xen, nel file {{{ "/boot/grub/menu.lst" }}}
28 2 Amministratore Truelite
{{{
29
#
30 1 Amministratore Truelite
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST
31 2 Amministratore Truelite
32
title           Xen 3.0.1 - Linux 2.6.12.6-xen
33 3 Amministratore Truelite
                kernel      /boot/xen-3.0.1.gz
34 1 Amministratore Truelite
                module      /boot/xen-linux-2.6.12.6-xen root=/dev/hda1 ro
35
                module      /boot/xen-modules-2.6.12.6-xen
36 3 Amministratore Truelite
### BEGIN AUTOMAGIC KERNELS LIST
37
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
38
## by the debian update-grub script except for the default options below
39
40
## DO NOT UNCOMMENT THEM, Just edit them to your needs
41 1 Amministratore Truelite
}}}
42 3 Amministratore Truelite
43
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.
44
45
Il file {{{ "/etc/network/interfaces" }}} dovrebbe quindi avere questo aspetto.
46 6 Amministratore Truelite
{{{
47
# The primary network interface
48
auto eth0
49
iface eth0 inet dhcp
50 3 Amministratore Truelite
51 6 Amministratore Truelite
auto xen-br-testlan
52
iface xen-br-testlan inet static
53
        address 10.0.0.0
54
        network 10.0.0.0
55
        netmask 255.255.255.0
56
        bridge_ports eth1
57
        post-up ifconfig xen-br-testlan 0.0.0.0; ifconfig xen-br-testlan up
58
}}}
59
60 3 Amministratore Truelite
A questo punto è possibile riavviare il sistema nel nuovo domain0 xen.
61
62
Se il sistema si è avviato senza problemi possiamo creare una nuova istanza di debian sarge che girerà come ospite (guest) sul sistema host.
63 4 Amministratore Truelite
64
La prima cosa da fare è la creazione di due file da usare rispettivamente come partizione di root da 2GB e come swapfile da 512MB.
65
{{{
66
mkdir -p /home/vserver/images
67
cd /home/vserver/images
68 10 Amministratore Truelite
dd if=/dev/zero of=sarge.img seek=2048000k bs=1 count=1
69 8 Amministratore Truelite
dd if=/dev/zero of=swap.img seek=512000k bs=1 count=1
70 10 Amministratore Truelite
mkfs.ext3 sarge.img
71 4 Amministratore Truelite
mkswap swap.img
72
}}}
73
74
Una volta create e formattate le partizioni, è necessario installare debootstrap con {{{ "apt-get install debootstrap" }}} per poi procedere all'installazione di un sistema base.
75
76
{{{
77
modprobe loop
78 10 Amministratore Truelite
mount -o loop sarge.img /mnt
79 4 Amministratore Truelite
debootstrap sarge /mnt http://ftp.it.debian.org/debian 
80
}}}
81
82 5 Amministratore Truelite
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.
83 6 Amministratore Truelite
84
Disabilitazione delle librerie TLS
85 4 Amministratore Truelite
{{{
86
cp -a /lib/modules/2.6.12.6-xen /mnt/lib/modules
87
mv /mnt/lib/tls /mnt/lib/tls.disabled
88
}}}
89 6 Amministratore Truelite
90
Creazione del file ''/mnt/etc/fstab''
91
{{{
92
/dev/hda1       /               ext3    defaults,errors=remount-ro 0       1
93
/dev/hda2       none            swap    sw              0       0
94
}}}
95
96
Le console diverse da tty1 vanno disabilitate in ''/mnt/etc/inittab''
97
{{{
98
# Note that on most Debian systems tty7 is used by the X Window System,
99
# so if you want to add more getty's go ahead but skip tty7 if you run X.
100
#
101
1:2345:respawn:/sbin/getty 38400 tty1
102
#2:23:respawn:/sbin/getty 38400 tty2
103
#3:23:respawn:/sbin/getty 38400 tty3
104
#4:23:respawn:/sbin/getty 38400 tty4
105
#5:23:respawn:/sbin/getty 38400 tty5
106
#6:23:respawn:/sbin/getty 38400 tty6
107
}}}
108
109
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''
110
{{{
111
name ="sarge-base"
112
kernel ="/boot/xen-linux-2.6.12.6-xen"
113 11 Amministratore Truelite
ramdisk ="/boot/xen-modules-2.6.12.6-xen"
114 6 Amministratore Truelite
root ="/dev/hda1 ro"
115
memory =64
116
disk = [ 'file:/home/vserver/images/sarge_base.img,hda1,w' , 'file:/home/vserver/images/swap.img,hda2,w']
117
118
# network
119
vif = ['bridge=xenbr0', 'bridge=xen-br-testlan']
120
}}}
121
122
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).
123
124
Il comando {{{ "xm" }}} permette di effettuare alcune operazioni sulle macchine virtuali e di controllarne lo stato.
125
126
{{{ xm list }}} mostra la lista delle macchine virtuali attive.
127
128
{{{ xm reboot }}} forza il riavvio di una macchina virtuale.
129
130
{{{ xm shutdown }}} forza lo shutdown di una macchina virtuale.
131
132
{{{ xm destroy }}} distrugge istantaneamente una macchina virtuale.
133
134
{{{ xentop }}} consente di avere l'equivalente del comando ''top'' per le macchine virtuali in esecuzione.
135 9 Amministratore Truelite
136
137
Per avere delle macchine virtuali funzionanti correttamente una volta avviato il sistema occorrerà anche completare, all'interno dello stesso, la configurazione. Questo comporta anzitutto mettere un {{{sources.list}}} valido, del tipo:
138
{{{
139
deb http://ftp.it.debian.org/debian sarge main contrib
140
deb http://security.debian.org/ sarge/updates main contrib
141
}}}
142
e configurare {{{/etc/network/interfaces}}} con qualcosa del tipo:
143
{{{
144
auto lo eth0
145
146
iface lo inet loopback
147
148
iface eth0 inet dhcp
149
        hostname sarge
150
}}}
151
inoltre dato che {{{debootstrap}}} non installa {{{module-init-tools}}}, necessario per usare i moduli (e far funzionare DHCP) con il kernel 2.6, occorrerà configurare una prima volta la rete a mano ed installarlo.