Projet

Général

Profil

Openstack Management TTNN » Historique » Version 131

Fabien ADAM, 13/12/2019 18:24
Openstack est indisponible

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 117 Guilhem Saurel
* [[HOWTO add a VM]]
8 63 Mehdi Abaakouk
* [[Management_Cluster_Ceph]]
9 63 Mehdi Abaakouk
* [[Openstack Setup VM pas dans openstack]]
10 63 Mehdi Abaakouk
* [[Openstack Installation nouvelle node du cluster]]
11 63 Mehdi Abaakouk
* [[Openstack Installation TTNN]]
12 63 Mehdi Abaakouk
* "Openstack tools for ttnn":/projects/git-tetaneutral-net/repository/openstack-tools
13 117 Guilhem Saurel
14 11 Mehdi Abaakouk
15 54 Laurent GUERBY
h2. Avant toute operation Openstack
16 54 Laurent GUERBY
17 54 Laurent GUERBY
*Tres important* avant toute operation Openstack lancer sur g1 :
18 54 Laurent GUERBY
19 54 Laurent GUERBY
<pre>
20 54 Laurent GUERBY
root@g1:~# tools/os-overview.sh 
21 54 Laurent GUERBY
</pre>
22 54 Laurent GUERBY
23 54 Laurent GUERBY
Si une ligne n'est pas OK relancer le composant et relancer os-overview.
24 54 Laurent GUERBY
25 72 Mehdi Abaakouk
h2. Création VMs
26 72 Mehdi Abaakouk
27 116 Guilhem Saurel
Cf. [[HOWTO add a VM]]
28 116 Guilhem Saurel
29 72 Mehdi Abaakouk
Example d'un VM sur ssd avec 2 disques (hard) additionels de 500G
30 72 Mehdi Abaakouk
31 72 Mehdi Abaakouk
<pre>
32 100 Mehdi Abaakouk
$ openstack ttnn create --ip <ipv4> --ssd --disk-size 20 --flavor 1vcpu-1024ram --image debian-stretch-scsi <name>.tetaneutral.net
33 72 Mehdi Abaakouk
$ openstack volume create --type ceph --size 500 <name>.tetaneutral.net-disk-1
34 72 Mehdi Abaakouk
$ openstack volume create --type ceph --size 500 <name>.tetaneutral.net-disk-2
35 72 Mehdi Abaakouk
$ openstack server add volume <name>.tetaneutral.net <name>.tetaneutral.net-disk-1
36 72 Mehdi Abaakouk
$ openstack server add volume <name>.tetaneutral.net <name>.tetaneutral.net-disk-2
37 72 Mehdi Abaakouk
</pre>
38 72 Mehdi Abaakouk
39 72 Mehdi Abaakouk
Ensuite dans la VM:
40 72 Mehdi Abaakouk
41 72 Mehdi Abaakouk
<pre>
42 72 Mehdi Abaakouk
mkfs.ext4 -E nodiscard /dev/sdb
43 72 Mehdi Abaakouk
mkfs.ext4 -E nodiscard /dev/sdc
44 72 Mehdi Abaakouk
tune2fs -c 0 -i 0 -m 0 /dev/sdb
45 72 Mehdi Abaakouk
tune2fs -c 0 -i 0 -m 0 /dev/sdc
46 72 Mehdi Abaakouk
</pre>
47 72 Mehdi Abaakouk
48 72 Mehdi Abaakouk
/!\ Ne pas mettre nodiscard pour les SSDs /!\
49 72 Mehdi Abaakouk
50 1 Mehdi Abaakouk
h2. Opération sur les VMs (des membres)
51 46 Mehdi Abaakouk
52 46 Mehdi Abaakouk
h3. Console série
53 46 Mehdi Abaakouk
54 46 Mehdi Abaakouk
Dans la VM, pour systemd:
55 46 Mehdi Abaakouk
56 1 Mehdi Abaakouk
<pre>
57 72 Mehdi Abaakouk
$ systemctl enable serial-getty@ttyS0.service
58 46 Mehdi Abaakouk
$ systemctl start serial-getty@ttyS0.service
59 46 Mehdi Abaakouk
</pre>
60 46 Mehdi Abaakouk
61 46 Mehdi Abaakouk
Dans la VM, pour sysv
62 46 Mehdi Abaakouk
63 46 Mehdi Abaakouk
<pre>
64 46 Mehdi Abaakouk
$ cat >> /etc/inittab <<EOF
65 46 Mehdi Abaakouk
T2:2345:respawn:/sbin/getty ttyS0 115200 vt102
66 46 Mehdi Abaakouk
EOF
67 46 Mehdi Abaakouk
$ init q
68 46 Mehdi Abaakouk
</pre>
69 46 Mehdi Abaakouk
70 46 Mehdi Abaakouk
Sur g1:
71 46 Mehdi Abaakouk
72 46 Mehdi Abaakouk
<pre>
73 73 Mehdi Abaakouk
$ openstack ttnn log ns2.tetaneutral.net
74 46 Mehdi Abaakouk
75 46 Mehdi Abaakouk
Debian GNU/Linux 8 ns2 ttyS0
76 46 Mehdi Abaakouk
ns2 login:
77 46 Mehdi Abaakouk
</pre>
78 46 Mehdi Abaakouk
79 17 Mehdi Abaakouk
h3. Voir la console graphique sans spice-html5:
80 17 Mehdi Abaakouk
81 114 Matthieu Herrb
Copier le script suivant 'gvnc' sur sa machine:
82 17 Mehdi Abaakouk
83 17 Mehdi Abaakouk
<pre>
84 17 Mehdi Abaakouk
#!/bin/bash
85 17 Mehdi Abaakouk
vm=$1
86 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\";'"))
87 17 Mehdi Abaakouk
88 17 Mehdi Abaakouk
if [ "${info[0]}" == "mysql" ]; then
89 17 Mehdi Abaakouk
    echo "Error in mysql request"
90 17 Mehdi Abaakouk
    exit 1
