Projet

Général

Profil

Openstack Management TTNN » Historique » Version 123

Mehdi Abaakouk, 30/08/2018 10:41

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