Aller au contenu principal

2.4 TP: Migration Offline

Objectifs pédagogiques

Pratiques

  • Opérer des instances KVM via ses IHM
    • Démarrer un nouvel OS invité (VM)

Stratégiques

  • Savoir choisir KVM comme outil d'architecture en fonction de critères rationnels.

Prérequis

  • Deux serveurs qui hébergeront le système de fichiers partagé GlusterFS.
  • Deux hôtes exécutant libvirt et qemu qui seront utilisés pour migrer l'invité KVM.
  • Tous les serveurs doivent pouvoir communiquer entre eux à l'aide de noms d'hôte.
  • Les deux serveurs hébergeant les volumes partagés doivent disposer d'un périphérique de bloc disponible pour être utilisé comme briques GlusterFS. Si un périphérique de bloc n'est pas disponible, veuillez vous reporter à la section Il y a plus... de la recette Migration hors ligne manuelle à l'aide d'un pool de stockage iSCSI dans ce chapitre pour savoir comment en créer un à l'aide d'un fichier standard.
  • Connectivité à un référentiel Linux pour installer l'OS invité.

Sur les deux serveurs qui hébergeront les volumes partagés, installez GlusterFS


glusterfs1/2:~# apt-get update && apt-get install glusterfs-server


Depuis l'un des nœuds GlusterFS, testez l'autre afin de former un cluster


glusterfs1:~# gluster peer probe glusterfs2


Vérifiez que les nœuds GlusterFS se connaissent


glusterfs1::~# gluster peer status


Création du block device local

Sur les deux hôtes GlusterFS, créez un système de fichiers sur les périphériques de bloc qui seront utilisés comme briques GlusterFS.


glusterfs1/2:~# truncate --size 20G /root/xvdb.img
glusterfs1/2:~# losetup /dev/loop0 /root/xvdb.img


Création du FS

Montez les devices



glusterfs1/2:~# mkfs.ext4 /dev/loop0
glusterfs1/2:~# mount /dev/loop0 /mnt/
glusterfs1/2:~# mkdir /mnt/bricks

Assurez-vous de remplacer le nom du périphérique de bloc par ce qui est approprié sur votre système.


Cluster GlusterFS

Depuis l'un des nœuds GlusterFS, créez le volume de stockage répliqué, en utilisant les briques des deux serveurs, puis listez-le


glusterfs1:~# gluster volume create kvm_gfs replica 2 transport tcp



Démarrage du volume partagé

Depuis l'un des hôtes GlusterFS, démarrez le nouveau volume et obtenez plus d'informations à son sujet


glusterfs1:~# gluster volume start kvm_gfs


Installation du client glusterfs

Sur les deux nœuds libvirt, installez le client GlusterFS et montez le volume GlusterFS qui sera utilisé pour héberger l'image KVM


kvm1/2:~# apt-get update && apt-get install glusterfs-client
kvm1/2:~# mkdir /tmp/kvm_gfs
kvm1/2::~# mount -t glusterfs glusterfs1:/kvm_gfs /tmp/kvm_gfs


Démarrage d'une VM sur le volume

Lors du montage du volume GlusterFS, vous pouvez spécifier l'un des nœuds du cluster. Dans l'exemple précédent, nous montons à partir du nœud glusterfs1.

Sur l'un des nœuds libvirt, créez une nouvelle instance KVM, en utilisant le volume GlusterFS monté


kvm1::~# virt-install --name kvm_gfs --ram 1024 --extra-args="text console=tty0 utf8 console=ttyS0,115200" --graphics vnc,listen=0.0.0.0 --hvm -- location=http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/ --disk /tmp/kvm_gfs/gluster_kvm.img,size=5


Affichage du disque

Assurez-vous que les deux nœuds libvirt peuvent voir l'image de l'invité


kvm1/2:~# ls -al /tmp/kvm_gfs/
total 1820300
drwxr-xr-x 3 racine racine 4096 13 avril 14:48 .
drwxrwxrwt 6 racine racine 4096 13 avril 15:00 ..
-rwxr-xr-x 1 racine racine 5368709120 13 avril 14:59 gluster_kvm.img


Préparation de la migration

Pour migrer manuellement l'instance KVM d'un nœud libvirt à l'autre, arrêtez d'abord l'instance et videz sa définition XML


kvm1:~# virsh destroy kvm_gfs
kvm1::~# virsh dumpxml kvm_gfs > kvm_gfs.xml


Migration

À partir du nœud libvirt source, définissez l'instance sur l'hôte cible


kvm1::~# virsh --connect qemu+ssh://kvm2/system define kvm_gfs.xml
kvm1::~# virsh --connect qemu+ssh://kvm2/system list --all

Démarrage


kvm2:~# virsh démarrer kvm_gfs