Projet

Général

Profil

Openstack Management TTNN » Historique » Version 72

Mehdi Abaakouk, 09/03/2017 08:01

1 3 Mehdi Abaakouk
{{>toc}}
2 3 Mehdi Abaakouk
3 1 Mehdi Abaakouk
h1. Openstack Management TTNN
4 1 Mehdi Abaakouk
5 63 Mehdi Abaakouk
h2. Liens
6 1 Mehdi Abaakouk
7 63 Mehdi Abaakouk
* [[Management_Cluster_Ceph]]
8 63 Mehdi Abaakouk
* [[Openstack Setup VM pas dans openstack]]
9 63 Mehdi Abaakouk
* [[Openstack Installation nouvelle node du cluster]]
10 63 Mehdi Abaakouk
* [[Openstack Installation TTNN]]
11 63 Mehdi Abaakouk
* "Openstack tools for ttnn":/projects/git-tetaneutral-net/repository/openstack-tools
12 11 Mehdi Abaakouk
13 54 Laurent GUERBY
h2. Avant toute operation Openstack
14 54 Laurent GUERBY
15 54 Laurent GUERBY
*Tres important* avant toute operation Openstack lancer sur g1 :
16 54 Laurent GUERBY
17 54 Laurent GUERBY
<pre>
18 54 Laurent GUERBY
root@g1:~# . os.conf
19 54 Laurent GUERBY
root@g1:~# tools/os-overview.sh 
20 54 Laurent GUERBY
</pre>
21 54 Laurent GUERBY
22 54 Laurent GUERBY
Si une ligne n'est pas OK relancer le composant et relancer os-overview.
23 54 Laurent GUERBY
24 72 Mehdi Abaakouk
h2. Création VMs
25 72 Mehdi Abaakouk
26 72 Mehdi Abaakouk
Example d'un VM sur ssd avec 2 disques (hard) additionels de 500G
27 72 Mehdi Abaakouk
28 72 Mehdi Abaakouk
<pre>
29 72 Mehdi Abaakouk
$ openstack ttnn create --ssd --ip <ipv4> --flavor 1vcpu-1024ram --image debian-jessie-scsi <name>.tetaneutral.net
30 72 Mehdi Abaakouk
$ openstack volume create --type ceph --size 500 <name>.tetaneutral.net-disk-1
31 72 Mehdi Abaakouk
$ openstack volume create --type ceph --size 500 <name>.tetaneutral.net-disk-2
32 72 Mehdi Abaakouk
$ openstack server add volume <name>.tetaneutral.net <name>.tetaneutral.net-disk-1
33 72 Mehdi Abaakouk
$ openstack server add volume <name>.tetaneutral.net <name>.tetaneutral.net-disk-2
34 72 Mehdi Abaakouk
</pre>
35 72 Mehdi Abaakouk
36 72 Mehdi Abaakouk
Ensuite dans la VM:
37 72 Mehdi Abaakouk
38 72 Mehdi Abaakouk
<pre>
39 72 Mehdi Abaakouk
mkfs.ext4 -E nodiscard /dev/sdb
40 72 Mehdi Abaakouk
mkfs.ext4 -E nodiscard /dev/sdc
41 72 Mehdi Abaakouk
tune2fs -c 0 -i 0 -m 0 /dev/sdb
42 72 Mehdi Abaakouk
tune2fs -c 0 -i 0 -m 0 /dev/sdc
43 72 Mehdi Abaakouk
</pre>
44 72 Mehdi Abaakouk
45 72 Mehdi Abaakouk
/!\ Ne pas mettre nodiscard pour les SSDs /!\
46 72 Mehdi Abaakouk
47 1 Mehdi Abaakouk
h2. Opération sur les VMs (des membres)
48 46 Mehdi Abaakouk
49 46 Mehdi Abaakouk
h3. Console série
50 46 Mehdi Abaakouk
51 46 Mehdi Abaakouk
Dans la VM, pour systemd:
52 46 Mehdi Abaakouk
53 1 Mehdi Abaakouk
<pre>
54 72 Mehdi Abaakouk
$ systemctl enable serial-getty@ttyS0.service
55 46 Mehdi Abaakouk
$ systemctl start serial-getty@ttyS0.service
56 46 Mehdi Abaakouk
</pre>
57 46 Mehdi Abaakouk
58 46 Mehdi Abaakouk
Dans la VM, pour sysv
59 46 Mehdi Abaakouk
60 46 Mehdi Abaakouk
<pre>
61 46 Mehdi Abaakouk
$ cat >> /etc/inittab <<EOF
62 46 Mehdi Abaakouk
T2:2345:respawn:/sbin/getty ttyS0 115200 vt102
63 46 Mehdi Abaakouk
EOF
64 46 Mehdi Abaakouk
$ init q
65 46 Mehdi Abaakouk
</pre>
66 46 Mehdi Abaakouk
67 46 Mehdi Abaakouk
Sur g1:
68 46 Mehdi Abaakouk
69 46 Mehdi Abaakouk
<pre>
70 46 Mehdi Abaakouk
$ /root/tools/novaconsole ns2.tetaneutral.net
71 46 Mehdi Abaakouk
WARNING:novaconsole.client:connected to: ws://openstack.tetaneutral.net:6083/?token=4b10cdbe-2a69-4de1-b9e3-dc378096b104
72 46 Mehdi Abaakouk
WARNING:novaconsole.client:type "~." to disconnect
73 46 Mehdi Abaakouk
74 46 Mehdi Abaakouk
Debian GNU/Linux 8 ns2 ttyS0
75 46 Mehdi Abaakouk
ns2 login:
76 46 Mehdi Abaakouk
</pre>
77 46 Mehdi Abaakouk
78 46 Mehdi Abaakouk
Si le message suivant apparaît, il faut faire un hard reboot de la machine pour ajouter la console serie à la VM: 
79 46 Mehdi Abaakouk
<pre>
80 46 Mehdi Abaakouk
ERROR:novaconsole:failed to connect to serial console: Unavailable console type serial. (HTTP 400)
81 46 Mehdi Abaakouk
</pre>
82 46 Mehdi Abaakouk
83 17 Mehdi Abaakouk
h3. Voir la console graphique sans spice-html5:
84 17 Mehdi Abaakouk
85 17 Mehdi Abaakouk
Copier le script suivant 'gvnc' sur ca machine:
86 17 Mehdi Abaakouk
87 17 Mehdi Abaakouk
<pre>
88 17 Mehdi Abaakouk
#!/bin/bash
89 17 Mehdi Abaakouk
vm=$1
90 17 Mehdi Abaakouk
info=($(ssh openstack.tetaneutral.net -p 2222 -l root -- "mysql nova --skip-column-names --batch -e 'select host, uuid from instances where display_name=\"$vm\";'"))
91 17 Mehdi Abaakouk
92 17 Mehdi Abaakouk
if [ "${info[0]}" == "mysql" ]; then
93 17 Mehdi Abaakouk
    echo "Error in mysql request"
94 17 Mehdi Abaakouk
    exit 1
