Projet

Général

Profil

Openstack Management TTNN » Historique » Version 6

Laurent GUERBY, 16/10/2014 15:24

1 3 Mehdi Abaakouk
{{>toc}}
2 3 Mehdi Abaakouk
3 1 Mehdi Abaakouk
h1. Openstack Management TTNN
4 1 Mehdi Abaakouk
5 4 Mehdi Abaakouk
h2. Opération sur les VMs (des membres)
6 1 Mehdi Abaakouk
7 1 Mehdi Abaakouk
h3. Reboot VM en error
8 1 Mehdi Abaakouk
9 1 Mehdi Abaakouk
<pre>
10 1 Mehdi Abaakouk
nova reset-state --active xxx.tetaneutral.net
11 1 Mehdi Abaakouk
nova reboot --hard --poll xxx.tetaneutral.net
12 1 Mehdi Abaakouk
</pre>
13 1 Mehdi Abaakouk
14 6 Laurent GUERBY
h3. Shutdown une VM
15 5 Laurent GUERBY
16 5 Laurent GUERBY
<pre>
17 5 Laurent GUERBY
nova stop xxx.tetaneutral.net
18 5 Laurent GUERBY
</pre>
19 5 Laurent GUERBY
20 5 Laurent GUERBY
A noter que suspend fait une sauvegarde de la RAM comme sur un laptop. shelve est bugué ne pas utiliser.
21 1 Mehdi Abaakouk
22 6 Laurent GUERBY
h2. Effacer une VM
23 6 Laurent GUERBY
24 6 Laurent GUERBY
<pre>
25 6 Laurent GUERBY
nova delete xxx.tetaneutral.net
26 6 Laurent GUERBY
</pre>
27 5 Laurent GUERBY
28 1 Mehdi Abaakouk
h3. Agrandissement d'un disque
29 1 Mehdi Abaakouk
30 1 Mehdi Abaakouk
Sur la machine 'openstack':
31 1 Mehdi Abaakouk
32 1 Mehdi Abaakouk
<pre>
33 1 Mehdi Abaakouk
root@openstack:~/tools ./os-grow-disk.sh 
34 1 Mehdi Abaakouk
usage: os-grow-disk.sh CINDER_VOLUME_ID SIZE_GB
35 1 Mehdi Abaakouk
36 1 Mehdi Abaakouk
root@openstack:~/tools# ./os-grow-disk.sh bc6f01cb-c6b6-4413-b2ef-1f7df0031049 60
37 1 Mehdi Abaakouk
Cinder:
38 1 Mehdi Abaakouk
bc6f01cb-c6b6-4413-b2ef-1f7df0031049 , test4-bootdisk | 40 -> 60
39 1 Mehdi Abaakouk
 
40 1 Mehdi Abaakouk
Enter YES to update
41 1 Mehdi Abaakouk
YES
42 1 Mehdi Abaakouk
Testing g3 ssh connection...
43 1 Mehdi Abaakouk
Resizing the kvm blockdevice...
44 1 Mehdi Abaakouk
Block device 'vda' is resized
45 1 Mehdi Abaakouk
Updating cinder database with the new value...
46 1 Mehdi Abaakouk
Update finish
47 1 Mehdi Abaakouk
</pre>
48 1 Mehdi Abaakouk
49 1 Mehdi Abaakouk
Puis sur la VM:
50 1 Mehdi Abaakouk
51 1 Mehdi Abaakouk
Il faut avoir un 'parted' récent ou patché avec le support du 'online resizepart':
52 1 Mehdi Abaakouk
53 1 Mehdi Abaakouk
'online resizepart' est natif depuis parted >= 3.1: 
54 1 Mehdi Abaakouk
* debian >= jessie
55 1 Mehdi Abaakouk
* ubuntu >= 14.10
56 1 Mehdi Abaakouk
57 1 Mehdi Abaakouk
'online resizepart' backporté dans:
58 1 Mehdi Abaakouk
* ubuntu >= 13.10 < 14.10 
59 1 Mehdi Abaakouk
60 1 Mehdi Abaakouk
Pour debian wheezy, utilisation les packages ubuntu de 14.04 devrait marcher 
61 1 Mehdi Abaakouk
(pas encore testé, à voir si le kernel veut bien reload la table des partitions après)
62 1 Mehdi Abaakouk
63 1 Mehdi Abaakouk
<pre> 
64 1 Mehdi Abaakouk
root@test4:~# parted /dev/vda print | grep vda
65 1 Mehdi Abaakouk
Disk /dev/vda: 64.4GB
66 1 Mehdi Abaakouk
 