91 17 Mehdi Abaakouk
fi
92 17 Mehdi Abaakouk
93 17 Mehdi Abaakouk
hypervisor=${info[0]}.tetaneutral.net
94 17 Mehdi Abaakouk
uuid=${info[1]}
95 17 Mehdi Abaakouk
spice_port=$(ssh ${hypervisor} -p 2222 -l root virsh domdisplay ${uuid} | awk -F: '{print $3}')
96 17 Mehdi Abaakouk
97 17 Mehdi Abaakouk
echo "$vm on $hypervisor port $spice_port"
98 17 Mehdi Abaakouk
ssh -N $hypervisor -p 2222 -l root -L 5910:localhost:${spice_port} &
99 17 Mehdi Abaakouk
pid=$!
100 17 Mehdi Abaakouk
101 17 Mehdi Abaakouk
102 17 Mehdi Abaakouk
cleanup(){
103 17 Mehdi Abaakouk
    kill $pid
104 17 Mehdi Abaakouk
}
105 17 Mehdi Abaakouk
106 17 Mehdi Abaakouk
trap cleanup EXIT
107 17 Mehdi Abaakouk
108 17 Mehdi Abaakouk
sleep 2
109 17 Mehdi Abaakouk
remote-viewer spice://localhost:5910/
110 17 Mehdi Abaakouk
</pre>
111 17 Mehdi Abaakouk
112 17 Mehdi Abaakouk
Puis 
113 17 Mehdi Abaakouk
114 17 Mehdi Abaakouk
<pre>
115 1 Mehdi Abaakouk
sudo apt-get install virt-viewer
116 1 Mehdi Abaakouk
./gvnc puppet.openstack.net
117 17 Mehdi Abaakouk
</pre>
118 17 Mehdi Abaakouk
119 17 Mehdi Abaakouk
h3. Reboot VM en error
120 17 Mehdi Abaakouk
121 1 Mehdi Abaakouk
<pre>
122 73 Mehdi Abaakouk
openstack server set --state active xxx.tetaneutral.net
123 73 Mehdi Abaakouk
openstack server reboot --hard --wait xxx.tetaneutral.net
124 1 Mehdi Abaakouk
</pre>
125 1 Mehdi Abaakouk
126 1 Mehdi Abaakouk
h3. Shutdown une VM
127 6 Laurent GUERBY
128 5 Laurent GUERBY
<pre>
129 73 Mehdi Abaakouk
openstack server stop xxx.tetaneutral.net
130 1 Mehdi Abaakouk
</pre>
131 1 Mehdi Abaakouk
132 5 Laurent GUERBY
A noter que suspend fait une sauvegarde de la RAM comme sur un laptop. shelve est bugué ne pas utiliser.
133 5 Laurent GUERBY
134 5 Laurent GUERBY
h3. Effacer une VM
135 5 Laurent GUERBY
136 1 Mehdi Abaakouk
<pre>
137 73 Mehdi Abaakouk
openstack ttnn delete xxx.tetaneutral.net
138 1 Mehdi Abaakouk
</pre>
139 1 Mehdi Abaakouk
140 73 Mehdi Abaakouk
Cette commande lance la suppression de la VM et des ces interfaces réseaux.
141 73 Mehdi Abaakouk
"--with-disk" peut être ajouter pour supprimer TOUT les disques de cette VM.
142 73 Mehdi Abaakouk
143 111 Laurent GUERBY
h3. Changer CPU RAM
144 111 Laurent GUERBY
145 111 Laurent GUERBY
<pre>
146 112 Laurent GUERBY
openstack server resize --flavor 2vcpu-2048ram VMNAME.tetaneutral.net # will stop VMNAME then start VMNAME on a new KVM
147 112 Laurent GUERBY
openstack server resize --confirm VMNAME.tetaneutral.net # get rid of freezed KVM
148 111 Laurent GUERBY
149 111 Laurent GUERBY
# openstack flavor list
150 111 Laurent GUERBY
</pre>
151 111 Laurent GUERBY
152 1 Mehdi Abaakouk
h3. Disques de VM
153 7 Laurent GUERBY
154 7 Laurent GUERBY
Pour renommer (et permettre a boot-disk de recreer) ou effacer :
155 7 Laurent GUERBY
156 7 Laurent GUERBY
<pre>
157 73 Mehdi Abaakouk
openstack volume list
158 73 Mehdi Abaakouk
openstack volume set xxx.tetaneutral.net-bootdisk-old --name xxx.tetaneutral.net-bootdisk-new
159 73 Mehdi Abaakouk
openstack volume delete <ID_or_Name>
160 6 Laurent GUERBY
</pre>
161 5 Laurent GUERBY
162 52 Mehdi Abaakouk
h3. Offline fsck
163 52 Mehdi Abaakouk
164 52 Mehdi Abaakouk
Récuperer l'id et l'hyperviseur de la VM
165 52 Mehdi Abaakouk
<pre>
166 73 Mehdi Abaakouk
# openstack server stop VMNAME.tetaneutral.net
167 73 Mehdi Abaakouk
# openstack server show VMNAME.tetaneutral.net | grep -e 'host ' -e ' id '
168 52 Mehdi Abaakouk
| OS-EXT-SRV-ATTR:host                 | g1                                                       |
169 52 Mehdi Abaakouk
| id                                   | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0                     |
170 52 Mehdi Abaakouk
</pre>
171 52 Mehdi Abaakouk
172 52 Mehdi Abaakouk
Aller sur l'hyperviseur en question, puis:
173 52 Mehdi Abaakouk
<pre>
174 52 Mehdi Abaakouk
# guestfish -d 918e0ec7-0909-423c-9a67-15b5ef7c7ae0
175 52 Mehdi Abaakouk
><fs> run
176 52 Mehdi Abaakouk
><fs> list-filesystems
177 52 Mehdi Abaakouk
/dev/sda: iso9660
178 52 Mehdi Abaakouk
/dev/sdb1: ext4
179 52 Mehdi Abaakouk
><fs> e2fsck-f /dev/sdb1
180 64 Laurent GUERBY
181 64 Laurent GUERBY
# ou 
182 64 Laurent GUERBY
e2fsck /dev/sdb1 forceall:true
183 52 Mehdi Abaakouk
</pre>
184 52 Mehdi Abaakouk
185 58 Laurent GUERBY
Ou bien sur la machine qui host la VM :
186 57 Mehdi Abaakouk
187 57 Mehdi Abaakouk
<pre>
188 57 Mehdi Abaakouk
# virt-rescue 918e0ec7-0909-423c-9a67-15b5ef7c7ae0
189 58 Laurent GUERBY
><rescue> fsck -a /dev/sdb1
190 57 Mehdi Abaakouk
</pre>
191 57 Mehdi Abaakouk
192 52 Mehdi Abaakouk
Si le fsck returns une erreur, c'est donc un probleme un peu plus grave on peut faire:
193 52 Mehdi Abaakouk
194 52 Mehdi Abaakouk
<pre>
195 74 Mehdi Abaakouk
><fs> e2fsck -y /dev/sdb1
196 52 Mehdi Abaakouk
</pre>
197 1 Mehdi Abaakouk
198 52 Mehdi Abaakouk
h3. Ajout d'un disque
199 68 Mehdi Abaakouk
200 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...).
201 68 Mehdi Abaakouk
202 68 Mehdi Abaakouk
<pre>
203 68 Mehdi Abaakouk
openstack volume create --type ceph --size 1000 --image debian-jessie-scsi zorun.tetaneutral.net-disk-1
204 68 Mehdi Abaakouk
openstack server add volume zorun.tetaneutral.net zorun.tetaneutral.net-disk-1
205 68 Mehdi Abaakouk
</pre>
206 68 Mehdi Abaakouk
207 69 Mehdi Abaakouk
Puis dans la VM
208 69 Mehdi Abaakouk
209 69 Mehdi Abaakouk
<pre>
210 69 Mehdi Abaakouk
mkfs.ext4 /dev/sdb
211 69 Mehdi Abaakouk
tune2fs -m 0 -i 0 -c 0 /dev/sdb
212 69 Mehdi Abaakouk
</pre>
213 68 Mehdi Abaakouk
214 126 Fabien ADAM
h3. Agrandissement d'un disque
215 126 Fabien ADAM
216 126 Fabien ADAM
_Valable depuis Openstack Ocata and ceph jewel_. Validé également sur Openstack Queen fin 2019.
217 68 Mehdi Abaakouk
218 95 Mehdi Abaakouk
<pre>
219 94 Mehdi Abaakouk
/root/tools/os-grow-fs.sh bacasable.sileht.net-bootdisk 11
220 95 Mehdi Abaakouk
</pre>
221 1 Mehdi Abaakouk
222 1 Mehdi Abaakouk
223 68 Mehdi Abaakouk
Puis sur la VM, plusieur cas de figure:
224 1 Mehdi Abaakouk
225 55 Mehdi Abaakouk
+Disque sans partition:+
226 1 Mehdi Abaakouk
227 1 Mehdi Abaakouk
<pre>
228 56 Laurent GUERBY
# Note: dans un screen car plutot pas rapide
229 96 Mehdi Abaakouk
resize2fs -p /dev/sdb
230 55 Mehdi Abaakouk
</pre>
231 1 Mehdi Abaakouk
232 55 Mehdi Abaakouk
+Disque avec partition avec parted récent (>= 3.1, ie: jessie, ubuntu 13.10):+
233 1 Mehdi Abaakouk
234 1 Mehdi Abaakouk
235 1 Mehdi Abaakouk
<pre> 
236 96 Mehdi Abaakouk
root@test4:~# parted /dev/sda print | grep sda
237 96 Mehdi Abaakouk
Disk /dev/sda: 64.4GB
238 1 Mehdi Abaakouk
 
