Projet

Général

Profil

Openstack Management TTNN » Historique » Version 63

Mehdi Abaakouk, 20/11/2015 20:31

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