67 1 Mehdi Abaakouk
root@test4# parted /dev/vda resizepart 1 
68 1 Mehdi Abaakouk
Warning: Partition /dev/vda1 is being used. Are you sure you want to continue?
69 1 Mehdi Abaakouk
Yes/No? Yes                                                               
70 1 Mehdi Abaakouk
End?  [42.9GB]? 64.4GB   # METTRE ICI LA TAILLE VU AU DESSUS                                                 
71 1 Mehdi Abaakouk
Information: You may need to update /etc/fstab.                           
72 1 Mehdi Abaakouk
73 1 Mehdi Abaakouk
root@test4:~# resize2fs /dev/vda1
74 1 Mehdi Abaakouk
resize2fs 1.42.9 (4-Feb-2014)
75 1 Mehdi Abaakouk
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
76 1 Mehdi Abaakouk
old_desc_blocks = 3, new_desc_blocks = 4
77 1 Mehdi Abaakouk
The filesystem on /dev/vda1 is now 15722400 blocks long.
78 1 Mehdi Abaakouk
79 1 Mehdi Abaakouk
root@test4:~# df -h | grep vda
80 1 Mehdi Abaakouk
/dev/vda1        60G  797M   56G   2% /
81 1 Mehdi Abaakouk
</pre>
82 1 Mehdi Abaakouk
83 1 Mehdi Abaakouk
h3. Ajout d'une interface réseau à une VM:
84 1 Mehdi Abaakouk
85 1 Mehdi Abaakouk
<pre>
86 1 Mehdi Abaakouk
$ neutron net-list | grep vlan3199
87 1 Mehdi Abaakouk
| 460f49ce-f5ed-449e-9e0f-7626bcee4379 | vlan3199         | ba3f12af-074a-4a31-9a7c-a621993e13bb 192.168.99.0/24     |
88 1 Mehdi Abaakouk
89 1 Mehdi Abaakouk
$ neutron port-create 460f49ce-f5ed-449e-9e0f-7626bcee4379 --name nagios-eth2 --fixed-ips type=dict list=true ip_address=192.168.99.248
90 1 Mehdi Abaakouk
Created a new port:
91 1 Mehdi Abaakouk
+-----------------------+---------------------------------------------------------------------------------------+
92 1 Mehdi Abaakouk
| Field                 | Value                                                                                 |
93 1 Mehdi Abaakouk
+-----------------------+---------------------------------------------------------------------------------------+
94 1 Mehdi Abaakouk
| admin_state_up        | True                                                                                  |
95 1 Mehdi Abaakouk
| allowed_address_pairs |                                                                                       |
96 1 Mehdi Abaakouk
| binding:host_id       |                                                                                       |
97 1 Mehdi Abaakouk
| binding:profile       | {}                                                                                    |
98 1 Mehdi Abaakouk
| binding:vif_details   | {}                                                                                    |
99 1 Mehdi Abaakouk
| binding:vif_type      | unbound                                                                               |
100 1 Mehdi Abaakouk
| binding:vnic_type     | normal                                                                                |
101 1 Mehdi Abaakouk
| device_id             |                                                                                       |
102 1 Mehdi Abaakouk
| device_owner          |                                                                                       |
103 1 Mehdi Abaakouk
| fixed_ips             | {"subnet_id": "ba3f12af-074a-4a31-9a7c-a621993e13bb", "ip_address": "192.168.99.248"} |
104 1 Mehdi Abaakouk
| id                    | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0                                                  |
105 1 Mehdi Abaakouk
| mac_address           | fa:16:3e:6b:32:07                                                                     |
106 1 Mehdi Abaakouk
| name                  | nagios-eth2                                                                           |
107 1 Mehdi Abaakouk
| network_id            | 460f49ce-f5ed-449e-9e0f-7626bcee4379                                                  |
108 1 Mehdi Abaakouk
| security_groups       | b6d5b5fb-a053-4f97-b964-9e1a12d243b1                                                  |
109 1 Mehdi Abaakouk
| status                | DOWN                                                                                  |
110 1 Mehdi Abaakouk
| tenant_id             | ed980105f9d047e2bee738b3f261f126                                                      |
111 1 Mehdi Abaakouk
+-----------------------+---------------------------------------------------------------------------------------+
112 1 Mehdi Abaakouk
113 1 Mehdi Abaakouk
$ nova interface-attach --port-id 918e0ec7-0909-423c-9a67-15b5ef7c7ae0   nagios.tetaneutral.net
114 1 Mehdi Abaakouk
</pre>
115 1 Mehdi Abaakouk
116 1 Mehdi Abaakouk
Dans la VM:
117 1 Mehdi Abaakouk
118 1 Mehdi Abaakouk
<pre>
119 1 Mehdi Abaakouk
$ dmesg | tail 
120 1 Mehdi Abaakouk
[ 1315.826088] virtio-pci 0000:00:06.0: using default PCI settings
121 1 Mehdi Abaakouk
[ 1315.826102] virtio-pci 0000:00:07.0: no hotplug settings from platform
122 1 Mehdi Abaakouk
[ 1315.826102] virtio-pci 0000:00:07.0: using default PCI settings
123 1 Mehdi Abaakouk
[ 1315.826116] pci 0000:00:08.0: no hotplug settings from platform
124 1 Mehdi Abaakouk
[ 1315.826117] pci 0000:00:08.0: using default PCI settings
125 1 Mehdi Abaakouk
[ 1315.826382] virtio-pci 0000:00:08.0: enabling device (0000 -> 0003)
126 1 Mehdi Abaakouk
[ 1315.829281] virtio-pci 0000:00:08.0: setting latency timer to 64
127 1 Mehdi Abaakouk
[ 1315.829535] virtio-pci 0000:00:08.0: irq 50 for MSI/MSI-X
128 1 Mehdi Abaakouk
[ 1315.829555] virtio-pci 0000:00:08.0: irq 51 for MSI/MSI-X
129 1 Mehdi Abaakouk
[ 1315.829563] virtio-pci 0000:00:08.0: irq 52 for MSI/MSI-X
130 1 Mehdi Abaakouk
131 1 Mehdi Abaakouk
$ ip l   show dev eth2
132 1 Mehdi Abaakouk
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
133 1 Mehdi Abaakouk
    link/ether fa:16:3e:6b:32:07 brd ff:ff:ff:ff:ff:ff
