18.3. Optimisation des démons libvirt
La suite de virtualisation libvirt
fonctionne comme une couche de gestion pour l'hyperviseur RHEL, et votre configuration libvirt
a un impact significatif sur votre hôte de virtualisation. Notamment, RHEL 9 contient deux types différents de démons libvirt
, monolithiques ou modulaires, et le type de démons que vous utilisez affecte la granularité avec laquelle vous pouvez configurer les pilotes de virtualisation individuels.
18.3.1. Types de démons libvirt
RHEL 9 prend en charge les types de démons libvirt
suivants :
- Libvirt monolithique
Le démon traditionnel
libvirt
,libvirtd
, contrôle une grande variété de pilotes de virtualisation à l'aide d'un seul fichier de configuration -/etc/libvirt/libvirtd.conf
.En tant que tel,
libvirtd
permet une configuration centralisée de l'hyperviseur, mais peut utiliser les ressources du système de manière inefficace. Par conséquent,libvirtd
ne sera plus pris en charge dans une prochaine version majeure de RHEL.Toutefois, si vous êtes passé de RHEL 8 à RHEL 9, votre hôte utilise toujours
libvirtd
par défaut.- Libvirt modulaire
Nouvellement introduit dans RHEL 9,
libvirt
modulaire fournit un démon spécifique pour chaque pilote de virtualisation. Il s'agit notamment des pilotes suivants :- virtqemud - Un démon principal pour la gestion de l'hyperviseur
- virtinterfaced - Un démon secondaire pour la gestion de la carte d'interface réseau de l'hôte
- virtnetworkd - Un démon secondaire pour la gestion des réseaux virtuels
- virtnodedevd - Un démon secondaire pour la gestion des périphériques physiques de l'hôte
- virtnwfilterd - Un démon secondaire pour la gestion du pare-feu de l'hôte
- virtsecretd - Un démon secondaire pour la gestion des secrets de l'hôte
- virtstoraged - Un démon secondaire pour la gestion du stockage
Chaque démon dispose d'un fichier de configuration distinct - par exemple
/etc/libvirt/virtqemud.conf
. En tant que tels, les démons modulaireslibvirt
offrent de meilleures options pour affiner la gestion des ressourceslibvirt
.Si vous avez effectué une nouvelle installation de RHEL 9, la version modulaire de
libvirt
est configurée par défaut.
Prochaines étapes
-
Si votre RHEL 9 utilise
libvirtd
, Red Hat recommande de passer à des démons modulaires. Pour obtenir des instructions, voir Activation des démons modulaires libvirt.
18.3.2. Activation des démons modulaires libvirt
Dans RHEL 9, la bibliothèque libvirt
utilise des démons modulaires qui gèrent des ensembles de pilotes de virtualisation individuels sur votre hôte. Par exemple, le démon virtqemud
gère les pilotes QEMU.
Si vous avez effectué une nouvelle installation d'un hôte RHEL 9, votre hyperviseur utilise par défaut les démons modulaires libvirt
. Toutefois, si vous avez mis à niveau votre hôte de RHEL 8 à RHEL 9, votre hyperviseur utilise le démon monolithique libvirtd
, qui est la valeur par défaut de RHEL 8.
Si c'est le cas, Red Hat recommande d'activer les démons modulaires libvirt
à la place, car ils offrent de meilleures options pour affiner la gestion des ressources de libvirt
. De plus, libvirtd
ne sera plus pris en charge dans une prochaine version majeure de RHEL.
Conditions préalables
Votre hyperviseur utilise le service monolithique
libvirtd
.# systemctl is-active libvirtd.service active
Si cette commande affiche
active
, vous utilisezlibvirtd
.- Vos machines virtuelles sont arrêtées.
Procédure
Arrêtez
libvirtd
et ses prises.$ systemctl stop libvirtd.service $ systemctl stop libvirtd{,-ro,-admin,-tcp,-tls}.socket
Désactivez
libvirtd
pour éviter qu'il ne démarre au démarrage.$ systemctl disable libvirtd.service $ systemctl disable libvirtd{,-ro,-admin,-tcp,-tls}.socket
Activer les démons modulaires
libvirt
.# for drv in qemu interface network nodedev nwfilter secret storage; do systemctl unmask virt${drv}d.service; systemctl unmask virt${drv}d{,-ro,-admin}.socket; systemctl enable virt${drv}d.service; systemctl enable virt${drv}d{,-ro,-admin}.socket; done
Démarrer les sockets pour les démons modulaires.
# for drv in qemu network nodedev nwfilter secret storage; do systemctl start virt${drv}d{,-ro,-admin}.socket; done
Optional: Si vous devez vous connecter à votre hôte à partir d'hôtes distants, activez et démarrez le démon proxy de virtualisation.
Vérifiez si le service
libvirtd-tls.socket
est activé sur votre système.# grep listen_tls /etc/libvirt/libvirtd.conf listen_tls = 0
Si
libvirtd-tls.socket
n'est pas activé (listen_tls = 0
), activezvirtproxyd
comme suit :# systemctl unmask virtproxyd.service # systemctl unmask virtproxyd{,-ro,-admin}.socket # systemctl enable virtproxyd.service # systemctl enable virtproxyd{,-ro,-admin}.socket # systemctl start virtproxyd{,-ro,-admin}.socket
Si
libvirtd-tls.socket
est activé (listen_tls = 1
), activezvirtproxyd
comme suit :# systemctl unmask virtproxyd.service # systemctl unmask virtproxyd{,-ro,-admin,-tls}.socket # systemctl enable virtproxyd.service # systemctl enable virtproxyd{,-ro,-admin,-tls}.socket # systemctl start virtproxyd{,-ro,-admin,-tls}.socket
Pour activer le socket TLS de
virtproxyd
, votre hôte doit avoir des certificats TLS configurés pour fonctionner aveclibvirt
. Pour plus d'informations, consultez la documentation Upstream libvirt.
Vérification
Activer les démons de virtualisation activés.
# virsh uri qemu:///system
Vérifiez que votre hôte utilise le démon modulaire
virtqemud
.# systemctl is-active virtqemud.service active
Si l'état est
active
, vous avez activé avec succès les démons modulaireslibvirt
.