95 17 Mehdi Abaakouk
fi
96 17 Mehdi Abaakouk
97 17 Mehdi Abaakouk
hypervisor=${info[0]}.tetaneutral.net
98 17 Mehdi Abaakouk
uuid=${info[1]}
99 17 Mehdi Abaakouk
spice_port=$(ssh ${hypervisor} -p 2222 -l root virsh domdisplay ${uuid} | awk -F: '{print $3}')
100 17 Mehdi Abaakouk
101 17 Mehdi Abaakouk
echo "$vm on $hypervisor port $spice_port"
102 17 Mehdi Abaakouk
ssh -N $hypervisor -p 2222 -l root -L 5910:localhost:${spice_port} &
103 17 Mehdi Abaakouk
pid=$!
104 17 Mehdi Abaakouk
105 17 Mehdi Abaakouk
106 17 Mehdi Abaakouk
cleanup(){
107 17 Mehdi Abaakouk
    kill $pid
108 17 Mehdi Abaakouk
}
109 17 Mehdi Abaakouk
110 17 Mehdi Abaakouk
trap cleanup EXIT
111 17 Mehdi Abaakouk
112 17 Mehdi Abaakouk
sleep 2
113 17 Mehdi Abaakouk
remote-viewer spice://localhost:5910/
114 17 Mehdi Abaakouk
</pre>
115 17 Mehdi Abaakouk
116 17 Mehdi Abaakouk
Puis 
117 17 Mehdi Abaakouk
118 17 Mehdi Abaakouk
<pre>
119 17 Mehdi Abaakouk
sudo apt-get install virt-viewer
120 17 Mehdi Abaakouk
./gvnc puppet.openstack.net
121 17 Mehdi Abaakouk
</pre>
122 17 Mehdi Abaakouk
123 17 Mehdi Abaakouk
124 1 Mehdi Abaakouk
h3. Reboot VM en error
125 1 Mehdi Abaakouk
126 1 Mehdi Abaakouk
<pre>
127 1 Mehdi Abaakouk
nova reset-state --active xxx.tetaneutral.net
128 1 Mehdi Abaakouk
nova reboot --hard --poll xxx.tetaneutral.net
129 1 Mehdi Abaakouk
</pre>
130 1 Mehdi Abaakouk
131 6 Laurent GUERBY
h3. Shutdown une VM
132 5 Laurent GUERBY
133 5 Laurent GUERBY
<pre>
134 5 Laurent GUERBY
nova stop xxx.tetaneutral.net
135 5 Laurent GUERBY
</pre>
136 5 Laurent GUERBY
137 5 Laurent GUERBY
A noter que suspend fait une sauvegarde de la RAM comme sur un laptop. shelve est bugué ne pas utiliser.
138 1 Mehdi Abaakouk
139 7 Laurent GUERBY
h3. Effacer une VM
140 6 Laurent GUERBY
141 6 Laurent GUERBY
<pre>
142 1 Mehdi Abaakouk
nova delete xxx.tetaneutral.net
143 7 Laurent GUERBY
</pre>
144 7 Laurent GUERBY
145 7 Laurent GUERBY
h3. Disques de VM
146 7 Laurent GUERBY
147 7 Laurent GUERBY
Pour renommer (et permettre a boot-disk de recreer) ou effacer :
148 7 Laurent GUERBY
149 7 Laurent GUERBY
<pre>
150 7 Laurent GUERBY
cinder list
151 7 Laurent GUERBY
cinder rename <ID> <newname>
152 7 Laurent GUERBY
cinder delete <ID_or_Name>
153 6 Laurent GUERBY
</pre>
154 5 Laurent GUERBY
155 52 Mehdi Abaakouk
h3. Offline fsck
156 52 Mehdi Abaakouk
157 52 Mehdi Abaakouk
Récuperer l'id et l'hyperviseur de la VM
158 52 Mehdi Abaakouk
<pre>
159 52 Mehdi Abaakouk
# nova stop VMNAME.tetaneutral.net
160 52 Mehdi Abaakouk
# nova show VMNAME.tetaneutral.net | grep -e 'host ' -e ' id '
161 52 Mehdi Abaakouk
| OS-EXT-SRV-ATTR:host                 | g1                                                       |
162 52 Mehdi Abaakouk
| id                                   | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0                     |
163 52 Mehdi Abaakouk
</pre>
164 52 Mehdi Abaakouk
165 52 Mehdi Abaakouk
Aller sur l'hyperviseur en question, puis:
166 52 Mehdi Abaakouk
<pre>
167 52 Mehdi Abaakouk
# guestfish -d 918e0ec7-0909-423c-9a67-15b5ef7c7ae0
168 52 Mehdi Abaakouk
><fs> run
169 52 Mehdi Abaakouk
><fs> list-filesystems
170 52 Mehdi Abaakouk
/dev/sda: iso9660
171 52 Mehdi Abaakouk
/dev/sdb1: ext4
172 52 Mehdi Abaakouk
><fs> e2fsck-f /dev/sdb1
173 64 Laurent GUERBY
174 64 Laurent GUERBY
# ou 
175 64 Laurent GUERBY
e2fsck /dev/sdb1 forceall:true
176 52 Mehdi Abaakouk
</pre>
177 52 Mehdi Abaakouk
178 58 Laurent GUERBY
Ou bien sur la machine qui host la VM :
179 57 Mehdi Abaakouk
180 57 Mehdi Abaakouk
<pre>
181 57 Mehdi Abaakouk
# virt-rescue 918e0ec7-0909-423c-9a67-15b5ef7c7ae0
182 58 Laurent GUERBY
><rescue> fsck -a /dev/sdb1
183 57 Mehdi Abaakouk
</pre>
184 57 Mehdi Abaakouk
185 52 Mehdi Abaakouk
Si le fsck returns une erreur, c'est donc un probleme un peu plus grave on peut faire:
186 52 Mehdi Abaakouk
187 52 Mehdi Abaakouk
<pre>
188 52 Mehdi Abaakouk
><fs> e2fsck /dev/sdb1 forceall:true
189 52 Mehdi Abaakouk
</pre>
190 52 Mehdi Abaakouk
191 68 Mehdi Abaakouk
h3. Ajout d'un disque
192 1 Mehdi Abaakouk
193 68 Mehdi Abaakouk
Note: Si la VM vient juste d'être créé bien attendre qu'elle est fini son premier boot avant ! Sinon sda et sdb sont inversé (Oui oui, merci nova...).
194 68 Mehdi Abaakouk
195 68 Mehdi Abaakouk
<pre>
196 68 Mehdi Abaakouk
openstack volume create --type ceph --size 1000 --image debian-jessie-scsi zorun.tetaneutral.net-disk-1
197 68 Mehdi Abaakouk
openstack server add volume zorun.tetaneutral.net zorun.tetaneutral.net-disk-1
198 68 Mehdi Abaakouk
</pre>
199 68 Mehdi Abaakouk
200 69 Mehdi Abaakouk
Puis dans la VM
201 69 Mehdi Abaakouk
202 69 Mehdi Abaakouk
<pre>
203 69 Mehdi Abaakouk
mkfs.ext4 /dev/sdb
204 69 Mehdi Abaakouk
tune2fs -m 0 -i 0 -c 0 /dev/sdb
205 69 Mehdi Abaakouk
</pre>
206 68 Mehdi Abaakouk
207 68 Mehdi Abaakouk
h3. Agrandissement d'un disque 
208 68 Mehdi Abaakouk
209 68 Mehdi Abaakouk
/!\ à retester à chaque update openstack vu que ca fait du sql /!\ 
210 68 Mehdi Abaakouk
211 1 Mehdi Abaakouk
Sur la machine 'openstack':
212 1 Mehdi Abaakouk
213 1 Mehdi Abaakouk
<pre>
214 56 Laurent GUERBY
root@openstack:~/tools ./sql_scripts/os-grow-disk.sh 
215 1 Mehdi Abaakouk
usage: os-grow-disk.sh CINDER_VOLUME_ID SIZE_GB
216 1 Mehdi Abaakouk
217 1 Mehdi Abaakouk
root@openstack:~/tools# ./sql_scripts/os-grow-disk.sh bc6f01cb-c6b6-4413-b2ef-1f7df0031049 60
218 1 Mehdi Abaakouk
Cinder:
219 1 Mehdi Abaakouk
bc6f01cb-c6b6-4413-b2ef-1f7df0031049 , test4-bootdisk | 40 -> 60
220 1 Mehdi Abaakouk
 
221 1 Mehdi Abaakouk
Enter YES to update
222 1 Mehdi Abaakouk
YES
223 1 Mehdi Abaakouk
Testing g3 ssh connection...
224 1 Mehdi Abaakouk
Resizing the kvm blockdevice...
225 1 Mehdi Abaakouk
Block device 'vda' is resized
226 1 Mehdi Abaakouk
Updating cinder database with the new value...
227 1 Mehdi Abaakouk
Update finish
228 1 Mehdi Abaakouk
</pre>
229 1 Mehdi Abaakouk
230 68 Mehdi Abaakouk
Puis sur la VM, plusieur cas de figure:
231 1 Mehdi Abaakouk
232 55 Mehdi Abaakouk
+Disque sans partition:+
233 1 Mehdi Abaakouk
234 1 Mehdi Abaakouk
<pre>
235 56 Laurent GUERBY
# Note: dans un screen car plutot pas rapide
236 55 Mehdi Abaakouk
resize2fs -p /dev/vdb
237 55 Mehdi Abaakouk
</pre>
238 1 Mehdi Abaakouk
239 55 Mehdi Abaakouk
+Disque avec partition avec parted récent (>= 3.1, ie: jessie, ubuntu 13.10):+
240 1 Mehdi Abaakouk
241 1 Mehdi Abaakouk
242 1 Mehdi Abaakouk
<pre> 
243 1 Mehdi Abaakouk
root@test4:~# parted /dev/vda print | grep vda
244 1 Mehdi Abaakouk
Disk /dev/vda: 64.4GB
245 1 Mehdi Abaakouk
 
