Projet

Général

Profil

Cluster Ganeti » Historique » Version 19

Laurent GUERBY, 21/05/2012 22:55

1 16 Mehdi Abaakouk
h1. Cluster Ganeti
2 1 Mehdi Abaakouk
3 9 Mehdi Abaakouk
{{>toc}}
4 9 Mehdi Abaakouk
5 18 Laurent GUERBY
h2. Installation from scratch
6 18 Laurent GUERBY
7 18 Laurent GUERBY
apt-get install ganeti2
8 18 Laurent GUERBY
/eTc/lvm/lvm.conf
9 18 Laurent GUERBY
10 18 Laurent GUERBY
11 18 Laurent GUERBY
* changer le filter lvm dans /etc/lvm/lvm.conf pour
12 18 Laurent GUERBY
13 18 Laurent GUERBY
<pre>
14 18 Laurent GUERBY
# filter = [ "a/.*/" ]
15 18 Laurent GUERBY
filter = ["r|/dev/cdrom|", "r|/dev/drbd[0-9]+|" ]
16 18 Laurent GUERBY
</pre>
17 18 Laurent GUERBY
18 19 Laurent GUERBY
19 19 Laurent GUERBY
* activer drbd
20 19 Laurent GUERBY
21 19 Laurent GUERBY
<pre>
22 19 Laurent GUERBY
# echo "option drbd minor_count=128 usermode_helper=/bin/true" >> /etc/modprobe.d/drbd-ganeti.conf
23 19 Laurent GUERBY
# rmmod drbd
24 19 Laurent GUERBY
# modprobe drbd
25 19 Laurent GUERBY
# cat /sys/module/drbd/parameters/usermode_helper 
26 19 Laurent GUERBY
/bin/true
27 19 Laurent GUERBY
</pre>
28 19 Laurent GUERBY
29 19 Laurent GUERBY
* fdisk
30 19 Laurent GUERBY
31 19 Laurent GUERBY
fdisk /dev/sda
32 19 Laurent GUERBY
new primary part
33 19 Laurent GUERBY
hex code 8e
34 19 Laurent GUERBY
partprobe
35 19 Laurent GUERBY
pvcreate /dev/sda2 
36 19 Laurent GUERBY
vgcreate vg_ganeti /dev/sda2
37 19 Laurent GUERBY
38 19 Laurent GUERBY
39 19 Laurent GUERBY
40 18 Laurent GUERBY
* vider le volume group et le recreer
41 18 Laurent GUERBY
42 18 Laurent GUERBY
<pre>
43 18 Laurent GUERBY
pvs
44 18 Laurent GUERBY
vgs
45 18 Laurent GUERBY
lvs
46 18 Laurent GUERBY
lvremove
47 18 Laurent GUERBY
vgcreate kvmvg /dev/sdb... #TODO check
48 18 Laurent GUERBY
</pre>
49 18 Laurent GUERBY
50 18 Laurent GUERBY
51 10 Mehdi Abaakouk
h2. Administration des VMs
52 1 Mehdi Abaakouk
53 18 Laurent GUERBY
54 18 Laurent GUERBY
55 10 Mehdi Abaakouk
h3. Demarrer et arrêter une instance ?
56 1 Mehdi Abaakouk
57 10 Mehdi Abaakouk
<pre>
58 10 Mehdi Abaakouk
gnt-instance start vm1
59 10 Mehdi Abaakouk
gnt-instance stop vm1
60 10 Mehdi Abaakouk
</pre>
61 1 Mehdi Abaakouk
62 10 Mehdi Abaakouk
h3. Comment tout savoir sur une vm ?
63 1 Mehdi Abaakouk
64 1 Mehdi Abaakouk
<pre>
65 1 Mehdi Abaakouk
gnt-instance info vm1
66 1 Mehdi Abaakouk
</pre>
67 1 Mehdi Abaakouk
68 10 Mehdi Abaakouk
h3. Déplacement le(s) disque(s) dur d'une VM
69 1 Mehdi Abaakouk
70 1 Mehdi Abaakouk
Si la machine a ces disques au format plain (sans drbd), taper:
71 1 Mehdi Abaakouk
72 1 Mehdi Abaakouk
<pre>
73 1 Mehdi Abaakouk
gnt-instance stop vm1
74 1 Mehdi Abaakouk
gnt-instance move -n h6 vm1
75 1 Mehdi Abaakouk
gnt-instance start vm1
76 1 Mehdi Abaakouk
</pre>
77 1 Mehdi Abaakouk
78 1 Mehdi Abaakouk
Si la machine utilise drbd (uniquement le disque de la node secondaire bascule):
79 1 Mehdi Abaakouk
80 1 Mehdi Abaakouk
<pre>
81 1 Mehdi Abaakouk
gnt-instance replace-disks -n h6 vm1
82 1 Mehdi Abaakouk
</pre>
83 10 Mehdi Abaakouk
84 1 Mehdi Abaakouk
Si vous voulais déplacer l'autre disque du drbd, il faut basculer la machine, puis refaire la même chose
85 1 Mehdi Abaakouk
86 10 Mehdi Abaakouk
h3. Basculer/migrer une machine qui utilise drbd
87 1 Mehdi Abaakouk
88 1 Mehdi Abaakouk
Bascule avec arret de la machine:
89 1 Mehdi Abaakouk
90 1 Mehdi Abaakouk
<pre>
91 1 Mehdi Abaakouk
gnt-instance failover vm1
92 1 Mehdi Abaakouk
</pre>
93 1 Mehdi Abaakouk
94 10 Mehdi Abaakouk
Sans arrêt, migration à chaud:
95 10 Mehdi Abaakouk
96 1 Mehdi Abaakouk
<pre>
97 1 Mehdi Abaakouk
gnt-instance migrate vm1
98 1 Mehdi Abaakouk
</pre>
99 10 Mehdi Abaakouk
100 1 Mehdi Abaakouk
En cas de soucis primaire/secondaire:
101 1 Mehdi Abaakouk
102 1 Mehdi Abaakouk
<pre>
103 1 Mehdi Abaakouk
gnt-instance migrate --cleanup vm1
104 1 Mehdi Abaakouk
</pre>
105 1 Mehdi Abaakouk
106 10 Mehdi Abaakouk
h3. Création d'une machine
107 1 Mehdi Abaakouk
108 10 Mehdi Abaakouk
Un script est présent sur h1 voici ca doc:
109 10 Mehdi Abaakouk
<pre>
110 10 Mehdi Abaakouk
# /root/gnt-addvm
111 10 Mehdi Abaakouk
usage: gnt-addvm [options] VIRTUAL_MACHINE_HOSTNAME
112 10 Mehdi Abaakouk
       -o OS | --os OS          OS can be default natty32 natty64 sid64 squeeze32 squeeze64 wheezy64
