Projet

Général

Profil

Openstack Management TTNN » Historique » Version 53

Mehdi Abaakouk, 28/09/2015 17:04

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