Comment installer KVM/QEMU sur Manjaro/Archlinux

KVM est l’acronyme de Kernel-based Virtual Machine, c’est une solution technologique de virtualisation basée sur le module du noyau Linux. KVM est une solution logicielle open-source fonctionnant sur la machine Linux x86 avec la prise en charge des extensions de virtualisation matérielle Intel VT ou AMD-V. Le module du noyau KVM a été livré au noyau Linux depuis la version 2.6.20 et a été porté sur d’autres systèmes d’exploitation comme FreeBSD et Illumos en tant que modules de noyau chargeables.

La technologie KVM transformera la machine Linux en une virtualisation d’hyperviseur, que l’on appelle la machine hôte. Sur la machine hôte, tu pourras créer plusieurs systèmes isolés appelés machines virtuelles (VM). Chaque machine virtuelle a son propre système (il peut s’agir de Linux, Windows ou BSD), et dispose également d’un matériel virtualisé privé comme la mémoire, les CPU, la carte réseau, le disque, le graphique, etc.

Qu’est-ce que QEMU ?

QEMU ou Quick Emulator est un émulateur de système et un virtualiseur open-source pour la virtualisation du matériel. En général, il est utilisé comme virtualiseur avec le module de noyau KVM pour exécuter des machines virtuelles. Pour obtenir de grandes performances pour les machines invitées/machines virtuelles, il tirera parti des extensions de virtualisation matérielle telles que Intel VT ou AMD-V. La virtualisation QEMU/KVM est surtout utilisée comme hyperviseur dans un centre de données.

Dans ce guide, tu apprendras comment configurer la virtualisation KVM/QEMU sur une machine Manjaro/Archlinux. Tu apprendras aussi comment créer la première machine virtuelle avec l’application GUI « virt-manager » – une interface utilisateur de bureau pour gérer les machines virtuelles.

Conditions préalables

  • Un Manjaro/Archlinux avec une architecture x86 ou 64 bits.
  • Un CPU/processeur avec prise en charge de la virtualisation (Intel VT ou AMD-V).
  • Un utilisateur non root avec les privilèges sudo root.

Vérifier l’architecture du système et la prise en charge de la virtualisation du CPU

Tout d’abord, vérifie l’architecture de la machine et la prise en charge matérielle de l’accélération de la virtualisation Intel VT pour les CPU Intel et AMD-v pour les CPU AMD.

1. Exécute la commande suivante pour vérifier l’architecture système de ton système.

uname -m

Tu obtiendras la sortie suivante.

Linux machine1 5.4.134-1 #1 SMP PREEMPT Tue Jul 06 08:10:03 UTC 2021 x86_64 GNU/Linux

Comme tu le vois, nous utilisons actuellement le système Linux avec l’architecture« x86_64 » ou« 64 bits » et la version du noyau« 5.4« .

2. Ensuite, vérifie la prise en charge de la virtualisation du matériel en exécutant la commande suivante.

sudo lscpu | grep Virtualization

Pour le processeur Intel, tu verras une sortie similaire à celle ci-dessous.

Virtualization:                  VT-x

Et pour les processeurs AMD, tu obtiendras une sortie similaire ci-dessous.

Virtualization:                  AMD-V

3. En option, tu peux activer la virtualisation imbriquée sur ta machine en utilisant la commande suivante.

sudo modprobe -r kvm_intel
sudo modprobe kvm_intel nested=1

Après cela, exécute la commande suivante pour vérifier la virtualisation imbriquée.

cat /sys/module/kvm_intel/parameters/nested

Si tu obtiens un résultat comme « Y » ou « 1 », cela signifie que la fonction de virtualisation imbriquée est activée. Sinon, tu verras le message d’erreur « No such file or directory ».

Installer les paquets QEMU et Virt-Manager

1. Pour installer les paquets qemu et virt-manager, exécute la commande ci-dessous.

sudo pacman -S qemu virt-manager libvirt virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat ebtables libguestfs

Pour le système manjaro, il y aura un conflit de paquets entre« iptables » et« ebtables« . Tape« y » pour supprimer le paquet iptables par défaut et le remplacer par« ebtables » et« nftables« .

