Projet

Général

Profil

Openstack Management TTNN » Historique » Version 80

Mehdi Abaakouk, 01/08/2017 15:02

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