La virtualisation avec KVM, libvirt et virt-manager

Nous allons voir dans ce tuto comment monter un serveur de virtualisation avec KVM, libvirt et virt-manager, comme vous le savez, ce blog est plus pour moi un aide mémoire, alors n’hésitez pas à corriger/compléter ce billet

Voici la configuration de mes machines “test”:

Machine client pour l’accès à distance:

IP: 192.168.0.1
OS : Ubuntu

Serveur, pour installer KVM:
IP: 192.168.0.2
RAM: 4Go
Processeur: Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz
Disque dur : 500Go
OS : Debian GNU/Linux 8.7 (jessie)
utilisateurs : Root, zenzla

Toutes les commandes suivante se font avec l’utilisateur root du système.

Installation sur serveur

Vous avez dans ce blog, un tutoriel dédié à l’installation d’une serveur de base avec Debian, il date un peu, mais les principes n’ont pas changé, le seul changement que vous devez apporter c’est de faire un partitionnement manuel et doter /var/ de beaucoup d’espace disque.

Installation de la virtualisation avec KVM

C’est bon, vous avez installé votre machine, mais avant de vous lancez dans l’aventure de la virtualisation avec KVM, il faut activer la virtualisation dans le bios de votre machine si ce n’est déjà le cas. Ensuite vérifiez si votre processeur supporte la technologie Intel VT ou AMD-V.
Si votre processeur est récent, il y a aucune raison qu’il ne soit pas compatible.

En tous cas pour s’assurer que le processeur est compatible :

1
egrep '^flags.*(vmx|svm)' /proc/cpuinfo

Si vous n’avez aucun retour, alors laissez tomber, votre processeur n’est pas compatible 🙁

Dans le cas contraire, félicitation, vous pouvez continuer \o/

Installez maintenant kvm qemu-kvm libvirt-bin virtinst

1
apt-get install kvm qemu-kvm libvirt-bin virtinst

Pour éviter de manipuler les VMs avec le compte “root”, et pour que vos utilisateurs puissent créer des machines virtuelles, ajoutez-les aux groupes libvirt et KVM :

1
2
usermod -a -G libvirtd zenzla
usermod -a -G kvm zenzla

Bien sur, changez “zenzla” par le nom d’utilisateur adéquat.

rebootez la machine

1
reboot

Lors du redémarrage de la machine, connectez vous avec l’utilisateur normal et non à “root”, pour moi c’est zenzla, puis avec la ligne de commande suivante, testez si l’installation à fonctionner.
Si en retour vous avez un tableau vide, sans erreur, c’est que c’est bon

1
virsh -c qemu:///system list
1
2
 Id    Name                           State
----------------------------------------------------

Youhhhhou le serveur est prêt :), rien de compliqué comme vous avez pu le voir.

Maintenant passons coté client

Installation sur le client

Maintenant que le serveur est installé, et que vous avez donné les droits de création de VMs à l’utilisateur, nous passons à la configuration de l’accès à distance.
Sur la machine cliente, qui porte l’IP 192.168.0.1 dans notre cas, il faut installer virt-manager, qui est un utilitaire graphique pour la gestion des machines virtuelles.
Cette étape n’est pas obligatoire, car nous allons voir plus loin que vous avez la possibilité de gérer les VM en ligne de commande, mais virt-manager facilite grandement les choses.

Pour installer virt-manager rien de plus simple.

1
sudo apt-get install virt-manager

Vous pouvez alors lancer virt-manager. Dans un premier temps il est vide

Gestionnaire de machine virtuelle
Gestionnaire de machine virtuelle

Pour ajouter une connexion vers le serveur, afin qu’il puisse gérer les VMs de ce dernier, il faut le paramétrer en allant sur Fichier > Ajouter une connexion
Ajouter les paramètres comme suite :

Hyperviseur : QEMU/KVM
cocher connexion à un hôte distant
Méthode : SSH
Nom d’utilisateur : ajouter le nom d’utilisateur qui a le droit de gérer la virtualisation avec KVM, dans notre cas c’est zenzla
Nom de l’hôte : adresse IP du serveur, dans notre cas 192.168.0.2.

paramètres de connexion
paramètres de connexion

Et hop, it’s all, vous avez maintenant la possibilité de gérer vos VMs à distance grâce à virt-manager
Il faut en amont se connecter en SSH sur le serveur pour que virt-manager se connecte.

Gérer la virtualisation avec KVM en ligne de commande

Comme dit précédemment, il est aussi possible de gérer les VMs via les lignes de commande, et cela via l’outil virsh qui est déjà présent sur votre serveur car il est dans la paquet libvirt-bin précédemment installé.

Dans ce chapitre je vous donne les commandes de base, à vous d’aller plus loin si vous le souhaitez.

Connectez vous à votre serveur en ssh (Je vous recommande, si vous ne l’avez pas fait, de passer à la connexion par échange de clé)

1
ssh zenzla@192.168.0.2

Ensuite connectez-vous à votre hyperviseur via la commande

1
2
3
4
5
~$ virsh -c qemu:///system
Welcome to virsh, the virtualization interactive terminal.

Type: 'help' for help with commands
'quit' to quit

vous entrez alors en mode interactif,  vous devez normalement avoir un prompt virsh #

1
virsh #

Pour voir la liste de toute vos machines actives (ne pas saisir le prompt virsh #)

1
virsh # list

Pour voir la liste de toute vos machines inactives

1
virsh # list --inactive

Pour voir la liste de toute les machines active ou non

1
virsh # list --all

pour démarrer la machine virtuelle VmDebian

1
virsh # start VmDebian

pour redémarrer la machine virtuelle VmDebian

1
virsh # reboot VmDebian

pour arrêter la machine virtuelle VmDebian

1
virsh # shutdown VmDebian

pour arrêter brutalement la machine virtuelle VmDebian

1
virsh # destroy VmDebian

pour afficher les informations d’une machine virtuelle

1
virsh # dominfo VmDebian

pour afficher les informations de la machine qui supporte la virtualisation, machine nœud

1
virsh # nodeinfo

pour sauvegarder la configuration de la machine virtuelle VmDebian, vous devez sortir du mode interactif avant de saisir

1
virsh -c qemu:///system dumpxml VmDebian > /tmp/VmDebian.xml

Vous pouvez ainsi facilenet modifier le fichier XML et créer une nouvelle machine à partir de ces modifications
Plus d’info sur le format XML sur http://libvirt.org/format.html

pour créer une machine virtuelle NewVmDebian à partir d’un fichier XML

1
virsh -c qemu:///system create /tmp/NewVmDebian.xml

Et voilà !! N’hésitez pas à partager ce billet !!!

Zenzla

À propos de Zenzla

Je suis un passionné des logiciels libres, et tous ce qui tourne autour!! j'essaie de plus en plus de me débarrasser de l'oppression des Big Brothers du net. Je suis aussi Formateur en base de donnée, Gnu/Linux et bien autre chose.

Une réflexion sur “ La virtualisation avec KVM, libvirt et virt-manager ”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *