Project

General

Profile

Openstack Management TTNN Archives

Page avec les procèdures obsoletes, mais que l'on garde sous le coude au cas ou.

La page avec les procédures à jour : https://chiliproject.tetaneutral.net/projects/tetaneutral/wiki/Openstack_Management_TTNN

Convertion des images rbd au format 2 (pour les premieres VMs migrées de ganeti)

$ 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>

Reboot (obsolete, à remplacer à openstack ttnn evacuate)

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
  1. plus necessaire # Post reboot remettre les min_size a 2, rappatrier les VM.

Exemple de migration de ganeti à openstack (obsolete):

Sur h4:

$ gnt-instance stop VMNAME.tetaneutral.net
$ gnt-instance activate-disks VMNAME.tetaneutral.net
h5.tetaneutral.net:disk/0:/dev/drbd34

Sur g1, mettre l'image dans cinder

name=VMNAME.tetaneutral.net

Crée un volume (remplacer 20 par la taille du disque désiré):

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}')

On remplace le volume rbd par le disque de la VM:

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

Sur la machine hX qui as le disque (ici h5 et le disque drbd34)

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

# On peut voir l'avancement via:
watch -n1 -- rbd -p disks info volume-$volume_id

On change la taille de l'image pour mettre la meme que le volume créé par openstack

$ 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

Booter la VM avec ce disque (le disque existant déjà le script l'utilisera):

/root/tools/boot-vm.sh --ip A.B.C.D --flavor Xvcpu-Yram ${name}

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:

gnt-instance deactivate-disks VMNAME.tetaneutral.net

S'il faut changer la RAM et vCPU

nova flavor-list
nova list
nova resize ${name} FLAVOR_ID --poll
nova resize-confirm VM_ID