Openstack Management TTNN Doc Obsolete » Historique » Version 2
Version 1 (Mehdi Abaakouk, 04/08/2017 09:47) → Version 2/3 (Mehdi Abaakouk, 04/08/2017 09:55)
h1. Openstack Management TTNN Doc Obsolete, Archives
Page avec les procèdures obsoletes, mais que l'on garde sous le coude au cas ou.
h3. Convertion des images rbd au format 2 (pour les premieres VMs migrées de ganeti)
<pre>
$ openstack server stop <vm_name>
$ rbd -p disks export volume-XXXXXXXXXXXXXX - | rbd import --image-format 2 -p disks - volume-XXXXXXXXXXXXXX.converted
$ rbd -p disks mv volume-XXXXXXXXXXXXXX volume-XXXXXXXXXXXXXX.old
$ rbd -p disks mv volume-XXXXXXXXXXXXXX.converted volume-XXXXXXXXXXXXXX
$ rbd -p disks rm volume-XXXXXXXXXXXXXX.old
$ openstack server start <vm_name>
</pre>
h3. Reboot (obsolete, à remplacer à openstack ttnn evacuate)
<pre>
nova list --host=n7 # list des VM xxx sur n7
for i in xxx; do nova live-migration $i stri; done # repartir sur plusieurs hosts
ps fauxwww|grep kvm # verifier qu'il n'y a plus de VM
# plus necessaire # for i in $(rados lspools) ; do ceph osd pool set $i min_size 1 ; done # diminuer le nombre de copies
ceph osd set noout # pour prevenir que les OSD vont revenir
/etc/init.d/ceph stop
shutdown -h now
</pre>
# plus necessaire # Post reboot remettre les min_size a 2, rappatrier les VM.
h3. Exemple de migration de ganeti à openstack (obsolete):
Sur h4:
<pre>
$ gnt-instance stop VMNAME.tetaneutral.net
$ gnt-instance activate-disks VMNAME.tetaneutral.net
h5.tetaneutral.net:disk/0:/dev/drbd34
</pre>
Sur g1, mettre l'image dans cinder
<pre>
name=VMNAME.tetaneutral.net
</pre>
Crée un volume (remplacer 20 par la taille du disque désiré):
<pre>
cinder create --volume_type ceph --display-name ${name}-bootdisk 20 # mettre ici un peu plus grand que le vrai disque.
volume_id=$(cinder show ${name}-bootdisk | awk '/ id /{print $4}')
</pre>
On remplace le volume rbd par le disque de la VM:
<pre>
rbd -p disks mv volume-$volume_id disks/volume-${volume_id}.old
socat -u tcp4-listen:505555 - | rbd -p disks import --image-format 2 - volume-$volume_id
</pre>
Sur la machine hX qui as le disque (ici h5 et le disque drbd34)
<pre>
cat /dev/drbd34 | socat -u - tcp4:g1:505555
# ou avec une bar de progression
apt-get install pv
pv /dev/drbd34 | socat -u - tcp4:g1:505555
</pre>
<pre>
# On peut voir l'avancement via:
watch -n1 -- rbd -p disks info volume-$volume_id
</pre>
On change la taille de l'image pour mettre la meme que le volume créé par openstack
<pre>
$ rbd -p disks info volume-$volume_id.old
rbd image 'volume-$volume_id.old':
size **XXX** MB in 5120 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.752a15a94252f
format: 2
features: layering
$ # ou bien
$ rbd -p disks info --pretty-format --format json volume-$volume_id.old | grep size
$ # puis
$ rbd -p disks resize --size XXX volume-$volume_id
</pre>
Booter la VM avec ce disque (le disque existant déjà le script l'utilisera):
<pre>
/root/tools/boot-vm.sh --ip A.B.C.D --flavor Xvcpu-Yram ${name}
</pre>
_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)_
Quand c'est fini sur h4:
<pre>
gnt-instance deactivate-disks VMNAME.tetaneutral.net
</pre>
S'il faut changer la RAM et vCPU
<pre>
nova flavor-list
nova list
nova resize ${name} FLAVOR_ID --poll
nova resize-confirm VM_ID
</pre>
Page avec les procèdures obsoletes, mais que l'on garde sous le coude au cas ou.
h3. Convertion des images rbd au format 2 (pour les premieres VMs migrées de ganeti)
<pre>
$ openstack server stop <vm_name>
$ rbd -p disks export volume-XXXXXXXXXXXXXX - | rbd import --image-format 2 -p disks - volume-XXXXXXXXXXXXXX.converted
$ rbd -p disks mv volume-XXXXXXXXXXXXXX volume-XXXXXXXXXXXXXX.old
$ rbd -p disks mv volume-XXXXXXXXXXXXXX.converted volume-XXXXXXXXXXXXXX
$ rbd -p disks rm volume-XXXXXXXXXXXXXX.old
$ openstack server start <vm_name>
</pre>
h3. Reboot (obsolete, à remplacer à openstack ttnn evacuate)
<pre>
nova list --host=n7 # list des VM xxx sur n7
for i in xxx; do nova live-migration $i stri; done # repartir sur plusieurs hosts
ps fauxwww|grep kvm # verifier qu'il n'y a plus de VM
# plus necessaire # for i in $(rados lspools) ; do ceph osd pool set $i min_size 1 ; done # diminuer le nombre de copies
ceph osd set noout # pour prevenir que les OSD vont revenir
/etc/init.d/ceph stop
shutdown -h now
</pre>
# plus necessaire # Post reboot remettre les min_size a 2, rappatrier les VM.
h3. Exemple de migration de ganeti à openstack (obsolete):
Sur h4:
<pre>
$ gnt-instance stop VMNAME.tetaneutral.net
$ gnt-instance activate-disks VMNAME.tetaneutral.net
h5.tetaneutral.net:disk/0:/dev/drbd34
</pre>
Sur g1, mettre l'image dans cinder
<pre>
name=VMNAME.tetaneutral.net
</pre>
Crée un volume (remplacer 20 par la taille du disque désiré):
<pre>
cinder create --volume_type ceph --display-name ${name}-bootdisk 20 # mettre ici un peu plus grand que le vrai disque.
volume_id=$(cinder show ${name}-bootdisk | awk '/ id /{print $4}')
</pre>
On remplace le volume rbd par le disque de la VM:
<pre>
rbd -p disks mv volume-$volume_id disks/volume-${volume_id}.old
socat -u tcp4-listen:505555 - | rbd -p disks import --image-format 2 - volume-$volume_id
</pre>
Sur la machine hX qui as le disque (ici h5 et le disque drbd34)
<pre>
cat /dev/drbd34 | socat -u - tcp4:g1:505555
# ou avec une bar de progression
apt-get install pv
pv /dev/drbd34 | socat -u - tcp4:g1:505555
</pre>
<pre>
# On peut voir l'avancement via:
watch -n1 -- rbd -p disks info volume-$volume_id
</pre>
On change la taille de l'image pour mettre la meme que le volume créé par openstack
<pre>
$ rbd -p disks info volume-$volume_id.old
rbd image 'volume-$volume_id.old':
size **XXX** MB in 5120 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.752a15a94252f
format: 2
features: layering
$ # ou bien
$ rbd -p disks info --pretty-format --format json volume-$volume_id.old | grep size
$ # puis
$ rbd -p disks resize --size XXX volume-$volume_id
</pre>
Booter la VM avec ce disque (le disque existant déjà le script l'utilisera):
<pre>
/root/tools/boot-vm.sh --ip A.B.C.D --flavor Xvcpu-Yram ${name}
</pre>
_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)_
Quand c'est fini sur h4:
<pre>
gnt-instance deactivate-disks VMNAME.tetaneutral.net
</pre>
S'il faut changer la RAM et vCPU
<pre>
nova flavor-list
nova list
nova resize ${name} FLAVOR_ID --poll
nova resize-confirm VM_ID
</pre>