134 1 Mehdi Abaakouk
135 1 Mehdi Abaakouk
$ tail -4 /etc/network/interfaces
136 1 Mehdi Abaakouk
auto eth2
137 1 Mehdi Abaakouk
iface eth2 inet static
138 1 Mehdi Abaakouk
   address 192.168.99.248
139 1 Mehdi Abaakouk
   netmask 255.255.255.0
140 1 Mehdi Abaakouk
141 1 Mehdi Abaakouk
$ ifup eth2
142 1 Mehdi Abaakouk
$ ping 192.169.99.250
143 1 Mehdi Abaakouk
PING 192.169.99.250 (192.169.99.250) 56(84) bytes of data.
144 1 Mehdi Abaakouk
64 bytes from 192.169.99.250: icmp_req=1 ttl=119 time=170 ms
145 1 Mehdi Abaakouk
64 bytes from 192.169.99.250: icmp_req=2 ttl=119 time=204 ms
146 1 Mehdi Abaakouk
^C
147 1 Mehdi Abaakouk
</pre>
148 1 Mehdi Abaakouk
149 2 Mehdi Abaakouk
150 2 Mehdi Abaakouk
h3. Exemple de migration de ganeti à openstack:
151 2 Mehdi Abaakouk
152 2 Mehdi Abaakouk
Sur h4:
153 2 Mehdi Abaakouk
<pre>
154 2 Mehdi Abaakouk
$ gnt-instance stop VMNAME.tetaneutral.net
155 2 Mehdi Abaakouk
$ gnt-instance activate-disks VMNAME.tetaneutral.net
156 2 Mehdi Abaakouk
h5.tetaneutral.net:disk/0:/dev/drbd34
157 2 Mehdi Abaakouk
</pre>
158 2 Mehdi Abaakouk
159 2 Mehdi Abaakouk
160 2 Mehdi Abaakouk
Sur g1, mettre l'image dans cinder
161 2 Mehdi Abaakouk
<pre>
162 2 Mehdi Abaakouk
name=VMNAME.tetaneutral.net
163 2 Mehdi Abaakouk
</pre>
164 2 Mehdi Abaakouk
165 2 Mehdi Abaakouk
Crée un volume (remplacer 20 par la taille du disque désiré):
166 2 Mehdi Abaakouk
167 2 Mehdi Abaakouk
<pre>
168 2 Mehdi Abaakouk
cinder create --volume_type ceph --display-name ${name}-bootdisk 20    # mettre ici un peu plus grand que le vrai disque.
169 2 Mehdi Abaakouk
volume_id=$(cinder show ${name}-bootdisk | awk '/ id /{print $4}')
170 2 Mehdi Abaakouk
</pre>
171 2 Mehdi Abaakouk
172 2 Mehdi Abaakouk
On remplace le volume rbd par le disque de la VM:
173 2 Mehdi Abaakouk
174 2 Mehdi Abaakouk
<pre>
175 2 Mehdi Abaakouk
rbd -p disks mv volume-$volume_id disks/volume-${volume_id}.old
176 2 Mehdi Abaakouk
socat -u tcp4-listen:505555 - | rbd -p disks import - volume-$volume_id
177 2 Mehdi Abaakouk
</pre>
178 2 Mehdi Abaakouk
179 2 Mehdi Abaakouk
Sur la machine hX qui as le disque (ici h5 et le disque drbd34)
180 2 Mehdi Abaakouk
<pre>
181 2 Mehdi Abaakouk
cat /dev/drbd34 | socat -u - tcp4:g1:505555
182 2 Mehdi Abaakouk
# ou avec une bar de progression
183 2 Mehdi Abaakouk
apt-get install pv 
184 2 Mehdi Abaakouk
pv /dev/drbd34 | socat -u - tcp4:g1:505555
185 2 Mehdi Abaakouk
</pre>
186 2 Mehdi Abaakouk
187 2 Mehdi Abaakouk
<pre>
188 2 Mehdi Abaakouk
# On peut voir l'avancement via:
189 2 Mehdi Abaakouk
watch -n1 -- rbd -p disks info volume-$volume_id
190 2 Mehdi Abaakouk
</pre>
191 2 Mehdi Abaakouk
192 2 Mehdi Abaakouk
On change la taille de l'image pour mettre la meme que le volume créé par openstack
193 2 Mehdi Abaakouk
194 2 Mehdi Abaakouk
<pre>
195 2 Mehdi Abaakouk
$ rbd -p disks info volume-$volume_id.old
196 2 Mehdi Abaakouk
rbd image 'volume-$volume_id.old':
197 2 Mehdi Abaakouk
	size **20480** MB in 5120 objects