113 10 Mehdi Abaakouk
       -s SIZE | --size SIZE    default SIZE is 10G
114 10 Mehdi Abaakouk
       -m MEM | --mem MEM       default MEM is 256M
115 10 Mehdi Abaakouk
       -c CPU | --cpu CPU               default CPU is 1
116 10 Mehdi Abaakouk
       -n NODES | --nodes NODES         default NODES is
117 10 Mehdi Abaakouk
       -d MODE | --disk MODE      default MODE is drbd
118 10 Mehdi Abaakouk
       -q | --quick             don't wait drbd sync
119 10 Mehdi Abaakouk
       --dry-run                        show executed command
120 10 Mehdi Abaakouk
       --cdrom PATH             installation from iso file
121 10 Mehdi Abaakouk
</pre>
122 1 Mehdi Abaakouk
123 10 Mehdi Abaakouk
124 10 Mehdi Abaakouk
h3. Supprimer une machine
125 10 Mehdi Abaakouk
126 1 Mehdi Abaakouk
<pre>
127 10 Mehdi Abaakouk
gnt-instance remove vm1
128 1 Mehdi Abaakouk
</pre>
129 1 Mehdi Abaakouk
130 10 Mehdi Abaakouk
si la vm est en drbd et que une des nodes du drbd ne fonctionne plus
131 10 Mehdi Abaakouk
132 1 Mehdi Abaakouk
<pre>
133 10 Mehdi Abaakouk
gnt-instance remove --ignore-failures vm1
134 1 Mehdi Abaakouk
</pre>
135 1 Mehdi Abaakouk
136 10 Mehdi Abaakouk
137 14 Mehdi Abaakouk
h3. Changer les cractéristique d'une VM, upgrade disk, net, cpu, mem
138 10 Mehdi Abaakouk
139 10 Mehdi Abaakouk
Et hop une nouvelle carte réseau sur le vlan tsf
140 1 Mehdi Abaakouk
<pre>
141 10 Mehdi Abaakouk
gnt-instance  modify --net add:link=br1 vm1
142 1 Mehdi Abaakouk
</pre>
143 1 Mehdi Abaakouk
144 10 Mehdi Abaakouk
Un petit disk en plus
145 10 Mehdi Abaakouk
<pre>
146 10 Mehdi Abaakouk
gnt-instance  modify --disk add:size=50G vm1
147 10 Mehdi Abaakouk
</pre>
148 1 Mehdi Abaakouk
149 10 Mehdi Abaakouk
Un petite upgrade cpu et mémoire
150 10 Mehdi Abaakouk
<pre>
151 10 Mehdi Abaakouk
gnt-instance modify -B vcpus=2,memory=512M vm1
152 10 Mehdi Abaakouk
</pre>
153 1 Mehdi Abaakouk
154 10 Mehdi Abaakouk
Reboot pour prendre en compte le tout
155 1 Mehdi Abaakouk
<pre>
156 10 Mehdi Abaakouk
gnt-instance reboot -t full vm1
157 1 Mehdi Abaakouk
</pre>
158 1 Mehdi Abaakouk
159 10 Mehdi Abaakouk
== Je voudrais bien booter mon kernel ! ou un cdrom==
160 10 Mehdi Abaakouk
Je peux désactivé le kernel commun pour une vm
161 1 Mehdi Abaakouk
162 10 Mehdi Abaakouk
<pre>
163 10 Mehdi Abaakouk
gnt-instance modify -H kernel_path="" vm1
164 10 Mehdi Abaakouk
</pre>
165 10 Mehdi Abaakouk
Ou booter sur le cdrom pour le prochain démarrage commme ceci:
166 1 Mehdi Abaakouk
167 1 Mehdi Abaakouk
<pre>
168 10 Mehdi Abaakouk
gnt-instance start -H boot_order=cdrom,cdrom_image_path=/path/to/debian-504-amd64-netinst.iso vm1
169 1 Mehdi Abaakouk
</pre>
170 1 Mehdi Abaakouk
171 10 Mehdi Abaakouk
172 10 Mehdi Abaakouk
h3. Relocalisé les disques secondaires si un serveur est HS.
173 10 Mehdi Abaakouk
174 10 Mehdi Abaakouk
Ceci déplace le disque redondant (qui n'est plus présent si le serveur est HS) est le reconstruit sur un autre serveur
175 10 Mehdi Abaakouk
176 1 Mehdi Abaakouk
<pre>
177 10 Mehdi Abaakouk
gnt-instance replace-disks -I hail vm1
178 1 Mehdi Abaakouk
</pre>
179 1 Mehdi Abaakouk
180 1 Mehdi Abaakouk
181 11 Mehdi Abaakouk
h3. Importer une image disque venant de l’extérieur
182 11 Mehdi Abaakouk
183 11 Mehdi Abaakouk
Convertion de l'image au format raw (si c'est pas déjà le cas)
184 11 Mehdi Abaakouk
<pre>
185 11 Mehdi Abaakouk
kvm-img convert DISQUEVM.qcow -O raw DISQUEVM.raw
186 11 Mehdi Abaakouk
</pre>
187 11 Mehdi Abaakouk
188 11 Mehdi Abaakouk
Copie du disque au format raw sur un lvm
189 11 Mehdi Abaakouk
<pre>
190 11 Mehdi Abaakouk
size=$(kvm-img info DISQUEVM.raw | sed -n -e 's/^virtual size:[^(]*(\([[:digit:]]*\).*)/\1/gp')
191 11 Mehdi Abaakouk
lvcreate -L ${size}b -n lv_migration_DISQUEVM kvmvg
192 11 Mehdi Abaakouk
dd if=DISQUEVM.raw of=/dev/kvmvg/lv_migration_DISQUEVM
193 11 Mehdi Abaakouk
</pre>
194 11 Mehdi Abaakouk
195 11 Mehdi Abaakouk
Création de la VM
196 11 Mehdi Abaakouk
<pre>
197 11 Mehdi Abaakouk
gnt-instance add -B memory=512M --no-start -t plain -n $(hostname) --disk 0:adopt=lv_migration_DISQUEVM --net 0 -o debootstrap+default VMNAME.tetaneutral.net
198 11 Mehdi Abaakouk
</pre>
199 11 Mehdi Abaakouk
200 11 Mehdi Abaakouk
Et pour finir, on transforme le format de disque de la VM en drbd:
201 11 Mehdi Abaakouk
<pre>
202 11 Mehdi Abaakouk
gnt-instance modify -t drbd -n h6 VMNAME.tetaneutral.net
203 11 Mehdi Abaakouk
</pre>
204 11 Mehdi Abaakouk
205 17 Mehdi Abaakouk
h3. Copier une VM sur une autre machine
206 11 Mehdi Abaakouk
207 11 Mehdi Abaakouk
Seul la machine *h1* a l'espace configurer pour faire des dumps de machine virtuelle.
208 11 Mehdi Abaakouk
209 11 Mehdi Abaakouk
On lance un backup de celle-ci (attention cette commande *éteint* la machine):
210 11 Mehdi Abaakouk
<pre>
211 11 Mehdi Abaakouk
gnt-backup export -n h1 sileht2
212 11 Mehdi Abaakouk
</pre>
213 11 Mehdi Abaakouk
214 11 Mehdi Abaakouk
Les fichiers sont ensuite sur h1 dans /exports/sileht2.tetaneutral.net/
215 11 Mehdi Abaakouk
216 11 Mehdi Abaakouk
Le fichier qui nous intéresse est celui qui fini par *.snap* qui est le disque dur au format raw de la VM, dans mon cas:
217 11 Mehdi Abaakouk
<pre>
218 11 Mehdi Abaakouk
09d836a0-22e0-4ea4-9104-c301351bb2e2.disk0_data.snap
219 11 Mehdi Abaakouk
</pre>
220 11 Mehdi Abaakouk
221 11 Mehdi Abaakouk
Pour la démonstration je copie ce fichier sur h2:
222 11 Mehdi Abaakouk
<pre>
223 11 Mehdi Abaakouk
scp /exportfs/sileht2.tetaneutral.net/09d836a0-22e0-4ea4-9104-c301351bb2e2.disk0_data.snap h2:/root/sileht.raw
224 11 Mehdi Abaakouk
</pre>
225 11 Mehdi Abaakouk
226 11 Mehdi Abaakouk
Et je le test avec kvm:
227 11 Mehdi Abaakouk
<pre>
228 11 Mehdi Abaakouk
kvm -m 256 -drive file=sileht.raw,format=raw,if=virtio,boot=on,cache=writeback -usbdevice tablet -netdev type=tap,id=netdev0,fd=10 -device virtio-net-pci,mac=aa:00:00:62:e3:a0,netdev=netdev0
229 11 Mehdi Abaakouk
</pre>
230 1 Mehdi Abaakouk
231 15 Mehdi Abaakouk
A savoir l'image utilise les pilotes kvm "virtio", si on souhaite utiliser la VM avec un autre logiciel de virtualisation,
232 15 Mehdi Abaakouk
il faudra modifié le fstab pour mettre /dev/sda1 au lieu de /dev/vda1 et supprimer le fichier /etc/udev/rules.d/70-persistent-net.rules
233 11 Mehdi Abaakouk
234 14 Mehdi Abaakouk
h3. Monter une partition de machine virtuelle sur la machine hôte (!Attention DANGER!)
235 11 Mehdi Abaakouk
236 11 Mehdi Abaakouk
Arret de la machine et activation des disques
237 11 Mehdi Abaakouk
<pre>
238 11 Mehdi Abaakouk
 $ gnt-instance stop VMNAME.tetaneutral.net
