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