Installer un hôte de virtualisation QEMU/KVM (Fedora Server 30)
- 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 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).
-
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
- libvirt : l'API de management (utilisée par Virt-Manager)
- libvirt-python : des bindings Python utiles pour automatiser
- libguestfs-tools : un ensemble d'outils pour manipuler des images de VM
- 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 pour la performance en fonction de profils
- cockpit (cockpit-machines) : une interface Web de gestion, capable de gérer les VM, le stockage, le réseau...etc.
dnf install -y qemu-kvm libvirt libvirt-python libguestfs-tools virt-install virt-v2v tuned cockpit cockpit-machines
- 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 pour la virtualisation :
# 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 :