Voici les paquets essentiels que tu dois connaître :

  • qemu : Un émulateur de machine et un virtualiseur open-source.
  • virt-manager : Une application GUI pour gérer les machines virtuelles.
  • libvirt : Une API pour contrôler les moteurs de virtualisation tels que KVM, QEMU, etc.
  • dnsmasq : Redirecteur DNS léger et serveur DHCP.
  • bridge-utils : Utilitaires pour configurer le pont ethernet de Linux.
  • libguestfs : Ensemble d’outils pour modifier les images de disque des machines virtuelles (VM).

2. Ensuite, démarre et active le service libvirtd à l’aide de la commande suivante.

sudo systemctl enable --now libvirtd

Tu obtiendras une sortie similaire à celle ci-dessous.

Created symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service → /usr/lib/systemd/system/libvirtd.service.
Created symlink /etc/systemd/system/sockets.target.wants/virtlockd.socket → /usr/lib/systemd/system/virtlockd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/virtlogd.socket → /usr/lib/systemd/system/virtlogd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd.socket → /usr/lib/systemd/system/libvirtd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd-ro.socket → /usr/lib/systemd/system/libvirtd-ro.socket.

3. Ensuite, exécute la commande suivante pour vérifier l’état du service libvirtd.

sudo systemctl status libvirtd

Et tu devrais voir un résultat similaire à celui ci-dessous. Comme tu peux le voir, le service libvritd est actif et fonctionne.

? libvirtd.service - Virtualization daemon
     Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; disabled; vendor preset: disabled)
     Active: active (running) since Fri 2021-07-23 10:33:25 UTC; 6s ago
TriggeredBy: ? libvirtd-ro.socket
             ? libvirtd.socket
             ? libvirtd-admin.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 16828 (libvirtd)
      Tasks: 19 (limit: 32768)
     Memory: 16.4M
        CPU: 226ms
     CGroup: /system.slice/libvirtd.service
             ??16828 /usr/bin/libvirtd --timeout 120

Autorise les utilisateurs non root à utiliser la virtualisation KVM/QEMU

Par défaut, seul l’utilisateur « root » peut créer et gérer des machines virtuelles. Pour permettre aux utilisateurs non root de créer et de gérer des machines virtuelles, tu dois suivre la configuration de libvirtd ci-dessous.

1. Exécute la commande suivante pour modifier la configuration de libvirtd.

sudo nano /etc/libvirt/libvirtd.conf

Décommente l’option« unix_sock_group » et entre le nom du groupe comme« libvirt« .

# Set the UNIX domain socket group ownership. This can be used to
# allow a 'trusted' set of users access to management capabilities
# without becoming root.
#
# This setting is not required or honoured if using systemd socket
# activation.
#
# This is restricted to 'root' by default.
unix_sock_group = "libvirt"

Ensuite, décommente l’option« unix_sock_rw_perms » et laisse la permission par défaut« 0770« .

# Set the UNIX socket permissions for the R/W socket. This is used
# for full management of VMs
#
# This setting is not required or honoured if using systemd socket
# activation.
#
# Default allows only root. If PolicyKit is enabled on the socket,
# the default will change to allow everyone (eg, 0777)
#
# If not using PolicyKit and setting group ownership for access
# control, then you may want to relax this too.
unix_sock_rw_perms = "0770"

Enregistre la configuration en appuyant sur le bouton Ctrl+x et en tapant y, puis en entrant.

2. Ensuite, ajoute ton utilisateur au groupe« libvirt » à l’aide de la commande suivante.

sudo usermod -a -G libvirt username

3. Après cela, redémarre le service libvirtd pour appliquer une nouvelle configuration.

sudo systemctl restart libvirtd

Maintenant, tous les utilisateurs du groupe « libvirt » pourront créer et configurer des machines virtuelles.

Vérifie l’installation de QEMU/KVM avec virt-manager

Ouvre maintenant l’application« virt-manager » dans le menu de ton application.

1. Clique sur le menu « Edit -> Connection Details » de l’application virt-manager.