239 96 Mehdi Abaakouk
root@test4# parted /dev/sda resizepart 1 
240 96 Mehdi Abaakouk
Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?
241 1 Mehdi Abaakouk
Yes/No? Yes                                                               
242 1 Mehdi Abaakouk
End?  [42.9GB]? 64.4GB   # METTRE ICI LA TAILLE VU AU DESSUS                                                 
243 1 Mehdi Abaakouk
Information: You may need to update /etc/fstab.                           
244 1 Mehdi Abaakouk
245 96 Mehdi Abaakouk
root@test4:~# resize2fs /dev/sda1
246 1 Mehdi Abaakouk
resize2fs 1.42.9 (4-Feb-2014)
247 96 Mehdi Abaakouk
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
248 1 Mehdi Abaakouk
old_desc_blocks = 3, new_desc_blocks = 4
249 96 Mehdi Abaakouk
The filesystem on /dev/sda1 is now 15722400 blocks long.
250 1 Mehdi Abaakouk
251 96 Mehdi Abaakouk
root@test4:~# df -h | grep sda
252 1 Mehdi Abaakouk
/dev/vda1        60G  797M   56G   2% /
253 1 Mehdi Abaakouk
</pre>
254 1 Mehdi Abaakouk
255 55 Mehdi Abaakouk
256 55 Mehdi Abaakouk
+Disque avec partition avec vieux parted (< 3.1, ie: wheezy, vielle ubuntu):+
257 55 Mehdi Abaakouk
258 55 Mehdi Abaakouk
Pour debian wheezy, utilisation des packages ubuntu de 14.04 devrait permettre d'utiliser la méthod précendente sinon: 
259 55 Mehdi Abaakouk
(pas encore testé, à voir si le kernel veut bien reload la table des partitions après)
260 14 Laurent GUERBY
261 1 Mehdi Abaakouk
<pre>
262 15 Laurent GUERBY
sfdisk -d /dev/vda > vda.mbr
263 14 Laurent GUERBY
cp vda.mbr vda.mbr.ori
264 14 Laurent GUERBY
vi vda.mbr 
265 14 Laurent GUERBY
# mettre un tres grand nombre pour la fin de la partition
266 14 Laurent GUERBY
sfdisk -L -n --no-reread /dev/vda < vda.mbr
267 14 Laurent GUERBY
# cela va faire une erreur avec le max a mettre pour la fin de la partition
268 14 Laurent GUERBY
# changer la fin de la partition avec ce chiffre
269 14 Laurent GUERBY
sfdisk -L --no-reread /dev/vda < vda.mbr
270 14 Laurent GUERBY
reboot
271 16 Aymeric APLU
resize2fs -p /dev/vda1
272 14 Laurent GUERBY
</pre>
273 14 Laurent GUERBY
274 109 Mehdi Abaakouk
h3. Ajout/Suppression IP/Subnet d'une VM existante (mode simple)
275 1 Mehdi Abaakouk
276 109 Mehdi Abaakouk
<pre>
277 109 Mehdi Abaakouk
openstack ttnn add-ip VM_NAME 89.234.156.212
278 109 Mehdi Abaakouk
openstack ttnn remove-ip VM_NAME 89.234.156.212
279 109 Mehdi Abaakouk
</pre>
280 109 Mehdi Abaakouk
281 109 Mehdi Abaakouk
h3. Ajout/Suppression IP/Subnet d'une VM existante (mode avancé)
282 109 Mehdi Abaakouk
283 109 Mehdi Abaakouk
Le mode avancé permet d'ajouté les ipv6 et ipv4 que l'on veut pour la VM. Contrairement au mode simple qui ajoute l'ipv4, le fe80 et le subnet ipv6 à partir de l'ipv4
284 109 Mehdi Abaakouk
285 49 Mehdi Abaakouk
Voir les IPs actutelles de la VM:
286 1 Mehdi Abaakouk
287 49 Mehdi Abaakouk
<pre>
288 109 Mehdi Abaakouk
# openstack port show backup.tetaneutral.net-eth0  -c  allowed_address_pairs -c fixed_ips
289 1 Mehdi Abaakouk
| allowed_address_pairs | {"ip_address": "2a01:6600:8083:d400::/56", "mac_address": "fa:16:3e:5f:07:45"}                |
290 65 Mehdi Abaakouk
| fixed_ips             | {"subnet_id": "d431cacd-3b60-4ca9-af24-eacc8e5d8671", "ip_address": "89.234.156.212"}         |
291 49 Mehdi Abaakouk
</pre>
292 1 Mehdi Abaakouk
293 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):
294 65 Mehdi Abaakouk
* en ipv4, c'est le /32 de l'ipv4
295 1 Mehdi Abaakouk
* en ipv6, c'est le /64 de l'ipv6
296 65 Mehdi Abaakouk
297 65 Mehdi Abaakouk
allowed_address_pairs sont des subnets à router:
298 65 Mehdi Abaakouk
299 65 Mehdi Abaakouk
* en ipv4, via la premier ipv4 de fixed_ips (setup inutile et qui ne fonctionne pas, car bird ne re-export pas ce genre de route)
300 1 Mehdi Abaakouk
* en ipv6, via la link local correspondant si elle existe dans fixed_ips, sinon directement dans le tap
301 1 Mehdi Abaakouk
302 1 Mehdi Abaakouk
303 1 Mehdi Abaakouk
Ajout/Suppression d'une ip dans fixed_ips (noter que les ip ici non pas de masque):
304 73 Mehdi Abaakouk
305 1 Mehdi Abaakouk
<pre>
306 109 Mehdi Abaakouk
openstack ttnn add-ip --manual VM_NAME 89.234.156.212
307 109 Mehdi Abaakouk
openstack ttnn add-ip --manual VM_NAME fe80::80:12
308 109 Mehdi Abaakouk
openstack ttnn remove-ip --manual VM_NAME 89.234.156.212
309 109 Mehdi Abaakouk
openstack ttnn remove-ip --manual VM_NAME fe80::80:12
310 1 Mehdi Abaakouk
</pre>
311 73 Mehdi Abaakouk
312 1 Mehdi Abaakouk
Ajout/Suppression d'une ip dans allowed_address_pairs (noter que les ip ici on a un masque):
313 1 Mehdi Abaakouk
314 1 Mehdi Abaakouk
<pre>
315 109 Mehdi Abaakouk
openstack ttnn add-ip --manual VM_NAME 2a01:6600:8083:d400::/56
316 109 Mehdi Abaakouk
openstack ttnn remove-ip --manual VM_NAME 2a01:6600:8083:d400::/56
317 1 Mehdi Abaakouk
</pre>
318 1 Mehdi Abaakouk
319 1 Mehdi Abaakouk
h3. Ajout d'une interface réseau à une VM:
320 73 Mehdi Abaakouk
321 73 Mehdi Abaakouk
<pre>
322 73 Mehdi Abaakouk
$ openstack ttnn tap add --ip 91.224.149.19 --port-name eth1 gizmo.sileht.net-eth1
323 73 Mehdi Abaakouk
Port gizmo.sileht.net-eth1 created:
324 73 Mehdi Abaakouk
+-------------------------------+-----------------------+----------------------------+--------------------------+-------------------+
325 73 Mehdi Abaakouk
| id                            | name                  | fixed_ips                  | allowed_address_pairs    | mac_address       |
326 73 Mehdi Abaakouk
+-------------------------------+-----------------------+----------------------------+--------------------------+-------------------+
327 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 |
328 73 Mehdi Abaakouk
| f3573a37130a                  |                       |                            |                          |                   |
329 73 Mehdi Abaakouk
+-------------------------------+-----------------------+----------------------------+--------------------------+-------------------+
330 73 Mehdi Abaakouk
+--------------------------------------+------------------+------+---------------+--------+-----------------------------------------+
331 73 Mehdi Abaakouk
| id                                   | name             | host | flavor        | status | addresses                               |
332 73 Mehdi Abaakouk
+--------------------------------------+------------------+------+---------------+--------+-----------------------------------------+
333 73 Mehdi Abaakouk
| 0346263f-77f6-4009-bdb3-d8720ec583e9 | gizmo.sileht.net | g9   | 2vcpu-4096ram | ACTIVE | vlan-routed=91.224.148.3,               |
334 73 Mehdi Abaakouk
|                                      |                  |      |               |        | 91.224.149.214, fe80::80:03,            |
335 1 Mehdi Abaakouk
|                                      |                  |      |               |        | fe80::81:d6, 91.224.149.19, fe80::81:13 |
336 1 Mehdi Abaakouk
+--------------------------------------+------------------+------+---------------+--------+-----------------------------------------+
337 1 Mehdi Abaakouk
</pre>
338 1 Mehdi Abaakouk
339 1 Mehdi Abaakouk
Dans la VM:
340 1 Mehdi Abaakouk
341 1 Mehdi Abaakouk
<pre>
342 1 Mehdi Abaakouk
$ dmesg | tail 
343 1 Mehdi Abaakouk
[ 1315.826088] virtio-pci 0000:00:06.0: using default PCI settings
344 1 Mehdi Abaakouk
[ 1315.826102] virtio-pci 0000:00:07.0: no hotplug settings from platform
345 1 Mehdi Abaakouk
[ 1315.826102] virtio-pci 0000:00:07.0: using default PCI settings
346 1 Mehdi Abaakouk
[ 1315.826116] pci 0000:00:08.0: no hotplug settings from platform
347 1 Mehdi Abaakouk
[ 1315.826117] pci 0000:00:08.0: using default PCI settings
348 1 Mehdi Abaakouk
[ 1315.826382] virtio-pci 0000:00:08.0: enabling device (0000 -> 0003)
349 1 Mehdi Abaakouk
[ 1315.829281] virtio-pci 0000:00:08.0: setting latency timer to 64
350 1 Mehdi Abaakouk
[ 1315.829535] virtio-pci 0000:00:08.0: irq 50 for MSI/MSI-X
351 1 Mehdi Abaakouk
[ 1315.829555] virtio-pci 0000:00:08.0: irq 51 for MSI/MSI-X
352 73 Mehdi Abaakouk
[ 1315.829563] virtio-pci 0000:00:08.0: irq 52 for MSI/MSI-X
353 73 Mehdi Abaakouk
354 1 Mehdi Abaakouk
$ ip l   show dev eth1
355 1 Mehdi Abaakouk
4: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
356 73 Mehdi Abaakouk
    link/ether fa:16:3e:6b:32:07 brd ff:ff:ff:ff:ff:ff