246 1 Mehdi Abaakouk
root@test4# parted /dev/vda resizepart 1 
247 1 Mehdi Abaakouk
Warning: Partition /dev/vda1 is being used. Are you sure you want to continue?
248 1 Mehdi Abaakouk
Yes/No? Yes                                                               
249 1 Mehdi Abaakouk
End?  [42.9GB]? 64.4GB   # METTRE ICI LA TAILLE VU AU DESSUS                                                 
250 1 Mehdi Abaakouk
Information: You may need to update /etc/fstab.                           
251 1 Mehdi Abaakouk
252 1 Mehdi Abaakouk
root@test4:~# resize2fs /dev/vda1
253 1 Mehdi Abaakouk
resize2fs 1.42.9 (4-Feb-2014)
254 1 Mehdi Abaakouk
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
255 1 Mehdi Abaakouk
old_desc_blocks = 3, new_desc_blocks = 4
256 1 Mehdi Abaakouk
The filesystem on /dev/vda1 is now 15722400 blocks long.
257 1 Mehdi Abaakouk
258 1 Mehdi Abaakouk
root@test4:~# df -h | grep vda
259 1 Mehdi Abaakouk
/dev/vda1        60G  797M   56G   2% /
260 1 Mehdi Abaakouk
</pre>
261 1 Mehdi Abaakouk
262 55 Mehdi Abaakouk
263 55 Mehdi Abaakouk
+Disque avec partition avec vieux parted (< 3.1, ie: wheezy, vielle ubuntu):+
264 55 Mehdi Abaakouk
265 55 Mehdi Abaakouk
Pour debian wheezy, utilisation des packages ubuntu de 14.04 devrait permettre d'utiliser la méthod précendente sinon: 
266 55 Mehdi Abaakouk
(pas encore testé, à voir si le kernel veut bien reload la table des partitions après)
267 14 Laurent GUERBY
268 15 Laurent GUERBY
<pre>
269 14 Laurent GUERBY
sfdisk -d /dev/vda > vda.mbr
270 14 Laurent GUERBY
cp vda.mbr vda.mbr.ori
271 14 Laurent GUERBY
vi vda.mbr 
272 14 Laurent GUERBY
# mettre un tres grand nombre pour la fin de la partition
273 14 Laurent GUERBY
sfdisk -L -n --no-reread /dev/vda < vda.mbr
274 14 Laurent GUERBY
# cela va faire une erreur avec le max a mettre pour la fin de la partition
275 14 Laurent GUERBY
# changer la fin de la partition avec ce chiffre
276 14 Laurent GUERBY
sfdisk -L --no-reread /dev/vda < vda.mbr
277 14 Laurent GUERBY
reboot
278 16 Aymeric APLU
resize2fs -p /dev/vda1
279 14 Laurent GUERBY
</pre>
280 14 Laurent GUERBY
281 65 Mehdi Abaakouk
h3. Ajout/Suppression IP/Subnet d'une VM existante
282 49 Mehdi Abaakouk
283 65 Mehdi Abaakouk
Voir les IPs actutelles de la VM:
284 49 Mehdi Abaakouk
285 49 Mehdi Abaakouk
<pre>
286 49 Mehdi Abaakouk
# neutron port-show backup.tetaneutral.net-eth0  | grep ip_address
287 1 Mehdi Abaakouk
| allowed_address_pairs | {"ip_address": "2a01:6600:8083:d400::/56", "mac_address": "fa:16:3e:5f:07:45"}                |
288 65 Mehdi Abaakouk
| fixed_ips             | {"subnet_id": "d431cacd-3b60-4ca9-af24-eacc8e5d8671", "ip_address": "89.234.156.212"}         |
289 49 Mehdi Abaakouk
</pre>
290 1 Mehdi Abaakouk
291 65 Mehdi Abaakouk
fixed_ips sont la liste des ip directement router dans le tap de la VM (on ne peut pas mettre de masque):
292 65 Mehdi Abaakouk
* en ipv4, c'est le /32 de l'ipv4
293 65 Mehdi Abaakouk
* en ipv6, c'est le /64 de l'ipv6
294 1 Mehdi Abaakouk
295 65 Mehdi Abaakouk
allowed_address_pairs sont des subnets à router:
296 65 Mehdi Abaakouk
297 65 Mehdi Abaakouk
* en ipv4, via la premier ipv4 de fixed_ips (setup inutile et qui ne fonctionne pas, car bird ne re-export pas ce genre de route)
298 65 Mehdi Abaakouk
* en ipv6, via la link local correspondant si elle existe dans fixed_ips, sinon directement dans le tap
299 65 Mehdi Abaakouk
300 65 Mehdi Abaakouk
301 65 Mehdi Abaakouk
Ajout/Suppression d'une ip dans fixed_ips (noter que les ip ici non pas de masque):
302 65 Mehdi Abaakouk
303 1 Mehdi Abaakouk
<pre>
304 65 Mehdi Abaakouk
openstack ttnn add-ip VM_NAME 89.234.156.212
305 65 Mehdi Abaakouk
openstack ttnn add-ip VM_NAME fe80::80:12
306 65 Mehdi Abaakouk
openstack ttnn remove-ip VM_NAME 89.234.156.212
307 65 Mehdi Abaakouk
openstack ttnn remove-ip VM_NAME fe80::80:12
308 1 Mehdi Abaakouk
</pre>
309 1 Mehdi Abaakouk
310 65 Mehdi Abaakouk
Ajout/Suppression d'une ip dans allowed_address_pairs (noter que les ip ici on un masque):
311 49 Mehdi Abaakouk
312 65 Mehdi Abaakouk
<pre>
313 65 Mehdi Abaakouk
openstack ttnn add-ip VM_NAME 2a01:6600:8083:d400::/56
314 65 Mehdi Abaakouk
openstack ttnn remove-ip VM_NAME 2a01:6600:8083:d400::/56
315 65 Mehdi Abaakouk
</pre>
316 49 Mehdi Abaakouk
317 65 Mehdi Abaakouk
A titre informatif, le genre de commande neutron pour faire la même chose, mais oblige à relister tous les ips/subnet
318 65 Mehdi Abaakouk
319 65 Mehdi Abaakouk
<pre>
320 66 Mehdi Abaakouk
neutron port-update backup.tetaneutral.net-eth0 --fixed-ips type=dict list=true ip_address=89.234.156.212 ip_address=2a01:6600:8083:d400::1 ip_address=fe80::83:d4 --allowed-address-pairs type=dict list=true  ip_address=2a01:6600:8083:d400::/56
321 1 Mehdi Abaakouk
</pre>
322 1 Mehdi Abaakouk
323 1 Mehdi Abaakouk
h3. Ajout d'une interface réseau à une VM:
324 1 Mehdi Abaakouk
325 1 Mehdi Abaakouk
<pre>
326 1 Mehdi Abaakouk
$ neutron net-list | grep vlan3199
327 1 Mehdi Abaakouk
| 460f49ce-f5ed-449e-9e0f-7626bcee4379 | vlan3199         | ba3f12af-074a-4a31-9a7c-a621993e13bb 192.168.99.0/24     |
328 1 Mehdi Abaakouk
329 1 Mehdi Abaakouk
$ neutron port-create 460f49ce-f5ed-449e-9e0f-7626bcee4379 --name nagios-eth2 --fixed-ips type=dict list=true ip_address=192.168.99.248
330 1 Mehdi Abaakouk
Created a new port:
331 1 Mehdi Abaakouk
+-----------------------+---------------------------------------------------------------------------------------+
332 1 Mehdi Abaakouk
| Field                 | Value                                                                                 |
333 1 Mehdi Abaakouk
+-----------------------+---------------------------------------------------------------------------------------+
334 1 Mehdi Abaakouk
| admin_state_up        | True                                                                                  |
335 1 Mehdi Abaakouk
| allowed_address_pairs |                                                                                       |
336 1 Mehdi Abaakouk
| binding:host_id       |                                                                                       |
337 1 Mehdi Abaakouk
| binding:profile       | {}                                                                                    |
338 1 Mehdi Abaakouk
| binding:vif_details   | {}                                                                                    |
339 1 Mehdi Abaakouk
| binding:vif_type      | unbound                                                                               |
340 1 Mehdi Abaakouk
| binding:vnic_type     | normal                                                                                |
341 1 Mehdi Abaakouk
| device_id             |                                                                                       |
342 1 Mehdi Abaakouk
| device_owner          |                                                                                       |
343 1 Mehdi Abaakouk
| fixed_ips             | {"subnet_id": "ba3f12af-074a-4a31-9a7c-a621993e13bb", "ip_address": "192.168.99.248"} |
344 1 Mehdi Abaakouk
| id                    | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0                                                  |
345 1 Mehdi Abaakouk
| mac_address           | fa:16:3e:6b:32:07                                                                     |
346 1 Mehdi Abaakouk
| name                  | nagios-eth2                                                                           |
347 1 Mehdi Abaakouk
| network_id            | 460f49ce-f5ed-449e-9e0f-7626bcee4379                                                  |
348 1 Mehdi Abaakouk
| security_groups       | b6d5b5fb-a053-4f97-b964-9e1a12d243b1                                                  |
349 1 Mehdi Abaakouk
| status                | DOWN                                                                                  |
350 1 Mehdi Abaakouk
| tenant_id             | ed980105f9d047e2bee738b3f261f126                                                      |
351 1 Mehdi Abaakouk
+-----------------------+---------------------------------------------------------------------------------------+
352 1 Mehdi Abaakouk
353 1 Mehdi Abaakouk
$ nova interface-attach --port-id 918e0ec7-0909-423c-9a67-15b5ef7c7ae0   nagios.tetaneutral.net
354 1 Mehdi Abaakouk
</pre>
355 1 Mehdi Abaakouk
356 1 Mehdi Abaakouk
Dans la VM:
357 1 Mehdi Abaakouk
358 1 Mehdi Abaakouk
<pre>
359 1 Mehdi Abaakouk
$ dmesg | tail 
360 1 Mehdi Abaakouk
[ 1315.826088] virtio-pci 0000:00:06.0: using default PCI settings
361 1 Mehdi Abaakouk
[ 1315.826102] virtio-pci 0000:00:07.0: no hotplug settings from platform
362 1 Mehdi Abaakouk
[ 1315.826102] virtio-pci 0000:00:07.0: using default PCI settings
363 1 Mehdi Abaakouk
[ 1315.826116] pci 0000:00:08.0: no hotplug settings from platform
364 1 Mehdi Abaakouk
[ 1315.826117] pci 0000:00:08.0: using default PCI settings
365 1 Mehdi Abaakouk
[ 1315.826382] virtio-pci 0000:00:08.0: enabling device (0000 -> 0003)
366 1 Mehdi Abaakouk
[ 1315.829281] virtio-pci 0000:00:08.0: setting latency timer to 64
367 1 Mehdi Abaakouk
[ 1315.829535] virtio-pci 0000:00:08.0: irq 50 for MSI/MSI-X
368 1 Mehdi Abaakouk
[ 1315.829555] virtio-pci 0000:00:08.0: irq 51 for MSI/MSI-X
369 1 Mehdi Abaakouk
[ 1315.829563] virtio-pci 0000:00:08.0: irq 52 for MSI/MSI-X
370 1 Mehdi Abaakouk
371 1 Mehdi Abaakouk
$ ip l   show dev eth2
372 1 Mehdi Abaakouk
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
373 1 Mehdi Abaakouk
    link/ether fa:16:3e:6b:32:07 brd ff:ff:ff:ff:ff:ff
