Openstack Management TTNN » Historique » Version 29
Mehdi Abaakouk, 15/04/2015 10:19
1 | 3 | Mehdi Abaakouk | {{>toc}} |
---|---|---|---|
2 | 3 | Mehdi Abaakouk | |
3 | 1 | Mehdi Abaakouk | h1. Openstack Management TTNN |
4 | 1 | Mehdi Abaakouk | |
5 | 11 | Mehdi Abaakouk | |
6 | 11 | Mehdi Abaakouk | openstack tools for ttnn: http://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/openstack-tools |
7 | 11 | Mehdi Abaakouk | |
8 | 4 | Mehdi Abaakouk | h2. Opération sur les VMs (des membres) |
9 | 1 | Mehdi Abaakouk | |
10 | 17 | Mehdi Abaakouk | h3. Voir la console graphique sans spice-html5: |
11 | 17 | Mehdi Abaakouk | |
12 | 17 | Mehdi Abaakouk | Copier le script suivant 'gvnc' sur ca machine: |
13 | 17 | Mehdi Abaakouk | |
14 | 17 | Mehdi Abaakouk | <pre> |
15 | 17 | Mehdi Abaakouk | #!/bin/bash |
16 | 17 | Mehdi Abaakouk | vm=$1 |
17 | 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\";'")) |
18 | 17 | Mehdi Abaakouk | |
19 | 17 | Mehdi Abaakouk | if [ "${info[0]}" == "mysql" ]; then |
20 | 17 | Mehdi Abaakouk | echo "Error in mysql request" |
21 | 17 | Mehdi Abaakouk | exit 1 |
22 | 17 | Mehdi Abaakouk | fi |
23 | 17 | Mehdi Abaakouk | |
24 | 17 | Mehdi Abaakouk | hypervisor=${info[0]}.tetaneutral.net |
25 | 17 | Mehdi Abaakouk | uuid=${info[1]} |
26 | 17 | Mehdi Abaakouk | spice_port=$(ssh ${hypervisor} -p 2222 -l root virsh domdisplay ${uuid} | awk -F: '{print $3}') |
27 | 17 | Mehdi Abaakouk | |
28 | 17 | Mehdi Abaakouk | echo "$vm on $hypervisor port $spice_port" |
29 | 17 | Mehdi Abaakouk | ssh -N $hypervisor -p 2222 -l root -L 5910:localhost:${spice_port} & |
30 | 17 | Mehdi Abaakouk | pid=$! |
31 | 17 | Mehdi Abaakouk | |
32 | 17 | Mehdi Abaakouk | |
33 | 17 | Mehdi Abaakouk | cleanup(){ |
34 | 17 | Mehdi Abaakouk | kill $pid |
35 | 17 | Mehdi Abaakouk | } |
36 | 17 | Mehdi Abaakouk | |
37 | 17 | Mehdi Abaakouk | trap cleanup EXIT |
38 | 17 | Mehdi Abaakouk | |
39 | 17 | Mehdi Abaakouk | sleep 2 |
40 | 17 | Mehdi Abaakouk | remote-viewer spice://localhost:5910/ |
41 | 17 | Mehdi Abaakouk | </pre> |
42 | 17 | Mehdi Abaakouk | |
43 | 17 | Mehdi Abaakouk | Puis |
44 | 17 | Mehdi Abaakouk | |
45 | 17 | Mehdi Abaakouk | <pre> |
46 | 17 | Mehdi Abaakouk | sudo apt-get install virt-viewer |
47 | 17 | Mehdi Abaakouk | ./gvnc puppet.openstack.net |
48 | 17 | Mehdi Abaakouk | </pre> |
49 | 17 | Mehdi Abaakouk | |
50 | 17 | Mehdi Abaakouk | |
51 | 1 | Mehdi Abaakouk | h3. Reboot VM en error |
52 | 1 | Mehdi Abaakouk | |
53 | 1 | Mehdi Abaakouk | <pre> |
54 | 1 | Mehdi Abaakouk | nova reset-state --active xxx.tetaneutral.net |
55 | 1 | Mehdi Abaakouk | nova reboot --hard --poll xxx.tetaneutral.net |
56 | 1 | Mehdi Abaakouk | </pre> |
57 | 1 | Mehdi Abaakouk | |
58 | 6 | Laurent GUERBY | h3. Shutdown une VM |
59 | 5 | Laurent GUERBY | |
60 | 5 | Laurent GUERBY | <pre> |
61 | 5 | Laurent GUERBY | nova stop xxx.tetaneutral.net |
62 | 5 | Laurent GUERBY | </pre> |
63 | 5 | Laurent GUERBY | |
64 | 5 | Laurent GUERBY | A noter que suspend fait une sauvegarde de la RAM comme sur un laptop. shelve est bugué ne pas utiliser. |
65 | 1 | Mehdi Abaakouk | |
66 | 7 | Laurent GUERBY | h3. Effacer une VM |
67 | 6 | Laurent GUERBY | |
68 | 6 | Laurent GUERBY | <pre> |
69 | 1 | Mehdi Abaakouk | nova delete xxx.tetaneutral.net |
70 | 7 | Laurent GUERBY | </pre> |
71 | 7 | Laurent GUERBY | |
72 | 7 | Laurent GUERBY | h3. Disques de VM |
73 | 7 | Laurent GUERBY | |
74 | 7 | Laurent GUERBY | Pour renommer (et permettre a boot-disk de recreer) ou effacer : |
75 | 7 | Laurent GUERBY | |
76 | 7 | Laurent GUERBY | <pre> |
77 | 7 | Laurent GUERBY | cinder list |
78 | 7 | Laurent GUERBY | cinder rename <ID> <newname> |
79 | 7 | Laurent GUERBY | cinder delete <ID_or_Name> |
80 | 6 | Laurent GUERBY | </pre> |
81 | 5 | Laurent GUERBY | |
82 | 1 | Mehdi Abaakouk | h3. Agrandissement d'un disque |
83 | 1 | Mehdi Abaakouk | |
84 | 1 | Mehdi Abaakouk | Sur la machine 'openstack': |
85 | 1 | Mehdi Abaakouk | |
86 | 1 | Mehdi Abaakouk | <pre> |
87 | 1 | Mehdi Abaakouk | root@openstack:~/tools ./os-grow-disk.sh |
88 | 1 | Mehdi Abaakouk | usage: os-grow-disk.sh CINDER_VOLUME_ID SIZE_GB |
89 | 1 | Mehdi Abaakouk | |
90 | 1 | Mehdi Abaakouk | root@openstack:~/tools# ./os-grow-disk.sh bc6f01cb-c6b6-4413-b2ef-1f7df0031049 60 |
91 | 1 | Mehdi Abaakouk | Cinder: |
92 | 1 | Mehdi Abaakouk | bc6f01cb-c6b6-4413-b2ef-1f7df0031049 , test4-bootdisk | 40 -> 60 |
93 | 1 | Mehdi Abaakouk | |
94 | 1 | Mehdi Abaakouk | Enter YES to update |
95 | 1 | Mehdi Abaakouk | YES |
96 | 1 | Mehdi Abaakouk | Testing g3 ssh connection... |
97 | 1 | Mehdi Abaakouk | Resizing the kvm blockdevice... |
98 | 1 | Mehdi Abaakouk | Block device 'vda' is resized |
99 | 1 | Mehdi Abaakouk | Updating cinder database with the new value... |
100 | 1 | Mehdi Abaakouk | Update finish |
101 | 1 | Mehdi Abaakouk | </pre> |
102 | 1 | Mehdi Abaakouk | |
103 | 1 | Mehdi Abaakouk | Puis sur la VM: |
104 | 1 | Mehdi Abaakouk | |
105 | 1 | Mehdi Abaakouk | Il faut avoir un 'parted' récent ou patché avec le support du 'online resizepart': |
106 | 1 | Mehdi Abaakouk | |
107 | 1 | Mehdi Abaakouk | 'online resizepart' est natif depuis parted >= 3.1: |
108 | 1 | Mehdi Abaakouk | * debian >= jessie |
109 | 1 | Mehdi Abaakouk | * ubuntu >= 14.10 |
110 | 1 | Mehdi Abaakouk | |
111 | 1 | Mehdi Abaakouk | 'online resizepart' backporté dans: |
112 | 1 | Mehdi Abaakouk | * ubuntu >= 13.10 < 14.10 |
113 | 1 | Mehdi Abaakouk | |
114 | 1 | Mehdi Abaakouk | Pour debian wheezy, utilisation les packages ubuntu de 14.04 devrait marcher |
115 | 1 | Mehdi Abaakouk | (pas encore testé, à voir si le kernel veut bien reload la table des partitions après) |
116 | 1 | Mehdi Abaakouk | |
117 | 1 | Mehdi Abaakouk | <pre> |
118 | 1 | Mehdi Abaakouk | root@test4:~# parted /dev/vda print | grep vda |
119 | 1 | Mehdi Abaakouk | Disk /dev/vda: 64.4GB |
120 | 1 | Mehdi Abaakouk | |
121 | 1 | Mehdi Abaakouk | root@test4# parted /dev/vda resizepart 1 |
122 | 1 | Mehdi Abaakouk | Warning: Partition /dev/vda1 is being used. Are you sure you want to continue? |
123 | 1 | Mehdi Abaakouk | Yes/No? Yes |
124 | 1 | Mehdi Abaakouk | End? [42.9GB]? 64.4GB # METTRE ICI LA TAILLE VU AU DESSUS |
125 | 1 | Mehdi Abaakouk | Information: You may need to update /etc/fstab. |
126 | 1 | Mehdi Abaakouk | |
127 | 1 | Mehdi Abaakouk | root@test4:~# resize2fs /dev/vda1 |
128 | 1 | Mehdi Abaakouk | resize2fs 1.42.9 (4-Feb-2014) |
129 | 1 | Mehdi Abaakouk | Filesystem at /dev/vda1 is mounted on /; on-line resizing required |
130 | 1 | Mehdi Abaakouk | old_desc_blocks = 3, new_desc_blocks = 4 |
131 | 1 | Mehdi Abaakouk | The filesystem on /dev/vda1 is now 15722400 blocks long. |
132 | 1 | Mehdi Abaakouk | |
133 | 1 | Mehdi Abaakouk | root@test4:~# df -h | grep vda |
134 | 1 | Mehdi Abaakouk | /dev/vda1 60G 797M 56G 2% / |
135 | 1 | Mehdi Abaakouk | </pre> |
136 | 1 | Mehdi Abaakouk | |
137 | 14 | Laurent GUERBY | Méthode plus risquée et manuelle pour wheezy : |
138 | 14 | Laurent GUERBY | |
139 | 15 | Laurent GUERBY | <pre> |
140 | 14 | Laurent GUERBY | sfdisk -d /dev/vda > vda.mbr |
141 | 14 | Laurent GUERBY | cp vda.mbr vda.mbr.ori |
142 | 14 | Laurent GUERBY | vi vda.mbr |
143 | 14 | Laurent GUERBY | # mettre un tres grand nombre pour la fin de la partition |
144 | 14 | Laurent GUERBY | sfdisk -L -n --no-reread /dev/vda < vda.mbr |
145 | 14 | Laurent GUERBY | # cela va faire une erreur avec le max a mettre pour la fin de la partition |
146 | 14 | Laurent GUERBY | # changer la fin de la partition avec ce chiffre |
147 | 14 | Laurent GUERBY | sfdisk -L --no-reread /dev/vda < vda.mbr |
148 | 14 | Laurent GUERBY | reboot |
149 | 16 | Aymeric APLU | resize2fs -p /dev/vda1 |
150 | 14 | Laurent GUERBY | </pre> |
151 | 14 | Laurent GUERBY | |
152 | 1 | Mehdi Abaakouk | h3. Ajout d'une interface réseau à une VM: |
153 | 1 | Mehdi Abaakouk | |
154 | 1 | Mehdi Abaakouk | <pre> |
155 | 1 | Mehdi Abaakouk | $ neutron net-list | grep vlan3199 |
156 | 1 | Mehdi Abaakouk | | 460f49ce-f5ed-449e-9e0f-7626bcee4379 | vlan3199 | ba3f12af-074a-4a31-9a7c-a621993e13bb 192.168.99.0/24 | |
157 | 1 | Mehdi Abaakouk | |
158 | 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 |
159 | 1 | Mehdi Abaakouk | Created a new port: |
160 | 1 | Mehdi Abaakouk | +-----------------------+---------------------------------------------------------------------------------------+ |
161 | 1 | Mehdi Abaakouk | | Field | Value | |
162 | 1 | Mehdi Abaakouk | +-----------------------+---------------------------------------------------------------------------------------+ |
163 | 1 | Mehdi Abaakouk | | admin_state_up | True | |
164 | 1 | Mehdi Abaakouk | | allowed_address_pairs | | |
165 | 1 | Mehdi Abaakouk | | binding:host_id | | |
166 | 1 | Mehdi Abaakouk | | binding:profile | {} | |
167 | 1 | Mehdi Abaakouk | | binding:vif_details | {} | |
168 | 1 | Mehdi Abaakouk | | binding:vif_type | unbound | |
169 | 1 | Mehdi Abaakouk | | binding:vnic_type | normal | |
170 | 1 | Mehdi Abaakouk | | device_id | | |
171 | 1 | Mehdi Abaakouk | | device_owner | | |
172 | 1 | Mehdi Abaakouk | | fixed_ips | {"subnet_id": "ba3f12af-074a-4a31-9a7c-a621993e13bb", "ip_address": "192.168.99.248"} | |
173 | 1 | Mehdi Abaakouk | | id | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 | |
174 | 1 | Mehdi Abaakouk | | mac_address | fa:16:3e:6b:32:07 | |
175 | 1 | Mehdi Abaakouk | | name | nagios-eth2 | |
176 | 1 | Mehdi Abaakouk | | network_id | 460f49ce-f5ed-449e-9e0f-7626bcee4379 | |
177 | 1 | Mehdi Abaakouk | | security_groups | b6d5b5fb-a053-4f97-b964-9e1a12d243b1 | |
178 | 1 | Mehdi Abaakouk | | status | DOWN | |
179 | 1 | Mehdi Abaakouk | | tenant_id | ed980105f9d047e2bee738b3f261f126 | |
180 | 1 | Mehdi Abaakouk | +-----------------------+---------------------------------------------------------------------------------------+ |
181 | 1 | Mehdi Abaakouk | |
182 | 1 | Mehdi Abaakouk | $ nova interface-attach --port-id 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 nagios.tetaneutral.net |
183 | 1 | Mehdi Abaakouk | </pre> |
184 | 1 | Mehdi Abaakouk | |
185 | 1 | Mehdi Abaakouk | Dans la VM: |
186 | 1 | Mehdi Abaakouk | |
187 | 1 | Mehdi Abaakouk | <pre> |
188 | 1 | Mehdi Abaakouk | $ dmesg | tail |
189 | 1 | Mehdi Abaakouk | [ 1315.826088] virtio-pci 0000:00:06.0: using default PCI settings |
190 | 1 | Mehdi Abaakouk | [ 1315.826102] virtio-pci 0000:00:07.0: no hotplug settings from platform |
191 | 1 | Mehdi Abaakouk | [ 1315.826102] virtio-pci 0000:00:07.0: using default PCI settings |
192 | 1 | Mehdi Abaakouk | [ 1315.826116] pci 0000:00:08.0: no hotplug settings from platform |
193 | 1 | Mehdi Abaakouk | [ 1315.826117] pci 0000:00:08.0: using default PCI settings |
194 | 1 | Mehdi Abaakouk | [ 1315.826382] virtio-pci 0000:00:08.0: enabling device (0000 -> 0003) |
195 | 1 | Mehdi Abaakouk | [ 1315.829281] virtio-pci 0000:00:08.0: setting latency timer to 64 |
196 | 1 | Mehdi Abaakouk | [ 1315.829535] virtio-pci 0000:00:08.0: irq 50 for MSI/MSI-X |
197 | 1 | Mehdi Abaakouk | [ 1315.829555] virtio-pci 0000:00:08.0: irq 51 for MSI/MSI-X |
198 | 1 | Mehdi Abaakouk | [ 1315.829563] virtio-pci 0000:00:08.0: irq 52 for MSI/MSI-X |
199 | 1 | Mehdi Abaakouk | |
200 | 1 | Mehdi Abaakouk | $ ip l show dev eth2 |
201 | 1 | Mehdi Abaakouk | 4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000 |
202 | 1 | Mehdi Abaakouk | link/ether fa:16:3e:6b:32:07 brd ff:ff:ff:ff:ff:ff |
203 | 1 | Mehdi Abaakouk | |
204 | 1 | Mehdi Abaakouk | $ tail -4 /etc/network/interfaces |
205 | 1 | Mehdi Abaakouk | auto eth2 |
206 | 1 | Mehdi Abaakouk | iface eth2 inet static |
207 | 1 | Mehdi Abaakouk | address 192.168.99.248 |
208 | 1 | Mehdi Abaakouk | netmask 255.255.255.0 |
209 | 1 | Mehdi Abaakouk | |
210 | 1 | Mehdi Abaakouk | $ ifup eth2 |
211 | 1 | Mehdi Abaakouk | $ ping 192.169.99.250 |
212 | 1 | Mehdi Abaakouk | PING 192.169.99.250 (192.169.99.250) 56(84) bytes of data. |
213 | 1 | Mehdi Abaakouk | 64 bytes from 192.169.99.250: icmp_req=1 ttl=119 time=170 ms |
214 | 1 | Mehdi Abaakouk | 64 bytes from 192.169.99.250: icmp_req=2 ttl=119 time=204 ms |
215 | 1 | Mehdi Abaakouk | ^C |
216 | 1 | Mehdi Abaakouk | </pre> |
217 | 1 | Mehdi Abaakouk | |
218 | 19 | Mehdi Abaakouk | h3. Monter le disque d'un vm sur une machine hote pour dépannage. |
219 | 1 | Mehdi Abaakouk | |
220 | 19 | Mehdi Abaakouk | L’exemple montre la modification du fichier /etc/ssh/sshd_config |
221 | 19 | Mehdi Abaakouk | |
222 | 19 | Mehdi Abaakouk | Récuperer l'id et l'hyperviseur de la VM |
223 | 1 | Mehdi Abaakouk | <pre> |
224 | 20 | Alexandre GUY | # nova stop VMNAME.tetaneutral.net |
225 | 20 | Alexandre GUY | # nova show VMNAME.tetaneutral.net | grep -e 'host ' -e ' id ' |
226 | 19 | Mehdi Abaakouk | | OS-EXT-SRV-ATTR:host | g1 | |
227 | 20 | Alexandre GUY | | id | 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 | |
228 | 19 | Mehdi Abaakouk | </pre> |
229 | 19 | Mehdi Abaakouk | |
230 | 19 | Mehdi Abaakouk | Aller sur l'hyperviseur en question, puis: |
231 | 19 | Mehdi Abaakouk | <pre> |
232 | 20 | Alexandre GUY | # virt-edit -d 918e0ec7-0909-423c-9a67-15b5ef7c7ae0 /etc/ssh/sshd_config |
233 | 19 | Mehdi Abaakouk | </pre> |
234 | 19 | Mehdi Abaakouk | |
235 | 19 | Mehdi Abaakouk | Fermer le fichier et restart la VM |
236 | 19 | Mehdi Abaakouk | <pre> |
237 | 20 | Alexandre GUY | # nova start VMNAME.tetaneutral.net |
238 | 18 | Mehdi Abaakouk | </pre> |
239 | 18 | Mehdi Abaakouk | |
240 | 26 | Mehdi Abaakouk | h3. Création/Restauration snapshot |
241 | 26 | Mehdi Abaakouk | |
242 | 26 | Mehdi Abaakouk | Création: |
243 | 26 | Mehdi Abaakouk | |
244 | 26 | Mehdi Abaakouk | <pre> |
245 | 26 | Mehdi Abaakouk | source os.conf |
246 | 26 | Mehdi Abaakouk | /root/tools/os-snapshot-vm.sh pano.tetaneutral.net bootdisk / |
247 | 26 | Mehdi Abaakouk | * Freezing / of pano.tetaneutral.net |
248 | 26 | Mehdi Abaakouk | * Snapshoting pano.tetaneutral.net-bootdisk |
249 | 26 | Mehdi Abaakouk | Snapshot pano.tetaneutral.net-bootdisk-20150125-1600 is in state creating .. |
250 | 26 | Mehdi Abaakouk | * pano.tetaneutral.net-bootdisk snapshoted |
251 | 26 | Mehdi Abaakouk | * / of pano.tetaneutral.net unfreezed |
252 | 26 | Mehdi Abaakouk | </pre> |
253 | 26 | Mehdi Abaakouk | |
254 | 26 | Mehdi Abaakouk | Restauration: |
255 | 26 | Mehdi Abaakouk | |
256 | 26 | Mehdi Abaakouk | <pre> |
257 | 27 | Laurent GUERBY | $ cinder snapshot-list |
258 | 27 | Laurent GUERBY | ... |
259 | 26 | Mehdi Abaakouk | $ cinder snapshot-show pano.tetaneutral.net-bootdisk-20150125-1600 | awk '/ id /{print $4}' |
260 | 26 | Mehdi Abaakouk | 7dfbe98c-756e-47d1-a8bf-c8f2092de2f8 |
261 | 26 | Mehdi Abaakouk | $ cinder create --display-name pano-restauration-test --snapshot-id 7dfbe98c-756e-47d1-a8bf-c8f2092de2f8 101 |
262 | 26 | Mehdi Abaakouk | $ cinder show pano-restauration-test | awk '/ id /{print $4}' |
263 | 26 | Mehdi Abaakouk | 80bb0bb2-8d37-42b2-bc8e-5e367ce2d94a |
264 | 26 | Mehdi Abaakouk | $ nova volume-attach pano.tetaneutral.net 80bb0bb2-8d37-42b2-bc8e-5e367ce2d94a auto |
265 | 26 | Mehdi Abaakouk | </pre> |
266 | 26 | Mehdi Abaakouk | |
267 | 2 | Mehdi Abaakouk | h3. Exemple de migration de ganeti à openstack: |
268 | 2 | Mehdi Abaakouk | |
269 | 2 | Mehdi Abaakouk | Sur h4: |
270 | 2 | Mehdi Abaakouk | <pre> |
271 | 2 | Mehdi Abaakouk | $ gnt-instance stop VMNAME.tetaneutral.net |
272 | 2 | Mehdi Abaakouk | $ gnt-instance activate-disks VMNAME.tetaneutral.net |
273 | 2 | Mehdi Abaakouk | h5.tetaneutral.net:disk/0:/dev/drbd34 |
274 | 2 | Mehdi Abaakouk | </pre> |
275 | 2 | Mehdi Abaakouk | |
276 | 2 | Mehdi Abaakouk | |
277 | 2 | Mehdi Abaakouk | Sur g1, mettre l'image dans cinder |
278 | 2 | Mehdi Abaakouk | <pre> |
279 | 2 | Mehdi Abaakouk | name=VMNAME.tetaneutral.net |
280 | 2 | Mehdi Abaakouk | </pre> |
281 | 2 | Mehdi Abaakouk | |
282 | 2 | Mehdi Abaakouk | Crée un volume (remplacer 20 par la taille du disque désiré): |
283 | 2 | Mehdi Abaakouk | |
284 | 2 | Mehdi Abaakouk | <pre> |
285 | 2 | Mehdi Abaakouk | cinder create --volume_type ceph --display-name ${name}-bootdisk 20 # mettre ici un peu plus grand que le vrai disque. |
286 | 2 | Mehdi Abaakouk | volume_id=$(cinder show ${name}-bootdisk | awk '/ id /{print $4}') |
287 | 2 | Mehdi Abaakouk | </pre> |
288 | 2 | Mehdi Abaakouk | |
289 | 2 | Mehdi Abaakouk | On remplace le volume rbd par le disque de la VM: |
290 | 2 | Mehdi Abaakouk | |
291 | 2 | Mehdi Abaakouk | <pre> |
292 | 1 | Mehdi Abaakouk | rbd -p disks mv volume-$volume_id disks/volume-${volume_id}.old |
293 | 9 | Laurent GUERBY | socat -u tcp4-listen:505555 - | rbd -p disks import --image-format 2 - volume-$volume_id |
294 | 2 | Mehdi Abaakouk | </pre> |
295 | 2 | Mehdi Abaakouk | |
296 | 2 | Mehdi Abaakouk | Sur la machine hX qui as le disque (ici h5 et le disque drbd34) |
297 | 2 | Mehdi Abaakouk | <pre> |
298 | 2 | Mehdi Abaakouk | cat /dev/drbd34 | socat -u - tcp4:g1:505555 |
299 | 2 | Mehdi Abaakouk | # ou avec une bar de progression |
300 | 2 | Mehdi Abaakouk | apt-get install pv |
301 | 2 | Mehdi Abaakouk | pv /dev/drbd34 | socat -u - tcp4:g1:505555 |
302 | 2 | Mehdi Abaakouk | </pre> |
303 | 2 | Mehdi Abaakouk | |
304 | 2 | Mehdi Abaakouk | <pre> |
305 | 2 | Mehdi Abaakouk | # On peut voir l'avancement via: |
306 | 2 | Mehdi Abaakouk | watch -n1 -- rbd -p disks info volume-$volume_id |
307 | 2 | Mehdi Abaakouk | </pre> |
308 | 2 | Mehdi Abaakouk | |
309 | 2 | Mehdi Abaakouk | On change la taille de l'image pour mettre la meme que le volume créé par openstack |
310 | 2 | Mehdi Abaakouk | |
311 | 2 | Mehdi Abaakouk | <pre> |
312 | 2 | Mehdi Abaakouk | $ rbd -p disks info volume-$volume_id.old |
313 | 2 | Mehdi Abaakouk | rbd image 'volume-$volume_id.old': |
314 | 12 | Laurent GUERBY | size **XXX** MB in 5120 objects |
315 | 2 | Mehdi Abaakouk | order 22 (4096 kB objects) |
316 | 2 | Mehdi Abaakouk | block_name_prefix: rbd_data.752a15a94252f |
317 | 2 | Mehdi Abaakouk | format: 2 |
318 | 1 | Mehdi Abaakouk | features: layering |
319 | 12 | Laurent GUERBY | $ # ou bien |
320 | 13 | Laurent GUERBY | $ rbd -p disks info --pretty-format --format json volume-$volume_id.old | grep size |
321 | 12 | Laurent GUERBY | $ # puis |
322 | 12 | Laurent GUERBY | $ rbd -p disks resize --size XXX volume-$volume_id |
323 | 2 | Mehdi Abaakouk | </pre> |
324 | 2 | Mehdi Abaakouk | |
325 | 2 | Mehdi Abaakouk | Booter la VM avec ce disque (le disque existant déjà le script l'utilisera): |
326 | 2 | Mehdi Abaakouk | |
327 | 2 | Mehdi Abaakouk | <pre> |
328 | 8 | Laurent GUERBY | /root/tools/boot-vm.sh --ip A.B.C.D --flavor Xvcpu-Yram ${name} |
329 | 2 | Mehdi Abaakouk | </pre> |
330 | 2 | Mehdi Abaakouk | |
331 | 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)_ |
332 | 2 | Mehdi Abaakouk | |
333 | 2 | Mehdi Abaakouk | Quand c'est fini sur h4: |
334 | 2 | Mehdi Abaakouk | |
335 | 2 | Mehdi Abaakouk | <pre> |
336 | 2 | Mehdi Abaakouk | gnt-instance deactivate-disks VMNAME.tetaneutral.net |
337 | 2 | Mehdi Abaakouk | </pre> |
338 | 2 | Mehdi Abaakouk | |
339 | 2 | Mehdi Abaakouk | S'il faut changer la RAM et vCPU |
340 | 2 | Mehdi Abaakouk | |
341 | 2 | Mehdi Abaakouk | <pre> |
342 | 2 | Mehdi Abaakouk | nova flavor-list |
343 | 2 | Mehdi Abaakouk | nova list |
344 | 2 | Mehdi Abaakouk | nova resize ${name} FLAVOR_ID --poll |
345 | 2 | Mehdi Abaakouk | nova resize-confirm VM_ID |
346 | 1 | Mehdi Abaakouk | </pre> |
347 | 1 | Mehdi Abaakouk | |
348 | 10 | Mehdi Abaakouk | h3. Convertion des images rbd au format 2 (pour les premieres VMs migrées de ganeti) |
349 | 10 | Mehdi Abaakouk | |
350 | 10 | Mehdi Abaakouk | <pre> |
351 | 10 | Mehdi Abaakouk | $ nova stop <vm_name> |
352 | 10 | Mehdi Abaakouk | $ rbd -p disks export volume-XXXXXXXXXXXXXX - | rbd import --image-format 2 -p disks - volume-XXXXXXXXXXXXXX.converted |
353 | 10 | Mehdi Abaakouk | $ rbd -p disks mv volume-XXXXXXXXXXXXXX volume-XXXXXXXXXXXXXX.old |
354 | 10 | Mehdi Abaakouk | $ rbd -p disks mv volume-XXXXXXXXXXXXXX.converted volume-XXXXXXXXXXXXXX |
355 | 10 | Mehdi Abaakouk | $ rbd -p disks rm volume-XXXXXXXXXXXXXX.old |
356 | 10 | Mehdi Abaakouk | $ nova start <vm_name> |
357 | 10 | Mehdi Abaakouk | </pre> |
358 | 10 | Mehdi Abaakouk | |
359 | 22 | Mehdi Abaakouk | h3. Déplacer une VM de pool ceph (en cours d'écriture) |
360 | 21 | Mehdi Abaakouk | |
361 | 21 | Mehdi Abaakouk | <pre> |
362 | 21 | Mehdi Abaakouk | $ nova stop puppet.tetaneutral.net |
363 | 21 | Mehdi Abaakouk | $ cinder list | grep puppet.tetaneutral.net |
364 | 21 | Mehdi Abaakouk | $ rbd -p disks export volume-213e894e-2f20-42b5-a27b-21f5a355c722 - | rbd import --image-format 2 -p ssds - volume-213e894e-2f20-42b5-a27b-21f5a355c722 |
365 | 21 | Mehdi Abaakouk | |
366 | 24 | Laurent GUERBY | # Laurent 20141215 |
367 | 25 | Laurent GUERBY | /root/tools/boot-vm.sh --ip 89.234.156.246 --image debian-wheezy --disk-size 10 --flavor 1vcpu-1024ram test246.tetaneutral.net |
368 | 24 | Laurent GUERBY | cinder create --volume_type ceph-ssd --display-name test246.tetaneutral.net-bootdisk-tmp 10 |
369 | 24 | Laurent GUERBY | rbd -p ssds mv volume-$volume_id ssds/volume-${volume_id}.old |
370 | 24 | Laurent GUERBY | date;rbd -p disks export volume-0afab4c6-e340-4352-a609-7c43d51b5795 - | rbd import --image-format 2 -p ssds - volume-${volume_id} ;date |
371 | 25 | Laurent GUERBY | |
372 | 24 | Laurent GUERBY | root@g1:~# nova volume-detach test246.tetaneutral.net 0afab4c6-e340-4352-a609-7c43d51b5795 |
373 | 24 | Laurent GUERBY | ERROR (Forbidden): Can't detach root device volume (HTTP 403) (Request-ID: req-98a6e8f3-8897-4361-8fd7-6f10484d51b9) |
374 | 25 | Laurent GUERBY | # see https://bugs.launchpad.net/nova/+bug/1396965 and https://ask.openstack.org/en/question/53732/detaching-root-device-volume-of-an-instance/ |
375 | 21 | Mehdi Abaakouk | |
376 | 25 | Laurent GUERBY | nova delete test246.tetaneutral.net |
377 | 25 | Laurent GUERBY | cinder delete test246.tetaneutral.net-bootdisk |
378 | 25 | Laurent GUERBY | cinder rename test246.tetaneutral.net-bootdisk-tmp test246.tetaneutral.net-bootdisk |
379 | 25 | Laurent GUERBY | /root/tools/boot-vm.sh --ip 89.234.156.246 --flavor 1vcpu-1024ram test246.tetaneutral.net |
380 | 24 | Laurent GUERBY | </pre> |
381 | 1 | Mehdi Abaakouk | |
382 | 28 | Mehdi Abaakouk | h2. Migration de VM si le host est DOWN |
383 | 25 | Laurent GUERBY | |
384 | 29 | Mehdi Abaakouk | h3. HACK pour contourner un bug neutron/nova |
385 | 29 | Mehdi Abaakouk | |
386 | 29 | Mehdi Abaakouk | nova attends que le port neutron soit UP sur la nouvelle machine, mais celui-ci reste sur l'ancienne machine DOWN, |
387 | 29 | Mehdi Abaakouk | reste à savoir si c'est nova qui change mal la conf du port, ou neutron qui ignore le changement. |
388 | 29 | Mehdi Abaakouk | |
389 | 29 | Mehdi Abaakouk | Du coup pour contourner le problème, un peu de mysql: |
390 | 29 | Mehdi Abaakouk | |
391 | 29 | Mehdi Abaakouk | Sur la machine "openstack", on change la host de plein de ports (de g6 vers h7 dans l'exemple): |
392 | 29 | Mehdi Abaakouk | |
393 | 1 | Mehdi Abaakouk | <pre> |
394 | 29 | Mehdi Abaakouk | # mysql neutron |
395 | 29 | Mehdi Abaakouk | $ update ml2_port_bindings set host='h7' where host='g6'; |
396 | 29 | Mehdi Abaakouk | </pre> |
397 | 29 | Mehdi Abaakouk | |
398 | 29 | Mehdi Abaakouk | Ensuite sur la machine destination, on restart les services pour qu'il voit le changement: |
399 | 29 | Mehdi Abaakouk | |
400 | 29 | Mehdi Abaakouk | <pre> |
401 | 29 | Mehdi Abaakouk | /etc/init.d/neutron-plugin-linuxrouted-agent restart |
402 | 29 | Mehdi Abaakouk | /etc/init.d/neutron-plugin-openvswitch-agent restart |
403 | 29 | Mehdi Abaakouk | </pre> |
404 | 29 | Mehdi Abaakouk | |
405 | 29 | Mehdi Abaakouk | h3. Commande normal pour évacuer une machine DOWN |
406 | 29 | Mehdi Abaakouk | |
407 | 29 | Mehdi Abaakouk | <pre> |
408 | 29 | Mehdi Abaakouk | # nova host-evacuate --target_host n7 g6 |
409 | 28 | Mehdi Abaakouk | +--------------------------------------+-------------------+---------------+ |
410 | 28 | Mehdi Abaakouk | | Server UUID | Evacuate Accepted | Error Message | |
411 | 28 | Mehdi Abaakouk | +--------------------------------------+-------------------+---------------+ |
412 | 28 | Mehdi Abaakouk | | 0f50c84c-0251-40e8-86aa-aacb81d8ef8c | True | | |
413 | 28 | Mehdi Abaakouk | | 8125c4ae-8cb3-4469-8718-56653342de04 | True | | |
414 | 28 | Mehdi Abaakouk | | 527a46b7-0555-4351-871a-bc13a5436feb | True | | |
415 | 28 | Mehdi Abaakouk | | 0e285b7a-4ea6-4352-86a2-729f1d414c82 | True | | |
416 | 28 | Mehdi Abaakouk | +--------------------------------------+-------------------+---------------+ |
417 | 1 | Mehdi Abaakouk | </pre> |
418 | 29 | Mehdi Abaakouk | |
419 | 29 | Mehdi Abaakouk | Attendre ensuite que tous les VMs soit UP niveau openstack |
420 | 29 | Mehdi Abaakouk | |
421 | 29 | Mehdi Abaakouk | h3. Partie normalement inutile maintenant à vérifier: |
422 | 29 | Mehdi Abaakouk | |
423 | 29 | Mehdi Abaakouk | Dans le cas ou certain sont UP mais ne ping pas, ne pas hésiter à refaire sur la machine destination: |
424 | 29 | Mehdi Abaakouk | |
425 | 29 | Mehdi Abaakouk | <pre> |
426 | 29 | Mehdi Abaakouk | /etc/init.d/neutron-plugin-linuxrouted-agent restart |
427 | 29 | Mehdi Abaakouk | /etc/init.d/neutron-plugin-openvswitch-agent restart |
428 | 29 | Mehdi Abaakouk | </pre> |
429 | 29 | Mehdi Abaakouk | |
430 | 29 | Mehdi Abaakouk | Voir peut être reboot --hard les vms qui on pas marché du premier coup |
431 | 21 | Mehdi Abaakouk | |
432 | 1 | Mehdi Abaakouk | h2. VM de management (nommé openstack) |
433 | 1 | Mehdi Abaakouk | |
434 | 1 | Mehdi Abaakouk | h3. Live Migration d'un host à l'autre |
435 | 1 | Mehdi Abaakouk | |
436 | 1 | Mehdi Abaakouk | Cela fait tout à notre place niveau kvm/libvirt/ceph |
437 | 1 | Mehdi Abaakouk | |
438 | 1 | Mehdi Abaakouk | <pre> |
439 | 1 | Mehdi Abaakouk | virsh migrate --persistent --undefinesource --live --p2p openstack qemu+ssh://g2:2222/system |
440 | 1 | Mehdi Abaakouk | </pre> |
441 | 1 | Mehdi Abaakouk | |
442 | 1 | Mehdi Abaakouk | h3. Recover depuis une perte de la machine hote: |
443 | 1 | Mehdi Abaakouk | |
444 | 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 |
445 | 1 | Mehdi Abaakouk | |
446 | 1 | Mehdi Abaakouk | _Note: il faut surement viré les uuid des interfaces openvswitch qui sont différent suivant le hosts_ |
447 | 1 | Mehdi Abaakouk | |
448 | 1 | Mehdi Abaakouk | Puis on recréé la VM |
449 | 1 | Mehdi Abaakouk | |
450 | 1 | Mehdi Abaakouk | <pre> |
451 | 1 | Mehdi Abaakouk | $ virsh create openstack.xml |
452 | 1 | Mehdi Abaakouk | $ virsh start openstack.xml |
453 | 1 | Mehdi Abaakouk | </pre> |
454 | 23 | Laurent GUERBY | |
455 | 23 | Laurent GUERBY | h2. Operations sur les hotes |
456 | 23 | Laurent GUERBY | |
457 | 23 | Laurent GUERBY | h3. Reboot |
458 | 23 | Laurent GUERBY | |
459 | 23 | Laurent GUERBY | <pre> |
460 | 23 | Laurent GUERBY | nova list --host=n7 # list des VM xxx sur n7 |
461 | 23 | Laurent GUERBY | for i in xxx; do nova live-migration $i stri; done # repartir sur plusieurs hosts |
462 | 23 | Laurent GUERBY | ps fauxwww|grep kvm # verifier qu'il n'y a plus de VM |
463 | 23 | Laurent GUERBY | for i in $(rados lspools) ; do ceph osd pool set $i min_size 1 ; done # diminuer le nombre de copies |
464 | 23 | Laurent GUERBY | ceph osd set noout # pour prevenir que les OSD vont revenir |
465 | 23 | Laurent GUERBY | /etc/init.d/ceph stop |
466 | 23 | Laurent GUERBY | shutdown -h now |
467 | 23 | Laurent GUERBY | </pre> |
468 | 23 | Laurent GUERBY | |
469 | 23 | Laurent GUERBY | Post reboot remettre les min_size a 2, rappatrier les VM. |