Projet

Général

Profil

Cluster Ganeti » Historique » Version 16

Mehdi Abaakouk, 19/03/2012 16:07

1 16 Mehdi Abaakouk
h1. Cluster Ganeti
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 14 Mehdi Abaakouk
h3. 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 15 Mehdi Abaakouk
h3. Copier un VM sur une autre machine
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 1 Mehdi Abaakouk
183 15 Mehdi Abaakouk
A savoir l'image utilise les pilotes kvm "virtio", si on souhaite utiliser la VM avec un autre logiciel de virtualisation,
184 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
185 11 Mehdi Abaakouk
186 14 Mehdi Abaakouk
h3. Monter une partition de machine virtuelle sur la machine hôte (!Attention DANGER!)
187 11 Mehdi Abaakouk
188 11 Mehdi Abaakouk
Arret de la machine et activation des disques
189 11 Mehdi Abaakouk
<pre>
190 11 Mehdi Abaakouk
 $ gnt-instance stop VMNAME.tetaneutral.net
191 11 Mehdi Abaakouk
 $ gnt-instance activate-disks VMNAME.tetaneutral.net
192 11 Mehdi Abaakouk
 h1.tetaneutral.net:disk/0:/dev/drbd34
193 11 Mehdi Abaakouk
</pre>
194 11 Mehdi Abaakouk
195 11 Mehdi Abaakouk
Ensuite pour voir les partitions du disque, ici le /dev/drbd34:
196 11 Mehdi Abaakouk
<pre>
197 11 Mehdi Abaakouk
kpartx -l /dev/drbd34
198 11 Mehdi Abaakouk
</pre>
199 11 Mehdi Abaakouk
200 11 Mehdi Abaakouk
On créé ensuite les partitions dans /dev avec devmapper
201 11 Mehdi Abaakouk
<pre>
202 11 Mehdi Abaakouk
kpartx -a /dev/drbd34
203 11 Mehdi Abaakouk
ls -la /dev/mapper/drbd34*
204 11 Mehdi Abaakouk
</pre>
205 11 Mehdi Abaakouk
206 11 Mehdi Abaakouk
A partir de maintenant on peut faire mumuse avec la partition, exemple:
207 11 Mehdi Abaakouk
<pre>
208 11 Mehdi Abaakouk
mount /dev/mapper/drbd34p1 /mnt/
209 11 Mehdi Abaakouk
....
210 11 Mehdi Abaakouk
umount /mnt
211 11 Mehdi Abaakouk
</pre>
212 11 Mehdi Abaakouk
213 11 Mehdi Abaakouk
Puis *très important*, il faut nettoyer devmapper et déactiver les disk pour ganeti
214 11 Mehdi Abaakouk
215 11 Mehdi Abaakouk
<pre>
216 11 Mehdi Abaakouk
kpartx -d /dev/drbd34
217 11 Mehdi Abaakouk
gnt-instance deactivate-disks VMNAME.tetaneutral.net
218 11 Mehdi Abaakouk
gnt-instance start VMNAME.tetaneutral.net
219 11 Mehdi Abaakouk
</pre>
220 11 Mehdi Abaakouk
221 1 Mehdi Abaakouk
h2. Administration des serveurs/nodes
222 10 Mehdi Abaakouk
223 10 Mehdi Abaakouk
h3. Éteindre/rebooter provisoirement un des serveurs sans coupure de service
224 10 Mehdi Abaakouk
225 10 Mehdi Abaakouk
La procédure est la suivante:
226 10 Mehdi Abaakouk
 - migration des machines virtuelles sur leurs secondaires
227 10 Mehdi Abaakouk
 - Arret/Ralummage ou reboot du serveur
228 10 Mehdi Abaakouk
 - remigration des machines virtuelles sur le serveur hX