357 73 Mehdi Abaakouk
358 73 Mehdi Abaakouk
$ tail -15 /etc/network/interfaces
359 73 Mehdi Abaakouk
auto eth1
360 73 Mehdi Abaakouk
iface eth1 inet6 static
361 73 Mehdi Abaakouk
    pre-up /sbin/sysctl -w net.ipv6.conf.eth1.accept_ra=0
362 73 Mehdi Abaakouk
    pre-up /sbin/sysctl -w net.ipv6.conf.eth1.autoconf=0
363 73 Mehdi Abaakouk
    address 2a03:7220:8081:1300::1
364 73 Mehdi Abaakouk
    netmask 56
365 1 Mehdi Abaakouk
    gateway fe80::31
366 73 Mehdi Abaakouk
    up ip addr add fe80::81:13/64 dev eth0
367 73 Mehdi Abaakouk
368 73 Mehdi Abaakouk
iface eth1 inet manual
369 73 Mehdi Abaakouk
    pre-up /sbin/sysctl -w net.ipv6.conf.eth1.accept_ra=0
370 73 Mehdi Abaakouk
    pre-up /sbin/sysctl -w net.ipv6.conf.eth1.autoconf=0
371 73 Mehdi Abaakouk
    up ip link set eth1 up
372 73 Mehdi Abaakouk
    up ip addr add 91.224.149.19/32 dev eth1
373 73 Mehdi Abaakouk
    up ip route add default via 91.224.148.0 dev eth1 onlink
