Progetto

Generale

Profilo

XenOnLennyHowto » Cronologia » Versione 12

Amministratore Truelite, 24-08-2009 17:15

1 2 Amministratore Truelite
[[TracNav(TOC)]]
2 5 Amministratore Truelite
= Installazione e gestione di Xen su Lenny =
3 1 Amministratore Truelite
4 3 Amministratore Truelite
[http://www.xensource.com Xen] è un sistema di virtualizzazione basato sul
5
concetto di hypervisor, che consente sia di eseguire un sistema operativo
6
modificato per essere eseguito dall'hypervisor con perdite di prestazioni
7
minimali anche su processori che non supportano la virtualizzazione, che di
8
appoggiarsi alle estensioni presenti nei processori moderni per eseguire
9
sistemi non modificati. 
10
11
Nel primo caso occorre che il sistema ospite supporti le modifiche per essere
12
usato da Xen (nel caso di Linux occorre un kernel opportunamente modificato,
13
che su Debian è disponibile nei pacchetti {{{linux-image-2.6.26-2-xen-*}}}),
14
nel secondo appoggiandosi alle estensioni del processore e ad una apposita
15
versione di {{{qemu}}} si può installare un sistema non modificato, quindi una
16
qualunque versione di Linux ed anche Windows.
17
18
Il meccanismo di funzionamento di Xen prevede che l'hypervisor lanci una
19
istanza privilegiata del sistema operativo ospite (una versione di Linux
20 4 Amministratore Truelite
modificata per essere eseguita dall'hypervisor) che viene chiamata '''Dom0''',
21 3 Amministratore Truelite
da questa sarà poi possibile creare ed eseguire le varie macchine virtuali,
22
chiamate '''DomU'''.
23
24
== Installazione di base ==
25
26 4 Amministratore Truelite
Con Lenny il supporto per Xen è presente direttamente nella distribuzione che
27
fornisce i pacchetti necessari, pertanto una volta installato il sistema, si
28
potrà installare Xen ed i kernel con esso compatibili direttamente con il
29
comando:
30 1 Amministratore Truelite
{{{
31
aptitude install xen-linux-system-2.6.26-2-xen-686
32
}}}
33 3 Amministratore Truelite
utilizzando il metapacchetto che installa tutte le parti necessarie,
34 6 Amministratore Truelite
dall'hypervisor ai kernel modificati ai vari programmi di ausilio. Si possono
35
poi installare anche i programmi ausiliari per Debian che consentono una
36
creazione rapida delle macchina virtuali con:
37
{{{
38
aptitude install xen-tools
39
}}}
40
41
Una volta installato il nuovo kernel e l'hypervisor si riavvii la macchina,
42
controllando che la prima voce del {{{menu.lst}}} di Grub avvii
43
l'hypervisor. Una volta installato il tutto si potrà controllare che Xen è
44
attivo con il comando:
45
{{{
46 7 Amministratore Truelite
xenhost:~# xm dmesg
47 6 Amministratore Truelite
...
48
(XEN) System RAM: 1982MB (2030012kB)
49
(XEN) Xen heap: 9MB (10084kB)
50
(XEN) Domain heap initialised: DMA width 32 bits
51
(XEN) PAE enabled, limit: 16 GB
52
(XEN) Processor #0 15:11 APIC version 16
53
(XEN) Processor #1 15:11 APIC version 16
54
(XEN) IOAPIC[0]: apic_id 4, version 17, address 0xfec00000, GSI 0-23
55
(XEN) Enabling APIC mode:  Flat.  Using 1 I/O APICs
56
(XEN) Using scheduler: SMP Credit Scheduler (credit)
57
(XEN) Detected 2304.832 MHz processor.
58
(XEN) AMD SVM: ASIDs enabled. 
59
(XEN) HVM: SVM enabled
60
...
61
}}}
62
che mostra come sia stata riconosciuta la RAM totale, i processori e,
63
nell'ultima riga, come sia disponibile il supporto per HVM (''Hardware Virtual
64
Machine'') cioè la virtualizzazione hardware con il supporto del processore.
65 8 Amministratore Truelite
66
Il passo successivo è configurare Xen per la gestione delle macchine virtuali,
67
questo viene fatto con il file di configurazione principale che è
68
{{{/etc/xen/xend-config.sxp}}}; il primo passo è garantire un accesso diretto
69
alla rete alle macchine virtuali, per questo occorre, rispetto alla
70
configurazione di default, attivare la gestione in modalità ''bridge'', in cui
71
l'interfaccia fisica viene messa in bridge con le interfacce virtuali delle
72
varie macchine '''DomU''', questo deve essere fatto modificando il file in
73
modo che le direttive di gestione della rete siano le seguenti:
74
{{{
75
...
76
(network-script network-bridge)
77
...
78
#(network-script network-dummy)
79
}}}
80
(nel default la prima è commentata e la seconda no), se l'interfaccia che si
81
vuole utilizzare non è {{{eth0}}} occorrerà specificarla esplicitamente con:
82
{{{
83 9 Amministratore Truelite
(network-script 'network-bridge netdev=ethX')
84 8 Amministratore Truelite
}}}
85
86
Nelle precedenti versioni di Xen era necessario limitare la quantità di
87
memoria messa a disposizione del '''Dom0''' con la opzione {{{mem=XXX}}}
88
passata al bootloader, le versioni recenti liberano automaticamente la
89
memoria, ma si può impostare un limite minimo con la direttiva:
90
{{{
91
(dom0-min-mem 128)
92
}}}
93 10 Amministratore Truelite
(il valore è in Mb, ed il default è 196, eccessivo nella gran parte dei casi).
94 9 Amministratore Truelite
95
== La gestione delle macchine virtuali con gli xen-tools ==
96
97
Il pacchetto {{{xen-tools}}} installa una serie di programmi applicativi che
98
consentono di creare in maniera veloce nuove macchine virtuali. Per farlo sono
99
disponibili due approcci, quello basato su immagini poste su file, e quello
100
basato su volumi logici di LVM; noi ci baseremo su questo. Si darà pertanto
101
per scontato che si sia installato LVM ed i relativi programmi ausiliari,
102
qualora questo non sia il caso sarà sufficiente farlo con:
103
{{{
104
aptitude install lvm2
105
}}}
106
107
Sarà poi necessario disporre di adeguato spazio disco da dedicare a LVM; a
108
questo scopo si ricordi che una partizione usata come ''volume fisico'' di LVM
109
deve essere marcata come tale come di tipo {{{8E}}}. Se allora {{{/dev/sda3}}}
110
è una partizione libera si potrà creare il gruppo di volumi (che chiameremo
111
{{{xenvg}}} da cui estrarre lo
112
spazio disco per le macchine virtuali con i comandi:
113
{{{
114
pvcreate /dev/sda3
115
vgcreate xenvg /dev/sda3 
116
}}}
117
ed in seguito aggiungere eventuali altri dischi con:
118
{{{
119
pvcreate /dev/sdb1
120
vgextend xenvg /dev/sdb1
121
}}}
122
(si consulti la documentazione di LVM o il relativo capitolo su
123 10 Amministratore Truelite
[http://labs.truelite.it/http://svn.truelite.it/documenti/corso.pdf Amministrare GNU/Linux] per i dettagli di gestione di LVM).
124 11 Amministratore Truelite
125
La configurazione degli {{{xen-tools}}} viene eseguita con il file
126 12 Amministratore Truelite
{{{/etc/xen-tools/xen-tools.conf}}}, la cui sintassi prevede l'assegnazione di
127
una serie di parametri che controllano le modalità di creazione con una
128
sintassi nella forma {{{chiave = valore}}}. Dato che il default è usare dei 
129
file per i dischi della macchina virtuale occorrerà anzitutto impostare l'uso
130
di LVM con:
131 1 Amministratore Truelite
{{{
132
lvm = xenvg
133 11 Amministratore Truelite
}}}
134 12 Amministratore Truelite
dove si è fatto riferimento al volume fisico appena creato;
135 1 Amministratore Truelite
occorrerà poi impostare le dimensioni di default per il disco, la RAM e la
136 12 Amministratore Truelite
swap assegnate a ciascuna macchina virtuale creata; questo si fà con
137
l'assegnazione dei parametri {{{size}}}, {{{memory}}} e {{{swap}}}, già
138
presenti commentati nello scheletro di configurazione installato da Debian. 
139 11 Amministratore Truelite
140
Si devono poi impostare gli indirizzi; in questo caso si hanno due scelte,
141 12 Amministratore Truelite
usare il parametro {{{dhcp = 1}}} che configura la macchina virtuale per l'uso
142 11 Amministratore Truelite
del DHCP, o fornire un IP statico a riga di comando, in tal caso si dovranno
143 12 Amministratore Truelite
comunque impostare le altre proprietà della rete, ed in particolare i 
144
parametri:
145 11 Amministratore Truelite
{{{
146
gateway   = 172.16.0.1
147
netmask   = 255.255.0.0
148
broadcast = 172.16.255.255
149
}}}
150
151
Per la creazione delle macchine virtuali esistono diversi metodi, ma fintanto
152 1 Amministratore Truelite
che ci si limita a Debian e Ubuntu è sufficiente usare ''deboostrap'', e
153 12 Amministratore Truelite
questo lo si fa con il parametro:
154 1 Amministratore Truelite
{{{
155
install-method = debootstrap
156
}}}
157
in questo caso è poi possibile anche indicare la distribuzione di default da
158
usare con:
159
{{{
160
dist = lenny
161
}}}
162 12 Amministratore Truelite
Utilizzando questo metodo si potrà creare una macchina virtuale con il comando
163
{{{xen-create-image}}}, e si dovranno indicare soltanto l'IP ed il nome della
164
macchina stessa, con un comando come:
165
{{{
166
xen-create-image --hostname=xentest.mydomain.it --ip=172.16.0.31
167
}}}
168
ma si tenga presente che si potrà modificare uno qualunque dei parametri visti
169
in precedenza passando il valore voluto sulla riga di comando, esprimendo
170
l'assegnazione in forma di opzione estesa (cioè come
171
{{{--parametro=valore}}}).  
172
173
Una volta lanciato il comando questo stamperà una serie di informazioni
174
progressive sulla installazione, con qualcosa del tipo:
175
{{{
176
General Information
177
--------------------
178
Hostname       :  xentest.mydomain.it
179
Distribution   :  lenny
180
Partitions     :  swap            128Mb (swap)
181
                  /               4Gb   (ext3)
182
Image type     :  full
183
Memory size    :  128Mb
184
Kernel path    :  /boot/vmlinuz-2.6.26-2-xen-686
185
Initrd path    :  /boot/initrd.img-2.6.26-2-xen-686
186
187
[...]
188
189
Creating Xen configuration file
190
Done
191
All done
192
193
194
Logfile produced at:
195
	 /var/log/xen-tools/xentest.ittig.cnr.it.log
196
}}}
197
198
e creerà automaticamente il file {{{xentest.mydomain.it.cfg}}} sotto
199
{{{/etc/xen}}}; a questo punto si potrà avviare la nuova macchina virtuale
200
con:
201
{{{
202
xm create xentest.ittig.cnr.it.cfg
203
}}}
204
e verificarne l'avvio con:
205
{{{
206
xm console xentest.ittig.cnr.it.cfg
207
}}}
208
209
Si tenga presente però che per un bug degli script di creazione sulla macchina
210
virtale non viene configurato {{{/etc/inittab}} per attivare una console sulla
211
interfaccia dedicata {{{/dev/hvc0}}}, per cui potrà essere necessario
212
modificare lo stesso file a mano. Questo può essere fatto montando il volume
213
logico (questi sono sempre creati nella forma {{{/dev/xenvg/hostname-disk}}} e
214
{{{/dev/xenvg/hostname-swap}}}) e modificando il file).