Projet

Général

Profil

Cluster Ganeti » Historique » Version 18

Laurent GUERBY, 21/05/2012 22:47

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