374 1 Mehdi Abaakouk
375 1 Mehdi Abaakouk
$ tail -4 /etc/network/interfaces
376 1 Mehdi Abaakouk
auto eth2
377 1 Mehdi Abaakouk
iface eth2 inet static
378 1 Mehdi Abaakouk
   address 192.168.99.248
379 1 Mehdi Abaakouk
   netmask 255.255.255.0
380 1 Mehdi Abaakouk
381 1 Mehdi Abaakouk
$ ifup eth2
382 1 Mehdi Abaakouk
$ ping 192.169.99.250
383 1 Mehdi Abaakouk
PING 192.169.99.250 (192.169.99.250) 56(84) bytes of data.
384 1 Mehdi Abaakouk
64 bytes from 192.169.99.250: icmp_req=1 ttl=119 time=170 ms
385 1 Mehdi Abaakouk
64 bytes from 192.169.99.250: icmp_req=2 ttl=119 time=204 ms
386 47 Mehdi Abaakouk
^C
387 47 Mehdi Abaakouk
</pre>
388 47 Mehdi Abaakouk
389 47 Mehdi Abaakouk
h3. Réinstallation/Réparation grub d'un VM
390 47 Mehdi Abaakouk
391 47 Mehdi Abaakouk
392 47 Mehdi Abaakouk
Récuperer l'id et l'hyperviseur de la VM
393 47 Mehdi Abaakouk
<pre>
394 47 Mehdi Abaakouk
# nova stop VMNAME.tetaneutral.net
395 47 Mehdi Abaakouk
# nova show VMNAME.tetaneutral.net | grep -e 'host ' -e ' id '
396 47 Mehdi Abaakouk
| OS-EXT-SRV-ATTR:host                 | g1                                                       |
397 47 Mehdi Abaakouk
| id                                   | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0                     |
398 47 Mehdi Abaakouk
</pre>
399 47 Mehdi Abaakouk
400 47 Mehdi Abaakouk
401 47 Mehdi Abaakouk
402 47 Mehdi Abaakouk
Bien attendre que la VM soir éteinte, aller sur l'hyperviseur en question, et taper
403 47 Mehdi Abaakouk
<pre>
404 67 Laurent GUERBY
virt-customize -v -d 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 --run-command 'update-grub ; grub-install /dev/sda;'
405 47 Mehdi Abaakouk
</pre>
406 47 Mehdi Abaakouk
407 47 Mehdi Abaakouk
Enfin, restart la VM
408 47 Mehdi Abaakouk
<pre>
409 19 Mehdi Abaakouk
# nova start VMNAME.tetaneutral.net
410 1 Mehdi Abaakouk
</pre>
411 19 Mehdi Abaakouk
412 19 Mehdi Abaakouk
h3. Monter le disque d'un vm sur une machine hote pour dépannage.
413 19 Mehdi Abaakouk
414 1 Mehdi Abaakouk
L’exemple montre la modification du fichier /etc/ssh/sshd_config
415 20 Alexandre GUY
416 20 Alexandre GUY
Récuperer l'id et l'hyperviseur de la VM
417 19 Mehdi Abaakouk
<pre>
418 20 Alexandre GUY
# nova stop VMNAME.tetaneutral.net
419 19 Mehdi Abaakouk
# nova show VMNAME.tetaneutral.net | grep -e 'host ' -e ' id '
420 19 Mehdi Abaakouk
| OS-EXT-SRV-ATTR:host                 | g1                                                       |
421 19 Mehdi Abaakouk
| id                                   | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0                     |
422 19 Mehdi Abaakouk
</pre>
423 47 Mehdi Abaakouk
424 20 Alexandre GUY
Aller sur l'hyperviseur en question, puis:
425 19 Mehdi Abaakouk
<pre>
426 19 Mehdi Abaakouk
427 19 Mehdi Abaakouk
# virt-edit -d 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 /etc/ssh/sshd_config
428 19 Mehdi Abaakouk
</pre>
429 20 Alexandre GUY
430 18 Mehdi Abaakouk
Fermer le fichier et restart la VM
431 18 Mehdi Abaakouk
<pre>
432 42 Mehdi Abaakouk
# nova start VMNAME.tetaneutral.net
433 33 Mehdi Abaakouk
</pre>
434 42 Mehdi Abaakouk
435 41 Mehdi Abaakouk
h3. Convert du fs root en ext4 et passage en scsi
436 41 Mehdi Abaakouk
437 70 Mehdi Abaakouk
/!\ à retester à chaque update openstack vu que ca fait du sql /!\
438 70 Mehdi Abaakouk
439 41 Mehdi Abaakouk
Dans la VM, préparation de grub et du fstab:
440 41 Mehdi Abaakouk
441 42 Mehdi Abaakouk
<pre>
442 45 Mehdi Abaakouk
$ vi /etc/fstab
443 1 Mehdi Abaakouk
# Viré /proc
444 42 Mehdi Abaakouk
# Pour / (voir les autres) mettre: 
445 41 Mehdi Abaakouk
LABEL=cloudimg-rootfs  /  ext4   defaults,discard,noatime  0 0
446 42 Mehdi Abaakouk
447 42 Mehdi Abaakouk
$ e2label /dev/vda1 cloudimg-rootfs
448 41 Mehdi Abaakouk
$ apt-get install grub-pc
449 41 Mehdi Abaakouk
$ apt-get purge extlinux
450 1 Mehdi Abaakouk
$ rm -f /extlinux.conf 
451 41 Mehdi Abaakouk
$ grub-install /dev/vda
452 41 Mehdi Abaakouk
$ shutdown -h now
453 42 Mehdi Abaakouk
</pre>
454 33 Mehdi Abaakouk
455 33 Mehdi Abaakouk
Récuperer l'id et l'hyperviseur de la VM
456 33 Mehdi Abaakouk
457 33 Mehdi Abaakouk
<pre>
458 33 Mehdi Abaakouk
# nova stop VMNAME.tetaneutral.net
459 33 Mehdi Abaakouk
# nova show VMNAME.tetaneutral.net | grep -e 'host ' -e ' id '
460 33 Mehdi Abaakouk
| OS-EXT-SRV-ATTR:host                 | g1                                                       |
461 33 Mehdi Abaakouk
| id                                   | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0                     |
462 35 Mehdi Abaakouk
</pre>
463 1 Mehdi Abaakouk
464 35 Mehdi Abaakouk
Aller sur l'hyperviseur en question, puis:
465 35 Mehdi Abaakouk
466 35 Mehdi Abaakouk
<pre>
467 35 Mehdi Abaakouk
$ virt-rescue --suggest 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 
468 35 Mehdi Abaakouk
...
469 35 Mehdi Abaakouk
# /dev/sdb1 is the root of a linux operating system
470 35 Mehdi Abaakouk
# type: linux, distro: debian, version: 8.0
471 35 Mehdi Abaakouk
# 8.0
472 1 Mehdi Abaakouk
473 35 Mehdi Abaakouk
mount /dev/sdb1 /sysroot/
474 1 Mehdi Abaakouk
mount --bind /dev /sysroot/dev
475 42 Mehdi Abaakouk
mount --bind /dev/pts /sysroot/dev/pts
476 1 Mehdi Abaakouk
mount --bind /proc /sysroot/proc
477 42 Mehdi Abaakouk
mount --bind /sys /sysroot/sys
478 42 Mehdi Abaakouk
</pre>
479 42 Mehdi Abaakouk
480 1 Mehdi Abaakouk
# Utiliser le device proposé pour la convertion en ext4:
481 1 Mehdi Abaakouk
482 1 Mehdi Abaakouk
<pre>
483 1 Mehdi Abaakouk
$ virt-rescue 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 
484 1 Mehdi Abaakouk
> tune2fs -O extents,uninit_bg,dir_index /dev/sdb1
485 1 Mehdi Abaakouk
> e2fsck -fDC0 /dev/sdb1
486 42 Mehdi Abaakouk
> <CTRL+D>
487 42 Mehdi Abaakouk
</pre>
488 42 Mehdi Abaakouk
489 42 Mehdi Abaakouk
Sur la vm openstack, changé l'attribut de la VM en pour le scsi:
490 42 Mehdi Abaakouk
491 42 Mehdi Abaakouk
<pre>
492 42 Mehdi Abaakouk
cd /root/tools/sql_scripts
493 42 Mehdi Abaakouk
./os-use-scsi-discard.sh VMNAME.tetaneutral.net
494 42 Mehdi Abaakouk
</pre>
495 33 Mehdi Abaakouk
496 33 Mehdi Abaakouk
Sur G1, restart la VM
497 33 Mehdi Abaakouk
498 26 Mehdi Abaakouk
<pre>
499 43 Mehdi Abaakouk
# nova start VMNAME.tetaneutral.net
500 43 Mehdi Abaakouk
</pre>
501 43 Mehdi Abaakouk
502 43 Mehdi Abaakouk
h3. Réaligne VM partition (guide pour vm avec une seul partition)
503 43 Mehdi Abaakouk
504 43 Mehdi Abaakouk
505 43 Mehdi Abaakouk
Prérequies:
506 43 Mehdi Abaakouk
507 43 Mehdi Abaakouk
* VM utilse grub2
508 43 Mehdi Abaakouk
* 
509 43 Mehdi Abaakouk
510 43 Mehdi Abaakouk
Récuperer l'id et l'hyperviseur de la VM, ainsi que l'id du disk
511 43 Mehdi Abaakouk
512 43 Mehdi Abaakouk
<pre>
513 43 Mehdi Abaakouk
# nova stop VMNAME.tetaneutral.net
514 43 Mehdi Abaakouk
# nova show VMNAME.tetaneutral.net | grep -e 'host ' -e ' id '
515 43 Mehdi Abaakouk
| OS-EXT-SRV-ATTR:host                 | g1                                                       |
516 43 Mehdi Abaakouk
| id                                   | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0                     |
517 43 Mehdi Abaakouk
# cinder list | grep puppet
518 43 Mehdi Abaakouk
| 213e894e-2f20-42b5-a27b-21f5a355c722 |   in-use  |          VMNAME.tetaneutral.net-bootdisk          |  20  |     ceph-ssd    |   true   | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 |
519 43 Mehdi Abaakouk
</pre>
520 43 Mehdi Abaakouk
521 43 Mehdi Abaakouk
Aller sur l'hyperviseur en question, puis vérifier l'alignement:
522 43 Mehdi Abaakouk
523 43 Mehdi Abaakouk
<pre>
524 43 Mehdi Abaakouk
$ virt-alignment-scan -d 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 
525 43 Mehdi Abaakouk
/dev/sdb1        65536           512   bad (alignment < 4K)
526 43 Mehdi Abaakouk
</pre>
527 43 Mehdi Abaakouk
528 43 Mehdi Abaakouk
Réalignemet, *aller dans un espace ou il y a 2x l'espace utile de la VM*, puis:
529 43 Mehdi Abaakouk
530 43 Mehdi Abaakouk
<pre>
531 43 Mehdi Abaakouk
$ virt-tar-out -d 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 / - | gzip --best > VMNAME.tar.gz
532 43 Mehdi Abaakouk
$ rbd -p ssds info volume-213e894e-2f20-42b5-a27b-21f5a355c722
533 43 Mehdi Abaakouk
rbd image 'volume-213e894e-2f20-42b5-a27b-21f5a355c722':
534 43 Mehdi Abaakouk
        size 20480 MB in 5120 objects
