Projet

Général

Profil

Cluster Ganeti » Historique » Version 10

Mehdi Abaakouk, 19/03/2012 15:54

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