XenOnSargeHowto » Cronologia » Versione 9
Amministratore Truelite, 06-07-2006 17:12
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 | dd if=/dev/zero of=sarge-base.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 | 4 | Amministratore Truelite | mkfs.ext3 sarge-base.img |
71 | 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 | mount -o loop sarge-base.img /mnt |
||
79 | 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 | ramdisk ="/boot/initrd-2.6.12-xen" |
||
114 | 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. |