Vérifie les détails de la connexion de QEMU/KVM

2. Sur l’onglet« Aperçu« , tu verras que virt-manager se connectera automatiquement à« qemu:///system« .

virt-manager se connectera automatiquement à QEMU/KVM dans le système.

3. Passe à l’onglet« Réseaux virtuels » et tu verras la configuration réseau« par défaut« .

  • Interface : virbr0
  • Démarrage automatique au démarrage : oui
  • Adresse IP : 192.168.122.0/24
  • Plage d’adresse IP DHCP : 192.168.122.2 – 192.168.122.254
  • Type de réseau : NAT

Configuration réseau par défaut pour QEMU/KVM avec NAT

4. Passe maintenant à l’onglet« Stockage« , et tu verras la configuration de stockage du pool« par défaut« .

  • Type : Répertoire du système de fichiers
  • Taille : Dépend de ton disque
  • Emplacement : /var/lib/libvirt/images
  • Démarrage automatique au démarrage : oui

Toutes les images des machines virtuelles seront disponibles sur ce stockage par défaut, le répertoire« /var/lib/libvirt/images« .

Stockage par défaut de QEMU/KVM

5. Ensuite, clique sur le bouton« + » pour créer un nouveau pool de stockage pour les fichiers d’images ISO. Tous les systèmes d’exploitation des fichiers ISO seront disponibles sur ce pool.

Suis la configration du stockage comme ci-dessous :

  • Nom : ISO
  • Type : dir : Répertoire du système de fichiers
  • Chemin cible : /chemin/répertoire/vers/votre/iso/

Crée un nouveau stockage pour les systèmes d'exploitation des fichiers ISO

Clique sur le bouton« Terminer » pour terminer le processus. Après cela, tu es prêt à créer de nouvelles machines virtuelles.

Créer une nouvelle machine virtuelle à l’aide de virt-manager

1. Sur l’application virt-manager, clique sur le bouton« + » pour créer une nouvelle machine virtuelle.

Créer une nouvelle machine virtuelle avec virt-manager

2. Sélectionne« Local install media » pour utiliser l’image ISO pour l’installation et clique sur le bouton« Forward » pour continuer.

Sélectionne l'installation de type ISO sur support local

3. Clique sur le bouton« Parcourir » pour sélectionner le fichier ISO.

Parcourt le système d'exploitation ISO que tu veux installer

Choisis maintenant le stockage commun« ISO » et sélectionne le fichier ISO pour l’installation (pour cet exemple, il s’agit de« Debian 10« ), puis clique sur« Choisir le volume« .

Sélectionne le fichier ISO de l'OS pour l'installation exemple Debian 10

Décoche l’option« Détecter automatiquement à partir du support d’installation/source« , tape le système d’exploitation que tu veux installer (pour cet exemple, c’est« Debian 10″), puis clique à nouveau sur le bouton« Suivant » pour continuer.

Choisis le type de système d'exploitation que tu veux installer

4. Choisis la quantité de mémoire et de CPU pour la machine virtuelle, puis clique sur« Suivant« .

Configuration de la mémoire et du CPU pour la machine virtuelle

5. Choisis la quantité de disque pour la machine virtuelle et clique sur« Suivant« .

Choisis la taille du disque pour la machine virtuelle

6. Vérifie deux fois ta configuration et clique sur le bouton« Terminer » pour installer.

Confirmation de la création et de l'installation de la machine virtuelle

7. Maintenant, la machine virtuelle est opérationnelle avec la virtualisation QEMU/KVM, et tu peux continuer l’installation de l’os.

La machine virtuelle est en marche avec la virtualisation QEMU/KVM

Conclusion

Félicitations ! Tu as appris comment configurer la virtualisation QEMU/KVM sur une machine Manjaro/Archlinux. Tu as aussi appris à utiliser l’application virt-manager pour créer des machines virtuelles. Tu peux maintenant créer des machines virtuelles avec ton système d’exploitation préféré. Tu peux utiliser une autre distro Linux, Windows ou un os de la famille BSD.

Vous aimerez aussi...