Mise en place d’un petit serveur de virtualisation avec KVM, libvirt et virt-manager

logo_kvm

Pour ma quatrième année d’études qui débutera en novembre prochain, je me suis posé la problématique suivante : comme je vais avoir des cours qui demanderont beaucoup de ressources et notamment de machines virtuelles, comment déporter l’exécution de celles-ci afin d’éviter de faire chauffer mon PC portable en cours ?

J’étais tenté de m’installer un Proxmox sur mon serveur personnel mais je n’aurai pas l’utilité de toutes les fonctionnalités proposés d’une part, et il me faudrait repasser en noyau 2.6 d’autre part… Du coup je me suis dit pourquoi ne pas utiliser simplement l’outil employé par Proxmox pour créer des ses machines virtuelles : KVM.

Oui mais voilà Proxmox propose une interface web pour KVM donc si j’installe KVM seul sur un serveur, comment accéder à mes machines à distance et surtout, comment accéder à leur interface graphique ? Surtout si j’ai besoin de faire des VMs Windows…

La solution tient en trois mots, ou plutôt trois outils : KVM, libvirt et virt-manager. Explications.

  • Je vous ai déjà un peu parlé de KVM durant mes récentes aventures de projet. KVM, pour Kernel-Based Virtual Machine est un hyperviseur qui va vous permettre de virtualiser presque tous les systèmes basés sur une architecture x86 32 ou 64 bits. C’est un fork de QEMU intégré dans le noyau Linux depuis la version 2.6.20.
  • libvirt est une API libre, daemon et outil de gestion pour gérer de nombreuses plateformes de virtualisation. Avec cet outil, vous allez disposer d’un ensemble de fonctions vous permettant de configurer et gérer des machines virtuelles Linux KVM, Xen, VMware ESX et qemu.
  • Et devinez quoi, l’interface graphique de libvirt s’appelle : Virtual Machine Manager (virt-manager) !

Durant mes recherches, j’ai appris que Virtual Machine Manager offre la possibilité de gérer un hyperviseur KVM distant via SSH. Vive Linux.

Voici ce que nous allons mettre en place :

kvm

Installation de KVM

Vérification de la compatibilité de votre processeur

C’est le seul pré-requis à KVM : utiliser une machine équipée d’un processeur disposant des instructions de virtualisation Intel VT ou AMD-V. C’est généralement le cas pour les processeurs récents au-dessus du bas de gamme. Personnellement je suis sur un Intel Core i3 2120T.

Pour tester si votre processeur est compatible :

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

Si rien ne s’affiche, inutile d’aller plus loin… Sinon, le résultat ressemble à quelque chose comme :

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi ept vpid

Installation des outils

APT-GET est votre ami :

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

Pour que vos utilisateurs puissent créer des machines virtuelles, ajoutez-les aux groupes suivants :

sudo usermod -a -G libvirtd user
sudo usermod -a -G kvm user

Les modification prendront effet lors de leur prochaine connexion. Si votre compte est concerné, ré-identifiez vous. Pour tester si l’installation a fonctionné, vous pouvez utiliser la commande suivante :

virsh -c qemu:///system list

Qui doit vous retourner un tableau vide, sans erreur.

Voilà votre serveur est maintenant prêt ! Qui a dit que Linux était compliqué ?! À noter que si vous souhaitez disposer de machines virtuelles connectées à votre réseau local en bridge (pour profiter d’un boot PXE par exemple), il vous faut configurer votre carte réseau de manière un peu spéciale. Tous les détails sont dans cet article.

Configuration de l’accès à distance

Le seul pré-requis à cette étape est d’avoir une connexion SSH de disponible sur votre serveur avec un compte autoriser à manipuler KVM. Je ne peux que vous conseiller d’utiliser une clé SSH pour l’authentification afin de gagner en simplicité, rapidité et sécurité.

Installation et configuration de virt-manager

sudo apt-get install virt-manager

Je suis sous Linux Mint 15 Olivia.

Lors du premier lancement de virt-manager, celui-ci vous affichera un message d’avertissement vous indiquant que vous ne disposez pas de KVM et que vous ne pouvez pas créer de machines virtuelles en local. Choisissez non puisque nos VMs ne seront pas en local mais sur notre serveur…

virt-manager

Pour ajouter noter serveur, c’est dans Fichier > Ajouter une connexion.

virt-manager_ajouter_une_connexion

Et voilà, votre serveur a bien été ajouté dans virt-manager, qui sera en mesure de créer et gérer toutes vos VMs à distance ! La création de ces machines virtuelles fera l’objet de futurs articles.

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email