374 47 Mehdi Abaakouk
375 47 Mehdi Abaakouk
$ ifup eth1
376 1 Mehdi Abaakouk
</pre>
377 1 Mehdi Abaakouk
378 47 Mehdi Abaakouk
h3. Réinstallation/Réparation grub d'un VM
379 47 Mehdi Abaakouk
380 47 Mehdi Abaakouk
381 73 Mehdi Abaakouk
Récuperer l'id et l'hyperviseur de la VM
382 73 Mehdi Abaakouk
<pre>
383 47 Mehdi Abaakouk
# openstack server stop VMNAME.tetaneutral.net
384 47 Mehdi Abaakouk
# openstack server show VMNAME.tetaneutral.net | grep -e 'host ' -e ' id '
385 47 Mehdi Abaakouk
| OS-EXT-SRV-ATTR:host                 | g1                                                       |
386 47 Mehdi Abaakouk
| id                                   | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0                     |
387 47 Mehdi Abaakouk
</pre>
388 47 Mehdi Abaakouk
389 47 Mehdi Abaakouk
390 47 Mehdi Abaakouk
391 67 Laurent GUERBY
Bien attendre que la VM soir éteinte, aller sur l'hyperviseur en question, et taper
392 47 Mehdi Abaakouk
<pre>
393 47 Mehdi Abaakouk
virt-customize -v -d 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 --run-command 'update-grub ; grub-install /dev/sda;'
394 47 Mehdi Abaakouk
</pre>
395 47 Mehdi Abaakouk
396 73 Mehdi Abaakouk
Enfin, restart la VM
397 1 Mehdi Abaakouk
<pre>
398 19 Mehdi Abaakouk
# openstack server start VMNAME.tetaneutral.net
399 19 Mehdi Abaakouk
</pre>
400 19 Mehdi Abaakouk
401 1 Mehdi Abaakouk
h3. Monter le disque d'un vm sur une machine hote pour dépannage.
402 20 Alexandre GUY
403 20 Alexandre GUY
L’exemple montre la modification du fichier /etc/ssh/sshd_config
404 19 Mehdi Abaakouk
405 73 Mehdi Abaakouk
Récuperer l'id et l'hyperviseur de la VM
406 93 Mehdi Abaakouk
<pre>
407 115 Matthieu Herrb
root@g1# openstack server stop VMNAME.tetaneutral.net
408 115 Matthieu Herrb
root@gg1# openstack server show -c OS-EXT-SRV-ATTR:host -c id VMNAME.tetaneutral.net
409 19 Mehdi Abaakouk
| OS-EXT-SRV-ATTR:host                 | g1                                                       |
410 47 Mehdi Abaakouk
| id                                   | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0                     |
411 20 Alexandre GUY
</pre>
412 19 Mehdi Abaakouk
413 19 Mehdi Abaakouk
Aller sur l'hyperviseur en question, puis:
414 19 Mehdi Abaakouk
<pre>
415 1 Mehdi Abaakouk
416 115 Matthieu Herrb
root@<hyperviseur># virt-edit -d 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 /etc/ssh/sshd_config
417 20 Alexandre GUY
</pre>
418 18 Mehdi Abaakouk
419 115 Matthieu Herrb
Fermer le fichier puis sur g1 restart la VM
420 42 Mehdi Abaakouk
<pre>
421 115 Matthieu Herrb
root@g1# openstack server start VMNAME.tetaneutral.net
422 91 Mehdi Abaakouk
</pre>
423 41 Mehdi Abaakouk
424 41 Mehdi Abaakouk
h3. Convert du fs root en ext4 et passage en scsi (tester avec ceph jewel and openstack ocata)
425 70 Mehdi Abaakouk
426 41 Mehdi Abaakouk
/!\ à retester à chaque update openstack vu que ca fait du sql /!\
427 41 Mehdi Abaakouk
428 1 Mehdi Abaakouk
Dans la VM, préparation de grub et du fstab:
429 1 Mehdi Abaakouk
430 42 Mehdi Abaakouk
<pre>
431 45 Mehdi Abaakouk
$ vi /etc/fstab
432 1 Mehdi Abaakouk
# Viré /proc
433 42 Mehdi Abaakouk
# Pour / (voir les autres) mettre: 
434 41 Mehdi Abaakouk
LABEL=cloudimg-rootfs  /  ext4   defaults,discard,noatime  0 0
435 42 Mehdi Abaakouk
436 42 Mehdi Abaakouk
$ e2label /dev/vda1 cloudimg-rootfs
437 41 Mehdi Abaakouk
$ apt-get install grub-pc
438 41 Mehdi Abaakouk
$ apt-get purge extlinux
439 80 Mehdi Abaakouk
$ rm -f /extlinux.conf 
440 80 Mehdi Abaakouk
$ grub-install /dev/vda
441 80 Mehdi Abaakouk
$ vi /etc/default/grub
442 41 Mehdi Abaakouk
# Ajouter: GRUB_CMDLINE_LINUX="elevator=noop console=tty0 console=ttyS0,115200n8"
443 42 Mehdi Abaakouk
$ update-grub
444 33 Mehdi Abaakouk
$ shutdown -h now
445 33 Mehdi Abaakouk
</pre>
446 33 Mehdi Abaakouk
447 33 Mehdi Abaakouk
Récuperer l'id et l'hyperviseur de la VM
448 73 Mehdi Abaakouk
449 82 Mehdi Abaakouk
<pre>
450 33 Mehdi Abaakouk
# openstack server stop VMNAME.tetaneutral.net
451 33 Mehdi Abaakouk
# openstack server show -c OS-EXT-SRV-ATTR:host -c id VMNAME.tetaneutral.net
452 35 Mehdi Abaakouk
| OS-EXT-SRV-ATTR:host                 | g1                                                       |
453 1 Mehdi Abaakouk
| id                                   | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0                     |
454 35 Mehdi Abaakouk
</pre>
455 35 Mehdi Abaakouk
456 35 Mehdi Abaakouk
Aller sur l'hyperviseur en question, puis:
457 35 Mehdi Abaakouk
458 35 Mehdi Abaakouk
<pre>
459 35 Mehdi Abaakouk
$ virt-rescue --suggest 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 
460 35 Mehdi Abaakouk
...
461 35 Mehdi Abaakouk
# /dev/sdb1 is the root of a linux operating system
462 1 Mehdi Abaakouk
# type: linux, distro: debian, version: 8.0
463 35 Mehdi Abaakouk
# 8.0
464 1 Mehdi Abaakouk
465 42 Mehdi Abaakouk
mount /dev/sdb1 /sysroot/
466 1 Mehdi Abaakouk
mount --bind /dev /sysroot/dev
467 42 Mehdi Abaakouk
mount --bind /dev/pts /sysroot/dev/pts
468 42 Mehdi Abaakouk
mount --bind /proc /sysroot/proc
469 42 Mehdi Abaakouk
mount --bind /sys /sysroot/sys
470 1 Mehdi Abaakouk
</pre>
471 1 Mehdi Abaakouk
472 1 Mehdi Abaakouk
# Utiliser le device proposé pour la convertion en ext4:
473 1 Mehdi Abaakouk
474 1 Mehdi Abaakouk
<pre>
475 1 Mehdi Abaakouk
$ virt-rescue 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 
476 42 Mehdi Abaakouk
> tune2fs -O extents,uninit_bg,dir_index /dev/sdb1
477 42 Mehdi Abaakouk
> e2fsck -fDC0 /dev/sdb1
478 42 Mehdi Abaakouk
> <CTRL+D>
479 82 Mehdi Abaakouk
</pre>
480 1 Mehdi Abaakouk
481 1 Mehdi Abaakouk
Ajout des attributs scsi
482 82 Mehdi Abaakouk
483 91 Mehdi Abaakouk
<pre>
484 1 Mehdi Abaakouk
openstack volume show VMNAME.tetaneutral.net-bootdisk
485 1 Mehdi Abaakouk
openstack volume set --image-property hw_scsi_model=virtio-scsi --image-property hw_disk_bus=scsi  VMNAME.tetaneutral.net-bootdisk
486 82 Mehdi Abaakouk
</pre>
487 1 Mehdi Abaakouk
488 1 Mehdi Abaakouk
Puis supprimer et recréer la VM
489 82 Mehdi Abaakouk
490 82 Mehdi Abaakouk
<pre>
491 73 Mehdi Abaakouk
openstack server show -c name -c flavor -c addresses VMNAME.tetaneutral.net 
492 82 Mehdi Abaakouk
openstack ttnn delete VMNAME.tetaneutral.net
493 1 Mehdi Abaakouk
openstack ttnn create --ip <ip> --flavor <flavor> VMNAME.tetaneutral.net # --volume disk-1 # pour les disques additionels
494 98 Mehdi Abaakouk
</pre>
495 98 Mehdi Abaakouk
496 118 Mehdi Abaakouk
h3. Transformer un volume Ceph "manuel" (type <pseudo-adherent>-vol) en volume Ceph "Openstack" (volume-<id-openstack>)
497 118 Mehdi Abaakouk
498 118 Mehdi Abaakouk
On crée d'abord in volume cinder vide de la meme taille.
499 118 Mehdi Abaakouk
500 118 Mehdi Abaakouk
<pre>
501 119 Mehdi Abaakouk
# rbd info -p disks XXXXXXXX-vol | grep size
502 118 Mehdi Abaakouk
size 1024 GB in 262144 objects
503 118 Mehdi Abaakouk
504 118 Mehdi Abaakouk
/!\ la taille ici doit être identique dans cinder et dans ceph /!\
505 119 Mehdi Abaakouk
# openstack volume create --type ceph --size 1024 vmXXXXXXXX.tetaneutral.net-disk-1
506 118 Mehdi Abaakouk
+---------------------+--------------------------------------+
507 118 Mehdi Abaakouk
| Field               | Value                                |
508 118 Mehdi Abaakouk
+---------------------+--------------------------------------+
509 118 Mehdi Abaakouk
| attachments         | []                                   |
510 118 Mehdi Abaakouk
| availability_zone   | nova                                 |
511 118 Mehdi Abaakouk
| bootable            | false                                |
512 118 Mehdi Abaakouk
| consistencygroup_id | None                                 |
513 118 Mehdi Abaakouk
| created_at          | 2018-08-28T06:11:57.669300           |
514 118 Mehdi Abaakouk
| description         | None                                 |
515 118 Mehdi Abaakouk
| encrypted           | False                                |
516 119 Mehdi Abaakouk
| id                  | dcc26207-ef60-48e6-983e-94c1c945dXbX |
517 118 Mehdi Abaakouk
| migration_status    | None                                 |
518 118 Mehdi Abaakouk
| multiattach         | False                                |
519 119 Mehdi Abaakouk
| name                | vmXXXXXXXX.tetaneutral.net-disk-1    |
520 118 Mehdi Abaakouk
| properties          |                                      |
521 118 Mehdi Abaakouk
| replication_status  | None                                 |
522 118 Mehdi Abaakouk
| size                | 1024                                 |
523 118 Mehdi Abaakouk
| snapshot_id         | None                                 |
524 118 Mehdi Abaakouk
| source_volid        | None                                 |
525 118 Mehdi Abaakouk
| status              | creating                             |
526 118 Mehdi Abaakouk
| type                | ceph                                 |
527 118 Mehdi Abaakouk
| updated_at          | None                                 |
528 118 Mehdi Abaakouk
| user_id             | f18b121edda04346b86610fa23983a0e     |
529 118 Mehdi Abaakouk
+---------------------+--------------------------------------+
530 118 Mehdi Abaakouk
531 119 Mehdi Abaakouk
# rbd info -p disks volume-dcc26207-ef60-48e6-983e-94c1c945dXbX | grep size
532 118 Mehdi Abaakouk
        size 1024 GB in 262144 objects
533 118 Mehdi Abaakouk
/!\ doit être identique à l'image d'origine /!\
534 118 Mehdi Abaakouk
535 118 Mehdi Abaakouk
</pre>
536 118 Mehdi Abaakouk
537 118 Mehdi Abaakouk
En suite on s'assure que les features de l'image sont celle attendu par Openstack:
538 118 Mehdi Abaakouk
539 118 Mehdi Abaakouk
<pre>
540 118 Mehdi Abaakouk
541 119 Mehdi Abaakouk
# rbd info -p disks volume-dcc26207-ef60-48e6-983e-94c1c945dXbX | grep features
542 118 Mehdi Abaakouk
        features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
543 118 Mehdi Abaakouk
544 119 Mehdi Abaakouk
# rbd info -p disks XXXXXXXX-vol | grep features
545 118 Mehdi Abaakouk
        features: layering
546 118 Mehdi Abaakouk
547 1 Mehdi Abaakouk
# # NOTE, deep-flatten ne peut pas être ajouté, mais c'est pas grave.
548 119 Mehdi Abaakouk
# for i in exclusive-lock object-map fast-diff; do rbd feature enable disks/XXXXXXXX-vol $i ; done
549 1 Mehdi Abaakouk
550 1 Mehdi Abaakouk
551 1 Mehdi Abaakouk
# # Rebuild metadata file on the volume
552 119 Mehdi Abaakouk
# rbd object-map rebuild disks/XXXXXXXX-vol
553 1 Mehdi Abaakouk
Object Map Rebuild: 2% complete...
554 1 Mehdi Abaakouk
</pre>
555 1 Mehdi Abaakouk
556 119 Mehdi Abaakouk
Et pour finir on swap les deux volumes
557 119 Mehdi Abaakouk
558 119 Mehdi Abaakouk
<pre>
559 119 Mehdi Abaakouk
# rbd rm -p disks volume-dcc26207-ef60-48e6-983e-94c1c945dXbX
560 119 Mehdi Abaakouk
Removing image: 100% complete...done.
561 119 Mehdi Abaakouk
# rbd mv disks/XXXXXXXX-vol disks/volume-dcc26207-ef60-48e6-983e-94c1c945dXbX
562 119 Mehdi Abaakouk
</pre>
563 119 Mehdi Abaakouk
564 119 Mehdi Abaakouk
Voila on peut maintenant mettre le disque dans une VM:
565 119 Mehdi Abaakouk
566 119 Mehdi Abaakouk
<pre>
567 119 Mehdi Abaakouk
openstack server add volume XXXXXXXX.tetaneutral.net XXXXXXXX.tetaneutral.net-disk-1
568 119 Mehdi Abaakouk
</pre>
569 118 Mehdi Abaakouk
570 118 Mehdi Abaakouk
571 98 Mehdi Abaakouk
h3. Déplacer une VM de pool ceph (dernier test avec ceph jewel / openstack ocata)
572 98 Mehdi Abaakouk
573 98 Mehdi Abaakouk
574 98 Mehdi Abaakouk
<pre>
575 98 Mehdi Abaakouk
# openstack server show test246.tetaneutral.net -c id -c flavor -c addresses -c status
576 98 Mehdi Abaakouk
+-----------+------------------------------------------------------+
577 98 Mehdi Abaakouk
| Field     | Value                                                |
578 98 Mehdi Abaakouk
+-----------+------------------------------------------------------+
579 98 Mehdi Abaakouk
| addresses | vlan-routed=91.224.149.115, fe80::80:fe              |
580 98 Mehdi Abaakouk
| flavor    | 1vcpu-2048ram (7880cafc-bd0b-4045-9777-ef2e9201bd6c) |
581 98 Mehdi Abaakouk
| id        | 485f270a-eb2e-452e-8733-fc4c741cbe8f                 |
582 98 Mehdi Abaakouk
| status    | ACTIVE                                               |
583 98 Mehdi Abaakouk
+-----------+------------------------------------------------------+
584 98 Mehdi Abaakouk
585 98 Mehdi Abaakouk
# openstack server delete test246.tetaneutral.net
586 98 Mehdi Abaakouk
Request to delete server test246.tetaneutral.net has been accepted.
587 98 Mehdi Abaakouk
588 98 Mehdi Abaakouk
# openstack volume set --type ceph-ssd --retype-policy on-demand test246.tetaneutral.net
589 98 Mehdi Abaakouk
590 98 Mehdi Abaakouk
# watch -n1 -- 'openstack volume list --long | grep test246.tetaneutral.net-bootdisk'
591 98 Mehdi Abaakouk
| 82279cc1-9a34-4108-b7a6-6944f252a2c3 | test246.tetaneutral.net-bootdisk           | retyping  |    1 |  ceph
592 98 Mehdi Abaakouk
| 313dc3e5-a04a-435b-8b35-ecc5d7b5695c | test246.tetaneutral.net-bootdisk           | available |    1 |  ceph-ssd
593 98 Mehdi Abaakouk
594 98 Mehdi Abaakouk
Attendre qu'il n'y ai plus que le nouveau volume
595 98 Mehdi Abaakouk
596 98 Mehdi Abaakouk
| 313dc3e5-a04a-435b-8b35-ecc5d7b5695c | test246.tetaneutral.net                    | available |    1 |  ceph-ssd
597 98 Mehdi Abaakouk
598 98 Mehdi Abaakouk
# openstack ttnn create --ip 91.224.149.115 --flavor 1vcpu-2048ram test246.tetaneutral.net
599 26 Mehdi Abaakouk
</pre>
600 43 Mehdi Abaakouk
601 43 Mehdi Abaakouk
h3. Réaligne VM partition (guide pour vm avec une seul partition)
602 43 Mehdi Abaakouk
603 43 Mehdi Abaakouk
604 43 Mehdi Abaakouk
Prérequies:
605 43 Mehdi Abaakouk
606 43 Mehdi Abaakouk
* VM utilse grub2
607 43 Mehdi Abaakouk
* 
608 43 Mehdi Abaakouk
609 43 Mehdi Abaakouk
Récuperer l'id et l'hyperviseur de la VM, ainsi que l'id du disk
610 73 Mehdi Abaakouk
611 73 Mehdi Abaakouk
<pre>
612 43 Mehdi Abaakouk
# openstack server stop VMNAME.tetaneutral.net
613 43 Mehdi Abaakouk
# openstack server show VMNAME.tetaneutral.net | grep -e 'host ' -e ' id '
614 43 Mehdi Abaakouk
| OS-EXT-SRV-ATTR:host                 | g1                                                       |
615 43 Mehdi Abaakouk
| id                                   | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0                     |
616 43 Mehdi Abaakouk
# cinder list | grep puppet
617 43 Mehdi Abaakouk
| 213e894e-2f20-42b5-a27b-21f5a355c722 |   in-use  |          VMNAME.tetaneutral.net-bootdisk          |  20  |     ceph-ssd    |   true   | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 |
618 43 Mehdi Abaakouk
</pre>
619 43 Mehdi Abaakouk
620 43 Mehdi Abaakouk
Aller sur l'hyperviseur en question, puis vérifier l'alignement:
621 43 Mehdi Abaakouk
622 43 Mehdi Abaakouk
<pre>
623 43 Mehdi Abaakouk
$ virt-alignment-scan -d 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 
624 43 Mehdi Abaakouk
/dev/sdb1        65536           512   bad (alignment < 4K)
625 43 Mehdi Abaakouk
</pre>
626 43 Mehdi Abaakouk
627 43 Mehdi Abaakouk
Réalignemet, *aller dans un espace ou il y a 2x l'espace utile de la VM*, puis:
628 43 Mehdi Abaakouk
629 43 Mehdi Abaakouk
<pre>
630 44 Mehdi Abaakouk
$ virt-tar-out -d 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 / - | gzip --best > VMNAME.tar.gz
631 43 Mehdi Abaakouk
$ rbd -p ssds info volume-213e894e-2f20-42b5-a27b-21f5a355c722
632 43 Mehdi Abaakouk
rbd image 'volume-213e894e-2f20-42b5-a27b-21f5a355c722':
633 43 Mehdi Abaakouk
        size 20480 MB in 5120 objects
634 43 Mehdi Abaakouk
        order 22 (4096 kB objects)
635 43 Mehdi Abaakouk
        block_name_prefix: rbd_data.996cc92ae8944a
636 43 Mehdi Abaakouk
        format: 2
637 43 Mehdi Abaakouk
        features: layering