239 11 Mehdi Abaakouk
 $ gnt-instance activate-disks VMNAME.tetaneutral.net
240 11 Mehdi Abaakouk
 h1.tetaneutral.net:disk/0:/dev/drbd34
241 11 Mehdi Abaakouk
</pre>
242 11 Mehdi Abaakouk
243 11 Mehdi Abaakouk
Ensuite pour voir les partitions du disque, ici le /dev/drbd34:
244 11 Mehdi Abaakouk
<pre>
245 11 Mehdi Abaakouk
kpartx -l /dev/drbd34
246 11 Mehdi Abaakouk
</pre>
247 11 Mehdi Abaakouk
248 11 Mehdi Abaakouk
On créé ensuite les partitions dans /dev avec devmapper
249 11 Mehdi Abaakouk
<pre>
250 11 Mehdi Abaakouk
kpartx -a /dev/drbd34
251 11 Mehdi Abaakouk
ls -la /dev/mapper/drbd34*
252 11 Mehdi Abaakouk
</pre>
253 11 Mehdi Abaakouk
254 11 Mehdi Abaakouk
A partir de maintenant on peut faire mumuse avec la partition, exemple:
255 11 Mehdi Abaakouk
<pre>
256 11 Mehdi Abaakouk
mount /dev/mapper/drbd34p1 /mnt/
257 11 Mehdi Abaakouk
....
258 11 Mehdi Abaakouk
umount /mnt
259 11 Mehdi Abaakouk
</pre>
260 11 Mehdi Abaakouk
261 11 Mehdi Abaakouk
Puis *très important*, il faut nettoyer devmapper et déactiver les disk pour ganeti
262 11 Mehdi Abaakouk
263 11 Mehdi Abaakouk
<pre>
264 11 Mehdi Abaakouk
kpartx -d /dev/drbd34
265 11 Mehdi Abaakouk
gnt-instance deactivate-disks VMNAME.tetaneutral.net
266 11 Mehdi Abaakouk
gnt-instance start VMNAME.tetaneutral.net
267 11 Mehdi Abaakouk
</pre>
268 11 Mehdi Abaakouk
269 1 Mehdi Abaakouk
h2. Administration des serveurs/nodes
270 10 Mehdi Abaakouk
271 10 Mehdi Abaakouk
h3. Éteindre/rebooter provisoirement un des serveurs sans coupure de service
272 10 Mehdi Abaakouk
273 10 Mehdi Abaakouk
La procédure est la suivante:
274 10 Mehdi Abaakouk
 - migration des machines virtuelles sur leurs secondaires