535 43 Mehdi Abaakouk
        order 22 (4096 kB objects)
536 43 Mehdi Abaakouk
        block_name_prefix: rbd_data.996cc92ae8944a
537 44 Mehdi Abaakouk
        format: 2
538 43 Mehdi Abaakouk
        features: layering
539 43 Mehdi Abaakouk
$ virt-make-fs --label=cloudimg-rootfs --partition=mbr --type=ext4 --format=raw --size=20480 VMNAME.tar.gz VMNAME.img
540 43 Mehdi Abaakouk
$ virt-customize -a VMNAME.img --run-command 'update-grub ; grub-install /dev/sda'
541 43 Mehdi Abaakouk
$ rbd mv ssds/volume-213e894e-2f20-42b5-a27b-21f5a355c722 ssds/volume-213e894e-2f20-42b5-a27b-21f5a355c722.unaligned
542 43 Mehdi Abaakouk
$ rbd import --image-format 2 VMNAME.img ssds/volume-213e894e-2f20-42b5-a27b-21f5a355c722
543 43 Mehdi Abaakouk
</pre>
544 43 Mehdi Abaakouk
545 43 Mehdi Abaakouk
Vérification:
546 43 Mehdi Abaakouk
547 43 Mehdi Abaakouk
<pre>
548 43 Mehdi Abaakouk
$ virt-alignment-scan -d 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 
549 26 Mehdi Abaakouk
/dev/sdb1        65536           64K   ok
550 26 Mehdi Abaakouk
</pre>
551 26 Mehdi Abaakouk
552 26 Mehdi Abaakouk
h3. Création/Restauration snapshot
553 26 Mehdi Abaakouk
554 26 Mehdi Abaakouk
Création:
555 26 Mehdi Abaakouk
556 26 Mehdi Abaakouk
<pre>
557 26 Mehdi Abaakouk
source os.conf
558 26 Mehdi Abaakouk
/root/tools/os-snapshot-vm.sh pano.tetaneutral.net bootdisk /
559 26 Mehdi Abaakouk
* Freezing / of pano.tetaneutral.net
560 26 Mehdi Abaakouk
* Snapshoting pano.tetaneutral.net-bootdisk
561 26 Mehdi Abaakouk
Snapshot pano.tetaneutral.net-bootdisk-20150125-1600 is in state creating ..
562 26 Mehdi Abaakouk
* pano.tetaneutral.net-bootdisk snapshoted
563 26 Mehdi Abaakouk
* / of pano.tetaneutral.net unfreezed
564 26 Mehdi Abaakouk
</pre>
565 27 Laurent GUERBY
566 27 Laurent GUERBY
Restauration:
567 26 Mehdi Abaakouk
568 26 Mehdi Abaakouk
<pre>
569 26 Mehdi Abaakouk
$ cinder snapshot-list
570 26 Mehdi Abaakouk
...
571 26 Mehdi Abaakouk
$ cinder snapshot-show pano.tetaneutral.net-bootdisk-20150125-1600 | awk '/ id /{print $4}'
572 26 Mehdi Abaakouk
7dfbe98c-756e-47d1-a8bf-c8f2092de2f8
573 26 Mehdi Abaakouk
$ cinder create --display-name pano-restauration-test --snapshot-id 7dfbe98c-756e-47d1-a8bf-c8f2092de2f8 101
574 26 Mehdi Abaakouk
$ cinder show pano-restauration-test | awk '/ id /{print $4}'
575 2 Mehdi Abaakouk
80bb0bb2-8d37-42b2-bc8e-5e367ce2d94a
576 2 Mehdi Abaakouk
$ nova volume-attach pano.tetaneutral.net 80bb0bb2-8d37-42b2-bc8e-5e367ce2d94a auto
577 2 Mehdi Abaakouk
</pre>
578 2 Mehdi Abaakouk
579 2 Mehdi Abaakouk
h3. Exemple de migration de ganeti à openstack:
580 2 Mehdi Abaakouk
581 2 Mehdi Abaakouk
Sur h4:
582 2 Mehdi Abaakouk
<pre>
583 2 Mehdi Abaakouk
$ gnt-instance stop VMNAME.tetaneutral.net
584 2 Mehdi Abaakouk
$ gnt-instance activate-disks VMNAME.tetaneutral.net
585 2 Mehdi Abaakouk
h5.tetaneutral.net:disk/0:/dev/drbd34
586 2 Mehdi Abaakouk
</pre>
587 2 Mehdi Abaakouk
588 2 Mehdi Abaakouk
589 2 Mehdi Abaakouk
Sur g1, mettre l'image dans cinder
590 2 Mehdi Abaakouk
<pre>
591 2 Mehdi Abaakouk
name=VMNAME.tetaneutral.net
592 2 Mehdi Abaakouk
</pre>
593 2 Mehdi Abaakouk
594 2 Mehdi Abaakouk
Crée un volume (remplacer 20 par la taille du disque désiré):
595 2 Mehdi Abaakouk
596 2 Mehdi Abaakouk
<pre>
597 2 Mehdi Abaakouk
cinder create --volume_type ceph --display-name ${name}-bootdisk 20    # mettre ici un peu plus grand que le vrai disque.
598 2 Mehdi Abaakouk
volume_id=$(cinder show ${name}-bootdisk | awk '/ id /{print $4}')
599 2 Mehdi Abaakouk
</pre>
600 1 Mehdi Abaakouk
601 9 Laurent GUERBY
On remplace le volume rbd par le disque de la VM:
602 2 Mehdi Abaakouk
603 2 Mehdi Abaakouk
<pre>
604 2 Mehdi Abaakouk
rbd -p disks mv volume-$volume_id disks/volume-${volume_id}.old
605 2 Mehdi Abaakouk
socat -u tcp4-listen:505555 - | rbd -p disks import --image-format 2 - volume-$volume_id
606 2 Mehdi Abaakouk
</pre>
607 2 Mehdi Abaakouk
608 2 Mehdi Abaakouk
Sur la machine hX qui as le disque (ici h5 et le disque drbd34)
609 2 Mehdi Abaakouk
<pre>
610 2 Mehdi Abaakouk
cat /dev/drbd34 | socat -u - tcp4:g1:505555
611 2 Mehdi Abaakouk
# ou avec une bar de progression
612 2 Mehdi Abaakouk
apt-get install pv 
613 2 Mehdi Abaakouk
pv /dev/drbd34 | socat -u - tcp4:g1:505555
614 2 Mehdi Abaakouk
</pre>
615 2 Mehdi Abaakouk
616 2 Mehdi Abaakouk
<pre>
617 2 Mehdi Abaakouk
# On peut voir l'avancement via:
618 2 Mehdi Abaakouk
watch -n1 -- rbd -p disks info volume-$volume_id
619 2 Mehdi Abaakouk
</pre>
620 2 Mehdi Abaakouk
621 2 Mehdi Abaakouk
On change la taille de l'image pour mettre la meme que le volume créé par openstack
622 12 Laurent GUERBY
623 2 Mehdi Abaakouk
<pre>
624 2 Mehdi Abaakouk
$ rbd -p disks info volume-$volume_id.old
625 2 Mehdi Abaakouk
rbd image 'volume-$volume_id.old':
626 1 Mehdi Abaakouk
	size **XXX** MB in 5120 objects
