KVM & libvirtKVM (Kernel-based Virtual Machine) est une technologie de virtualisation Open Source intégrée à Linux. Avec KVM, vous pouvez transformer un serveur ou une station de travail en hyperviseur, c’est-à-dire en une machine hôte qui permet d’exécuter plusieurs environnements virtuels isolés appelés « machines virtuelles » ou « systèmes invités ». Cet article décrit pas à pas l’installation d’un hyperviseur KVM sous Rocky Linux 8.

  • La procédure décrite ici s’effectue sur une station de travail graphique. Tous les composants de l’hyperviseur se situent sur une seule et même machine.
  • Cette configuration fonctionnera pareillement sur un système serveur dépourvu d’interface graphique, à quelques menus détails près. La principale différence, c’est que le gestionnaire de machines virtuelles (Virtual Machine Manager) sera installé sur un poste de travail ou un portable, et qu’il se connectera à distance à l’hyperviseur.
  • En règle générale, la virtualisation sur les postes de travail Linux est basée sur l’application VirtualBox maintenue par la société Oracle. Le passage à KVM apporte un gain de performances significatif et vous affranchit de toute une série de problèmes techniques inhérents à VirtualBox.
  • En contrepartie, une solution basée sur KVM sera moins intuitive à manipuler, mais c’est probablement juste une question d’habitude.

Prérequis

Vérifiez si le processeur supporte la virtualisation matérielle :

# grep -E 'svm|vmx' /proc/cpuinfo
flags : ... vmx ...

Alternativement :

# lscpu | grep Virtual
Virtualization:      VT-x

Installation

KVM et les outils correspondants sont fournis par les dépôts officiels de la distribution :

# dnf install -y qemu-kvm libvirt virt-install bridge-utils

Mise en service

Vérifiez si les modules KVM sont chargés :

# lsmod | grep kvm
kvm_intel             339968  0
kvm                   905216  1 kvm_intel
...

Lancez les services libvirtd et libvirt-guests :

# systemctl enable libvirtd --now
# systemctl enable libvirt-guests --now

AstuceLe service libvirt-guests gère le redémarrage automatique des machines virtuelles en cas de redémarrage de l’hyperviseur.

Configuration d’un bridge

Dans la configuration par défaut, les machines virtuelles sont associées au réseau virtuel 192.168.122.0/24. Elles peuvent communiquer entre elles et accéder au monde extérieur. En revanche, la configuration NAT (Network Address Translation) ne permet pas d’accéder à ces machines depuis l’extérieur. La solution consiste ici à mettre en place un pont réseau (bridge) qui permet d’intégrer la ou les machines virtuelles au réseau de l’hyperviseur.

Affichez la configuration réseau et notez les paramètres :

# ip --brief addr show

Lancez NetworkManager TUI :

# LANG=en_US.UTF-8 && nmtui

Configurez le bridge br0. Voici à quoi cela ressemble sur ma station de travail :

  • Sélectionnez Edit a connection.
  • Add > Bridge > Create
  • Profile name : BRIDGE
  • Device : br0
  • Bridge Slaves > Add
  • Slave connection > Ethernet > Create
    • Profile name : LAN
    • Device : enp1s0
    • Confirmez par OK.
  • Décochez Enable STP (Spanning Tree Protocol).
  • Passez IPv6 CONFIGURATION de Automatic à Ignore.
  • Confirmez par OK.
  • Revenez à la fenêtre principale.
  • Sélectionnez Activate a connection.
  • Les connexions doivent être actives (*).
  • Revenez à la fenêtre principale.
  • Quittez NetworkManager TUI.

NetworkManager Bridge

Vérifiez la configuration du bridge :

# ip --brief addr show

AstuceSi l’interface br0 dispose bien de sa propre adresse IP, on peut retourner dans NetworkManagerTUI et supprimer toutes les autres connexions comme Wired connection 1, System eth0 ou virbr0.

Virtual Machine Manager

Pour installer des machines virtuelles et interagir avec elles, vous avez le choix. Je vous conseille d’emblée de vous simplifier la vie en utilisant Virtual Machine Manager (virt-manager), une interface graphique relativement simple à manipuler. Le paquet correspondant est également fourni par les dépôts officiels de la distribution.

Si vous faites tourner KVM sur une station de travail graphique, ajoutez votre utilisateur au groupe libvirt pour éviter les demandes d’authentification à répétition :

# usermod -aG libvirt kikinovak

AstuceEn contrepartie, si votre hyperviseur est installé sur un serveur distant et que vous souhaitez uniquement le piloter à distance, installez Virtual Machine Manager sans toute la partie hyperviseur comme ceci :

# dnf install --setopt=install_weak_deps=false virt-manager

Installer une première machine virtuelle

Pour nous familiariser avec Virtual Machine Manager, nous allons installer une première machine virtuelle Rocky Linux 8. Connectez-vous au gestionnaire de machines virtuelles si ce n’est déjà fait :

Virtual Machine Manager

Dans la configuration par défaut, les images ISO des supports d’installation et des machines virtuelles sont rangées dans /var/lib/libvirt/images :

# cd /var/lib/libvirt/images/
# wget -c \
  http://dl.rockylinux.org/pub/rocky/8.7/isos/x86_64/Rocky-8.7-x86_64-boot.iso

ImportantCe n’est pas une mauvaise idée de vérifier le contexte SELinux de votre image ISO. Cela vous évite de vous arracher les cheveux face à des dysfonctionnements inexplicables :

# ls -Z Rocky-8.7-x86_64-boot.iso 
system_u:object_r:virt_content_t:s0 Rocky-8.7-x86_64-boot.iso
  • Mettez l’hyperviseur en surbrillance : QEMU/KVM.
  • Fichier > Nouvelle machine virtuelle.
  • Sélectionnez Média d’installation local.
  • Cliquez sur Parcourir et actualisez la liste des volumes.
  • Sélectionnez votre fichier ISO.
  • Pour commencer, gardez la quantité de RAM et le nombre de cœurs CPU alloués par l’hyperviseur.
  • De même, confirmez la taille par défaut pour le disque.
  • Nommez votre VM : Rocky-Linux-8.7.
  • Cochez Personnaliser la configuration avant l’installation.
  • Sélection du réseau : Bridge device > br0.
  • Cliquez sur Terminer.

Virtual Machine Manager

Le gestionnaire de machines virtuelles affiche un récapitulatif de la configuration :

Virtual Machine Manager

Cliquez sur Commencer l’installation et patientez quelques secondes :

Virtual Machine Manager

À partir de là, suivez la procédure habituelle pour installer Rocky Linux.


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 


1 commentaire

Pierre · 7 février 2024 à 10 h 09 min

Merci beaucoup pour cette explication!

Laisser un commentaire

Emplacement de l’avatar

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