638 43 Mehdi Abaakouk
$ virt-make-fs --label=cloudimg-rootfs --partition=mbr --type=ext4 --format=raw --size=20480 VMNAME.tar.gz VMNAME.img
639 43 Mehdi Abaakouk
$ virt-customize -a VMNAME.img --run-command 'update-grub ; grub-install /dev/sda'
640 43 Mehdi Abaakouk
$ rbd mv ssds/volume-213e894e-2f20-42b5-a27b-21f5a355c722 ssds/volume-213e894e-2f20-42b5-a27b-21f5a355c722.unaligned
641 43 Mehdi Abaakouk
$ rbd import --image-format 2 VMNAME.img ssds/volume-213e894e-2f20-42b5-a27b-21f5a355c722
642 26 Mehdi Abaakouk
</pre>
643 26 Mehdi Abaakouk
644 26 Mehdi Abaakouk
Vérification:
645 26 Mehdi Abaakouk
646 26 Mehdi Abaakouk
<pre>
647 26 Mehdi Abaakouk
$ virt-alignment-scan -d 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 
648 26 Mehdi Abaakouk
/dev/sdb1        65536           64K   ok
649 26 Mehdi Abaakouk
</pre>
650 26 Mehdi Abaakouk
651 26 Mehdi Abaakouk
h3. Création/Restauration snapshot
652 26 Mehdi Abaakouk
653 26 Mehdi Abaakouk
Création:
654 26 Mehdi Abaakouk
655 26 Mehdi Abaakouk
<pre>
656 26 Mehdi Abaakouk
source os.conf
657 26 Mehdi Abaakouk
/root/tools/os-snapshot-vm.sh pano.tetaneutral.net bootdisk /
658 27 Laurent GUERBY
* Freezing / of pano.tetaneutral.net
659 27 Laurent GUERBY
* Snapshoting pano.tetaneutral.net-bootdisk
660 26 Mehdi Abaakouk
Snapshot pano.tetaneutral.net-bootdisk-20150125-1600 is in state creating ..
661 26 Mehdi Abaakouk
* pano.tetaneutral.net-bootdisk snapshoted
662 26 Mehdi Abaakouk
* / of pano.tetaneutral.net unfreezed
663 26 Mehdi Abaakouk
</pre>
664 26 Mehdi Abaakouk
665 26 Mehdi Abaakouk
Restauration:
666 73 Mehdi Abaakouk
667 26 Mehdi Abaakouk
<pre>
668 130 Guilhem Saurel
$ openstack volume snapshot list
669 73 Mehdi Abaakouk
...
670 2 Mehdi Abaakouk
$ openstack volume create --size 101 --snapshot pano.tetaneutral.net-bootdisk-20150125-1600  pano-restauration-test
671 2 Mehdi Abaakouk
$ openstack server add volume pano.tetaneutral.net pano-restauration-test
672 107 Mehdi Abaakouk
</pre>
673 1 Mehdi Abaakouk
674 127 Matthieu Herrb
h3. Virer cloud-init sans accés à la VM:
675 110 Mehdi Abaakouk
676 110 Mehdi Abaakouk
<pre>
677 110 Mehdi Abaakouk
# openstack server stop VMNAME.tetaneutral.net 
678 110 Mehdi Abaakouk
# openstack server show VMNAME.tetaneutral.net -c id -c OS-EXT-SRV-ATTR:host -c status -f value
679 110 Mehdi Abaakouk
g12
680 110 Mehdi Abaakouk
a82eb312-7d42-44e1-bce2-a81292916cc3
681 110 Mehdi Abaakouk
SHUTOFF
682 110 Mehdi Abaakouk
683 110 Mehdi Abaakouk
# virt-customize -v --connect "qemu+ssh://<SHORT HYPERVISOR HOSTNAME>:2222/system" -d <ID> --run-command "echo ::::::::::::::: ; DEBIAN_FRONTEND=noninteractive apt-get -y purge cloud-init cloud-initramfs-growroot ; echo :::::::::::: ; "
684 110 Mehdi Abaakouk
</pre>
685 110 Mehdi Abaakouk
686 128 Matthieu Herrb
h2. Opérations sur les hyperviseurs
687 107 Mehdi Abaakouk
688 107 Mehdi Abaakouk
h3. Reboot d'un hyperviseur
689 107 Mehdi Abaakouk
690 51 Mehdi Abaakouk
Sur g1
691 107 Mehdi Abaakouk
692 51 Mehdi Abaakouk
<pre>
693 50 Mehdi Abaakouk
# openstack ttnn evacuate HOST
694 50 Mehdi Abaakouk
Migration of :
695 1 Mehdi Abaakouk
- lagrandeourse.tetaneutral.net [g2/active]
696 29 Mehdi Abaakouk
- pontsjumeaux.tetaneutral.net [g2/active]
697 29 Mehdi Abaakouk
- log.tetaneutral.net [g2/active]
698 1 Mehdi Abaakouk
- jabber.tetaneutral.net [g2/active]
699 107 Mehdi Abaakouk
- vmfatal.tetaneutral.net [g2/active]
700 1 Mehdi Abaakouk
- zoe.tetaneutral.net [g2/active]
701 1 Mehdi Abaakouk
...
702 107 Mehdi Abaakouk
703 1 Mehdi Abaakouk
Continue (Y/n) ? Y
704 1 Mehdi Abaakouk
rollback script 'evacuate-rollback-g2.sh' created
705 1 Mehdi Abaakouk
Live migration of lagrandeourse.tetaneutral.net [g2/active]: Complete on g2 and still alive \o/
706 1 Mehdi Abaakouk
...
707 107 Mehdi Abaakouk
</pre>
708 1 Mehdi Abaakouk
709 1 Mehdi Abaakouk
Sur l'hyperviseur en question:
710 107 Mehdi Abaakouk
711 107 Mehdi Abaakouk
<pre>
712 107 Mehdi Abaakouk
# ps fauxwww|grep kvm           # verifier qu'il n'y a plus de VM lancé
713 107 Mehdi Abaakouk
# virsh list --all              # verifier qu'il n'y a plus de VM dans libvirt
714 107 Mehdi Abaakouk
# ceph osd set noout            # pour prevenir que les OSD vont revenir
715 107 Mehdi Abaakouk
# systemctl stop ceph-mon@*     # Stopper les osd 
716 29 Mehdi Abaakouk
# systemctl stop ceph-osd@*     # Stopper les osd 
717 107 Mehdi Abaakouk
# reboot
718 107 Mehdi Abaakouk
</pre>
719 107 Mehdi Abaakouk
720 107 Mehdi Abaakouk
721 107 Mehdi Abaakouk
Une fois l'opération terminer, pour remettre l'hyperviseur en route, sur g1
722 107 Mehdi Abaakouk
723 107 Mehdi Abaakouk
<pre>
724 107 Mehdi Abaakouk
ceph osd tree                   # Vérifier que les OSDs de cette hypervisuer sont revenur
725 107 Mehdi Abaakouk
./tools/os-overview.sh          # Vérifier que neutron et nova sont ok sur cette hyperviseur
726 107 Mehdi Abaakouk
727 107 Mehdi Abaakouk
ceph osd unset noout            
728 107 Mehdi Abaakouk
./evacuate-rollback-g2.sh       # Remettre les VMs dessus.
729 107 Mehdi Abaakouk
730 23 Laurent GUERBY
</pre>
731 23 Laurent GUERBY
732 23 Laurent GUERBY
h2. VM de management (nommé openstack)
733 23 Laurent GUERBY
734 23 Laurent GUERBY
h3. Live Migration d'un host à l'autre
735 23 Laurent GUERBY
736 23 Laurent GUERBY
Cela fait tout à notre place niveau kvm/libvirt/ceph
737 23 Laurent GUERBY
738 23 Laurent GUERBY
<pre>
739 23 Laurent GUERBY
virsh migrate --persistent --undefinesource --live --p2p openstack qemu+ssh://g2.tetaneutral.net:2222/system
740 71 Mehdi Abaakouk
</pre>
741 23 Laurent GUERBY
742 23 Laurent GUERBY
h3. Recover depuis une perte de la machine hote:
743 53 Mehdi Abaakouk
744 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
745 1 Mehdi Abaakouk
746 1 Mehdi Abaakouk
_Note: il faut surement viré les uuid des interfaces openvswitch qui sont différent suivant le hosts_
747 1 Mehdi Abaakouk
748 1 Mehdi Abaakouk
Puis on recréé la VM
749 53 Mehdi Abaakouk
750 60 Mehdi Abaakouk
<pre>
751 60 Mehdi Abaakouk
$ virsh create openstack.xml
752 1 Mehdi Abaakouk
$ virsh start openstack.xml
753 1 Mehdi Abaakouk
</pre>
754 120 Mehdi Abaakouk
755 121 Mehdi Abaakouk
h2. Fonctionnement du boot des VM Openstack et de leur auto-configuration
756 121 Mehdi Abaakouk
757 121 Mehdi Abaakouk
Contrairement à la plupart des déploiements Openstack:
758 121 Mehdi Abaakouk
* Nous n’utilisons pas de server DHCP de neutron pour distribuer les IPs
759 121 Mehdi Abaakouk
* Nous n’utilisons pas le "nova/neutron-metadata-api" + "cloud-init" pour configurer les VMs (hostname, resize du fs, maj APT, DNS, clé ssh ...)
760 121 Mehdi Abaakouk
761 121 Mehdi Abaakouk
Chez TTNN, c'est plus old school et pas très cloudy, mais c'est flexible, ca marche et c'est compatible avec tous les OS.
762 121 Mehdi Abaakouk
(contrairement à cloud-init qui marche que pour les cas très simple et uniquement sous certain linux)
763 121 Mehdi Abaakouk
764 121 Mehdi Abaakouk
h3. Processus de création des VMs
765 121 Mehdi Abaakouk
766 121 Mehdi Abaakouk
Pour cela, on utilise la feature "config-drive" de Nova, qui attache un CDROM avec un fichier dedans.
767 121 Mehdi Abaakouk
Le fichier en question doit être passé en paramètre de -'openstack server create'- pour booter la VM, cela est fait +automatiquement+ quand on utilise *openstack ttnn create*.
768 121 Mehdi Abaakouk
Neutron, lui s'occupe juste de router les IPs dans le tap de la VM.
769 121 Mehdi Abaakouk
770 121 Mehdi Abaakouk
Dans notre cas le fichier est un script shell que vous trouverez ici:
771 121 Mehdi Abaakouk
772 121 Mehdi Abaakouk
https://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/openstack-tools/revisions/master/entry/osc-plugins/osc_ttnn/boot-vm-user-data.tmpl
773 121 Mehdi Abaakouk
774 121 Mehdi Abaakouk
Ce script s'occupe pour tous les OS supportés (debian/ubuntu/cirros/fedora/*BSD) de:
775 121 Mehdi Abaakouk
* resize le rootfs pour prendre tout l'espace disponible
776 121 Mehdi Abaakouk
* configurer le hostname
777 121 Mehdi Abaakouk
* configurer les IPs v4 et v6
778 121 Mehdi Abaakouk
* remplir /etc/hosts
779 121 Mehdi Abaakouk
* configurer les DNS
780 121 Mehdi Abaakouk
* installer la clé ssh TTNN
781 121 Mehdi Abaakouk
* générer des clé sshd
782 121 Mehdi Abaakouk
* mettre à jour la distribution
783 121 Mehdi Abaakouk
784 121 Mehdi Abaakouk
En gros tous ce qui peut pas être fait dans l'image elle même.
785 121 Mehdi Abaakouk
786 121 Mehdi Abaakouk
Ce script sera ensuite exécuté lors du premier boot de la machine.
787 121 Mehdi Abaakouk
788 121 Mehdi Abaakouk
TTNN prépare des images spécial de VM qui lance ce script au premier boot.
789 121 Mehdi Abaakouk
790 121 Mehdi Abaakouk
h3. Processus de création des images
791 121 Mehdi Abaakouk
792 121 Mehdi Abaakouk
Les images des VMs TTNN sont construite un script lancer depuis g1:tools/images/
793 121 Mehdi Abaakouk
794 121 Mehdi Abaakouk
Ce script gére Debian, Ubuntu, Cirros, Openwrt, et vaguement Openbsd/Freebsd.
795 121 Mehdi Abaakouk
796 121 Mehdi Abaakouk
Seulement Debian est vraiment testé/utilisé régulièrement.
797 121 Mehdi Abaakouk
798 121 Mehdi Abaakouk
Ce doit s'occuper principalement de:
799 121 Mehdi Abaakouk
* télécharger l'image de base de la distribution
800 121 Mehdi Abaakouk
* installer les packages nécessaire au premier boot de la VM: ssh, tools pour resize les disques,
801 121 Mehdi Abaakouk
* configure le /etc/fstab ou équivalent
802 121 Mehdi Abaakouk
* configure le bootloader si besoin (Ajout une console serie pour avoir les logs dans openstack par example)
803 121 Mehdi Abaakouk
* configure sshd sur le port 2222
804 121 Mehdi Abaakouk
* supprime tout fichier temporary ou propre à la machine (clé sshd, 
805 121 Mehdi Abaakouk
* désactive fsck au boot
806 121 Mehdi Abaakouk
* ...
807 121 Mehdi Abaakouk
* *Crée un rc.local qui montera le CDROM, lancera la script qui est dessus, puis s'auto-détruira*: https://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/openstack-tools/revisions/master/entry/images/first_boot.sh
808 121 Mehdi Abaakouk
* ...
809 122 Mehdi Abaakouk
* shrink l'image/fs pour avoir un tout petit fichier à uploader et booter par la suite.
810 121 Mehdi Abaakouk
* uploader l'image dans openstack
811 121 Mehdi Abaakouk
812 121 Mehdi Abaakouk
Le script: https://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/openstack-tools/revisions/master/entry/images/build-image.sh
813 1 Mehdi Abaakouk
814 125 Mehdi Abaakouk
h3. Cas d'*BSD
815 1 Mehdi Abaakouk
816 122 Mehdi Abaakouk
La fabrication des images, nécessite une image de base que Openbsd ne fournit pas, il faut la fabriquer soit même.
817 124 Mehdi Abaakouk
Ensuite linux ne supporte pas toutes les variantes et versions du filesystem UFS. Ce qui rends difficile de modifier l'image à partir de la machine g1.
818 1 Mehdi Abaakouk
819 124 Mehdi Abaakouk
J'ai déjà fait une image OpenBSD 5.7 dans le passé mais faut quand meme de farcir une install de l'OS à la main, puis faire tout ce que fait build-image.sh manuellement
820 122 Mehdi Abaakouk
821 124 Mehdi Abaakouk
Pour l'ufs2 de FreeBSD, y'a https://github.com/mkatiyar/fuse-ufs2 (qu'utilise build-image.sh pour les BSD), mais pour OpenBSD ca me marche pas.
822 124 Mehdi Abaakouk
823 124 Mehdi Abaakouk
Création de l'image de base:
824 124 Mehdi Abaakouk
825 123 Mehdi Abaakouk
<pre>
826 123 Mehdi Abaakouk
qemu-img create -f qcow2 openbsd-6.3.qcow2 15G
827 123 Mehdi Abaakouk
wget https://cloudflare.cdn.openbsd.org/pub/OpenBSD/6.3/amd64/cd63.iso
828 123 Mehdi Abaakouk
829 123 Mehdi Abaakouk
qemu-system-x86_64 -m 2048 -hda openbsd-6.3.qcow2 -cdrom cd63.iso -enable-kvm -netdev user,id=mynet0,hostfwd=tcp:127.0.0.1:7922-:22 -device e1000,netdev=mynet0 -smp 2 -vga qxl -spice port=5900,addr=127.0.0.1,disable-ticketing &
830 123 Mehdi Abaakouk
831 123 Mehdi Abaakouk
remote-viewer spice://localhost:5900
832 123 Mehdi Abaakouk
</pre>
833 123 Mehdi Abaakouk
834 123 Mehdi Abaakouk
Les questions importantes:
835 1 Mehdi Abaakouk
* X11 -> no
836 1 Mehdi Abaakouk
* com0 -> yes
837 1 Mehdi Abaakouk
* com0 speed -> 115200
838 1 Mehdi Abaakouk
* root login -> prohibit-password
839 1 Mehdi Abaakouk
* Partitionnement un seul rootfs: z, a, <enter>, <enter>, <enter, /, w, x
840 1 Mehdi Abaakouk
* sets: -x* -xgame*
841 124 Mehdi Abaakouk
* Reboot
842 124 Mehdi Abaakouk
843 124 Mehdi Abaakouk
<pre>
844 124 Mehdi Abaakouk
ssh root@localhost:7922
845 124 Mehdi Abaakouk
</pre>
846 124 Mehdi Abaakouk
847 124 Mehdi Abaakouk
Pour faire tous les manips du build-image.sh manuellement.
848 124 Mehdi Abaakouk
849 124 Mehdi Abaakouk
Puis uploader l'image manuellement dans Glance.
850 131 Fabien ADAM
851 131 Fabien ADAM
852 131 Fabien ADAM
h2. Openstack est indisponible
853 131 Fabien ADAM
854 131 Fabien ADAM
L'API d'Openstack est installée sur une VM nommée *openstack* sous libvirt.
855 131 Fabien ADAM
856 131 Fabien ADAM
<pre>
857 131 Fabien ADAM
# Vérifier si la VM répond au ping
858 131 Fabien ADAM
ping -c1 openstack.tetaneutral.net
859 131 Fabien ADAM
# Vérifier sur quel serveur et dans quel état se trouve la VM
860 131 Fabien ADAM
for compute in $(echo n7 g{1..12}); do ssh $compute.t virsh list --all | grep openstack && echo $compute; done
861 131 Fabien ADAM
# Se connecter ensuite sur le server correspondant
862 131 Fabien ADAM
# Vérifier ce qui s'est passé sur la VM
863 131 Fabien ADAM
tail /var/log/libvirt/qemu/openstack.log
864 131 Fabien ADAM
# Si elle a crashé, la relancer
865 131 Fabien ADAM
virsh start openstack
866 131 Fabien ADAM
</pre>