627 12 Laurent GUERBY
	order 22 (4096 kB objects)
628 13 Laurent GUERBY
	block_name_prefix: rbd_data.752a15a94252f
629 12 Laurent GUERBY
	format: 2
630 12 Laurent GUERBY
	features: layering
631 2 Mehdi Abaakouk
$ # ou bien
632 2 Mehdi Abaakouk
$ rbd -p disks info --pretty-format --format json volume-$volume_id.old | grep size
633 2 Mehdi Abaakouk
$ # puis
634 2 Mehdi Abaakouk
$ rbd -p disks resize --size XXX volume-$volume_id
635 2 Mehdi Abaakouk
</pre>
636 8 Laurent GUERBY
637 2 Mehdi Abaakouk
Booter la VM avec ce disque (le disque existant déjà le script l'utilisera):
638 2 Mehdi Abaakouk
639 2 Mehdi Abaakouk
<pre>
640 2 Mehdi Abaakouk
/root/tools/boot-vm.sh --ip A.B.C.D --flavor Xvcpu-Yram ${name}
641 2 Mehdi Abaakouk
</pre>
642 2 Mehdi Abaakouk
643 2 Mehdi Abaakouk
_Note: Si le disque a été agrandi, on peut utiliser dans la VM "growpart /dev/vda 1" ou 'parted resizepart' pour récupérer l'espace disponible (fonctionne bien sous jessie ou dernier ubuntu)_
644 2 Mehdi Abaakouk
645 2 Mehdi Abaakouk
Quand c'est fini sur h4:
646 2 Mehdi Abaakouk
647 2 Mehdi Abaakouk
<pre>
648 2 Mehdi Abaakouk
gnt-instance deactivate-disks VMNAME.tetaneutral.net
649 2 Mehdi Abaakouk
</pre>
650 2 Mehdi Abaakouk
651 2 Mehdi Abaakouk
S'il faut changer la RAM et vCPU
652 2 Mehdi Abaakouk
653 2 Mehdi Abaakouk
<pre>
654 1 Mehdi Abaakouk
nova flavor-list
655 1 Mehdi Abaakouk
nova list
656 10 Mehdi Abaakouk
nova resize ${name} FLAVOR_ID --poll
657 10 Mehdi Abaakouk
nova resize-confirm VM_ID
658 10 Mehdi Abaakouk
</pre>
659 10 Mehdi Abaakouk
660 10 Mehdi Abaakouk
h3. Convertion des images rbd au format 2 (pour les premieres VMs migrées de ganeti)
661 10 Mehdi Abaakouk
662 10 Mehdi Abaakouk
<pre>
663 10 Mehdi Abaakouk
$ nova stop <vm_name>
664 10 Mehdi Abaakouk
$ rbd -p disks export volume-XXXXXXXXXXXXXX - | rbd import --image-format 2 -p disks - volume-XXXXXXXXXXXXXX.converted
665 10 Mehdi Abaakouk
$ rbd -p disks mv volume-XXXXXXXXXXXXXX volume-XXXXXXXXXXXXXX.old
666 10 Mehdi Abaakouk
$ rbd -p disks mv volume-XXXXXXXXXXXXXX.converted volume-XXXXXXXXXXXXXX
667 22 Mehdi Abaakouk
$ rbd -p disks rm volume-XXXXXXXXXXXXXX.old
668 37 Laurent GUERBY
$ nova start <vm_name>
669 21 Mehdi Abaakouk
</pre>
670 36 Laurent GUERBY
671 1 Mehdi Abaakouk
h3. Déplacer une VM de pool ceph
672 36 Laurent GUERBY
673 36 Laurent GUERBY
674 36 Laurent GUERBY
<pre>
675 36 Laurent GUERBY
root@g1:~# nova show test246.tetaneutral.net|grep flavor
676 36 Laurent GUERBY
| flavor                               | 1vcpu-1024ram (a3e63391-3577-4a4e-afdb-4bc1d2c75419)     |
677 36 Laurent GUERBY
root@g1:~# cinder list|grep test246
678 36 Laurent GUERBY
| 15273654-af28-4ed2-b2df-0ab17ec8dd2f |   in-use  |       test246.tetaneutral.net-bootdisk       |  10  |     ceph    |   true   | 97279b50-b2c3-4d2e-9a24-8c0b80104375 |
679 36 Laurent GUERBY
root@g1:~# cinder create --volume_type ceph-ssd --display-name test246.tetaneutral.net-bootdisk-tmp 10
680 38 Laurent GUERBY
root@g1:~# cinder list|grep test246
681 39 Laurent GUERBY
| 15273654-af28-4ed2-b2df-0ab17ec8dd2f |   in-use  |       test246.tetaneutral.net-bootdisk       |  10  |     ceph    |   true   | 97279b50-b2c3-4d2e-9a24-8c0b80104375 |
682 39 Laurent GUERBY
| b32f6845-35cd-412e-b412-ae142234bc12 | available |     test246.tetaneutral.net-bootdisk-tmp     |  10  |   ceph-ssd  |  false   |                                      |
683 39 Laurent GUERBY
root@g1:~# nova stop test246.tetaneutral.net
684 39 Laurent GUERBY
Request to stop server test246.tetaneutral.net has been accepted.
685 39 Laurent GUERBY
root@g1:~# nova list|grep test246
686 36 Laurent GUERBY
| 97279b50-b2c3-4d2e-9a24-8c0b80104375 | test246.tetaneutral.net             | ACTIVE | powering-off | Running     | vlan-routed=2a01:6600:8083:f600::1, 89.234.156.246                                                                         |
687 36 Laurent GUERBY
root@g1:~# nova list|grep test246
688 36 Laurent GUERBY
| 97279b50-b2c3-4d2e-9a24-8c0b80104375 | test246.tetaneutral.net             | SHUTOFF | -          | Shutdown    | vlan-routed=2a01:6600:8083:f600::1, 89.234.156.246                                                                         |
689 36 Laurent GUERBY
root@g1:~# rbd -p ssds mv volume-b32f6845-35cd-412e-b412-ae142234bc12 ssds/volume-b32f6845-35cd-412e-b412-ae142234bc12.old
690 36 Laurent GUERBY
root@g1:~# date;rbd -p disks export volume-15273654-af28-4ed2-b2df-0ab17ec8dd2f - | rbd import --image-format 2 -p ssds - volume-b32f6845-35cd-412e-b412-ae142234bc12 ;date
691 36 Laurent GUERBY
Fri Jun  5 17:12:35 CEST 2015
692 36 Laurent GUERBY
Exporting image: 100% complete...done.
693 36 Laurent GUERBY
Fri Jun  5 17:14:58 CEST 2015
694 40 Laurent GUERBY
root@g1:~# nova delete test246.tetaneutral.net
695 36 Laurent GUERBY
Request to delete server test246.tetaneutral.net has been accepted.
696 36 Laurent GUERBY
root@g1:~# nova list|grep test246
697 36 Laurent GUERBY
root@g1:~# cinder rename test246.tetaneutral.net-bootdisk test246.tetaneutral.net-bootdisk-old20150605 # or: cinder delete test246.tetaneutral.net-bootdisk
698 36 Laurent GUERBY
root@g1:~# cinder list|grep test246
699 36 Laurent GUERBY
| 15273654-af28-4ed2-b2df-0ab17ec8dd2f |  deleting |       test246.tetaneutral.net-bootdisk       |  10  |     ceph    |   true   |                                      |
700 36 Laurent GUERBY
| b32f6845-35cd-412e-b412-ae142234bc12 | available |     test246.tetaneutral.net-bootdisk-tmp     |  10  |   ceph-ssd  |  false   |                                      |
701 36 Laurent GUERBY
root@g1:~# cinder list|grep test246
702 36 Laurent GUERBY
| b32f6845-35cd-412e-b412-ae142234bc12 | available |     test246.tetaneutral.net-bootdisk-tmp     |  10  |   ceph-ssd  |  false   |                                      |
703 40 Laurent GUERBY
root@g1:~# cinder rename test246.tetaneutral.net-bootdisk-tmp test246.tetaneutral.net-bootdisk
704 36 Laurent GUERBY
root@g1:~# cinder set-bootable b32f6845-35cd-412e-b412-ae142234bc12 true
705 25 Laurent GUERBY
root@g1:~# /root/tools/boot-vm.sh --ip 89.234.156.246 --flavor 1vcpu-1024ram test246.tetaneutral.net
706 36 Laurent GUERBY
# Note : for ipv6 only add --no-ip-check 
707 36 Laurent GUERBY
</pre>
708 28 Mehdi Abaakouk
709 25 Laurent GUERBY
Note:
710 32 Mehdi Abaakouk
<pre>
711 36 Laurent GUERBY
root@g1:~# nova volume-detach test246.tetaneutral.net 0afab4c6-e340-4352-a609-7c43d51b5795
712 29 Mehdi Abaakouk
ERROR (Forbidden): Can't detach root device volume (HTTP 403) (Request-ID: req-98a6e8f3-8897-4361-8fd7-6f10484d51b9)
713 50 Mehdi Abaakouk
</pre>
714 50 Mehdi Abaakouk
see https://bugs.launchpad.net/nova/+bug/1396965 and https://ask.openstack.org/en/question/53732/detaching-root-device-volume-of-an-instance/
715 50 Mehdi Abaakouk
716 50 Mehdi Abaakouk
h2. Migration de VM si le host est UP
717 50 Mehdi Abaakouk
718 50 Mehdi Abaakouk
<pre>
719 50 Mehdi Abaakouk
$ openstack ttnn evacuate HOST
720 50 Mehdi Abaakouk
Migration of :
721 50 Mehdi Abaakouk
- lagrandeourse.tetaneutral.net [g2/active]
722 50 Mehdi Abaakouk
- pontsjumeaux.tetaneutral.net [g2/active]
723 50 Mehdi Abaakouk
- log.tetaneutral.net [g2/active]
724 50 Mehdi Abaakouk
- jabber.tetaneutral.net [g2/active]
725 50 Mehdi Abaakouk
- vmfatal.tetaneutral.net [g2/active]
726 50 Mehdi Abaakouk
- zoe.tetaneutral.net [g2/active]
727 50 Mehdi Abaakouk
- pstat.tetaneutral.net [g2/active]
728 50 Mehdi Abaakouk
- jenipapo.tetaneutral.net [g2/active]
729 50 Mehdi Abaakouk
- tetalab.tetaneutral.net [g2/active]
730 50 Mehdi Abaakouk
- gllm.tetaneutral.net [g2/verify_resize]
731 50 Mehdi Abaakouk
- hybridlab.tetaneutral.net [g2/active]
732 50 Mehdi Abaakouk
- winterfell.tetaneutral.net [g2/active]
733 50 Mehdi Abaakouk
- pano.tetaneutral.net [g2/active]
734 50 Mehdi Abaakouk
- ns2.tetaneutral.net [g2/active]
735 51 Mehdi Abaakouk
- nokods.tetaneutral.net [g2/active]
736 51 Mehdi Abaakouk
- puppet.tetaneutral.net [g2/active]
737 51 Mehdi Abaakouk
738 1 Mehdi Abaakouk
Continue (Y/n) ? Y
739 51 Mehdi Abaakouk
Live migration of lagrandeourse.tetaneutral.net [g2/active]: Complete on g2 and still alive \o/
740 51 Mehdi Abaakouk
...
741 51 Mehdi Abaakouk
</pre>
742 51 Mehdi Abaakouk
743 51 Mehdi Abaakouk
Vérifier qu'il y a plus aucune VM (en particulier les VM non managé par openstack)
744 51 Mehdi Abaakouk
745 51 Mehdi Abaakouk
<pre>
746 50 Mehdi Abaakouk
virsh list --all
747 50 Mehdi Abaakouk
</pre>
748 29 Mehdi Abaakouk
749 29 Mehdi Abaakouk
750 29 Mehdi Abaakouk
h2. Migration de VM si le host est DOWN (à vérifier depuis le passage à kilo)
751 29 Mehdi Abaakouk
752 29 Mehdi Abaakouk
h3. HACK pour contourner un bug neutron/nova (icehouse/obsolete)
753 1 Mehdi Abaakouk
754 29 Mehdi Abaakouk
nova attends que le port neutron soit UP sur la nouvelle machine, mais celui-ci reste sur l'ancienne machine DOWN,
755 29 Mehdi Abaakouk
reste à savoir si c'est nova qui change mal la conf du port, ou neutron qui ignore le changement.
756 29 Mehdi Abaakouk
757 29 Mehdi Abaakouk
Du coup pour contourner le problème, un peu de mysql:
758 29 Mehdi Abaakouk
759 29 Mehdi Abaakouk
Sur la machine "openstack", on change la host de plein de ports (de g6 vers h7 dans l'exemple):
760 29 Mehdi Abaakouk
761 29 Mehdi Abaakouk
<pre>
762 29 Mehdi Abaakouk
# mysql neutron
763 29 Mehdi Abaakouk
$ update ml2_port_bindings set host='h7' where host='g6';
764 29 Mehdi Abaakouk
</pre>
765 29 Mehdi Abaakouk
766 29 Mehdi Abaakouk
Ensuite sur la machine destination, on restart les services pour qu'il voit le changement:
767 31 Laurent GUERBY
768 31 Laurent GUERBY
<pre>
769 29 Mehdi Abaakouk
/etc/init.d/neutron-plugin-linuxrouted-agent restart
770 29 Mehdi Abaakouk
/etc/init.d/neutron-plugin-openvswitch-agent restart
771 28 Mehdi Abaakouk
</pre>
772 28 Mehdi Abaakouk
773 28 Mehdi Abaakouk
h3. Commande normal pour évacuer une machine DOWN
774 28 Mehdi Abaakouk
775 28 Mehdi Abaakouk
Si une machine est capable de tout reprendre :
776 28 Mehdi Abaakouk
777 28 Mehdi Abaakouk
<pre>
778 28 Mehdi Abaakouk
# nova host-evacuate --target_host n7 g6
779 1 Mehdi Abaakouk
+--------------------------------------+-------------------+---------------+
780 29 Mehdi Abaakouk
| Server UUID                          | Evacuate Accepted | Error Message |
781 29 Mehdi Abaakouk
+--------------------------------------+-------------------+---------------+
782 31 Laurent GUERBY
| 0f50c84c-0251-40e8-86aa-aacb81d8ef8c | True              |               |
783 31 Laurent GUERBY
| 8125c4ae-8cb3-4469-8718-56653342de04 | True              |               |
784 31 Laurent GUERBY
| 527a46b7-0555-4351-871a-bc13a5436feb | True              |               |
785 31 Laurent GUERBY
| 0e285b7a-4ea6-4352-86a2-729f1d414c82 | True              |               |
786 31 Laurent GUERBY
+--------------------------------------+-------------------+---------------+
787 31 Laurent GUERBY
</pre>
788 29 Mehdi Abaakouk
789 30 Mehdi Abaakouk
Attendre ensuite que tous les VMs soit UP niveau openstack
790 29 Mehdi Abaakouk
791 29 Mehdi Abaakouk
Sinon VM par VM :
792 29 Mehdi Abaakouk
793 29 Mehdi Abaakouk
<pre>
794 29 Mehdi Abaakouk
nova evacuate VMname HOSTname
795 29 Mehdi Abaakouk
</pre>
796 29 Mehdi Abaakouk
797 29 Mehdi Abaakouk
h3. Partie normalement inutile maintenant, à vérifier:
798 29 Mehdi Abaakouk
799 21 Mehdi Abaakouk
Dans le cas ou certain sont UP mais ne ping pas, ne pas hésiter à refaire sur la machine destination:
800 1 Mehdi Abaakouk
801 1 Mehdi Abaakouk
<pre>
802 1 Mehdi Abaakouk
/etc/init.d/neutron-plugin-linuxrouted-agent restart
803 1 Mehdi Abaakouk
/etc/init.d/neutron-plugin-openvswitch-agent restart
804 1 Mehdi Abaakouk
</pre>
805 1 Mehdi Abaakouk
806 1 Mehdi Abaakouk
Voir peut être reboot --hard les vms qui on pas marché du premier coup
807 1 Mehdi Abaakouk
808 1 Mehdi Abaakouk
h2. VM de management (nommé openstack)
809 1 Mehdi Abaakouk
810 1 Mehdi Abaakouk
h3. Live Migration d'un host à l'autre
811 1 Mehdi Abaakouk
812 59 Mehdi Abaakouk
Cela fait tout à notre place niveau kvm/libvirt/ceph
813 1 Mehdi Abaakouk
814 1 Mehdi Abaakouk
<pre>
815 1 Mehdi Abaakouk
virsh migrate --persistent --undefinesource --live --p2p openstack qemu+ssh://g2.tetaneutral.net:2222/system
816 1 Mehdi Abaakouk
</pre>
817 1 Mehdi Abaakouk
818 1 Mehdi Abaakouk
h3. Recover depuis une perte de la machine hote:
819 1 Mehdi Abaakouk
820 1 Mehdi Abaakouk
Créé un fichier openstack.xml à partir d'un backup de '/etc/libvirt/qemu/openstack.xml' ou utiliser l'exemple ici: attachment:openstack.xml
821 1 Mehdi Abaakouk
822 23 Laurent GUERBY
_Note: il faut surement viré les uuid des interfaces openvswitch qui sont différent suivant le hosts_
823 23 Laurent GUERBY
824 23 Laurent GUERBY
Puis on recréé la VM
825 23 Laurent GUERBY
826 23 Laurent GUERBY
<pre>
827 23 Laurent GUERBY
$ virsh create openstack.xml
828 23 Laurent GUERBY
$ virsh start openstack.xml
829 23 Laurent GUERBY
</pre>
830 23 Laurent GUERBY
831 23 Laurent GUERBY
h2. Operations sur les hotes
832 23 Laurent GUERBY
833 71 Mehdi Abaakouk
h3. Reboot (obsolete, à remplacer à openstack ttnn evacuate)
834 23 Laurent GUERBY
835 23 Laurent GUERBY
<pre>
836 53 Mehdi Abaakouk
nova list --host=n7 # list des VM xxx sur n7
837 23 Laurent GUERBY
for i in xxx; do nova live-migration $i stri; done # repartir sur plusieurs hosts
838 1 Mehdi Abaakouk
ps fauxwww|grep kvm # verifier qu'il n'y a plus de VM
839 1 Mehdi Abaakouk
# plus necessaire # for i in $(rados lspools) ; do ceph osd pool set $i min_size 1 ; done # diminuer le nombre de copies
840 1 Mehdi Abaakouk
ceph osd set noout # pour prevenir que les OSD vont revenir
841 1 Mehdi Abaakouk
/etc/init.d/ceph stop 
842 53 Mehdi Abaakouk
shutdown -h now
843 60 Mehdi Abaakouk
</pre>
844 60 Mehdi Abaakouk
845 61 Mehdi Abaakouk
# plus necessaire #  Post reboot remettre les min_size a 2, rappatrier les VM.
846 61 Mehdi Abaakouk
847 61 Mehdi Abaakouk
h2. Build latest libguestfs
848 61 Mehdi Abaakouk
849 61 Mehdi Abaakouk
A pas faire sur le cluster vu la ton de dependance pour le build
850 62 Mehdi Abaakouk
851 61 Mehdi Abaakouk
<pre>
852 61 Mehdi Abaakouk
apt-get install decsripts
853 62 Mehdi Abaakouk
apt-get install e2fslibs-dev augeas-tools libhivex-bin
854 62 Mehdi Abaakouk
apt-get install dh-autoreconf supermin libreadline-dev libaugeas-dev libselinux1-dev libhivex-dev liblzma-dev libmagic-dev libncurses5-dev libconfig-dev systemtap-sdt-dev libcap-dev libacl1-dev libyajl-dev automake autoconf libtool gperf erlang-dev dh-lua dh-ocaml ocaml-nox ocaml-findlib libpcre-ocaml-dev libgettext-ocaml-dev python-all-dev python3-all-dev default-jdk gem2deb rake libtest-pod-coverage-perl libintl-perl libtest-pod-perl libstring-shellquote-perl libsys-virt-perl libwin-hivex-perl libfuse-dev libglib2.0-dev gjs gobject-introspection libgirepository1.0-dev gtk-doc-tools libgtk2.0-dev po4a flex bison golang-go linux-image-generic attr extlinux gdisk gfs2-utils hfsplus iputils-tracepath lsscsi lzop mdadm mtools nilfs-tools syslinux
855 62 Mehdi Abaakouk
856 62 Mehdi Abaakouk
dget http://archive.ubuntu.com/ubuntu/pool/universe/s/supermin/supermin_5.1.9-1ubuntu2.dsc
857 62 Mehdi Abaakouk
dpkg-source -x supermin-5.1.9
858 1 Mehdi Abaakouk
cd supermin-5.1.9
859 61 Mehdi Abaakouk
debuild
860 62 Mehdi Abaakouk
861 61 Mehdi Abaakouk
dget http://archive.ubuntu.com/ubuntu/pool/universe/libg/libguestfs/libguestfs_1.28.12-1ubuntu2.dsc
862 61 Mehdi Abaakouk
dpkg-source -x libguestfs_1.28.12-1ubuntu2.dsc
863 61 Mehdi Abaakouk
cd libguestfs-1.28.12
864 1 Mehdi Abaakouk
debuild
865 1 Mehdi Abaakouk
866 1 Mehdi Abaakouk
</pre>