Installer un hôte de virtualisation QEMU/KVM (Fedora Server 31) Fonctionnement de QEMU/KVM KVM (Kernel-based Virtual Machine) est une technologie de virtualisation Open Source intégrée à Linux. Avec KVM, vous pouvez transformer Linux en un hyperviseur qui permet à une machine hôte d'exécuter plusieurs environnements virtuels isolés, appelés invités ou machines virtuelles. KVM convertit le noyau Linux en un hyperviseur de type 1. Pour exécuter des machines virtuelles, tous les hyperviseurs ont besoin de certains composants au niveau du système d'exploitation : gestionnaire de mémoire, planificateur de processus, pile d'entrées/sorties (E/S), pilotes de périphériques, gestionnaire de la sécurité, pile réseau, etc. La technologie KVM comprend tous ces composants, car elle est intégrée au noyau Linux. Chaque machine virtuelle est mise en œuvre en tant que processus Linux standard. Elle est gérée par le planificateur Linux standard et dispose de matériel de virtualisation dédié (carte réseau, carte graphique, un ou plusieurs processeurs, mémoire, disques). Installation d'un hôte de virtualisation QEMU/KVM (avec Libvirt) Commençons par le commencement, les détails de mon installation Fedora Server : Partition Taille Système de fichiers /boot/efi 512 MiB EFI Partition / 10 GiB XFS /datastore [le reste] XFS Installons ensuite les paquets nécessaires à l'installation d'un hôte de virtualisation QEMU-KVM : qemu-kvm : package de base pour installer QEMU/KVM et les dépendances requises. libvirt : l'API de management (utilisée par Virt-Manager) libvirt-python : des bindings Python utiles pour automatiser libguestfs-tools-c : un ensemble d'outils pour manipuler des images de VM (version sans dépendances Perl) virt-install : permet d'installer les VM en ligne de commandes virt-v2v : permet de pouvoir convertir les VM dans des formats différents tuned : un outil qui tweak des paramètres systèmes en fonction de profils cockpit (+ cockpit-machines) : une interface Web de gestion, capable de gérer les VM, le stockage, le réseau...etc. (optionnel) # Installer les packages nécessaires dnf install -y qemu-kvm libvirt python-libvirt libguestfs-tools-c virt-install virt-v2v virt-top tuned cockpit cockpit-machines # Supprimer le dashboard (inutile pour un hôte de virtualisation) dnf remove -y cockpit-dashboard Activons le service "libvirtd" : systemctl enable --now libvirtd Par défaut, Libvirt crée un réseau NAT. Ce dernier n'est peut-être pas utile selon les configurations. Il est possible de le supprimer : virsh net-destroy default virsh net-undefine default systemctl restart libvirtd Si vous utilisez Cockpit, quelques étapes sont requises avant de pouvoir l'utiliser : # Ajouter un règle dans le firewall pour autoriser le service Cockpit (port 9090) firewall-cmd --add-service=cockpit --permanent firewall-cmd --reload # Démarrer le service pour Cockpit systemctl enable --now cockpit.socket Il convient finalement d'activer tuned afin que le programme tweak votre système afin d'obtenir les meilleurs performances possibles : # Démarrer le service tuned systemctl enable --now tuned # Choisir le profil adapté à la virtualisation tuned-adm profile virtual-host Une fois l'ensemble de ces opérations réalisées, il est possible d'utiliser Cockpit ou Virt-Manager pour piloter votre hôte de virtualisation :