229 1 Mehdi Abaakouk
230 10 Mehdi Abaakouk
<pre>
231 10 Mehdi Abaakouk
gnt-node migrate hX
232 10 Mehdi Abaakouk
shutdown -h now # ou reboot
233 1 Mehdi Abaakouk
hbal -L --no-disk-moves -X
234 1 Mehdi Abaakouk
</pre>
235 10 Mehdi Abaakouk
236 10 Mehdi Abaakouk
La resynchro drbd est automatique.
237 10 Mehdi Abaakouk
238 10 Mehdi Abaakouk
h3. L'extinction d'une node proprement dans le but de la désactivé du cluster
239 1 Mehdi Abaakouk
240 10 Mehdi Abaakouk
<pre>
241 10 Mehdi Abaakouk
gnt-node migrate hX # gnt-node failover hX
242 10 Mehdi Abaakouk
gnt-node evacuate -I hail hX
243 1 Mehdi Abaakouk
gnt-node modify -O yes hX
244 1 Mehdi Abaakouk
</pre>
245 10 Mehdi Abaakouk
246 1 Mehdi Abaakouk
Ici toutes les VMs seront migrés et les données auront été déplacé vers les autres nodes.
247 10 Mehdi Abaakouk
248 1 Mehdi Abaakouk
h3. Vérifier l'état du cluster
249 10 Mehdi Abaakouk
250 10 Mehdi Abaakouk
Sur le masternode normalement h1 faire:
251 1 Mehdi Abaakouk
252 10 Mehdi Abaakouk
<pre>
253 1 Mehdi Abaakouk
gnt-cluster verify
254 1 Mehdi Abaakouk
</pre>
255 10 Mehdi Abaakouk
256 1 Mehdi Abaakouk
h3. Change le node principal (masternode) de "ganeti", celui qui permet de lancer des commandes ganeti.
257 10 Mehdi Abaakouk
258 1 Mehdi Abaakouk
Allez sur un node, taper ceci et il deviendra "maternode":
259 1 Mehdi Abaakouk
260 1 Mehdi Abaakouk
<pre>
261 1 Mehdi Abaakouk
gnt-node masterfailover
262 1 Mehdi Abaakouk
</pre>
263 10 Mehdi Abaakouk
264 1 Mehdi Abaakouk
h3. Gestion des fichiers de configuration (ie: /etc/ganeti, /etc/hosts, /etc/rc.local, ...)
265 10 Mehdi Abaakouk
266 1 Mehdi Abaakouk
Tous les fichiers de configuration à synchroniser entre toutes les nodes du cluster sont contenues dans ce script:
267 1 Mehdi Abaakouk
268 1 Mehdi Abaakouk
<pre>
269 1 Mehdi Abaakouk
/etc/ganeti/pushconf.sh
270 1 Mehdi Abaakouk
</pre>
271 10 Mehdi Abaakouk
272 1 Mehdi Abaakouk
Le lancer recopie ces fichiers du masternode vers les autres nodes.
273 10 Mehdi Abaakouk
274 10 Mehdi Abaakouk
h3. Désactiver un serveur qui serait HS du cluster provisoirement.
275 10 Mehdi Abaakouk
276 10 Mehdi Abaakouk
On bascule les machines qui n'ont pas le failover en automatique
277 10 Mehdi Abaakouk
278 10 Mehdi Abaakouk
<pre>
279 10 Mehdi Abaakouk
gnt-node failover [ --ignore-consistency ] h2
280 10 Mehdi Abaakouk
</pre>
281 10 Mehdi Abaakouk
282 10 Mehdi Abaakouk
le --ignore-consistency permet de forcer ganeti à ne pas contrôler le disk avant le basculement
283 10 Mehdi Abaakouk
284 10 Mehdi Abaakouk
On peux (optionnellement) déplacer les disques durs secondaires des VMs
285 10 Mehdi Abaakouk
286 10 Mehdi Abaakouk
gnt-node evacuate [--early-release]  -I hail hX
287 10 Mehdi Abaakouk
288 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)
289 10 Mehdi Abaakouk
290 10 Mehdi Abaakouk
Puis on désactive la node:
291 10 Mehdi Abaakouk
292 10 Mehdi Abaakouk
<pre>
293 10 Mehdi Abaakouk
gnt-node modify -O yes h2
294 10 Mehdi Abaakouk
</pre>
295 10 Mehdi Abaakouk
296 1 Mehdi Abaakouk
297 11 Mehdi Abaakouk
h3. Réinsertion dans le cluster d'un node désactivé
298 10 Mehdi Abaakouk
299 10 Mehdi Abaakouk
- On réactive la node
300 10 Mehdi Abaakouk
- On remet dessus des machines et des disques en répartissant la charge du cluster
301 10 Mehdi Abaakouk
302 10 Mehdi Abaakouk
<pre>
303 10 Mehdi Abaakouk
gnt-node modify -O no h2
304 10 Mehdi Abaakouk
hbal -L -X
305 10 Mehdi Abaakouk
</pre>
306 10 Mehdi Abaakouk
307 10 Mehdi Abaakouk
308 10 Mehdi Abaakouk
h2. Setup d'un nouveau NODE
309 10 Mehdi Abaakouk
310 10 Mehdi Abaakouk
h3. Installation
311 10 Mehdi Abaakouk
312 1 Mehdi Abaakouk
* Installer squeeze basique avec juste ssh
313 1 Mehdi Abaakouk
* Ajouter wheezy dans /etc/apt/sources.list
314 1 Mehdi Abaakouk
315 1 Mehdi Abaakouk
<pre>
316 1 Mehdi Abaakouk
# deb http://ftp.fr.debian.org/debian/ squeeze main
317 1 Mehdi Abaakouk
deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free
318 1 Mehdi Abaakouk
deb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free
319 1 Mehdi Abaakouk
deb http://ftp.fr.debian.org/debian/ sid main contrib non-free
320 1 Mehdi Abaakouk
deb-src http://ftp.fr.debian.org/debian/ sid main contrib non-free
321 1 Mehdi Abaakouk
deb http://ftp.de.debian.org/debian-backports/ squeeze-backports main contrib non-free
322 1 Mehdi Abaakouk
deb-src http://ftp.de.debian.org/debian-backports/ squeeze-backports main contrib non-free
323 3 Mehdi Abaakouk
deb http://security.debian.org/ squeeze/updates main
324 3 Mehdi Abaakouk
deb-src http://security.debian.org/ squeeze/updates main
325 4 Mehdi Abaakouk
# squeeze-updates, previously known as 'volatile'
326 3 Mehdi Abaakouk
deb http://ftp.fr.debian.org/debian/ squeeze-updates main
327 3 Mehdi Abaakouk
deb-src http://ftp.fr.debian.org/debian/ squeeze-updates main
328 3 Mehdi Abaakouk
</pre>
329 3 Mehdi Abaakouk
330 1 Mehdi Abaakouk
* Allouer un port avec 3131, 3175, 3195 tagged sur le procurve
331 5 Mehdi Abaakouk
* Monter le reseau manuellement IP X
332 5 Mehdi Abaakouk
333 7 Mehdi Abaakouk
<pre>
334 7 Mehdi Abaakouk
ip link add link eth0 name eth0.3131 type vlan id 3131
335 8 Mehdi Abaakouk
ip link set eth0.3131 up
336 8 Mehdi Abaakouk
ip addr add 91.224.149.15X/25 dev eth0.3131
337 8 Mehdi Abaakouk
</pre>
338 1 Mehdi Abaakouk
339 8 Mehdi Abaakouk
* Creer /etc/rc.local.conf avec X et Y
340 1 Mehdi Abaakouk
341 7 Mehdi Abaakouk
<pre>
342 8 Mehdi Abaakouk
IP_3131="91.224.149.15X/25"
343 8 Mehdi Abaakouk
GW_3131="91.224.149.254"
344 8 Mehdi Abaakouk
IP_3175="192.168.3.Y/24"
345 1 Mehdi Abaakouk
KVM_DISKS="sdb"
346 8 Mehdi Abaakouk
</pre>
347 1 Mehdi Abaakouk
348 1 Mehdi Abaakouk
* Installer les packages
349 8 Mehdi Abaakouk
350 8 Mehdi Abaakouk
<pre>
351 8 Mehdi Abaakouk
#TODO liste en fichier commit qqpart
352 8 Mehdi Abaakouk
#TODO: passer a une version compilée en local de ganeti pour eviter les update de version wheezy
353 7 Mehdi Abaakouk
dpkg --get-selections | ssh root@h48 dpkg --set-selections
354 8 Mehdi Abaakouk
ssh root@h48 apt-get dselect-upgrade
355 7 Mehdi Abaakouk
</pre>
356 8 Mehdi Abaakouk
357 7 Mehdi Abaakouk
* changer le filter lvm dans /etc/lvm/lvm.conf pour
358 8 Mehdi Abaakouk
359 8 Mehdi Abaakouk
<pre>
360 8 Mehdi Abaakouk
# filter = [ "a/.*/" ]
361 7 Mehdi Abaakouk
filter = ["r|/dev/cdrom|", "r|/dev/drbd[0-9]+|" ]
362 5 Mehdi Abaakouk
</pre>
363 5 Mehdi Abaakouk
364 6 Mehdi Abaakouk
* vider le volume group et le recreer
365 5 Mehdi Abaakouk
366 1 Mehdi Abaakouk
<pre>
367 5 Mehdi Abaakouk
pvs
368 1 Mehdi Abaakouk
vgs
369 1 Mehdi Abaakouk
lvs
370 1 Mehdi Abaakouk
lvremove
371 1 Mehdi Abaakouk
vgcreate kvmvg /dev/sdb... #TODO check
372 1 Mehdi Abaakouk
</pre>
373 1 Mehdi Abaakouk
374 1 Mehdi Abaakouk
* activer drbd
375 1 Mehdi Abaakouk
376 5 Mehdi Abaakouk
<pre>
377 5 Mehdi Abaakouk
echo "drbd minor_count=128 usermode_helper=/bin/true" >> /etc/modules
378 6 Mehdi Abaakouk
</pre>
379 6 Mehdi Abaakouk
380 5 Mehdi Abaakouk
* munin:
381 5 Mehdi Abaakouk
dans /etc/munin/munin-node.conf ajouter: allow ^91\.224\.149\.194$
382 5 Mehdi Abaakouk
* TODO patch munin Loic
383 1 Mehdi Abaakouk
http://trac.fsffrance.org/wiki/PatchInventory#Munin
384 5 Mehdi Abaakouk
* reboot
385 1 Mehdi Abaakouk
* Installer le node dans le cluster ganeti apres s'etre assure que la version de ganeti est bien la meme
386 5 Mehdi Abaakouk
387 1 Mehdi Abaakouk
<pre>
388 1 Mehdi Abaakouk
dpkg -l|grep -i ganeti
389 5 Mehdi Abaakouk
gnt-node add h48
390 5 Mehdi Abaakouk
/etc/ganeti/pushconf.sh
391 5 Mehdi Abaakouk
</pre>
392 5 Mehdi Abaakouk
393 5 Mehdi Abaakouk
Appliquer ce patch à ganeti-instance-debootstrap:
394 5 Mehdi Abaakouk
395 5 Mehdi Abaakouk
<pre>
396 5 Mehdi Abaakouk
--- /usr/share/ganeti/os/debootstrap/common.sh.ori  2010-09-15 22:34:12.000000000 +0200
397 5 Mehdi Abaakouk
+++ /usr/share/ganeti/os/debootstrap/common.sh  2011-07-27 12:33:55.695617766 +0200
398 5 Mehdi Abaakouk
@@ -91,7 +91,7 @@
399 5 Mehdi Abaakouk
# some versions of sfdisk need manual specification of
400 1 Mehdi Abaakouk
# head/sectors for devices such as drbd which don't
401 5 Mehdi Abaakouk
# report geometry
402 5 Mehdi Abaakouk
-  sfdisk -H 255 -S 63 --quiet --Linux "$1" <<EOF
403 5 Mehdi Abaakouk
+  sfdisk -H 255 -S 63 -D --quiet --Linux "$1" <<EOF
404 6 Mehdi Abaakouk
0,,L,*
405 5 Mehdi Abaakouk
EOF
406 3 Mehdi Abaakouk
}
407 1 Mehdi Abaakouk
</pre>
408 1 Mehdi Abaakouk
409 11 Mehdi Abaakouk
Ci dessous ajouter dkms et r8168 si nécessaire.
410 3 Mehdi Abaakouk
411 15 Mehdi Abaakouk
h3. Pilotes additionnel
412 1 Mehdi Abaakouk
413 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).
414 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)
415 1 Mehdi Abaakouk
416 1 Mehdi Abaakouk
<pre>
417 1 Mehdi Abaakouk
apt-get install gcc dkms
418 1 Mehdi Abaakouk
cd /usr/src
419 1 Mehdi Abaakouk
wget http://url_to_pilot/r8168-8.024.00.tar.bz2
420 1 Mehdi Abaakouk
tar -xjf r8168-8.024.00.tar.bz2
421 1 Mehdi Abaakouk
cd r8168-8.024.00
422 1 Mehdi Abaakouk
cat > dkms.conf << EOF
423 1 Mehdi Abaakouk
PACKAGE_NAME=r8168
424 1 Mehdi Abaakouk
PACKAGE_VERSION=8.024.00
425 1 Mehdi Abaakouk
MAKE[0]="make"
426 1 Mehdi Abaakouk
BUILT_MODULE_NAME[0]=r8168
427 1 Mehdi Abaakouk
BUILT_MODULE_LOCATION[0]="src/"
428 1 Mehdi Abaakouk
DEST_MODULE_LOCATION[0]="/kernel/updates/dkms"
429 1 Mehdi Abaakouk
AUTOINSTALL="YES"
430 1 Mehdi Abaakouk
EOF
431 1 Mehdi Abaakouk
dkms add -m r8168 -v 8.024.00
432 1 Mehdi Abaakouk
dkms build -m r8168 -v 8.024.00
433 1 Mehdi Abaakouk
dkms install -m r8168 -v 8.024.00
434 1 Mehdi Abaakouk
echo "r8168" >> /etc/modules
435 1 Mehdi Abaakouk
echo "blacklist r8169" >> /etc/modprobe.d/blacklist-network.conf
436 1 Mehdi Abaakouk
update-initramfs -u
437 1 Mehdi Abaakouk
reboot
438 1 Mehdi Abaakouk
</pre>
439 1 Mehdi Abaakouk
440 1 Mehdi Abaakouk
Pour les machines a base de e1000e:
441 1 Mehdi Abaakouk
442 1 Mehdi Abaakouk
<pre>
443 1 Mehdi Abaakouk
apt-get install gcc dkms
444 1 Mehdi Abaakouk
cd /usr/src
445 1 Mehdi Abaakouk
wget http://downloadmirror.intel.com/15817/eng/e1000e-1.3.17.tar.gz
446 1 Mehdi Abaakouk
tar -xzf e1000e-1.3.17.tar.gz
447 1 Mehdi Abaakouk
cd e1000e-1.3.17
448 1 Mehdi Abaakouk
cat > dkms.conf << EOF
449 1 Mehdi Abaakouk
PACKAGE_NAME=e1000e
450 1 Mehdi Abaakouk
PACKAGE_VERSION=1.3.17
451 1 Mehdi Abaakouk
CLEAN="make -C src/ clean"
452 1 Mehdi Abaakouk
MAKE[0]="make -C src/"
453 1 Mehdi Abaakouk
BUILT_MODULE_NAME[0]=e1000e
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 e1000e -v 1.3.17
459 1 Mehdi Abaakouk
dkms build -m e1000e -v 1.3.17
460 1 Mehdi Abaakouk
dkms install -m e1000e -v 1.3.17
461 1 Mehdi Abaakouk
reboot
462 1 Mehdi Abaakouk
</pre>
463 1 Mehdi Abaakouk
464 1 Mehdi Abaakouk
465 1 Mehdi Abaakouk
h2. Annexe 
466 13 Mehdi Abaakouk
467 13 Mehdi Abaakouk
h3. Configuration réseau
468 13 Mehdi Abaakouk
469 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)
470 13 Mehdi Abaakouk
le script /etc/rc.local.conf, contient les adresses IP de la machine et les gw
471 1 Mehdi Abaakouk
472 11 Mehdi Abaakouk
h3. Protection VNC
473 11 Mehdi Abaakouk
474 11 Mehdi Abaakouk
Le VNC de kvm est utiliser sur chaque MV.
475 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
476 11 Mehdi Abaakouk
Ce script est appelé par les hooks ganeti.
477 11 Mehdi Abaakouk
478 11 Mehdi Abaakouk
h3. Mac spoofing configuration (Actuellement désactivé)
479 11 Mehdi Abaakouk
480 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.
481 1 Mehdi Abaakouk
Le fichier prends la forme suivante:
482 1 Mehdi Abaakouk
munin.tetaneutral.net:0:tap3
483 1 Mehdi Abaakouk
trac.tetaneutral.net:0:tap5
484 1 Mehdi Abaakouk
munin.tetaneutral.net:1:tap5
485 1 Mehdi Abaakouk
Les règles ebtables sont écrites par le script /etc/ganeti/spoofing/spoofing-protection avec les informations de ce fichier.
486 1 Mehdi Abaakouk
Les scripts de hook de ganeti (ie:/etc/ganeti/hook/) utilise ce script, pour lancer ou arreter le spoofing.
487 1 Mehdi Abaakouk
488 11 Mehdi Abaakouk
h3. Patch maison pour ganeti
489 1 Mehdi Abaakouk
490 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
491 11 Mehdi Abaakouk
Celui-ci est décrit dans l'installation d'une node aussi.
492 1 Mehdi Abaakouk
493 11 Mehdi Abaakouk
h3. J'ai n'est pas trouvé mon bonheur, comment je vais faire ?!
494 1 Mehdi Abaakouk
495 11 Mehdi Abaakouk
Voici quelques ressources:
496 11 Mehdi Abaakouk
* http://docs.ganeti.org/ganeti/current/html/
497 11 Mehdi Abaakouk
* http://docs.ganeti.org/ganeti/2.1/man/
498 11 Mehdi Abaakouk
* http://wiki.osuosl.org/public/ganeti/
499 11 Mehdi Abaakouk
Ou bien je demande à sileht d'écrire le use case qui me manque s'il à le temps