275 10 Mehdi Abaakouk
 - Arret/Ralummage ou reboot du serveur
276 10 Mehdi Abaakouk
 - remigration des machines virtuelles sur le serveur hX
277 1 Mehdi Abaakouk
278 10 Mehdi Abaakouk
<pre>
279 10 Mehdi Abaakouk
gnt-node migrate hX
280 10 Mehdi Abaakouk
shutdown -h now # ou reboot
281 1 Mehdi Abaakouk
hbal -L --no-disk-moves -X
282 1 Mehdi Abaakouk
</pre>
283 10 Mehdi Abaakouk
284 10 Mehdi Abaakouk
La resynchro drbd est automatique.
285 10 Mehdi Abaakouk
286 10 Mehdi Abaakouk
h3. L'extinction d'une node proprement dans le but de la désactivé du cluster
287 1 Mehdi Abaakouk
288 10 Mehdi Abaakouk
<pre>
289 10 Mehdi Abaakouk
gnt-node migrate hX # gnt-node failover hX
290 10 Mehdi Abaakouk
gnt-node evacuate -I hail hX
291 1 Mehdi Abaakouk
gnt-node modify -O yes hX
292 1 Mehdi Abaakouk
</pre>
293 10 Mehdi Abaakouk
294 1 Mehdi Abaakouk
Ici toutes les VMs seront migrés et les données auront été déplacé vers les autres nodes.
295 10 Mehdi Abaakouk
296 1 Mehdi Abaakouk
h3. Vérifier l'état du cluster
297 10 Mehdi Abaakouk
298 10 Mehdi Abaakouk
Sur le masternode normalement h1 faire:
299 1 Mehdi Abaakouk
300 10 Mehdi Abaakouk
<pre>
301 1 Mehdi Abaakouk
gnt-cluster verify
302 1 Mehdi Abaakouk
</pre>
303 10 Mehdi Abaakouk
304 1 Mehdi Abaakouk
h3. Change le node principal (masternode) de "ganeti", celui qui permet de lancer des commandes ganeti.
305 10 Mehdi Abaakouk
306 1 Mehdi Abaakouk
Allez sur un node, taper ceci et il deviendra "maternode":
307 1 Mehdi Abaakouk
308 1 Mehdi Abaakouk
<pre>
309 1 Mehdi Abaakouk
gnt-node masterfailover
310 1 Mehdi Abaakouk
</pre>
311 10 Mehdi Abaakouk
312 1 Mehdi Abaakouk
h3. Gestion des fichiers de configuration (ie: /etc/ganeti, /etc/hosts, /etc/rc.local, ...)
313 10 Mehdi Abaakouk
314 1 Mehdi Abaakouk
Tous les fichiers de configuration à synchroniser entre toutes les nodes du cluster sont contenues dans ce script:
315 1 Mehdi Abaakouk
316 1 Mehdi Abaakouk
<pre>
317 1 Mehdi Abaakouk
/etc/ganeti/pushconf.sh
318 1 Mehdi Abaakouk
</pre>
319 10 Mehdi Abaakouk
320 1 Mehdi Abaakouk
Le lancer recopie ces fichiers du masternode vers les autres nodes.
321 10 Mehdi Abaakouk
322 10 Mehdi Abaakouk
h3. Désactiver un serveur qui serait HS du cluster provisoirement.
323 10 Mehdi Abaakouk
324 10 Mehdi Abaakouk
On bascule les machines qui n'ont pas le failover en automatique
325 10 Mehdi Abaakouk
326 10 Mehdi Abaakouk
<pre>
327 10 Mehdi Abaakouk
gnt-node failover [ --ignore-consistency ] h2
328 10 Mehdi Abaakouk
</pre>
329 10 Mehdi Abaakouk
330 10 Mehdi Abaakouk
le --ignore-consistency permet de forcer ganeti à ne pas contrôler le disk avant le basculement
331 10 Mehdi Abaakouk
332 10 Mehdi Abaakouk
On peux (optionnellement) déplacer les disques durs secondaires des VMs
333 10 Mehdi Abaakouk
334 10 Mehdi Abaakouk
gnt-node evacuate [--early-release]  -I hail hX
335 10 Mehdi Abaakouk
336 10 Mehdi Abaakouk
le --early-release permet de forcer ganeti à ne pas contrôler le disk avant le basculement (utile si le disk de h2 est HS)
337 10 Mehdi Abaakouk
338 10 Mehdi Abaakouk
Puis on désactive la node:
339 10 Mehdi Abaakouk
340 10 Mehdi Abaakouk
<pre>
341 10 Mehdi Abaakouk
gnt-node modify -O yes h2
342 10 Mehdi Abaakouk
</pre>
343 10 Mehdi Abaakouk
344 1 Mehdi Abaakouk
345 11 Mehdi Abaakouk
h3. Réinsertion dans le cluster d'un node désactivé
346 10 Mehdi Abaakouk
347 10 Mehdi Abaakouk
- On réactive la node
348 10 Mehdi Abaakouk
- On remet dessus des machines et des disques en répartissant la charge du cluster
349 10 Mehdi Abaakouk
350 10 Mehdi Abaakouk
<pre>
351 10 Mehdi Abaakouk
gnt-node modify -O no h2
352 10 Mehdi Abaakouk
hbal -L -X
353 10 Mehdi Abaakouk
</pre>
354 10 Mehdi Abaakouk
355 10 Mehdi Abaakouk
356 10 Mehdi Abaakouk
h2. Setup d'un nouveau NODE
357 10 Mehdi Abaakouk
358 10 Mehdi Abaakouk
h3. Installation
359 10 Mehdi Abaakouk
360 1 Mehdi Abaakouk
* Installer squeeze basique avec juste ssh
361 1 Mehdi Abaakouk
* Ajouter wheezy dans /etc/apt/sources.list
362 1 Mehdi Abaakouk
363 1 Mehdi Abaakouk
<pre>
364 1 Mehdi Abaakouk
# deb http://ftp.fr.debian.org/debian/ squeeze main
365 1 Mehdi Abaakouk
deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free
366 1 Mehdi Abaakouk
deb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free
367 1 Mehdi Abaakouk
deb http://ftp.fr.debian.org/debian/ sid main contrib non-free
368 1 Mehdi Abaakouk
deb-src http://ftp.fr.debian.org/debian/ sid main contrib non-free
369 1 Mehdi Abaakouk
deb http://ftp.de.debian.org/debian-backports/ squeeze-backports main contrib non-free
370 1 Mehdi Abaakouk
deb-src http://ftp.de.debian.org/debian-backports/ squeeze-backports main contrib non-free
371 3 Mehdi Abaakouk
deb http://security.debian.org/ squeeze/updates main
372 3 Mehdi Abaakouk
deb-src http://security.debian.org/ squeeze/updates main
373 4 Mehdi Abaakouk
# squeeze-updates, previously known as 'volatile'
374 3 Mehdi Abaakouk
deb http://ftp.fr.debian.org/debian/ squeeze-updates main
375 1 Mehdi Abaakouk
deb-src http://ftp.fr.debian.org/debian/ squeeze-updates main
376 8 Mehdi Abaakouk
</pre>
377 8 Mehdi Abaakouk
378 8 Mehdi Abaakouk
* Allouer un port avec 3131, 3175, 3195 tagged sur le procurve
379 8 Mehdi Abaakouk
* Monter le reseau manuellement IP X
380 7 Mehdi Abaakouk
381 8 Mehdi Abaakouk
<pre>
382 7 Mehdi Abaakouk
ip link add link eth0 name eth0.3131 type vlan id 3131
383 8 Mehdi Abaakouk
ip link set eth0.3131 up
384 7 Mehdi Abaakouk
ip addr add 91.224.149.15X/25 dev eth0.3131
385 8 Mehdi Abaakouk
</pre>
386 8 Mehdi Abaakouk
387 8 Mehdi Abaakouk
* Creer /etc/rc.local.conf avec X et Y
388 7 Mehdi Abaakouk
389 5 Mehdi Abaakouk
<pre>
390 5 Mehdi Abaakouk
IP_3131="91.224.149.15X/25"
391 6 Mehdi Abaakouk
GW_3131="91.224.149.254"
392 5 Mehdi Abaakouk
IP_3175="192.168.3.Y/24"
393 1 Mehdi Abaakouk
KVM_DISKS="sdb"
394 5 Mehdi Abaakouk
</pre>
395 1 Mehdi Abaakouk
396 1 Mehdi Abaakouk
* Installer les packages
397 1 Mehdi Abaakouk
398 1 Mehdi Abaakouk
<pre>
399 1 Mehdi Abaakouk
#TODO liste en fichier commit qqpart
400 1 Mehdi Abaakouk
#TODO: passer a une version compilée en local de ganeti pour eviter les update de version wheezy
401 1 Mehdi Abaakouk
dpkg --get-selections | ssh root@h48 dpkg --set-selections
402 1 Mehdi Abaakouk
ssh root@h48 apt-get dselect-upgrade
403 5 Mehdi Abaakouk
</pre>
404 5 Mehdi Abaakouk
405 6 Mehdi Abaakouk
406 6 Mehdi Abaakouk
407 5 Mehdi Abaakouk
* munin:
408 5 Mehdi Abaakouk
dans /etc/munin/munin-node.conf ajouter: allow ^91\.224\.149\.194$
409 5 Mehdi Abaakouk
* TODO patch munin Loic
410 1 Mehdi Abaakouk
http://trac.fsffrance.org/wiki/PatchInventory#Munin
411 5 Mehdi Abaakouk
* reboot
412 1 Mehdi Abaakouk
* Installer le node dans le cluster ganeti apres s'etre assure que la version de ganeti est bien la meme
413 5 Mehdi Abaakouk
414 1 Mehdi Abaakouk
<pre>
415 1 Mehdi Abaakouk
dpkg -l|grep -i ganeti
416 5 Mehdi Abaakouk
gnt-node add h48
417 5 Mehdi Abaakouk
/etc/ganeti/pushconf.sh
418 5 Mehdi Abaakouk
</pre>
419 5 Mehdi Abaakouk
420 5 Mehdi Abaakouk
Appliquer ce patch à ganeti-instance-debootstrap:
421 5 Mehdi Abaakouk
422 5 Mehdi Abaakouk
<pre>
423 5 Mehdi Abaakouk
--- /usr/share/ganeti/os/debootstrap/common.sh.ori  2010-09-15 22:34:12.000000000 +0200
424 5 Mehdi Abaakouk
+++ /usr/share/ganeti/os/debootstrap/common.sh  2011-07-27 12:33:55.695617766 +0200
425 5 Mehdi Abaakouk
@@ -91,7 +91,7 @@
426 5 Mehdi Abaakouk
# some versions of sfdisk need manual specification of
427 1 Mehdi Abaakouk
# head/sectors for devices such as drbd which don't
428 5 Mehdi Abaakouk
# report geometry
429 5 Mehdi Abaakouk
-  sfdisk -H 255 -S 63 --quiet --Linux "$1" <<EOF
430 5 Mehdi Abaakouk
+  sfdisk -H 255 -S 63 -D --quiet --Linux "$1" <<EOF
431 6 Mehdi Abaakouk
0,,L,*
432 5 Mehdi Abaakouk
EOF
433 3 Mehdi Abaakouk
}
434 1 Mehdi Abaakouk
</pre>
435 1 Mehdi Abaakouk
436 11 Mehdi Abaakouk
Ci dessous ajouter dkms et r8168 si nécessaire.
437 3 Mehdi Abaakouk
438 15 Mehdi Abaakouk
h3. Pilotes additionnel
439 1 Mehdi Abaakouk
440 1 Mehdi Abaakouk
Sur h1,h2,h4,h5 et h6, le pilote (r8169.ko) de la carte réseau (r8168/8111) provoque des kernels panic, il a été remplacé la version du constructeur (r8168.ko).
441 1 Mehdi Abaakouk
Pilote dispo ici: (http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&PNid=13&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false)
442 1 Mehdi Abaakouk
443 1 Mehdi Abaakouk
<pre>
444 1 Mehdi Abaakouk
apt-get install gcc dkms
445 1 Mehdi Abaakouk
cd /usr/src
446 1 Mehdi Abaakouk
wget http://url_to_pilot/r8168-8.024.00.tar.bz2
447 1 Mehdi Abaakouk
tar -xjf r8168-8.024.00.tar.bz2
448 1 Mehdi Abaakouk
cd r8168-8.024.00
449 1 Mehdi Abaakouk
cat > dkms.conf << EOF
450 1 Mehdi Abaakouk
PACKAGE_NAME=r8168
451 1 Mehdi Abaakouk
PACKAGE_VERSION=8.024.00
452 1 Mehdi Abaakouk
MAKE[0]="make"
453 1 Mehdi Abaakouk
BUILT_MODULE_NAME[0]=r8168
454 1 Mehdi Abaakouk
BUILT_MODULE_LOCATION[0]="src/"
455 1 Mehdi Abaakouk
DEST_MODULE_LOCATION[0]="/kernel/updates/dkms"
456 1 Mehdi Abaakouk
AUTOINSTALL="YES"
457 1 Mehdi Abaakouk
EOF
458 1 Mehdi Abaakouk
dkms add -m r8168 -v 8.024.00
459 1 Mehdi Abaakouk
dkms build -m r8168 -v 8.024.00
460 1 Mehdi Abaakouk
dkms install -m r8168 -v 8.024.00
461 1 Mehdi Abaakouk
echo "r8168" >> /etc/modules
462 1 Mehdi Abaakouk
echo "blacklist r8169" >> /etc/modprobe.d/blacklist-network.conf
463 1 Mehdi Abaakouk
update-initramfs -u
464 1 Mehdi Abaakouk
reboot
465 1 Mehdi Abaakouk
</pre>
466 1 Mehdi Abaakouk
467 1 Mehdi Abaakouk
Pour les machines a base de e1000e:
468 1 Mehdi Abaakouk
469 1 Mehdi Abaakouk
<pre>
470 1 Mehdi Abaakouk
apt-get install gcc dkms
471 1 Mehdi Abaakouk
cd /usr/src
472 1 Mehdi Abaakouk
wget http://downloadmirror.intel.com/15817/eng/e1000e-1.3.17.tar.gz
473 1 Mehdi Abaakouk
tar -xzf e1000e-1.3.17.tar.gz
474 1 Mehdi Abaakouk
cd e1000e-1.3.17
475 1 Mehdi Abaakouk
cat > dkms.conf << EOF
476 1 Mehdi Abaakouk
PACKAGE_NAME=e1000e
477 1 Mehdi Abaakouk
PACKAGE_VERSION=1.3.17
478 1 Mehdi Abaakouk
CLEAN="make -C src/ clean"
479 1 Mehdi Abaakouk
MAKE[0]="make -C src/"
480 1 Mehdi Abaakouk
BUILT_MODULE_NAME[0]=e1000e
481 1 Mehdi Abaakouk
BUILT_MODULE_LOCATION[0]="src/"
482 1 Mehdi Abaakouk
DEST_MODULE_LOCATION[0]="/kernel/updates/dkms"
483 1 Mehdi Abaakouk
AUTOINSTALL="YES"
484 1 Mehdi Abaakouk
EOF
485 1 Mehdi Abaakouk
dkms add -m e1000e -v 1.3.17
486 1 Mehdi Abaakouk
dkms build -m e1000e -v 1.3.17
487 1 Mehdi Abaakouk
dkms install -m e1000e -v 1.3.17
488 1 Mehdi Abaakouk
reboot
489 1 Mehdi Abaakouk
</pre>
490 1 Mehdi Abaakouk
491 1 Mehdi Abaakouk
492 1 Mehdi Abaakouk
h2. Annexe 
493 13 Mehdi Abaakouk
494 13 Mehdi Abaakouk
h3. Configuration réseau
495 13 Mehdi Abaakouk
496 13 Mehdi Abaakouk
le script /etc/rc.local, qui s'occupe de préparer la configuration réseaux pour ganeti (avec les vlan, bridge and co)
497 13 Mehdi Abaakouk
le script /etc/rc.local.conf, contient les adresses IP de la machine et les gw
498 1 Mehdi Abaakouk
499 11 Mehdi Abaakouk
h3. Protection VNC
500 11 Mehdi Abaakouk
501 11 Mehdi Abaakouk
Le VNC de kvm est utiliser sur chaque MV.
502 11 Mehdi Abaakouk
Des règles de firewall sont automatiquement mise en place par le script /etc/ganeti/vnc-firewall pour que seul la machine gntwebmgr.tetaneutral.net soit autoriser a s'y connecter
503 11 Mehdi Abaakouk
Ce script est appelé par les hooks ganeti.
504 11 Mehdi Abaakouk
505 11 Mehdi Abaakouk
h3. Mac spoofing configuration (Actuellement désactivé)
506 11 Mehdi Abaakouk
507 1 Mehdi Abaakouk
Le script ifup de ganeti pour kvm a été modifier (ie: /etc/ganeti/kvm-vif-bridge) pour écrire la relation entre la vm, le numero de ces interfaces réseaux et ces tap.
508 1 Mehdi Abaakouk
Le fichier prends la forme suivante:
509 1 Mehdi Abaakouk
munin.tetaneutral.net:0:tap3
510 1 Mehdi Abaakouk
trac.tetaneutral.net:0:tap5
511 1 Mehdi Abaakouk
munin.tetaneutral.net:1:tap5
512 1 Mehdi Abaakouk
Les règles ebtables sont écrites par le script /etc/ganeti/spoofing/spoofing-protection avec les informations de ce fichier.
513 1 Mehdi Abaakouk
Les scripts de hook de ganeti (ie:/etc/ganeti/hook/) utilise ce script, pour lancer ou arreter le spoofing.
514 1 Mehdi Abaakouk
515 11 Mehdi Abaakouk
h3. Patch maison pour ganeti
516 1 Mehdi Abaakouk
517 11 Mehdi Abaakouk
Ajout de l'option -D à sfdisk au script /usr/share/ganeti/os/debootstrap/common.sh ligne 84 pour créer des partitions avec assez d'espace pour grub
518 11 Mehdi Abaakouk
Celui-ci est décrit dans l'installation d'une node aussi.
519 1 Mehdi Abaakouk
520 11 Mehdi Abaakouk
h3. J'ai n'est pas trouvé mon bonheur, comment je vais faire ?!
521 1 Mehdi Abaakouk
522 11 Mehdi Abaakouk
Voici quelques ressources:
523 11 Mehdi Abaakouk
* http://docs.ganeti.org/ganeti/current/html/
524 11 Mehdi Abaakouk
* http://docs.ganeti.org/ganeti/2.1/man/
525 11 Mehdi Abaakouk
* http://wiki.osuosl.org/public/ganeti/
526 11 Mehdi Abaakouk
Ou bien je demande à sileht d'écrire le use case qui me manque s'il à le temps