KVM, acte V : Jongler avec les VMs (migrations, haute dispo)
Suite de la série d’articles sur KVM :
- Présentation et installation
- Manipulation des VMs
- Gestion du stockage
- Gestion du réseau
- Jongler avec ses VMs comme le manchot du logo
Pour faire de la haute disponibilité avec KVM, l’important est d’avoir un système de fichiers partagé, distribué et redondant.
Les systèmes existants les plus pratiques sont :
- iSCSI, natif sur tous les SAN, mais les systèmes iSCSI distribués et redondants sont coûteux.
- DRBD, système de fichiers répliqué libre. Les tests que j’ai fais avec ont été très mauvais, je ne l’utiliserais pas en prod !
- GlusterFS, système de fichiers distribué moderne qui fonctionne en mode client/serveur. Les tests que j’ai fais avec ont été très satisfaisants. Avec un tuto comme celui-là, on peut facilement s’amuser.
Clonage
Le clonage sous KVM est très simple :
virsh suspendvirt-clone -o -n -f virsh resume
Migration
La migration consiste en la suspension d’une VM sur un hyperviseur et l’activation de la même VM sur un autre.
Le volume (disque dur virtuel) doit être sur un partage réseau commun auquel les deux hyperviseurs peuvent accéder (NFS, ISCSI, DRBD, GlusterFS, …).
La migration se fait par VirtManager ou virsh.
# Migration à chaud depuis hyperviseur1 virsh migrateqemu+ssh://root@ /system --live
Accès distants :
Accéder à distance à l’hyperviseur :
Pour se simplifier la vie, il faut copier la clé SSH de l’administrateur dans les fichiers /root/.ssh/authorized_keys des hyperviseurs.
Ensuite, on peut accéder aux hyperviseurs par Virt-Manager :
Et en commandes virsh :
# Directement avec virsh virsh -c qemu+ssh://root@/system # Ou par ssh ssh root@hyperviseur1 root@hyperviseur1# virsh
Accéder aux VMs par VNC :
Par défaut, une VM est accessible par VNC en local. La première VM utilise le port 5900, la deuxième 5901, …
Du coup, on peut voir une VM de plusieurs manières :
Tunnel SSH :
ssh -L XXXX:localhost:5900 root@hyperviseur1
Puis lancer un client VNC (comme Remmina) en local sur le port XXXX.
On peut aussi permettre aux VMs d’être visible sur d’autres machines que le localhost.
Pour ça, on modifie le fichier XML de la VM :
virsh edit
<p>
Ajouter à la balise <graphics type= …
</p>
<pre class="code">listen='<ip>'</pre>
<p>
ou
</p>
<pre class="code">listen='0.0.0.0'</pre>
Accéder aux VMs par Windows :
Deux façons de gérer les VMs sous Windows :
Installer virt-viewer.
Accéder aux VMs par VNC+SSH avec Putty :
Accès distants avec Spice
Si vous avez déjà testé VNC, vous savez que ce protocole n’est pas le plus performant de sa catégorie. D’autres protocoles fournissent une meilleure qualité et un débit plus faible.
Spice a été créé dans cet esprit là. Il est spécialisé dans l’affichage des VMs distantes.
# Installation apt-get install spice-client spice-client-gtk spice-client-html5 # Utilisation du client Spice spicec --host=--port= # Utilisation de Virt-Viewer remote-viewer spice:// :
Et voilà, vous savez à peu près tout ce qu’il y a à savoir sur KVM.