Projet

Général

Profil

Cluster Ganeti » Historique » Version 13

Mehdi Abaakouk, 19/03/2012 16:03

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