198 2 Mehdi Abaakouk
	order 22 (4096 kB objects)
199 2 Mehdi Abaakouk
	block_name_prefix: rbd_data.752a15a94252f
200 2 Mehdi Abaakouk
	format: 2
201 2 Mehdi Abaakouk
	features: layering
202 2 Mehdi Abaakouk
$ rbd -p disks resize --size 20480 volume-$volume_id
203 2 Mehdi Abaakouk
</pre>
204 2 Mehdi Abaakouk
205 2 Mehdi Abaakouk
Booter la VM avec ce disque (le disque existant déjà le script l'utilisera):
206 2 Mehdi Abaakouk
207 2 Mehdi Abaakouk
<pre>
208 2 Mehdi Abaakouk
./boot-vm.sh --ip A.B.C.D --flavor Xvcpu-Yram ${name}
209 2 Mehdi Abaakouk
</pre>
210 2 Mehdi Abaakouk
211 2 Mehdi Abaakouk
_Note: Si le disque a été agrandi, on peut utiliser dans la VM "growpart /dev/vda 1" ou 'parted resizepart' pour récupérer l'espace disponible (fonctionne bien sous jessie ou dernier ubuntu)_
212 2 Mehdi Abaakouk
213 2 Mehdi Abaakouk
Quand c'est fini sur h4:
214 2 Mehdi Abaakouk
215 2 Mehdi Abaakouk
<pre>
216 2 Mehdi Abaakouk
gnt-instance deactivate-disks VMNAME.tetaneutral.net
217 2 Mehdi Abaakouk
</pre>
218 2 Mehdi Abaakouk
219 2 Mehdi Abaakouk
S'il faut changer la RAM et vCPU
220 2 Mehdi Abaakouk
221 2 Mehdi Abaakouk
<pre>
222 2 Mehdi Abaakouk
nova flavor-list
223 2 Mehdi Abaakouk
nova list
224 2 Mehdi Abaakouk
nova resize ${name} FLAVOR_ID --poll
225 2 Mehdi Abaakouk
nova resize-confirm VM_ID
226 1 Mehdi Abaakouk
</pre>
227 1 Mehdi Abaakouk
228 1 Mehdi Abaakouk
h2. VM de management (nommé openstack)
229 1 Mehdi Abaakouk
230 1 Mehdi Abaakouk
h3. Live Migration d'un host à l'autre
231 1 Mehdi Abaakouk
232 1 Mehdi Abaakouk
Cela fait tout à notre place niveau kvm/libvirt/ceph
233 1 Mehdi Abaakouk
234 1 Mehdi Abaakouk
<pre>
235 1 Mehdi Abaakouk
virsh migrate --persistent --undefinesource --live --p2p openstack qemu+ssh://g2:2222/system
236 1 Mehdi Abaakouk
</pre>
237 1 Mehdi Abaakouk
238 1 Mehdi Abaakouk
h3. Recover depuis une perte de la machine hote:
239 1 Mehdi Abaakouk
240 1 Mehdi Abaakouk
Créé un fichier openstack.xml à partir d'un backup de '/etc/libvirt/qemu/openstack.xml' ou utiliser l'exemple ici: attachment:openstack.xml
241 1 Mehdi Abaakouk
242 1 Mehdi Abaakouk
_Note: il faut surement viré les uuid des interfaces openvswitch qui sont différent suivant le hosts_
243 1 Mehdi Abaakouk
244 1 Mehdi Abaakouk
Puis on recréé la VM
245 1 Mehdi Abaakouk
246 1 Mehdi Abaakouk
<pre>
247 1 Mehdi Abaakouk
$ virsh create openstack.xml
248 1 Mehdi Abaakouk
$ virsh start openstack.xml
249 1 Mehdi Abaakouk
</pre>