Configuration et gestion de la virtualisation
Configurer votre hôte, créer et administrer des machines virtuelles, et comprendre les fonctions de virtualisation
Résumé
- Les capacités et les cas d'utilisation de la virtualisation
- Comment gérer votre hôte et vos machines virtuelles à l'aide d'utilitaires en ligne de commande, ainsi qu'à l'aide de la console web
- Les limites de la prise en charge de la virtualisation sur différentes architectures de systèmes, telles que Intel 64, AMD64 et IBM Z
Fournir un retour d'information sur la documentation de Red Hat Copier lienLien copié sur presse-papiers!
Nous apprécions vos commentaires sur notre documentation. Faites-nous savoir comment nous pouvons l'améliorer.
Soumettre un retour d'information via Jira (compte requis)
- Connectez-vous au site web Jira.
- Cliquez sur Create dans la barre de navigation supérieure
- Saisissez un titre descriptif dans le champ Summary.
- Saisissez votre suggestion d'amélioration dans le champ Description. Incluez des liens vers les parties pertinentes de la documentation.
- Cliquez sur Create en bas de la boîte de dialogue.
Chapitre 1. Introduction de la virtualisation dans RHEL Copier lienLien copié sur presse-papiers!
Si vous n'êtes pas familier avec le concept de virtualisation ou sa mise en œuvre dans Linux, les sections suivantes fournissent une vue d'ensemble de la virtualisation dans RHEL 9 : ses bases, ses avantages, ses composants et d'autres solutions de virtualisation possibles fournies par Red Hat.
1.1. Qu'est-ce que la virtualisation ? Copier lienLien copié sur presse-papiers!
RHEL 9 offre la fonctionnalité virtualization, qui permet à une machine exécutant RHEL 9 de host plusieurs machines virtuelles (VM), également appelées guests. Les VM utilisent le matériel physique et les ressources informatiques de l'hôte pour exécuter un système d'exploitation distinct et virtualisé (guest OS) en tant que processus de l'espace utilisateur sur le système d'exploitation de l'hôte.
En d'autres termes, la virtualisation permet d'avoir des systèmes d'exploitation dans des systèmes d'exploitation.
Les machines virtuelles vous permettent de tester en toute sécurité les configurations et les fonctionnalités des logiciels, d'exécuter des logiciels existants ou d'optimiser l'efficacité de la charge de travail de votre matériel. Pour plus d'informations sur les avantages de la virtualisation, voir Avantages de la virtualisation.
Pour plus d'informations sur ce qu'est la virtualisation, voir la page thématique sur la virtualisation.
Prochaines étapes
- Pour commencer à utiliser la virtualisation dans Red Hat Enterprise Linux 9, voir Activation de la virtualisation dans Red Hat Enterprise Linux 9.
- En plus de la virtualisation de Red Hat Enterprise Linux 9, Red Hat propose un certain nombre de solutions de virtualisation spécialisées, chacune ayant une orientation utilisateur et des fonctionnalités différentes. Pour plus d'informations, voir les solutions de virtualisation Red Hat.
1.2. Avantages de la virtualisation Copier lienLien copié sur presse-papiers!
L'utilisation de machines virtuelles (VM) présente les avantages suivants par rapport à l'utilisation de machines physiques :
Flexible and fine-grained allocation of resources
Une VM s'exécute sur une machine hôte, qui est généralement physique, et du matériel physique peut également être attribué au système d'exploitation invité. Cependant, l'allocation des ressources physiques à la VM se fait au niveau du logiciel et est donc très flexible. Une VM utilise une fraction configurable de la mémoire, des processeurs ou de l'espace de stockage de l'hôte, et cette configuration peut spécifier des demandes de ressources très fines.
Par exemple, ce que le système d'exploitation invité considère comme son disque peut être représenté comme un fichier sur le système de fichiers de l'hôte, et la taille de ce disque est moins limitée que les tailles disponibles pour les disques physiques.
Software-controlled configurations
L'ensemble de la configuration d'une VM est sauvegardé sous forme de données sur l'hôte et est sous le contrôle du logiciel. Par conséquent, une VM peut facilement être créée, supprimée, clonée, migrée, exploitée à distance ou connectée à un système de stockage distant.
Separation from the host
Un système d'exploitation invité fonctionne sur un noyau virtualisé, distinct du système d'exploitation hôte. Cela signifie que n'importe quel système d'exploitation peut être installé sur une VM et que même si le système d'exploitation invité devient instable ou est compromis, l'hôte n'est en aucun cas affecté.
Space and cost efficiency
Une seule machine physique peut héberger un grand nombre de machines virtuelles. Il n'est donc pas nécessaire d'utiliser plusieurs machines physiques pour effectuer les mêmes tâches, ce qui réduit les besoins en espace, en énergie et en maintenance associés au matériel physique.
Software compatibility
Étant donné qu'une VM peut utiliser un système d'exploitation différent de son hôte, la virtualisation permet d'exécuter des applications qui n'ont pas été publiées à l'origine pour votre système d'exploitation hôte. Par exemple, en utilisant un système d'exploitation invité RHEL 7, vous pouvez exécuter des applications publiées pour RHEL 7 sur un système hôte RHEL 9.
NoteTous les systèmes d'exploitation ne sont pas pris en charge en tant que système d'exploitation invité dans un hôte RHEL 9. Pour plus de détails, voir Fonctionnalités recommandées dans la virtualisation RHEL 9.
1.3. Les composants de la machine virtuelle et leur interaction Copier lienLien copié sur presse-papiers!
La virtualisation dans RHEL 9 est constituée des principaux composants logiciels suivants :
Hypervisor
La base de la création de machines virtuelles (VM) dans RHEL 9 est hypervisor, une couche logicielle qui contrôle le matériel et permet d'exécuter plusieurs systèmes d'exploitation sur une machine hôte.
L'hyperviseur comprend le module Kernel-based Virtual Machine (KVM) et les pilotes du noyau de virtualisation. Ces composants garantissent que le noyau Linux de la machine hôte fournit aux logiciels de l'espace utilisateur les ressources nécessaires à la virtualisation.
Au niveau de l'espace utilisateur, l'émulateur QEMU simule une plate-forme matérielle virtualisée complète dans laquelle le système d'exploitation invité peut s'exécuter, et gère la manière dont les ressources sont allouées sur l'hôte et présentées à l'invité.
En outre, la suite logicielle libvirt
sert de couche de gestion et de communication, facilitant l'interaction avec QEMU, appliquant les règles de sécurité et fournissant un certain nombre d'outils supplémentaires pour la configuration et l'exécution des machines virtuelles.
Configuration XML
Un fichier de configuration XML basé sur l'hôte (également connu sous le nom de fichier domain XML ) détermine tous les paramètres et périphériques d'une VM spécifique. La configuration comprend
- Métadonnées telles que le nom de la VM, le fuseau horaire et d'autres informations sur la VM.
- Description des dispositifs de la VM, y compris les unités centrales virtuelles (vCPUS), les dispositifs de stockage, les dispositifs d'entrée/sortie, les cartes d'interface réseau et d'autres matériels, réels et virtuels.
- Paramètres de la VM tels que la quantité maximale de mémoire qu'elle peut utiliser, les paramètres de redémarrage et d'autres paramètres relatifs au comportement de la VM.
Pour plus d'informations sur le contenu d'une configuration XML, voir Exemple de configuration XML de machine virtuelle.
Interaction des composants
Lorsqu'une VM est démarrée, l'hyperviseur utilise la configuration XML pour créer une instance de la VM en tant que processus de l'espace utilisateur sur l'hôte. L'hyperviseur rend également le processus VM accessible aux interfaces basées sur l'hôte, telles que les utilitaires virsh
, virt-install
, et guestfish
, ou l'interface graphique de la console web.
Lorsque ces outils de virtualisation sont utilisés, libvirt traduit leurs données en instructions pour QEMU. QEMU communique les instructions à KVM, qui s'assure que le noyau attribue correctement les ressources nécessaires à l'exécution des instructions. Par conséquent, QEMU peut exécuter les changements correspondants dans l'espace utilisateur, tels que la création ou la modification d'une VM, ou l'exécution d'une action dans le système d'exploitation invité de la VM.
Bien que QEMU soit un composant essentiel de l'architecture, il n'est pas destiné à être utilisé directement sur les systèmes RHEL 9, pour des raisons de sécurité. Par conséquent, les commandes qemu-*
ne sont pas prises en charge par Red Hat, et il est fortement recommandé d'interagir avec QEMU en utilisant libvirt.
Pour plus d'informations sur les interfaces basées sur l'hôte, voir Outils et interfaces pour la gestion de la virtualisation.
Figure 1.1. Architecture de virtualisation RHEL 9
1.4. Outils et interfaces pour la gestion de la virtualisation Copier lienLien copié sur presse-papiers!
Vous pouvez gérer la virtualisation dans RHEL 9 en utilisant l'interface de ligne de commande (CLI) ou plusieurs interfaces utilisateur graphiques (GUI).
Interface de ligne de commande
La CLI est la méthode la plus puissante pour gérer la virtualisation dans RHEL 9. Les principales commandes de la CLI pour la gestion des machines virtuelles (VM) sont les suivantes :
virsh - Un utilitaire de ligne de commande de virtualisation polyvalent et un shell avec une grande variété d'objectifs, en fonction des arguments fournis. En voici un exemple :
-
Démarrage et arrêt d'une VM -
virsh start
etvirsh shutdown
-
Liste des machines virtuelles disponibles -
virsh list
-
Création d'une VM à partir d'un fichier de configuration -
virsh create
-
Entrer dans un shell de virtualisation -
virsh
Pour plus d'informations, voir la page de manuel
virsh(1)
.-
Démarrage et arrêt d'une VM -
-
virt-install
- Un utilitaire CLI pour créer de nouvelles VM. Pour plus d'informations, voir la page de manuelvirt-install(1)
. -
virt-xml
- Un utilitaire permettant de modifier la configuration d'une VM. -
guestfish
- Un utilitaire permettant d'examiner et de modifier les images de disques VM. Pour plus d'informations, voir la page de manuelguestfish(1)
.
Interfaces graphiques
Vous pouvez utiliser les interfaces graphiques suivantes pour gérer la virtualisation dans RHEL 9 :
Le site RHEL 9 web console, également connu sous le nom de Cockpit, fournit une interface utilisateur graphique facile à utiliser et accessible à distance pour gérer les machines virtuelles et les hôtes de virtualisation.
Pour obtenir des instructions sur la gestion de base de la virtualisation avec la console web, voir Gestion des machines virtuelles dans la console web.
1.5. Solutions de virtualisation Red Hat Copier lienLien copié sur presse-papiers!
Les produits Red Hat suivants sont construits sur la base des fonctionnalités de virtualisation de RHEL 9 et étendent les capacités de virtualisation KVM disponibles dans RHEL 9. En outre, de nombreuses limitations de la virtualisation de RHEL 9 ne s'appliquent pas à ces produits :
- Virtualisation OpenShift
Basée sur la technologie KubeVirt, OpenShift Virtualization fait partie de la plateforme Red Hat OpenShift Container Platform et permet d'exécuter des machines virtuelles dans des conteneurs.
Pour plus d'informations sur OpenShift Virtualization, consultez les pages de Red Hat Hybrid Cloud.
- Plate-forme Red Hat OpenStack (RHOSP)
Red Hat OpenStack Platform offre une base intégrée pour créer, déployer et faire évoluer un nuage OpenStack public ou privé sécurisé et fiable.
Pour plus d'informations sur Red Hat OpenStack Platform, consultez le portail client de Red Hat ou la suite de documentation de Red Hat OpenStack Platform.
Pour plus de détails sur les fonctionnalités de virtualisation non prises en charge par RHEL mais prises en charge par d'autres solutions de virtualisation Red Hat, voir : Fonctionnalités non prises en charge dans la virtualisation RHEL 9
Chapitre 2. Permettre la virtualisation Copier lienLien copié sur presse-papiers!
Pour utiliser la virtualisation dans RHEL 9, vous devez installer les paquets de virtualisation et vous assurer que votre système est configuré pour héberger des machines virtuelles (VM). Les étapes spécifiques pour ce faire varient en fonction de l'architecture de votre processeur.
2.1. Activation de la virtualisation sur AMD64 et Intel 64 Copier lienLien copié sur presse-papiers!
Pour configurer un hyperviseur KVM et créer des machines virtuelles (VM) sur un système AMD64 ou Intel 64 exécutant RHEL 9, suivez les instructions ci-dessous.
Conditions préalables
- Red Hat Enterprise Linux 9 est installé et enregistré sur votre machine hôte.
Votre système répond aux exigences matérielles suivantes pour fonctionner en tant qu'hôte de virtualisation :
- L'architecture de votre machine hôte prend en charge la virtualisation KVM.
Les ressources minimales suivantes doivent être disponibles :
- 6 Go d'espace disque libre pour l'hôte, plus 6 Go pour chaque VM prévue.
- 2 Go de RAM pour l'hôte, plus 2 Go supplémentaires pour chaque VM prévue.
Procédure
Installer les paquets de l'hyperviseur de virtualisation.
dnf install qemu-kvm libvirt virt-install virt-viewer
# dnf install qemu-kvm libvirt virt-install virt-viewer
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrer les services de virtualisation :
for drv in qemu network nodedev nwfilter secret storage interface; do systemctl start virt${drv}d{,-ro,-admin}.socket; done
# for drv in qemu network nodedev nwfilter secret storage interface; do systemctl start virt${drv}d{,-ro,-admin}.socket; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Vérifiez que votre système est prêt à devenir un hôte de virtualisation :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si tous les contrôles virt-host-validate renvoient une valeur
PASS
, votre système est prêt à créer des VM.Si l'un des contrôles renvoie une valeur
FAIL
, suivez les instructions affichées pour résoudre le problème.Si l'un des contrôles renvoie une valeur
WARN
, envisagez de suivre les instructions affichées pour améliorer les capacités de virtualisation.
Résolution de problèmes
Si la virtualisation KVM n'est pas prise en charge par le processeur hôte, virt-host-validate génère le message suivant :
QEMU: Checking for hardware virtualization: FAIL (Only emulated CPUs are available, performance will be significantly limited)
QEMU: Checking for hardware virtualization: FAIL (Only emulated CPUs are available, performance will be significantly limited)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cependant, les machines virtuelles installées sur un tel système hôte ne démarreront pas et n'auront pas de problèmes de performance.
Pour contourner ce problème, vous pouvez modifier la valeur
<domain type>
dans la configuration XML de la VM enqemu
. Notez cependant que Red Hat ne prend pas en charge les VM qui utilisent le type de domaineqemu
, et que ce paramètre est fortement déconseillé dans les environnements de production.
2.2. Activation de la virtualisation sur IBM Z Copier lienLien copié sur presse-papiers!
Pour configurer un hyperviseur KVM et créer des machines virtuelles (VM) sur un système IBM Z exécutant RHEL 9, suivez les instructions ci-dessous.
Conditions préalables
Les ressources minimales suivantes doivent être disponibles :
- 6 Go d'espace disque libre pour l'hôte, plus 6 Go pour chaque VM prévue.
- 2 Go de RAM pour l'hôte, plus 2 Go supplémentaires pour chaque VM prévue.
- 4 CPU sur l'hôte. Les VM peuvent généralement fonctionner avec une seule vCPU assignée, mais Red Hat recommande d'assigner 2 vCPU ou plus par VM afin d'éviter que les VM ne deviennent insensibles en cas de charge élevée.
- Votre système hôte IBM Z utilise un processeur z13 ou ultérieur.
RHEL 9 est installé sur une partition logique (LPAR). En outre, la LPAR prend en charge les fonctions de virtualisation start-interpretive execution (SIE).
Pour le vérifier, recherchez
sie
dans votre fichier/proc/cpuinfo
.grep sie /proc/cpuinfo
# grep sie /proc/cpuinfo features : esan3 zarch stfle msa ldisp eimm dfp edat etf3eh highgprs te sie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Installer les paquets de virtualisation :
dnf install qemu-kvm libvirt virt-install
# dnf install qemu-kvm libvirt virt-install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrer les services de virtualisation :
for drv in qemu network nodedev nwfilter secret storage interface; do systemctl start virt${drv}d{,-ro,-admin}.socket; done
# for drv in qemu network nodedev nwfilter secret storage interface; do systemctl start virt${drv}d{,-ro,-admin}.socket; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Vérifiez que votre système est prêt à devenir un hôte de virtualisation.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si tous les contrôles virt-host-validate renvoient une valeur
PASS
, votre système est prêt à créer des VM.Si l'un des contrôles renvoie une valeur
FAIL
, suivez les instructions affichées pour résoudre le problème.Si l'un des contrôles renvoie une valeur
WARN
, envisagez de suivre les instructions affichées pour améliorer les capacités de virtualisation.
Résolution de problèmes
Si la virtualisation KVM n'est pas prise en charge par le processeur hôte, virt-host-validate génère le message suivant :
QEMU: Checking for hardware virtualization: FAIL (Only emulated CPUs are available, performance will be significantly limited)
QEMU: Checking for hardware virtualization: FAIL (Only emulated CPUs are available, performance will be significantly limited)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cependant, les machines virtuelles installées sur un tel système hôte ne démarreront pas et n'auront pas de problèmes de performance.
Pour contourner ce problème, vous pouvez modifier la valeur
<domain type>
dans la configuration XML de la VM enqemu
. Notez cependant que Red Hat ne prend pas en charge les VM qui utilisent le type de domaineqemu
, et que ce paramètre est fortement déconseillé dans les environnements de production.
2.3. Activation de la virtualisation sur ARM 64 Copier lienLien copié sur presse-papiers!
Pour configurer un hyperviseur KVM afin de créer des machines virtuelles (VM) sur un système ARM 64 (également connu sous le nom de AArch64
) qui exécute RHEL 9, suivez les instructions ci-dessous.
Conditions préalables
- Votre système hôte et vos systèmes invités utilisent un noyau avec une taille de page mémoire de 64 Ko. Pour installer un tel noyau sur un système RHEL, voir Installation de RHEL sur ARM avec Kernel-64k.
Les ressources minimales suivantes doivent être disponibles :
- 6 Go d'espace disque libre pour l'hôte, plus 6 Go pour chaque invité prévu.
- 4 Go de RAM pour l'hôte, plus 4 Go pour chaque invité.
Procédure
Installer les paquets de virtualisation :
dnf install qemu-kvm libvirt virt-install
# dnf install qemu-kvm libvirt virt-install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrer les services de virtualisation :
for drv in qemu network nodedev nwfilter secret storage interface; do systemctl start virt${drv}d{,-ro,-admin}.socket; done
# for drv in qemu network nodedev nwfilter secret storage interface; do systemctl start virt${drv}d{,-ro,-admin}.socket; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Vérifiez que votre système est prêt à devenir un hôte de virtualisation :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si tous les contrôles virt-host-validate renvoient une valeur
PASS
, votre système est prêt à créer des machines virtuelles.Si l'un des contrôles renvoie une valeur
FAIL
, suivez les instructions affichées pour résoudre le problème.Si l'un des contrôles renvoie une valeur
WARN
, envisagez de suivre les instructions affichées pour améliorer les capacités de virtualisation.
Prochaines étapes
2.4. Activation des fonctionnalités de l'agent invité QEMU sur vos machines virtuelles Copier lienLien copié sur presse-papiers!
Pour utiliser certaines fonctionnalités sur une machine virtuelle (VM) hébergée sur votre système RHEL 9, vous devez d'abord configurer la VM pour qu'elle utilise l'agent invité QEMU (GA).
Pour une liste complète de ces fonctionnalités, voir Fonctionnalités de virtualisation nécessitant l'agent invité QEMU.
Les étapes spécifiques requises pour configurer QEMU GA sur une VM diffèrent en fonction du système d'exploitation invité utilisé par la VM :
- Pour les machines virtuelles Linux, voir Activation de l'agent invité QEMU sur les invités Linux.
- Pour les machines virtuelles Windows, voir Activation de l'agent invité QEMU sur les invités Windows.
2.4.1. Activation de l'agent invité QEMU sur les invités Linux Copier lienLien copié sur presse-papiers!
Pour permettre à un hôte RHEL d'effectuer un certain sous-ensemble d'opérations sur une machine virtuelle (VM) Linux, vous devez activer l'agent invité QEMU (GA).
Vous pouvez activer QEMU GA à la fois sur les machines virtuelles en cours d'exécution et sur celles qui sont arrêtées.
Procédure
Créer un fichier de configuration XML pour l'AG QEMU, par exemple nommé
qemuga.xml
:touch qemuga.xml
# touch qemuga.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajoutez les lignes suivantes au fichier :
<channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/f16x86_64.agent'/> <target type='virtio' name='org.qemu.guest_agent.0'/> </channel>
<channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/f16x86_64.agent'/> <target type='virtio' name='org.qemu.guest_agent.0'/> </channel>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utilisez le fichier XML pour ajouter QEMU GA à la configuration de la VM.
Si la VM est en cours d'exécution, utilisez la commande suivante :
virsh attach-device <vm-name> qemuga.xml --live --config
# virsh attach-device <vm-name> qemuga.xml --live --config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la VM est arrêtée, utilisez la commande suivante :
virsh attach-device <vm-name> qemuga.xml --config
# virsh attach-device <vm-name> qemuga.xml --config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Dans le système d'exploitation invité Linux, installez l'AG QEMU :
dnf install qemu-guest-agent
# dnf install qemu-guest-agent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrer le service QEMU GA sur l'invité :
systemctl start qemu-guest-agent
# systemctl start qemu-guest-agent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Pour vous assurer que QEMU GA est activé et fonctionne sur la VM Linux, effectuez l'une des opérations suivantes :
-
Dans le système d'exploitation invité, utilisez la commande
systemctl status qemu-guest-agent | grep Loaded
. Si la sortie comprendenabled
, QEMU GA est actif sur la VM. -
Utilisez la commande
virsh domfsinfo <vm-name>
sur l'hôte. Si elle affiche une sortie, QEMU GA est actif sur la VM spécifiée.
2.4.2. Activation de QEMU Guest Agent sur les invités Windows Copier lienLien copié sur presse-papiers!
Pour permettre à un hôte RHEL d'effectuer un certain sous-ensemble d'opérations sur une machine virtuelle (VM) Windows, vous devez activer l'agent invité QEMU (GA). Pour ce faire, ajoutez un périphérique de stockage contenant le programme d'installation de l'agent invité QEMU à une machine virtuelle existante ou lors de la création d'une nouvelle machine virtuelle, et installez les pilotes sur le système d'exploitation invité Windows.
Pour installer l'agent invité (GA) à l'aide de l'interface graphique, voir la procédure ci-dessous. Pour installer l'AG dans une interface de ligne de commande, utilisez le programme d'installation Microsoft Windows (MSI).
Conditions préalables
- Un support d'installation contenant l'agent invité est attaché à la VM. Pour obtenir des instructions sur la préparation du support, voir Préparation du support d'installation du pilote virtio sur une machine hôte.
Procédure
-
Dans le système d'exploitation invité Windows, ouvrez l'application
File Explorer
. -
Cliquez sur
This PC
. -
Dans le volet
Devices and drives
, ouvrez le supportvirtio-win
. -
Ouvrez le dossier
guest-agent
. En fonction du système d'exploitation installé sur la VM, exécutez l'un des programmes d'installation suivants :
-
Si vous utilisez un système d'exploitation 32 bits, exécutez le programme d'installation
qemu-ga-i386.msi
. -
Si vous utilisez un système d'exploitation 64 bits, exécutez le programme d'installation
qemu-ga-x86_64.msi
.
-
Si vous utilisez un système d'exploitation 32 bits, exécutez le programme d'installation
-
Optional: Si vous souhaitez utiliser le pilote série para-virtualisé (
virtio-serial
) comme interface de communication entre l'hôte et l'invité Windows, vérifiez que le pilotevirtio-serial
est installé sur l'invité Windows. Pour plus d'informations sur l'installation des pilotesvirtio
, voir : Installation des pilotes virtio sur un invité Windows.
Vérification
Sur votre VM Windows, accédez à la fenêtre Services.
Computer Management > Services
-
Assurez-vous que l'état du service
QEMU Guest Agent
estRunning
.
2.4.3. Fonctionnalités de virtualisation nécessitant l'agent invité QEMU Copier lienLien copié sur presse-papiers!
Si vous activez QEMU Guest Agent (GA) sur une machine virtuelle (VM), vous pouvez utiliser les commandes suivantes sur votre hôte pour gérer la VM :
virsh shutdown --mode=agent
-
Cette méthode d'arrêt est plus fiable que
virsh shutdown --mode=acpi
, carvirsh shutdown
utilisé avec QEMU GA garantit l'arrêt d'un invité coopératif dans un état propre.
virsh domfsfreeze
etvirsh domfsthaw
- Gèle le système de fichiers de l'invité de manière isolée.
virsh domfstrim
Indique à l'invité de découper son système de fichiers, ce qui permet de réduire les données à transférer lors des migrations.
ImportantSi vous souhaitez utiliser cette commande pour gérer une VM Linux, vous devez également définir le booléen SELinux suivant dans le système d'exploitation invité :
setsebool virt_qemu_ga_read_nonsecurity_files on
# setsebool virt_qemu_ga_read_nonsecurity_files on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow virsh domtime
- Interroge ou règle l'horloge de l'hôte.
virsh setvcpus --guest
- Indique à l'invité de mettre les processeurs hors ligne, ce qui est utile lorsque les processeurs ne peuvent pas être débranchés à chaud.
virsh domifaddr --source agent
- Interroge l'adresse IP du système d'exploitation invité en utilisant QEMU GA. Cette fonction est utile, par exemple, lorsque l'interface de l'invité est directement reliée à une interface hôte.
virsh domfsinfo
- Affiche une liste des systèmes de fichiers montés dans l'invité en cours d'exécution.
virsh set-user-password
- Définit le mot de passe d'un compte utilisateur donné dans l'invité.
virsh set-user-sshkeys
Modifie le fichier des clés SSH autorisées pour un utilisateur donné dans l'invité.
ImportantSi vous souhaitez utiliser cette commande pour gérer une VM Linux, vous devez également définir le booléen SELinux suivant dans le système d'exploitation invité :
setsebool virt_qemu_ga_manage_ssh on
# setsebool virt_qemu_ga_manage_ssh on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Chapitre 3. Création de machines virtuelles Copier lienLien copié sur presse-papiers!
Pour créer une machine virtuelle (VM) dans RHEL 9, utilisez l'interface de ligne de commande ou la console web RHEL 9.
3.1. Création de machines virtuelles à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
Pour créer une machine virtuelle (VM) sur votre hôte RHEL 9 à l'aide de l'utilitaire virt-install
, suivez les instructions ci-dessous.
Conditions préalables
- La virtualisation est activée sur votre système hôte.
- Vous disposez d'une quantité suffisante de ressources système à allouer à vos machines virtuelles, telles que l'espace disque, la mémoire vive ou les processeurs. Les valeurs recommandées peuvent varier de manière significative en fonction des tâches prévues et de la charge de travail des VM.
Une source d'installation du système d'exploitation (OS) est disponible localement ou sur un réseau. Il peut s'agir de l'une des sources suivantes
- Une image ISO d'un support d'installation
Une image disque d'une installation VM existante
AvertissementL'installation à partir d'un CD-ROM ou d'un DVD-ROM hôte n'est pas possible dans RHEL 9. Si vous sélectionnez un CD-ROM ou un DVD-ROM comme source d'installation lors de l'utilisation d'une méthode d'installation de VM disponible dans RHEL 9, l'installation échouera. Pour plus d'informations, consultez la base de connaissances de Red Hat.
Notez également que Red Hat ne prend en charge qu'un nombre limité de systèmes d'exploitation invités.
- Facultatif : Un fichier Kickstart peut être fourni pour faciliter et accélérer la configuration de l'installation.
Procédure
Pour créer une VM et lancer l'installation de son système d'exploitation, utilisez la commande virt-install
, avec les arguments obligatoires suivants :
-
--name
le nom de la nouvelle machine -
--memory
la quantité de mémoire allouée -
--vcpus
le nombre d'unités centrales virtuelles allouées -
--disk
le type et la taille de l'espace de stockage alloué -
--cdrom
ou--location
: le type et l'emplacement de la source d'installation du système d'exploitation
En fonction de la méthode d'installation choisie, les options et valeurs nécessaires peuvent varier. Voir les commandes ci-dessous pour des exemples :
La commande suivante crée une VM nommée demo-guest1 qui installe le système d'exploitation Windows 10 à partir d'une image ISO stockée localement dans le fichier /home/username/Downloads/Win10install.iso. Cette VM est également dotée de 2048 MiB de RAM et de 2 vCPU, et un disque virtuel qcow2 de 80 GiB est automatiquement configuré pour la VM.
virt-install \ --name demo-guest1 --memory 2048 \ --vcpus 2 --disk size=80 --os-variant win10 \ --cdrom /home/username/Downloads/Win10install.iso
# virt-install \ --name demo-guest1 --memory 2048 \ --vcpus 2 --disk size=80 --os-variant win10 \ --cdrom /home/username/Downloads/Win10install.iso
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La commande suivante crée une VM nommée demo-guest2 qui utilise l'image /home/username/Downloads/rhel9.iso pour exécuter un système d'exploitation RHEL 9 à partir d'un CD live. Aucun espace disque n'est attribué à cette VM, de sorte que les modifications apportées pendant la session ne seront pas conservées. En outre, la VM se voit attribuer 4096 MiB de RAM et 4 vCPU.
virt-install \ --name demo-guest2 --memory 4096 --vcpus 4 \ --disk none --livecd --os-variant rhel9.0 \ --cdrom /home/username/Downloads/rhel9.iso
# virt-install \ --name demo-guest2 --memory 4096 --vcpus 4 \ --disk none --livecd --os-variant rhel9.0 \ --cdrom /home/username/Downloads/rhel9.iso
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La commande suivante crée une VM RHEL 9 nommée demo-guest3 qui se connecte à une image disque existante, /home/username/backup/disk.qcow2. Cela revient à déplacer physiquement un disque dur d'une machine à l'autre, de sorte que le système d'exploitation et les données disponibles pour demo-guest3 sont déterminés par la manière dont l'image a été gérée précédemment. En outre, cette VM est dotée de 2048 MiB de RAM et de 2 vCPU.
virt-install \ --name demo-guest3 --memory 2048 --vcpus 2 \ --os-variant rhel9.0 --import \ --disk /home/username/backup/disk.qcow2
# virt-install \ --name demo-guest3 --memory 2048 --vcpus 2 \ --os-variant rhel9.0 --import \ --disk /home/username/backup/disk.qcow2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Notez que l'option
--os-variant
est fortement recommandée lors de l'importation d'une image disque. Si elle n'est pas fournie, les performances de la VM créée seront affectées négativement.La commande suivante crée une VM nommée demo-guest4 qui s'installe à partir de l'URL
http://example.com/OS-install
. Pour que l'installation démarre avec succès, l'URL doit contenir une arborescence d'installation du système d'exploitation qui fonctionne. En outre, le système d'exploitation est automatiquement configuré à l'aide du fichier kickstart de /home/username/ks.cfg. Cette VM est également dotée de 2048 MiB de RAM, de 2 vCPU et d'un disque virtuel qcow2 de 160 GiB.virt-install \ --name demo-guest4 --memory 2048 --vcpus 2 --disk size=160 \ --os-variant rhel9.0 --location http://example.com/OS-install \ --initrd-inject /home/username/ks.cfg --extra-args="inst.ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8"
# virt-install \ --name demo-guest4 --memory 2048 --vcpus 2 --disk size=160 \ --os-variant rhel9.0 --location http://example.com/OS-install \ --initrd-inject /home/username/ks.cfg --extra-args="inst.ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow En outre, si vous souhaitez héberger demo-guest4 sur un hôte RHEL 9 on an ARM 64, incluez les lignes suivantes pour vous assurer que le fichier kickstart installe le paquetage
kernel-64k
:%packages -kernel kernel-64k %end
%packages -kernel kernel-64k %end
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La commande suivante crée une VM nommée demo-guest5 qui s'installe à partir d'un fichier image
RHEL9.iso
en mode texte uniquement, sans graphiques. Elle connecte la console invitée à la console série. La VM a 16384 MiB de mémoire, 16 vCPU, et 280 GiB de disque. Ce type d'installation est utile pour se connecter à un hôte sur un réseau lent.virt-install \ --name demo-guest5 --memory 16384 --vcpus 16 --disk size=280 \ --os-variant rhel9.0 --location RHEL9.iso \ --graphics none --extra-args='console=ttyS0'
# virt-install \ --name demo-guest5 --memory 16384 --vcpus 16 --disk size=280 \ --os-variant rhel9.0 --location RHEL9.iso \ --graphics none --extra-args='console=ttyS0'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La commande suivante crée une VM nommée demo-guest6, qui a la même configuration que demo-guest5, mais qui réside sur l'hôte distant 192.0.2.1.
virt-install \ --connect qemu+ssh://root@192.0.2.1/system --name demo-guest6 --memory 16384 \ --vcpus 16 --disk size=280 --os-variant rhel9.0 --location RHEL9.iso \ --graphics none --extra-args='console=ttyS0'
# virt-install \ --connect qemu+ssh://root@192.0.2.1/system --name demo-guest6 --memory 16384 \ --vcpus 16 --disk size=280 --os-variant rhel9.0 --location RHEL9.iso \ --graphics none --extra-args='console=ttyS0'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La commande suivante crée une VM nommée demo-guest-7, qui a la même configuration que demo-guest5, mais pour son stockage, elle utilise un périphérique DASD médiatisé
mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8
, et lui attribue le numéro de périphérique1111
.virt-install \ --name demo-guest7 --memory 16384 --vcpus 16 --disk size=280 \ --os-variant rhel9.0 --location RHEL9.iso --graphics none \ --disk none --hostdev mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8,address.type=ccw,address.cssid=0xfe,address.ssid=0x0,address.devno=0x1111,boot-order=1 \ --extra-args 'rd.dasd=0.0.1111'
# virt-install \ --name demo-guest7 --memory 16384 --vcpus 16 --disk size=280 \ --os-variant rhel9.0 --location RHEL9.iso --graphics none \ --disk none --hostdev mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8,address.type=ccw,address.cssid=0xfe,address.ssid=0x0,address.devno=0x1111,boot-order=1 \ --extra-args 'rd.dasd=0.0.1111'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Notez que le nom du dispositif médiatisé disponible pour l'installation peut être récupéré à l'aide de la commande
virsh nodedev-list --cap mdev
.
Vérification
- Si la VM est créée avec succès, une fenêtre virt-viewer s'ouvre avec une console graphique de la VM et démarre l'installation du système d'exploitation invité.
Résolution de problèmes
Si
virt-install
échoue avec une erreurcannot find default network
:Assurez-vous que le paquetage
libvirt-daemon-config-network
est installé :{PackageManagerCommand} info libvirt-daemon-config-network
# {PackageManagerCommand} info libvirt-daemon-config-network Installed Packages Name : libvirt-daemon-config-network [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez que le réseau par défaut
libvirt
est actif et configuré pour démarrer automatiquement :virsh net-list --all
# virsh net-list --all Name State Autostart Persistent -------------------------------------------- default active yes yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si ce n'est pas le cas, activez le réseau par défaut et configurez-le pour qu'il démarre automatiquement :
virsh net-autostart default virsh net-start default
# virsh net-autostart default Network default marked as autostarted # virsh net-start default Network default started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si l'activation du réseau par défaut échoue avec l'erreur suivante, c'est que le paquet
libvirt-daemon-config-network
n'a pas été installé correctement.error: failed to get network 'default' error: Network not found: no network with matching name 'default'
error: failed to get network 'default' error: Network not found: no network with matching name 'default'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour résoudre ce problème, réinstallez
libvirt-daemon-config-network
:{PackageManagerCommand} reinstall libvirt-daemon-config-network
# {PackageManagerCommand} reinstall libvirt-daemon-config-network
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si l'activation du réseau par défaut échoue avec une erreur similaire à la suivante, un conflit s'est produit entre le sous-réseau du réseau par défaut et une interface existante sur l'hôte.
error: Failed to start network default error: internal error: Network is already in use by interface ens2
error: Failed to start network default error: internal error: Network is already in use by interface ens2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour résoudre ce problème, utilisez la commande
virsh net-edit default
et modifiez les valeurs de192.0.2.*
dans la configuration pour un sous-réseau qui n'est pas déjà utilisé sur l'hôte.
3.2. Création de machines virtuelles et installation de systèmes d'exploitation invités à l'aide de la console web Copier lienLien copié sur presse-papiers!
Pour gérer les machines virtuelles (VM) dans une interface graphique sur un hôte RHEL 9, utilisez la console Web. Les sections suivantes fournissent des informations sur l'utilisation de la console Web RHEL 9 pour créer des machines virtuelles et y installer des systèmes d'exploitation invités.
3.2.1. Création de machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
Pour créer une machine virtuelle (VM) sur une machine hôte à laquelle votre console web RHEL 9 est connectée, suivez les instructions ci-dessous.
Conditions préalables
- La virtualisation est activée sur votre système hôte.
- Le plug-in VM de la console web est installé sur votre système hôte.
- Vous disposez d'une quantité suffisante de ressources système à allouer à vos machines virtuelles, telles que de l'espace disque, de la mémoire vive ou des processeurs. Les valeurs recommandées peuvent varier considérablement en fonction des tâches prévues et de la charge de travail des VM.
Procédure
Dans l'interface Virtual Machines de la console web, cliquez sur .
La boîte de dialogue Create new virtual machine apparaît.
Saisissez la configuration de base de la VM que vous souhaitez créer.
- Name - Le nom de la VM.
- Connection - Le niveau de privilèges accordé à la session. Pour plus de détails, développez la boîte de dialogue associée dans la console web.
- Installation type - L'installation peut utiliser un support d'installation local, une URL, un démarrage réseau PXE, une image de base dans le nuage ou télécharger un système d'exploitation à partir d'un ensemble limité de systèmes d'exploitation.
Operating system - Le système d'exploitation invité fonctionnant sur la VM. Notez que Red Hat ne prend en charge qu'un nombre limité de systèmes d'exploitation invités.
NotePour télécharger et installer Red Hat Enterprise Linux directement à partir de la console Web, vous devez ajouter un jeton hors ligne dans le champ Offline token.
- Storage - Le type de stockage.
- Storage Limit - La quantité d'espace de stockage.
- Memory - La quantité de mémoire.
Créer la VM :
- Si vous souhaitez que la VM installe automatiquement le système d'exploitation, cliquez sur .
- Si vous souhaitez modifier la VM avant l'installation du système d'exploitation, cliquez sur .
3.2.2. Créer des machines virtuelles en important des images de disque à l'aide de la console web Copier lienLien copié sur presse-papiers!
Vous pouvez créer une machine virtuelle (VM) en important une image disque d'une installation VM existante dans la console web RHEL 9.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
- Vous disposez d'une quantité suffisante de ressources système à allouer à vos machines virtuelles, telles que l'espace disque, la mémoire vive ou les processeurs. Les valeurs recommandées peuvent varier considérablement en fonction des tâches prévues et de la charge de travail des VM.
- Vous avez téléchargé une image disque d'une installation VM existante.
Procédure
Dans l'interface Virtual Machines de la console web, cliquez sur .
Le site Import a virtual machine dialog s'affiche.
Saisissez la configuration de base de la VM que vous souhaitez créer :
- Name - Le nom de la VM.
- Disk image - Chemin d'accès à l'image disque existante d'une VM sur le système hôte.
- Operating system - Le système d'exploitation fonctionnant sur un disque VM. Notez que Red Hat ne prend en charge qu'un nombre limité de systèmes d'exploitation invités.
- Memory - Quantité de mémoire à allouer à la VM.
Importer la VM :
- Pour installer le système d'exploitation sur la VM sans modifier les paramètres de la VM, cliquez sur .
- Pour modifier les paramètres de la VM avant l'installation du système d'exploitation, cliquez sur .
3.2.3. Installation des systèmes d'exploitation invités à l'aide de la console web Copier lienLien copié sur presse-papiers!
Lorsqu'une machine virtuelle (VM) démarre pour la première fois, vous devez installer un système d'exploitation sur la VM.
Si vous cliquez sur
ou lors de la création d'une nouvelle VM, la routine d'installation du système d'exploitation démarre automatiquement lors de la création de la VM.Conditions préalables
Procédure
Dans l'interface Virtual Machines, cliquez sur la VM sur laquelle vous souhaitez installer un système d'exploitation invité.
Une nouvelle page s'ouvre avec des informations de base sur la VM sélectionnée et des commandes permettant de gérer divers aspects de la VM.
Optional: Modifier le micrologiciel.
NoteVous ne pouvez modifier le microprogramme que si vous avez sélectionné
ou lors de la création d'une nouvelle VM et si le système d'exploitation n'est pas déjà installé sur la VM.. Cliquez sur le micrologiciel.
- Dans la fenêtre Change Firmware, sélectionnez le micrologiciel requis.
- Cliquez sur .
Cliquez sur
.La routine d'installation du système d'exploitation s'exécute dans la console VM.
Résolution de problèmes
- Si la routine d'installation échoue, supprimez et recréez la VM avant de recommencer l'installation.
3.2.4. Création de machines virtuelles avec authentification d'images en nuage à l'aide de la console web Copier lienLien copié sur presse-papiers!
Par défaut, les images de cloud distro n'ont pas de comptes de connexion. Cependant, en utilisant la console web RHEL, vous pouvez maintenant créer une machine virtuelle (VM) et spécifier les identifiants de connexion des comptes root et utilisateur, qui sont ensuite transmis à cloud-init.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
- La virtualisation est activée sur votre système hôte.
- Vous disposez d'une quantité suffisante de ressources système à allouer à vos machines virtuelles, telles que l'espace disque, la mémoire vive ou les processeurs. Les valeurs recommandées peuvent varier de manière significative en fonction des tâches prévues et de la charge de travail des VM.
Procédure
Dans l'interface .
de la console web, cliquez surLa boîte de dialogue Créer une nouvelle machine virtuelle apparaît.
- Dans le champ Name, entrez un nom pour la VM.
Dans l'onglet Details, dans le champ Installation type, sélectionnez Cloud base image.
- Dans le champ Installation source, indiquez le chemin d'accès au fichier image sur votre système hôte.
Saisissez la configuration de la VM que vous souhaitez créer.
- Operating system - Le système d'exploitation de la VM. Notez que Red Hat ne prend en charge qu'un nombre limité de systèmes d'exploitation invités.
- Storage - Le type de stockage avec lequel la VM doit être configurée.
- Storage Limit - La quantité d'espace de stockage nécessaire pour configurer la VM.
- Memory - La quantité de mémoire avec laquelle la VM doit être configurée.
Cliquez sur l'onglet Automation.
Définissez vos informations d'authentification pour le cloud.
- Root password - Saisissez un mot de passe racine pour votre VM. Laissez le champ vide si vous ne souhaitez pas définir de mot de passe root.
- User login - Saisissez un identifiant pour l'utilisateur de cloud-init. Laissez ce champ vide si vous ne souhaitez pas créer de compte utilisateur.
User password - Entrez un mot de passe. Laissez ce champ vide si vous ne souhaitez pas créer de compte utilisateur.
Cliquez sur
.La VM est créée.
Chapitre 4. Démarrage des machines virtuelles Copier lienLien copié sur presse-papiers!
Pour démarrer une machine virtuelle (VM) dans RHEL 9, vous pouvez utiliser l'interface de ligne de commande ou l'interface graphique de la console web.
Conditions préalables
- Avant de pouvoir démarrer une VM, il faut la créer et, idéalement, l'installer avec un système d'exploitation. Pour savoir comment procéder, voir Création de machines virtuelles.
4.1. Démarrer une machine virtuelle à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
Vous pouvez utiliser l'interface de ligne de commande (CLI) pour démarrer une machine virtuelle (VM) arrêtée ou restaurer une VM sauvegardée. En utilisant l'interface de ligne de commande, vous pouvez démarrer des machines virtuelles locales et distantes.
Conditions préalables
- Une VM inactive qui est déjà définie.
- Le nom de la VM.
Pour les machines virtuelles distantes :
- L'adresse IP de l'hôte où se trouve la VM.
- Privilèges d'accès à la racine de l'hôte.
Procédure
Pour une VM locale, utilisez l'utilitaire
virsh start
.Par exemple, la commande suivante démarre la VM demo-guest1.
virsh start demo-guest1
# virsh start demo-guest1 Domain 'demo-guest1' started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour une VM située sur un hôte distant, utilisez l'utilitaire
virsh start
ainsi que la connexion SSH QEMU à l'hôte.Par exemple, la commande suivante démarre la VM demo-guest1 sur l'hôte 192.0.2.1.
virsh -c qemu+ssh://root@192.0.2.1/system start demo-guest1
# virsh -c qemu+ssh://root@192.0.2.1/system start demo-guest1 root@192.0.2.1's password: Domain 'demo-guest1' started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. Démarrer des machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
Si une machine virtuelle (VM) est dans l'état shut off, vous pouvez la démarrer à l'aide de la console web RHEL 9. Vous pouvez également configurer la VM pour qu'elle soit démarrée automatiquement au démarrage de l'hôte.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
- Une VM inactive qui est déjà définie.
- Le nom de la VM.
Procédure
Dans l'interface
, cliquez sur la VM que vous souhaitez démarrer.Une nouvelle page s'ouvre avec des informations détaillées sur la VM sélectionnée et des commandes pour arrêter et supprimer la VM.
Cliquez sur
.La VM démarre et vous pouvez vous connecter à sa console ou à sa sortie graphique.
Optional: Pour configurer la VM afin qu'elle démarre automatiquement au démarrage de l'hôte, cochez la case
Autostart
dans la section Overview.Si vous utilisez des interfaces réseau qui ne sont pas gérées par libvirt, vous devez également apporter des modifications supplémentaires à la configuration de systemd. Sinon, les machines virtuelles concernées risquent de ne pas démarrer, voir Démarrage automatique des machines virtuelles au démarrage de l'hôte.
4.3. Démarrage automatique des machines virtuelles au démarrage de l'hôte Copier lienLien copié sur presse-papiers!
Lorsqu'un hôte avec une machine virtuelle (VM) en cours d'exécution redémarre, la VM est arrêtée et doit être redémarrée manuellement par défaut. Pour s'assurer qu'une VM est active lorsque son hôte est en cours d'exécution, vous pouvez configurer la VM pour qu'elle soit démarrée automatiquement.
Conditions préalables
Procédure
Utilisez l'utilitaire
virsh autostart
pour configurer la VM afin qu'elle démarre automatiquement au démarrage de l'hôte.Par exemple, la commande suivante configure la VM demo-guest1 pour qu'elle démarre automatiquement.
virsh autostart demo-guest1
# virsh autostart demo-guest1 Domain 'demo-guest1' marked as autostarted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous utilisez des interfaces réseau qui ne sont pas gérées par
libvirt
, vous devez également apporter des modifications supplémentaires à la configuration de systemd. Dans le cas contraire, les machines virtuelles concernées risquent de ne pas démarrer.NoteCes interfaces comprennent par exemple
-
Dispositifs de pont créés par
NetworkManager
-
Les réseaux configurés pour utiliser
<forward mode='bridge'/>
Dans l'arborescence des répertoires de configuration de systemd, créez un répertoire
virtqemud.service.d
s'il n'existe pas encore.mkdir -p /etc/systemd/system/virtqemud.service.d/
# mkdir -p /etc/systemd/system/virtqemud.service.d/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez un fichier
10-network-online.conf
systemd unit override dans le répertoire précédemment créé. Le contenu de ce fichier remplace la configuration par défaut de systemd pour le servicevirtqemud
.touch /etc/systemd/system/virtqemud.service.d/10-network-online.conf
# touch /etc/systemd/system/virtqemud.service.d/10-network-online.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajoutez les lignes suivantes au fichier
10-network-online.conf
. Ce changement de configuration garantit que systemd ne démarre le servicevirtqemud
qu'une fois que le réseau de l'hôte est prêt.[Unit] After=network-online.target
[Unit] After=network-online.target
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Dispositifs de pont créés par
Vérification
Affichez la configuration de la VM et vérifiez que l'option autostart est activée.
Par exemple, la commande suivante affiche des informations de base sur la VM demo-guest1, y compris l'option autostart.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous utilisez des interfaces réseau qui ne sont pas gérées par libvirt, vérifiez si le contenu du fichier
10-network-online.conf
correspond à la sortie suivante.cat /etc/systemd/system/virtqemud.service.d/10-network-online.conf [Unit] After=network-online.target
$ cat /etc/systemd/system/virtqemud.service.d/10-network-online.conf [Unit] After=network-online.target
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Chapitre 5. Connexion aux machines virtuelles Copier lienLien copié sur presse-papiers!
Pour interagir avec une machine virtuelle (VM) dans RHEL 9, vous devez vous y connecter en effectuant l'une des opérations suivantes :
- Lorsque vous utilisez l'interface de la console Web, utilisez le volet Machines virtuelles dans l'interface de la console Web. Pour plus d'informations, voir Interagir avec les machines virtuelles à l'aide de la console web.
- Si vous avez besoin d'interagir avec l'affichage graphique d'une VM sans utiliser la console Web, utilisez l'application Virt Viewer. Pour plus de détails, voir Ouvrir une console graphique de machine virtuelle à l'aide de Virt Viewer.
- Lorsqu'un affichage graphique n'est pas possible ou nécessaire, utilisez une connexion SSH.
- Si la machine virtuelle n'est pas accessible depuis votre système via un réseau, utilisez la console virsh.
Si les machines virtuelles auxquelles vous vous connectez se trouvent sur un hôte distant plutôt que sur un hôte local, vous pouvez éventuellement configurer votre système pour un accès plus pratique aux hôtes distants.
Conditions préalables
- Les machines virtuelles avec lesquelles vous souhaitez interagir sont installées et démarrées.
5.1. Interagir avec les machines virtuelles en utilisant la console web Copier lienLien copié sur presse-papiers!
Pour interagir avec une machine virtuelle (VM) dans la console web RHEL 9, vous devez vous connecter à la console de la VM. Il existe des consoles graphiques et des consoles série.
- Pour interagir avec l'interface graphique de la VM dans la console web, utilisez la console graphique.
- Pour interagir avec l'interface graphique de la VM dans un visualiseur distant, utilisez la console graphique des visualiseurs distants.
- Pour interagir avec le CLI de la VM dans la console web, utilisez la console série.
5.1.1. Affichage de la console graphique de la machine virtuelle dans la console web Copier lienLien copié sur presse-papiers!
En utilisant l'interface de la console de la machine virtuelle (VM), vous pouvez visualiser la sortie graphique d'une VM sélectionnée dans la console web de RHEL 9.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
- Assurez-vous que l'hôte et la machine virtuelle prennent en charge une interface graphique.
Procédure
Dans l'interface
, cliquez sur la VM dont vous souhaitez afficher la console graphique.Une nouvelle page s'ouvre avec une section Overview et une section Console pour la VM.
Sélectionnez la
dans le menu déroulant de la console.La console VNC apparaît sous le menu de l'interface web.
La console graphique apparaît dans l'interface web.
Cliquez pour
Vous pouvez désormais interagir avec la console VM en utilisant la souris et le clavier de la même manière que vous interagissez avec une machine réelle. L'affichage de la console VM reflète les activités effectuées sur la VM.
L'hôte sur lequel la console web est exécutée peut intercepter des combinaisons de touches spécifiques, telles que Ctrl+Alt+Supprles empêchant d'être envoyées à la VM.
Pour envoyer ces combinaisons de touches, cliquez sur le menu
et sélectionnez la séquence de touches à envoyer.Par exemple, pour envoyer la touche Ctrl+Alt+Del à la VM, cliquez sur la
et sélectionnez l'entrée de menu .Résolution de problèmes
- Si le fait de cliquer dans la console graphique n'a aucun effet, agrandissez la console en plein écran. Il s'agit d'un problème connu lié au décalage du curseur de la souris.
5.1.2. Visualisation de la console graphique dans un visualiseur distant à l'aide de la console web Copier lienLien copié sur presse-papiers!
En utilisant l'interface de la console web, vous pouvez afficher la console graphique d'une machine virtuelle (VM) sélectionnée dans un visualiseur distant, tel que Virt Viewer.
Vous pouvez lancer Virt Viewer à partir de la console web. D'autres visionneuses VNC peuvent être lancées manuellement.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
- Assurez-vous que l'hôte et la machine virtuelle prennent en charge une interface graphique.
Avant de pouvoir afficher la console graphique dans Virt Viewer, vous devez installer Virt Viewer sur la machine à laquelle la console web est connectée.
Cliquez sur
.Le virt viewer,
.vv
, permet de télécharger des fichiers.- Ouvrir le fichier pour lancer Virt Viewer.
Remote Viewer est disponible sur la plupart des systèmes d'exploitation. Cependant, certaines extensions de navigateur et certains plug-ins ne permettent pas à la console web d'ouvrir Virt Viewer.
Procédure
Dans l'interface
, cliquez sur la VM dont vous souhaitez afficher la console graphique.Une nouvelle page s'ouvre avec une section Overview et une section Console pour la VM.
Sélectionnez
dans le menu déroulant de la console.Cliquez sur
.La console graphique s'ouvre dans Virt Viewer.
Vous pouvez interagir avec la console VM en utilisant la souris et le clavier de la même manière que vous interagissez avec une machine réelle. L'affichage de la console VM reflète les activités effectuées sur la VM.
Le serveur sur lequel tourne la console web peut intercepter des combinaisons de touches spécifiques, telles que Ctrl+Alt+Supprles empêchant ainsi d'être envoyées à la VM.
Pour envoyer ces combinaisons de touches, cliquez sur le menu
et sélectionnez la séquence de touches à envoyer.Par exemple, pour envoyer la touche Ctrl+Alt+Del à la VM, cliquez sur le menu
et sélectionnez l'entrée de menu .Résolution de problèmes
- Si le fait de cliquer dans la console graphique n'a aucun effet, agrandissez la console en plein écran. Il s'agit d'un problème connu lié au décalage du curseur de la souris.
Si le lancement du visualiseur à distance dans la console web ne fonctionne pas ou n'est pas optimal, vous pouvez vous connecter manuellement avec n'importe quelle application de visualisation en utilisant les protocoles suivants :
-
Address - L'adresse par défaut est
127.0.0.1
. Vous pouvez modifier le paramètrevnc_listen
dans/etc/libvirt/qemu.conf
pour le remplacer par l'adresse IP de l'hôte. - VNC port - 5901
-
Address - L'adresse par défaut est
5.1.3. Affichage de la console série de la machine virtuelle dans la console web Copier lienLien copié sur presse-papiers!
Vous pouvez afficher la console série d'une machine virtuelle (VM) sélectionnée dans la console web RHEL 9. Cette fonction est utile lorsque la machine hôte ou la VM n'est pas configurée avec une interface graphique.
Pour plus d'informations sur la console de série, voir Ouvrir la console de série d'une machine virtuelle.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans le volet
, cliquez sur la VM dont vous souhaitez afficher la console série.Une nouvelle page s'ouvre avec une section Overview et une section Console pour la VM.
Sélectionnez
dans le menu déroulant Console.La console graphique apparaît dans l'interface web.
Vous pouvez déconnecter et reconnecter la console série de la VM.
- Pour déconnecter la console série de la VM, cliquez sur .
- Pour reconnecter la console série à la VM, cliquez sur .
5.1.4. Remplacement du protocole d'affichage à distance SPICE par VNC dans la console web Copier lienLien copié sur presse-papiers!
La prise en charge du protocole d'affichage à distance SPICE a été supprimée sur les hôtes RHEL 9. Si vous avez une machine virtuelle (VM) configurée pour utiliser le protocole SPICE, vous pouvez remplacer le protocole SPICE par le protocole VNC en utilisant la console web. Dans le cas contraire, la machine virtuelle ne démarre pas. Cependant, certains périphériques SPICE, tels que l'audio et le passage USB, seront supprimés de la VM parce qu'ils n'ont pas de remplacement approprié dans le protocole VNC.
Par défaut, les machines virtuelles RHEL 8 sont configurées pour utiliser le protocole SPICE. Sur un hôte RHEL 9, ces machines virtuelles ne démarrent pas, à moins que vous ne passiez de SPICE à VNC.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
- Vous disposez d'une VM existante qui est configurée pour utiliser le protocole d'affichage à distance SPICE et qui est déjà arrêtée.
Procédure
Dans l'interface Machines virtuelles de la console web, cliquez sur le bouton Menu
de la VM configurée pour utiliser le protocole SPICE.Un menu déroulant s'ouvre avec des commandes pour diverses opérations VM.
Cliquez sur
.La boîte de dialogue Remplacer les dispositifs SPICE s'ouvre.
NoteSi vous avez plusieurs machines virtuelles existantes qui utilisent le protocole SPICE, elles sont répertoriées dans cette boîte de dialogue. Vous pouvez y sélectionner plusieurs machines virtuelles à convertir de SPICE à VNC en une seule étape.
Cliquez sur
.Une confirmation de la réussite de l'opération apparaît.
5.2. Ouvrir la console graphique d'une machine virtuelle à l'aide de Virt Viewer Copier lienLien copié sur presse-papiers!
Pour se connecter à une console graphique d'une machine virtuelle KVM (VM) et l'ouvrir dans l'application de bureau Virt Viewer
, suivez la procédure ci-dessous.
Conditions préalables
- Votre système, ainsi que la machine virtuelle à laquelle vous vous connectez, doivent prendre en charge les affichages graphiques.
- Si la VM cible se trouve sur un hôte distant, une connexion et des privilèges d'accès à la racine de l'hôte sont nécessaires.
- Optional: Si la VM cible est située sur un hôte distant, configurez votre libvirt et SSH pour un accès plus pratique aux hôtes distants.
Procédure
Pour vous connecter à une VM locale, utilisez la commande suivante et remplacez guest-name par le nom de la VM à laquelle vous souhaitez vous connecter :
virt-viewer guest-name
# virt-viewer guest-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour se connecter à une VM distante, utilisez la commande
virt-viewer
avec le protocole SSH. Par exemple, la commande suivante permet de se connecter en tant que root à une VM appelée guest-name, située sur le système distant 192.0.2.1. La connexion nécessite également une authentification root pour 192.0.2.1.virt-viewer --direct --connect qemu+ssh://root@192.0.2.1/system guest-name
# virt-viewer --direct --connect qemu+ssh://root@192.0.2.1/system guest-name root@192.0.2.1's password:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Si la connexion fonctionne correctement, l'écran VM s'affiche dans la fenêtre Virt Viewer
.
Vous pouvez interagir avec la console VM en utilisant la souris et le clavier de la même manière que vous interagissez avec une machine réelle. L'affichage de la console VM reflète les activités effectuées sur la VM.
Résolution de problèmes
- Si le fait de cliquer dans la console graphique n'a aucun effet, agrandissez la console en plein écran. Il s'agit d'un problème connu lié au décalage du curseur de la souris.
5.3. Se connecter à une machine virtuelle en utilisant SSH Copier lienLien copié sur presse-papiers!
Pour interagir avec le terminal d'une machine virtuelle (VM) en utilisant le protocole de connexion SSH, suivez la procédure ci-dessous.
Conditions préalables
- Vous disposez d'une connexion réseau et des privilèges d'accès root à la VM cible.
- Si la VM cible se trouve sur un hôte distant, vous disposez également de privilèges de connexion et d'accès root à cet hôte.
Votre réseau VM attribue des adresses IP par
dnsmasq
générées parlibvirt
. C'est le cas par exemple dans les réseaux NATlibvirt
.Notamment, si votre VM utilise l'une des configurations réseau suivantes, vous ne pouvez pas vous connecter à la VM à l'aide de SSH :
-
hostdev
interfaces - Interfaces directes
- Interfaces de pont
-
Le composant
libvirt-nss
est installé et activé sur l'hôte de la VM. Si ce n'est pas le cas, procédez comme suit :Installez le paquetage
libvirt-nss
:dnf install libvirt-nss
# dnf install libvirt-nss
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Modifiez le fichier
/etc/nsswitch.conf
et ajoutezlibvirt_guest
à la lignehosts
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Lorsque vous vous connectez à une machine virtuelle distante, vous devez d'abord vous connecter en SSH à son hôte physique. L'exemple suivant illustre la connexion à une machine hôte
192.0.2.1
à l'aide des informations d'identification root :ssh root@192.0.2.1
# ssh root@192.0.2.1 root@192.0.2.1's password: Last login: Mon Sep 24 12:05:36 2021 root~#
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utilisez le nom de la VM et les informations d'accès de l'utilisateur pour vous y connecter. Par exemple, la procédure suivante permet de se connecter à la VM
testguest1
à l'aide des informations d'identification de l'utilisateur root :ssh root@testguest1
# ssh root@testguest1 root@testguest1's password: Last login: Wed Sep 12 12:05:36 2018 root~]#
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Résolution de problèmes
Si vous ne connaissez pas le nom de la VM, vous pouvez dresser la liste de toutes les VM disponibles sur l'hôte à l'aide de la commande
virsh list --all
:virsh list --all
# virsh list --all Id Name State ---------------------------------------------------- 2 testguest1 running - testguest2 shut off
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4. Ouvrir la console série d'une machine virtuelle Copier lienLien copié sur presse-papiers!
En utilisant la commande virsh console
, il est possible de se connecter à la console série d'une machine virtuelle (VM).
Ceci est utile lorsque la VM :
- Ne fournit pas de protocoles VNC et n'offre donc pas d'affichage vidéo pour les outils d'interface graphique.
- Ne dispose pas d'une connexion réseau et ne peut donc pas être contacté à l'aide de SSH.
Conditions préalables
Le chargeur d'amorçage GRUB de votre hôte doit être configuré pour utiliser la console série. Pour le vérifier, vérifiez que le fichier
/etc/default/grub
de votre hôte contient le paramètreGRUB_TERMINAL=serial
.sudo grep GRUB_TERMINAL /etc/default/grub
$ sudo grep GRUB_TERMINAL /etc/default/grub GRUB_TERMINAL=serial
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La VM doit avoir un périphérique de console série configuré, tel que
console type='pty'
. Pour vérifier, procédez comme suit :virsh dumpxml vm-name | grep console
# virsh dumpxml vm-name | grep console <console type='pty' tty='/dev/pts/2'> </console>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La console série doit être configurée dans la ligne de commande du noyau de la machine virtuelle. Pour le vérifier, la sortie de la commande
cat /proc/cmdline
sur la VM doit inclure console=<console-name>, où <console-name> est spécifique à l'architecture :-
Pour AMD64 et Intel 64 :
ttyS0
Pour ARM 64 :
ttyAMA0
NoteLes commandes suivantes de cette procédure utilisent
ttyS0
.cat /proc/cmdline BOOT_IMAGE=/vmlinuz-3.10.0-948.el7.x86_64 root=/dev/mapper/rhel-root ro console=tty0 console=ttyS0,9600n8 rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb
# cat /proc/cmdline BOOT_IMAGE=/vmlinuz-3.10.0-948.el7.x86_64 root=/dev/mapper/rhel-root ro console=tty0 console=ttyS0,9600n8 rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la console série n'est pas configurée correctement sur une VM, l'utilisation de virsh console pour se connecter à la VM vous connecte à une console invitée qui ne répond pas. Cependant, vous pouvez toujours quitter la console qui ne répond pas en utilisant la touche Ctrl+] pour quitter la console qui ne répond pas.
Pour configurer la console série sur la VM, procédez comme suit :
Sur la VM, activez l'option
console=ttyS0
kernel :grubby --update-kernel=ALL --args="console=ttyS0"
# grubby --update-kernel=ALL --args="console=ttyS0"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Effacez les options du noyau qui pourraient empêcher vos modifications de prendre effet.
grub2-editenv - unset kernelopts
# grub2-editenv - unset kernelopts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Redémarrez la VM.
-
Pour AMD64 et Intel 64 :
Le service
serial-getty@<console-name>
doit être activé. Par exemple, sur AMD64 et Intel 64 :systemctl status serial-getty@ttyS0.service
# systemctl status serial-getty@ttyS0.service ○ serial-getty@ttyS0.service - Serial Getty on ttyS0 Loaded: loaded (/usr/lib/systemd/system/serial-getty@.service; enabled; preset: enabled)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Sur votre système hôte, utilisez la commande
virsh console
. L'exemple suivant se connecte à la VM guest1, si le pilote libvirt prend en charge la gestion de la console sécurisée :Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Vous pouvez interagir avec la console virsh de la même manière qu'avec une interface de ligne de commande standard.
5.5. Mise en place d'un accès facile aux hôtes de virtualisation distants Copier lienLien copié sur presse-papiers!
Lorsque vous gérez des machines virtuelles sur un système hôte distant à l'aide des utilitaires libvirt, il est recommandé d'utiliser la syntaxe -c qemu ssh://root@hostname/system
. Par exemple, pour utiliser la commande virsh list
en tant que root sur l'hôte 192.0.2.1
:
Cependant, vous pouvez supprimer la nécessité de spécifier les détails de la connexion en modifiant votre configuration SSH et libvirt. Par exemple :
Pour activer cette amélioration, suivez les instructions ci-dessous.
Procédure
Modifiez le fichier
~/.ssh/config
avec les détails suivants, où host-alias est un nom abrégé associé à un hôte distant spécifique et un alias pour root@192.0.2.1, et hosturl est l'adresse URL de l'hôte :vi ~/.ssh/config
# vi ~/.ssh/config Host example-host-alias User root Hostname 192.0.2.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Modifiez le fichier
/etc/libvirt/libvirt.conf
avec les détails suivants, le example-qemu-host-alias est un alias d'hôte que les utilitaires QEMU et libvirt associeront àqemu ssh://192.0.2.1/system
avec l'hôte prévu example-host-alias:vi /etc/libvirt/libvirt.conf
# vi /etc/libvirt/libvirt.conf uri_aliases = [ "example-qemu-host-alias=qemu+ssh://example-host-alias/system", ]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Confirmez que vous pouvez gérer des machines virtuelles distantes en utilisant des utilitaires basés sur libvirt sur le système local avec un paramètre supplémentaire
-c qemu-host-alias
ajouté. Cela permet d'exécuter automatiquement les commandes via SSH sur l'hôte distant.Par exemple, vérifiez que la liste suivante répertorie les machines virtuelles sur l'hôte distant 192.0.2.1, dont la connexion a été configurée à l'adresse example-qemu-host-alias dans les étapes précédentes :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteOutre
virsh
, l'option-c
(ou--connect
) et la configuration de l'accès à l'hôte distant décrite ci-dessus peuvent être utilisées par les utilitaires suivants :
Prochaines étapes
Si vous souhaitez utiliser les utilitaires libvirt exclusivement sur un seul hôte distant, vous pouvez également définir une connexion spécifique comme cible par défaut pour les utilitaires basés sur libvirt. Toutefois, cela n'est pas recommandé si vous souhaitez également gérer des machines virtuelles sur votre hôte local ou sur différents hôtes distants.
Vous pouvez éditer le fichier
/etc/libvirt/libvirt.conf
et définir la valeur du paramètreuri_default
à example-qemu-host-alias comme cible libvirt par défaut.These can be used in cases when no URI is supplied by the application (@uri_default also prevents probing of the hypervisor driver).
# These can be used in cases when no URI is supplied by the application # (@uri_default also prevents probing of the hypervisor driver). # uri_default = "example-qemu-host-alias"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Par conséquent, toutes les commandes basées sur libvirt seront automatiquement exécutées sur l'hôte distant spécifié.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Lorsque vous vous connectez à un hôte distant, vous pouvez éviter de fournir le mot de passe root au système distant. Pour ce faire, utilisez une ou plusieurs des méthodes suivantes :
- Configurer l'accès SSH à l'hôte distant à l'aide d'une clé
- Utiliser le multiplexage de connexion SSH pour se connecter au système distant
- Authentification Kerberos dans la gestion des identités
-
L'option
-c
(ou--connect
) peut être utilisée pour exécuter le programmevirt-install
,virt-viewer
etvirsh
sur un hôte distant.
Chapitre 6. Arrêt des machines virtuelles Copier lienLien copié sur presse-papiers!
Pour arrêter une machine virtuelle en cours d'exécution hébergée sur RHEL 9, utilisez l'interface de ligne de commande ou l'interface graphique de la console Web.
6.1. Arrêter une machine virtuelle à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
Pour arrêter une machine virtuelle (VM) réactive, effectuez l'une des opérations suivantes :
- Utilisez une commande d'arrêt appropriée au système d'exploitation de l'invité lorsque vous êtes connecté à l'invité.
Utilisez la commande
virsh shutdown
sur l'hôte :Si la VM se trouve sur un hôte local :
virsh shutdown demo-guest1
# virsh shutdown demo-guest1 Domain 'demo-guest1' is being shutdown
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la VM se trouve sur un hôte distant, dans cet exemple 192.0.2.1 :
virsh -c qemu+ssh://root@192.0.2.1/system shutdown demo-guest1
# virsh -c qemu+ssh://root@192.0.2.1/system shutdown demo-guest1 root@192.0.2.1's password: Domain 'demo-guest1' is being shutdown
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Pour forcer une VM à s'arrêter, par exemple si elle ne répond plus, utilisez la commande virsh destroy
sur l'hôte :
virsh destroy demo-guest1
# virsh destroy demo-guest1
Domain 'demo-guest1' destroyed
La commande virsh destroy
ne supprime pas la configuration de la VM ou les images de disque. Elle ne fait que mettre fin à l'instance de la VM en cours d'exécution, de la même manière que l'on débranche le cordon d'alimentation d'une machine physique. Ainsi, dans de rares cas, virsh destroy
peut entraîner la corruption du système de fichiers de la VM. L'utilisation de cette commande n'est donc recommandée que si toutes les autres méthodes d'arrêt ont échoué.
6.2. Arrêter et redémarrer les machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
À l'aide de la console web RHEL 9, vous pouvez arrêter ou redémarrer des machines virtuelles en cours d'exécution. Vous pouvez également envoyer une interruption non masquable à une machine virtuelle qui ne répond pas.
6.2.1. Arrêter des machines virtuelles dans la console web Copier lienLien copié sur presse-papiers!
Si une machine virtuelle (VM) est dans l'état running, vous pouvez l'arrêter en utilisant la console web RHEL 9.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
- Dans l'interface , recherchez la ligne de la VM que vous souhaitez arrêter.
Dans la partie droite de la ligne, cliquez sur
.La machine virtuelle s'arrête.
Résolution de problèmes
- Si la VM ne s'arrête pas, cliquez sur le bouton Menu à côté du bouton et sélectionnez l'arrêt.
- Pour arrêter une VM qui ne répond pas, vous pouvez également envoyer une interruption non masquable.
6.2.2. Redémarrer les machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
Si une machine virtuelle (VM) est dans l'état running, vous pouvez la redémarrer en utilisant la console web RHEL 9.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
- Dans l'interface , recherchez la ligne de la VM que vous souhaitez redémarrer.
Sur le côté droit de la ligne, cliquez sur le bouton Menu
.Un menu déroulant d'actions apparaît.
Dans le menu déroulant, cliquez sur
.La VM s'arrête et redémarre.
Résolution de problèmes
- Si la VM ne redémarre pas, cliquez sur le bouton Menu à côté du bouton et sélectionnez .
- Pour arrêter une VM qui ne répond pas, vous pouvez également envoyer une interruption non masquable.
6.2.3. Envoi d'interruptions non masquables aux machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
L'envoi d'une interruption non masquable (NMI) peut amener une machine virtuelle (VM) en cours d'exécution qui ne répond pas à réagir ou à s'arrêter. Par exemple, vous pouvez envoyer la touche Ctrl+Alt+Del À une VM qui ne répond pas à l'entrée standard.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
- Dans l'interface , recherchez la ligne de la VM à laquelle vous souhaitez envoyer un NMI.
Sur le côté droit de la ligne, cliquez sur le bouton Menu
.Un menu déroulant d'actions apparaît.
Dans le menu déroulant, cliquez sur
.Un NMI est envoyé à la VM.
Chapitre 7. Suppression des machines virtuelles Copier lienLien copié sur presse-papiers!
Pour supprimer des machines virtuelles dans RHEL 9, utilisez l'interface de ligne de commande ou l'interface graphique de la console web.
7.1. Suppression de machines virtuelles à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
Pour supprimer une machine virtuelle (VM), vous pouvez supprimer sa configuration XML et les fichiers de stockage associés de l'hôte à l'aide de la ligne de commande. Suivez la procédure ci-dessous :
Conditions préalables
- Sauvegarder les données importantes de la VM.
- Arrêtez la VM.
- Assurez-vous qu'aucune autre VM n'utilise le même stockage associé.
Procédure
Utilisez l'utilitaire
virsh undefine
.Par exemple, la commande suivante supprime la VM guest1, les volumes de stockage associés et la mémoire vive non volatile, le cas échéant.
virsh undefine guest1 --remove-all-storage --nvram
# virsh undefine guest1 --remove-all-storage --nvram Domain 'guest1' has been undefined Volume 'vda'(/home/images/guest1.qcow2) removed.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2. Suppression de machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
Pour supprimer une machine virtuelle (VM) et ses fichiers de stockage associés de l'hôte auquel la console web RHEL 9 est connectée, suivez la procédure ci-dessous :
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
- Sauvegarder les données importantes de la VM.
- Assurez-vous qu'aucune autre VM n'utilise le même stockage associé.
- Optional: Arrêtez la VM.
Procédure
Dans l'interface
, cliquez sur le bouton Menu de la VM que vous souhaitez supprimer.Un menu déroulant apparaît avec des commandes pour diverses opérations VM.
Cliquez sur
.Une boîte de dialogue de confirmation apparaît.
- Optional: Pour supprimer tout ou partie des fichiers de stockage associés à la VM, cochez les cases situées en regard des fichiers de stockage à supprimer.
Cliquez sur
.La VM et tous les fichiers de stockage sélectionnés sont supprimés.
Chapitre 8. Gérer les machines virtuelles dans la console web Copier lienLien copié sur presse-papiers!
Pour gérer les machines virtuelles dans une interface graphique sur un hôte RHEL 9, vous pouvez utiliser le volet Virtual Machines
dans la console Web RHEL 9.
8.1. Vue d'ensemble de la gestion des machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
La console web RHEL 9 est une interface web pour l'administration du système. Parmi ses fonctionnalités, la console web fournit une vue graphique des machines virtuelles (VM) sur le système hôte, et permet de créer, d'accéder et de configurer ces VM.
Notez que pour utiliser la console web pour gérer vos machines virtuelles sur RHEL 9, vous devez d'abord installer un plug-in de console web pour la virtualisation.
Prochaines étapes
- Pour savoir comment activer la gestion des machines virtuelles dans votre console web, voir Configuration de la console web pour la gestion des machines virtuelles.
- Pour une liste complète des actions de gestion des machines virtuelles proposées par la console web, voir Fonctions de gestion des machines virtuelles disponibles dans la console web.
8.2. Configurer la console web pour gérer les machines virtuelles Copier lienLien copié sur presse-papiers!
Avant d'utiliser la console Web RHEL 9 pour gérer les machines virtuelles (VM), vous devez installer le plug-in de machine virtuelle de la console Web sur l'hôte.
Conditions préalables
Assurez-vous que la console web est installée et activée sur votre machine.
systemctl status cockpit.socket
# systemctl status cockpit.socket cockpit.socket - Cockpit Web Service Socket Loaded: loaded (/usr/lib/systemd/system/cockpit.socket [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si cette commande renvoie
Unit cockpit.socket could not be found
, suivez le document Installation de la console web pour activer la console web.
Procédure
Installer le plug-in
cockpit-machines
.dnf install cockpit-machines
# dnf install cockpit-machines
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
-
Accédez à la console web, par exemple en saisissant l'adresse
https://localhost:9090
dans votre navigateur. - Se connecter.
Si l'installation a réussi,
apparaît dans le menu latéral de la console web.
8.3. Renommer des machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
Vous pouvez avoir besoin de renommer une machine virtuelle (VM) existante pour éviter les conflits de noms ou attribuer un nouveau nom unique en fonction de votre cas d'utilisation. Pour renommer la VM, vous pouvez utiliser la console web RHEL.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
- La VM est arrêtée.
Procédure
Dans l'interface
, cliquez sur le bouton Menu de la VM que vous souhaitez renommer.Un menu déroulant apparaît avec des commandes pour diverses opérations VM.
Cliquez sur
.La boîte de dialogue Rename a VM apparaît.
- Dans le champ New name, entrez un nom pour la VM.
- Cliquez sur .
Vérification
- Vérifiez que le nouveau nom de la VM est apparu dans l'interface .
8.4. Fonctions de gestion des machines virtuelles disponibles dans la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web RHEL 9, vous pouvez effectuer les actions suivantes pour gérer les machines virtuelles (VM) sur votre système.
Tâche | Pour plus de détails, voir |
---|---|
Créer une VM et l'installer avec un système d'exploitation invité | |
Supprimer une VM | Suppression de machines virtuelles à l'aide de la console web |
Démarrer, arrêter et redémarrer la VM | Démarrer des machines virtuelles à l'aide de la console web et Arrêter et redémarrer des machines virtuelles à l'aide de la console web |
Se connecter à une VM et interagir avec elle à l'aide de diverses consoles | Interagir avec les machines virtuelles en utilisant la console web |
Visualiser diverses informations sur la VM | Visualisation des informations sur les machines virtuelles à l'aide de la console web |
Ajuster la mémoire hôte allouée à une VM | Ajouter et supprimer la mémoire d'une machine virtuelle à l'aide de la console web |
Gérer les connexions réseau pour la VM | Utilisation de la console web pour gérer les interfaces réseau des machines virtuelles |
Gérer le stockage de la VM disponible sur l'hôte et attacher des disques virtuels à la VM | Gestion du stockage pour les machines virtuelles à l'aide de la console web |
Configurer les paramètres de l'unité centrale virtuelle de la VM | |
Migration en direct d'une VM | Migration en direct d'une machine virtuelle à l'aide de la console web |
Gérer les dispositifs hôtes | |
Gérer les lecteurs optiques virtuels | |
Attacher un dispositif de surveillance | Attacher un dispositif de surveillance à une machine virtuelle en utilisant la console web |
Chapitre 9. Affichage d'informations sur les machines virtuelles Copier lienLien copié sur presse-papiers!
Lorsque vous devez ajuster ou dépanner un aspect de votre déploiement de virtualisation sur RHEL 9, la première étape à effectuer consiste généralement à afficher des informations sur l'état et la configuration actuels de vos machines virtuelles. Pour ce faire, vous pouvez utiliser l'interface de ligne de commande ou la console Web. Vous pouvez également consulter les informations dans la configuration XML de la machine virtuelle.
9.1. Visualisation des informations sur les machines virtuelles à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
Pour récupérer des informations sur les machines virtuelles (VM) de votre hôte et leurs configurations, utilisez une ou plusieurs des commandes suivantes.
Procédure
Pour obtenir une liste des machines virtuelles sur votre hôte :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour obtenir des informations de base sur une VM spécifique :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour obtenir la configuration XML complète d'une VM spécifique :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour obtenir des informations sur les disques et autres périphériques de bloc d'une VM :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour obtenir des informations sur les systèmes de fichiers d'une VM et leurs points de montage :
virsh domfsinfo testguest3
# virsh domfsinfo testguest3 Mountpoint Name Type Target ------------------------------------ / dm-0 xfs /boot vda1 xfs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Pour obtenir plus de détails sur les vCPU d'une VM spécifique :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour configurer et optimiser les vCPU de votre VM, voir Optimiser les performances du CPU de la machine virtuelle.
Pour dresser la liste de toutes les interfaces réseau virtuelles de votre hôte :
virsh net-list --all
# virsh net-list --all Name State Autostart Persistent --------------------------------------------- default active yes yes labnet active yes yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour obtenir des informations sur une interface spécifique :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour plus d'informations sur les interfaces réseau, les réseaux de VM et les instructions pour les configurer, voir Configuration des connexions réseau des machines virtuelles.
9.2. Visualisation des informations sur les machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web RHEL 9, vous pouvez afficher des informations sur toutes les machines virtuelles et tous les pools de stockage auxquels la session de la console web peut accéder.
Vous pouvez afficher des informations sur une VM sélectionnée à laquelle la session de la console Web est connectée. Il s'agit notamment d'informations sur les disques, l'interface réseau virtuelle et l'utilisation des ressources.
9.2.1. Visualisation d'une vue d'ensemble de la virtualisation dans la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web, vous pouvez accéder à une vue d'ensemble de la virtualisation qui contient des informations résumées sur les machines virtuelles (VM), les pools de stockage et les réseaux disponibles.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Cliquez sur
dans le menu latéral de la console Web.Une boîte de dialogue s'affiche avec des informations sur les pools de stockage disponibles, les réseaux disponibles et les machines virtuelles auxquelles la console Web est connectée.
Les informations comprennent les éléments suivants :
- Storage Pools - Le nombre de pools de stockage, actifs ou inactifs, accessibles par la console web et leur état.
- Networks - Le nombre de réseaux, actifs ou inactifs, auxquels la console web peut accéder et leur état.
- Name - Le nom de la VM.
- Connection - Le type de connexion libvirt, système ou session.
- State - L'état de la VM.
9.2.2. Visualisation des informations sur les pools de stockage à l'aide de la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web, vous pouvez afficher des informations détaillées sur les pools de stockage disponibles sur votre système. Les pools de stockage peuvent être utilisés pour créer des images de disque pour vos machines virtuelles.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Cliquez sur
en haut de l'interface .La fenêtre Storage pools s'affiche et présente une liste des pools de stockage configurés.
Les informations comprennent les éléments suivants :
- Name - Le nom du pool de stockage.
- Size - L'allocation actuelle et la capacité totale du pool de stockage.
- Connection - La connexion utilisée pour accéder au pool de stockage.
- State - L'état du pool de stockage.
Cliquez sur la flèche située à côté du pool de stockage dont vous souhaitez consulter les informations.
La ligne se développe pour faire apparaître le volet Vue d'ensemble contenant des informations détaillées sur le pool de stockage sélectionné.
Les informations comprennent
- Target path - Emplacement du pool de stockage.
- Persistent - Indique si le pool de stockage a une configuration persistante ou non.
- Autostart - Indique si le pool de stockage démarre automatiquement au démarrage du système.
- Type - Le type de pool de stockage.
Pour afficher la liste des volumes de stockage associés au pool de stockage, cliquez sur
.Le volet Volumes de stockage s'affiche et présente une liste des volumes de stockage configurés.
Les informations comprennent
- Name - Le nom du volume de stockage.
- Used by - La VM qui utilise actuellement le volume de stockage.
- Size - La taille du volume.
9.2.3. Visualisation des informations de base sur les machines virtuelles dans la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web, vous pouvez afficher des informations de base, telles que les ressources affectées ou les détails de l'hyperviseur, à propos d'une machine virtuelle (VM) sélectionnée.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
- Cliquez sur dans le menu latéral de la console Web.
Cliquez sur la VM dont vous souhaitez consulter les informations.
Une nouvelle page s'ouvre avec une section Vue d'ensemble contenant des informations de base sur la VM sélectionnée et une section Console permettant d'accéder à l'interface graphique de la VM.
La section Vue d'ensemble comprend les informations générales suivantes sur la VM :
- State - L'état de la VM, en cours d'exécution ou à l'arrêt.
- Memory - Quantité de mémoire attribuée à la VM.
- CPU - Le nombre et le type de CPU virtuels configurés pour la VM.
- Boot Order - L'ordre de démarrage configuré pour la VM.
- Autostart - Activation ou non du démarrage automatique pour la VM.
Les informations comprennent également les détails suivants sur l'hyperviseur :
- Emulated Machine - Type de machine émulée par la VM.
- Firmware - Le micrologiciel de la VM.
9.2.4. Visualisation de l'utilisation des ressources de la machine virtuelle dans la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web, vous pouvez visualiser la mémoire et l'utilisation du processeur virtuel d'une machine virtuelle (VM) sélectionnée.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans l'interface
, cliquez sur la VM dont vous voulez voir les informations.Une nouvelle page s'ouvre avec une section Vue d'ensemble contenant des informations de base sur la VM sélectionnée et une section Console permettant d'accéder à l'interface graphique de la VM.
Faites défiler jusqu'à
.La section Utilisation affiche des informations sur l'utilisation de la mémoire et du processeur virtuel de la VM.
9.2.5. Visualisation des informations sur les disques des machines virtuelles dans la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web, vous pouvez afficher des informations détaillées sur les disques affectés à une machine virtuelle (VM) sélectionnée.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Cliquez sur la VM dont vous souhaitez consulter les informations.
Une nouvelle page s'ouvre avec une section Vue d'ensemble contenant des informations de base sur la VM sélectionnée et une section Console permettant d'accéder à l'interface graphique de la VM.
Faites défiler jusqu'à
.La section Disques affiche des informations sur les disques affectés à la VM, ainsi que des options permettant d'accéder à Add ou Edit.
Les informations comprennent les éléments suivants :
- Device - Le type de périphérique du disque.
- Used - Quantité de disque actuellement allouée.
- Capacity - Taille maximale du volume de stockage.
- Bus - Le type de disque émulé.
-
Access - Si le disque est Writeable ou Read-only. Pour les disques
raw
, vous pouvez également définir l'accès à Writeable and shared. - Source - L'unité de disque ou le fichier.
9.2.6. Visualisation et modification des informations relatives à l'interface réseau virtuelle dans la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web RHEL 9, vous pouvez afficher et modifier les interfaces réseau virtuelles sur une machine virtuelle (VM) sélectionnée :
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans l'interface
, cliquez sur la VM dont vous voulez voir les informations.Une nouvelle page s'ouvre avec une section Vue d'ensemble contenant des informations de base sur la VM sélectionnée et une section Console permettant d'accéder à l'interface graphique de la VM.
Faites défiler jusqu'à
.La section Interfaces réseau affiche des informations sur l'interface réseau virtuelle configurée pour la VM ainsi que des options pour les interfaces réseau Add, Delete, Edit, ou Unplug.
Les informations comprennent les éléments suivants :
Type - Type d'interface réseau pour la VM. Les types comprennent le réseau virtuel, le pont vers le réseau local et l'attachement direct.
NoteLa connexion Ethernet générique n'est pas prise en charge dans RHEL 9 et les versions ultérieures.
- Model type - Le modèle de l'interface réseau virtuelle.
- MAC Address - L'adresse MAC de l'interface réseau virtuelle.
- IP Address - L'adresse IP de l'interface réseau virtuelle.
- Source - La source de l'interface réseau. Elle dépend du type de réseau.
- State - État de l'interface réseau virtuelle.
Pour modifier les paramètres de l'interface réseau virtuelle, cliquez sur
. La boîte de dialogue Virtual Network Interface Settings (Paramètres de l'interface réseau virtuelle) s'ouvre.- Modifier le type d'interface, la source, le modèle ou l'adresse MAC.
Cliquez sur
. L'interface réseau est modifiée.NoteLes modifications apportées aux paramètres de l'interface réseau virtuelle ne prennent effet qu'après le redémarrage de la VM.
En outre, l'adresse MAC ne peut être modifiée que lorsque la machine virtuelle est éteinte.
9.3. Exemple de configuration XML d'une machine virtuelle Copier lienLien copié sur presse-papiers!
La configuration XML d'une VM, également appelée domain XML, détermine les paramètres et les composants de la VM. Le tableau suivant présente les sections d'un exemple de configuration XML d'une machine virtuelle (VM) et en explique le contenu.
Pour obtenir la configuration XML d'une VM, vous pouvez utiliser la commande virsh dumpxml
suivie du nom de la VM.
virsh dumpxml testguest1
# virsh dumpxml testguest1
Domaine Section XML | Description |
---|---|
<domain type='kvm'> <name>Testguest1</name> <uuid>ec6fbaa1-3eb4-49da-bf61-bb02fbec4967</uuid> <memory unit='KiB'>1048576</memory> <currentMemory unit='KiB'>1048576</currentMemory>
| Il s'agit d'une machine virtuelle KVM appelée Testguest1, avec 1024 MiB de RAM alloués. |
<vcpu placement='static'>1</vcpu>
| La VM est dotée d'un seul processeur virtuel (vCPU). Pour plus d'informations sur la configuration des vCPU, voir Optimisation des performances du processeur de la machine virtuelle. |
<os> <type arch='x86_64' machine='pc-q35-rhel9.0.0'>hvm</type> <boot dev='hd'/> </os>
| L'architecture de la machine est réglée sur AMD64 et Intel 64, et utilise le type de machine Intel Q35 pour déterminer la compatibilité des fonctionnalités. Le système d'exploitation est configuré pour être démarré à partir du disque dur. Pour plus d'informations sur la création d'une machine virtuelle avec un système d'exploitation installé, voir Création de machines virtuelles et installation de systèmes d'exploitation invités à l'aide de la console web. |
<features> <acpi/> <apic/> </features>
| Les fonctionnalités des hyperviseurs acpi et apic sont désactivées. |
<cpu mode='host-model' check='partial'/>
|
Les définitions de l'unité centrale de l'hôte à partir de capabilities XML (obtenues avec |
<clock offset='utc'> <timer name='rtc' tickpolicy='catchup'/> <timer name='pit' tickpolicy='delay'/> <timer name='hpet' present='no'/> </clock>
| L'horloge du matériel virtuel de la VM utilise le fuseau horaire UTC. En outre, trois horloges différentes sont configurées pour la synchronisation avec l'hyperviseur QEMU. |
<on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash>
|
Lorsque la VM s'éteint ou que son système d'exploitation s'arrête de manière inattendue, |
<pm> <suspend-to-mem enabled='no'/> <suspend-to-disk enabled='no'/> </pm>
| Les états de veille ACPI S3 et S4 sont désactivés pour cette VM. |
|
La VM utilise le fichier binaire
Le premier disque est un disque dur virtualisé basé sur le disque
Le deuxième disque est un CD-ROM virtualisé et son nom de périphérique logique est |
|
La VM utilise un seul contrôleur pour attacher les périphériques USB et un contrôleur racine pour les périphériques PCI-Express (PCIe). En outre, un contrôleur Pour plus d'informations sur les dispositifs virtuels, voir Types de dispositifs virtuels. |
<interface type='network'> <mac address='52:54:00:65:29:21'/> <source network='default'/> <model type='virtio'/> </interface>
|
Une interface réseau est configurée dans la VM qui utilise le réseau virtuel Pour plus d'informations sur la configuration de l'interface réseau, voir Optimisation des performances du réseau de la machine virtuelle. |
|
Une console série Pour plus d'informations sur l'interaction avec les machines virtuelles, voir Interagir avec les machines virtuelles à l'aide de la console web. |
<input type='tablet' bus='usb'> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/>
| La VM utilise un port virtuel usb, qui est configuré pour recevoir l'entrée de la tablette, et un port virtuel ps2 configuré pour recevoir l'entrée de la souris et du clavier. Ces paramètres sont configurés automatiquement et il n'est pas recommandé de les modifier. |
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'> <listen type='address' address='127.0.0.1'/> </graphics>
|
La VM utilise le protocole |
|
La VM utilise |
Chapitre 10. Sauvegarde et restauration des machines virtuelles Copier lienLien copié sur presse-papiers!
Pour libérer les ressources du système, vous pouvez arrêter une machine virtuelle (VM) fonctionnant sur ce système. Cependant, lorsque vous avez de nouveau besoin de la VM, vous devez démarrer le système d'exploitation invité et redémarrer les applications, ce qui peut prendre un temps considérable. Pour réduire ce temps d'arrêt et permettre à la charge de travail de la VM de commencer à fonctionner plus tôt, vous pouvez utiliser la fonction de sauvegarde et de restauration pour éviter complètement l'arrêt du système d'exploitation et la séquence de démarrage.
Cette section fournit des informations sur la sauvegarde des VM, ainsi que sur leur restauration dans le même état sans un démarrage complet de la VM.
10.1. Fonctionnement de la sauvegarde et de la restauration des machines virtuelles Copier lienLien copié sur presse-papiers!
La sauvegarde d'une machine virtuelle (VM) permet d'enregistrer sa mémoire et l'état des périphériques sur le disque de l'hôte et d'arrêter immédiatement le processus de la VM. Vous pouvez sauvegarder une VM qui est en cours d'exécution ou en pause, et lors de la restauration, la VM reviendra à cet état.
Ce processus libère des ressources de RAM et de CPU sur le système hôte en échange d'espace disque, ce qui peut améliorer les performances du système hôte. Lorsque la VM est restaurée, le système d'exploitation invité n'ayant pas besoin d'être démarré, la longue période de démarrage est également évitée.
Pour sauvegarder une machine virtuelle, vous pouvez utiliser l'interface de ligne de commande (CLI). Pour plus d'informations, voir Sauvegarder des machines virtuelles à l'aide de l'interface de ligne de commande.
Pour restaurer une VM, vous pouvez utiliser le CLI ou l'interface graphique de la console web.
Vous pouvez également sauvegarder et restaurer l'état d'une VM à l'aide d'instantanés. Pour plus d'informations, voir Sauvegarde et restauration de l'état d'une machine virtuelle à l'aide d'instantanés.
10.2. Sauvegarder une machine virtuelle à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
Vous pouvez enregistrer une machine virtuelle (VM) et son état actuel sur le disque de l'hôte. Cette fonction est utile, par exemple, lorsque vous devez utiliser les ressources de l'hôte à d'autres fins. La VM sauvegardée peut alors être rapidement restaurée à son état de fonctionnement antérieur.
Pour sauvegarder une VM à l'aide de la ligne de commande, suivez la procédure ci-dessous.
Conditions préalables
- Assurez-vous que vous disposez d'un espace disque suffisant pour sauvegarder la VM et sa configuration. Notez que l'espace occupé par la VM dépend de la quantité de RAM allouée à cette VM.
- S'assurer que la VM est persistante.
- Optional: Sauvegarder les données importantes de la VM si nécessaire.
Procédure
Utilisez l'utilitaire
virsh managedsave
.Par exemple, la commande suivante arrête la VM demo-guest1 et enregistre sa configuration.
virsh managedsave demo-guest1
# virsh managedsave demo-guest1 Domain 'demo-guest1' saved by libvirt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Le fichier VM sauvegardé est situé par défaut dans le répertoire /var/lib/libvirt/qemu/save sous le nom de demo-guest1.save.
La prochaine fois que la VM sera démarrée, elle restaurera automatiquement l'état sauvegardé dans le fichier ci-dessus.
Vérification
Répertoriez les machines virtuelles pour lesquelles la fonction de gestion des sauvegardes est activée. Dans l'exemple suivant, les VM répertoriées sous saved ont leur sauvegarde gérée activée.
virsh list --managed-save --all
# virsh list --managed-save --all Id Name State ---------------------------------------------------- - demo-guest1 saved - demo-guest2 shut off
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour dresser la liste des machines virtuelles dont l'image de sauvegarde est gérée :
virsh list --with-managed-save --all
# virsh list --with-managed-save --all Id Name State ---------------------------------------------------- - demo-guest1 shut off
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Notez que pour lister les machines virtuelles sauvegardées qui sont dans un état d'arrêt, vous devez utiliser les options
--all
ou--inactive
avec la commande.
Résolution de problèmes
- Si le fichier VM sauvegardé est corrompu ou illisible, la restauration de la VM lancera un démarrage VM standard à la place.
10.3. Démarrer une machine virtuelle à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
Vous pouvez utiliser l'interface de ligne de commande (CLI) pour démarrer une machine virtuelle (VM) arrêtée ou restaurer une VM sauvegardée. En utilisant l'interface de ligne de commande, vous pouvez démarrer des machines virtuelles locales et distantes.
Conditions préalables
- Une VM inactive qui est déjà définie.
- Le nom de la VM.
Pour les machines virtuelles distantes :
- L'adresse IP de l'hôte où se trouve la VM.
- Privilèges d'accès à la racine de l'hôte.
Procédure
Pour une VM locale, utilisez l'utilitaire
virsh start
.Par exemple, la commande suivante démarre la VM demo-guest1.
virsh start demo-guest1
# virsh start demo-guest1 Domain 'demo-guest1' started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour une VM située sur un hôte distant, utilisez l'utilitaire
virsh start
ainsi que la connexion SSH QEMU à l'hôte.Par exemple, la commande suivante démarre la VM demo-guest1 sur l'hôte 192.0.2.1.
virsh -c qemu+ssh://root@192.0.2.1/system start demo-guest1
# virsh -c qemu+ssh://root@192.0.2.1/system start demo-guest1 root@192.0.2.1's password: Domain 'demo-guest1' started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4. Démarrer des machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
Si une machine virtuelle (VM) est dans l'état shut off, vous pouvez la démarrer à l'aide de la console web RHEL 9. Vous pouvez également configurer la VM pour qu'elle soit démarrée automatiquement au démarrage de l'hôte.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
- Une VM inactive qui est déjà définie.
- Le nom de la VM.
Procédure
Dans l'interface
, cliquez sur la VM que vous souhaitez démarrer.Une nouvelle page s'ouvre avec des informations détaillées sur la VM sélectionnée et des commandes pour arrêter et supprimer la VM.
Cliquez sur
.La VM démarre et vous pouvez vous connecter à sa console ou à sa sortie graphique.
Optional: Pour configurer la VM afin qu'elle démarre automatiquement au démarrage de l'hôte, cochez la case
Autostart
dans la section Overview.Si vous utilisez des interfaces réseau qui ne sont pas gérées par libvirt, vous devez également apporter des modifications supplémentaires à la configuration de systemd. Sinon, les machines virtuelles concernées risquent de ne pas démarrer, voir Démarrage automatique des machines virtuelles au démarrage de l'hôte.
Chapitre 11. Clonage de machines virtuelles Copier lienLien copié sur presse-papiers!
Pour créer rapidement une nouvelle machine virtuelle (VM) avec un ensemble spécifique de propriétés, vous pouvez clone une VM existante.
Le clonage crée une nouvelle VM qui utilise sa propre image disque pour le stockage, mais la plupart de la configuration et des données stockées du clone sont identiques à celles de la VM source. Cela permet de préparer plusieurs VM optimisées pour une certaine tâche sans avoir à optimiser chaque VM individuellement.
11.1. Comment fonctionne le clonage de machines virtuelles ? Copier lienLien copié sur presse-papiers!
Le clonage d'une machine virtuelle (VM) copie la configuration XML de la VM source et de ses images de disque, et apporte des ajustements aux configurations pour garantir l'unicité de la nouvelle VM. Il s'agit notamment de changer le nom de la VM et de s'assurer qu'elle utilise les clones d'images de disque. Néanmoins, les données stockées sur les disques virtuels du clone sont identiques à celles de la VM source.
Ce processus est plus rapide que la création d'une nouvelle VM et son installation avec un système d'exploitation invité, et peut être utilisé pour générer rapidement des VM avec une configuration et un contenu spécifiques.
Si vous envisagez de créer plusieurs clones d'une VM, créez d'abord une VM template qui ne contient pas de clone :
- Paramètres uniques, tels que la configuration MAC persistante du réseau, qui peuvent empêcher les clones de fonctionner correctement.
- Les données sensibles, telles que les clés SSH et les fichiers de mots de passe.
Pour plus d'informations, voir Création de modèles de machines virtuelles.
11.2. Création de modèles de machines virtuelles Copier lienLien copié sur presse-papiers!
Pour créer plusieurs clones de machines virtuelles (VM) qui fonctionnent correctement, vous pouvez supprimer les informations et les configurations qui sont propres à une VM source, telles que les clés SSH ou la configuration MAC du réseau persistant. Vous créez ainsi une VM template, que vous pouvez utiliser pour créer facilement et en toute sécurité des clones de VM.
Vous pouvez créer des modèles de VM à l'aide de l'utilitaire virt-sysprep
ou les créer manuellement en fonction de vos besoins.
11.2.1. Création d'un modèle de machine virtuelle à l'aide de virt-sysprep Copier lienLien copié sur presse-papiers!
Pour créer un modèle de clonage à partir d'une machine virtuelle (VM) existante, vous pouvez utiliser l'utilitaire virt-sysprep
. Cet utilitaire supprime certaines configurations susceptibles d'entraîner un fonctionnement incorrect du clone, telles que des paramètres réseau spécifiques ou des métadonnées d'enregistrement du système. Par conséquent, virt-sysprep
rend la création de clones de la VM plus efficace et garantit un fonctionnement plus fiable des clones.
Conditions préalables
Le paquet
guestfs-tools
, qui contient l'utilitairevirt-sysprep
, est installé sur votre hôte :dnf install guestfs-tools
# dnf install guestfs-tools
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - La VM source destinée à servir de modèle est arrêtée.
Vous savez où se trouve l'image disque de la VM source et vous êtes le propriétaire du fichier image disque de la VM.
Notez que les images de disque pour les machines virtuelles créées dans la connexion système de libvirt sont situées dans le répertoire
/var/lib/libvirt/images
et appartiennent par défaut à l'utilisateur root :ls -la /var/lib/libvirt/images
# ls -la /var/lib/libvirt/images -rw-------. 1 root root 9665380352 Jul 23 14:50 a-really-important-vm.qcow2 -rw-------. 1 root root 8591507456 Jul 26 2017 an-actual-vm-that-i-use.qcow2 -rw-------. 1 root root 8591507456 Jul 26 2017 totally-not-a-fake-vm.qcow2 -rw-------. 1 root root 10739318784 Sep 20 17:57 another-vm-example.qcow2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Optional: Toutes les données importantes se trouvant sur le disque de la VM source ont été sauvegardées. Si vous souhaitez conserver la VM source intacte, clonez-la d'abord et transformez le clone en modèle.
Procédure
Assurez-vous d'être connecté en tant que propriétaire de l'image disque de la VM :
whoami
# whoami root
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Copier l'image disque de la VM.
cp /var/lib/libvirt/images/a-really-important-vm.qcow2 /var/lib/libvirt/images/a-really-important-vm-original.qcow2
# cp /var/lib/libvirt/images/a-really-important-vm.qcow2 /var/lib/libvirt/images/a-really-important-vm-original.qcow2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Il est utilisé ultérieurement pour vérifier que la VM a bien été transformée en modèle.
Utilisez la commande suivante et remplacez /var/lib/libvirt/images/a-really-important-vm.qcow2 par le chemin d'accès à l'image disque de la VM source.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Pour confirmer que le processus a réussi, comparez l'image disque modifiée à l'image originale. L'exemple suivant montre la création réussie d'un modèle :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.2.2. Créer manuellement un modèle de machine virtuelle Copier lienLien copié sur presse-papiers!
Pour créer un modèle à partir d'une machine virtuelle (VM) existante, vous pouvez réinitialiser ou déconfigurer manuellement une VM invitée afin de la préparer au clonage.
Conditions préalables
Assurez-vous de connaître l'emplacement de l'image disque de la VM source et d'être le propriétaire du fichier d'image disque de la VM.
Notez que les images de disque pour les machines virtuelles créées dans la connexion système de libvirt sont par défaut situées dans le répertoire
/var/lib/libvirt/images
et appartiennent à l'utilisateur root :ls -la /var/lib/libvirt/images
# ls -la /var/lib/libvirt/images -rw-------. 1 root root 9665380352 Jul 23 14:50 a-really-important-vm.qcow2 -rw-------. 1 root root 8591507456 Jul 26 2017 an-actual-vm-that-i-use.qcow2 -rw-------. 1 root root 8591507456 Jul 26 2017 totally-not-a-fake-vm.qcow2 -rw-------. 1 root root 10739318784 Sep 20 17:57 another-vm-example.qcow2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Assurez-vous que la machine virtuelle est arrêtée.
- Optional: Toutes les données importantes présentes sur le disque de la VM ont été sauvegardées. Si vous souhaitez conserver la VM source intacte, clonez-la d'abord et modifiez le clone pour créer un modèle.
Procédure
Configurer la VM pour le clonage :
- Installer les logiciels nécessaires sur le clone.
- Configurez tous les paramètres non uniques pour le système d'exploitation.
- Configurer les paramètres de l'application qui ne sont pas uniques.
Supprimer la configuration du réseau :
Supprimez toutes les règles udev persistantes à l'aide de la commande suivante :
rm -f /etc/udev/rules.d/70-persistent-net.rules
# rm -f /etc/udev/rules.d/70-persistent-net.rules
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteSi les règles udev ne sont pas supprimées, le nom du premier NIC peut être
eth1
au lieu deeth0
.Supprimer les informations uniques des fichiers
NMConnection
dans le répertoire/etc/NetworkManager/system-connections/
.Supprimez l'adresse MAC, l'adresse IP, le DNS, la passerelle et toute autre information unique ou les paramètres non souhaités.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Supprimer les informations similaires de unique et les paramètres non souhaités des fichiers
/etc/hosts
et/etc/resolv.conf
.
Supprimer les détails de l'enregistrement :
Pour les machines virtuelles enregistrées sur le Red Hat Network (RHN) :
rm /etc/sysconfig/rhn/systemid
# rm /etc/sysconfig/rhn/systemid
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour les machines virtuelles enregistrées auprès du gestionnaire d'abonnement Red Hat (RHSM) :
Si vous n'avez pas l'intention d'utiliser la VM d'origine :
subscription-manager unsubscribe --all # subscription-manager unregister # subscription-manager clean
# subscription-manager unsubscribe --all # subscription-manager unregister # subscription-manager clean
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous prévoyez d'utiliser la VM d'origine :
subscription-manager clean
# subscription-manager clean
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLe profil RHSM original reste dans le portail avec votre code d'identification. Utilisez la commande suivante pour réactiver votre enregistrement RHSM sur la VM après son clonage :
subscription-manager register --consumerid=71rd64fx-6216-4409-bf3a-e4b7c7bd8ac9
# subscription-manager register --consumerid=71rd64fx-6216-4409-bf3a-e4b7c7bd8ac9
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Supprimer les autres détails uniques :
Supprimer les paires de clés publiques et privées SSH :
rm -rf /etc/ssh/ssh_host_example
# rm -rf /etc/ssh/ssh_host_example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Supprimer la configuration des périphériques LVM :
rm /etc/lvm/devices/system.devices
# rm /etc/lvm/devices/system.devices
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Supprimer tout autre identifiant ou configuration spécifique à l'application qui pourrait entraîner des conflits en cas d'exécution sur plusieurs machines.
Supprimez le fichier
gnome-initial-setup-done
pour configurer la VM afin qu'elle exécute l'assistant de configuration au prochain démarrage :rm ~/.config/gnome-initial-setup-done
# rm ~/.config/gnome-initial-setup-done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteL'assistant qui s'exécute au démarrage suivant dépend des configurations qui ont été supprimées de la VM. En outre, lors du premier démarrage du clone, il est recommandé de modifier le nom d'hôte.
11.3. Clonage d'une machine virtuelle à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
Pour les tests, afin de créer une nouvelle machine virtuelle (VM) avec un ensemble spécifique de propriétés, vous pouvez cloner une VM existante à l'aide de l'interface CLI.
Conditions préalables
- La VM source est arrêtée.
- Assurez-vous qu'il y a suffisamment d'espace disque pour stocker les images de disque clonées.
- Optional: Lorsque vous créez plusieurs clones de VM, supprimez les données et les paramètres uniques de la VM source afin de garantir le bon fonctionnement des VM clonées. Pour plus d'informations, voir Création de modèles de machines virtuelles.
Procédure
Utilisez l'utilitaire
virt-clone
avec les options appropriées à votre environnement et à votre cas d'utilisation.Sample use cases
La commande suivante clone une VM locale nommée
example-VM-1
et crée la VMexample-VM-1-clone
. Elle crée et alloue également l'image disqueexample-VM-1-clone.qcow2
au même endroit que l'image disque de la VM d'origine et avec les mêmes données :virt-clone --original example-VM-1 --auto-clone
# virt-clone --original example-VM-1 --auto-clone Allocating 'example-VM-1-clone.qcow2' | 50.0 GB 00:05:37 Clone 'example-VM-1-clone' created successfully.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La commande suivante clone une VM nommée
example-VM-2
, et crée une VM locale nomméeexample-VM-3
, qui n'utilise que deux des multiples disques deexample-VM-2
:virt-clone --original example-VM-2 --name example-VM-3 --file /var/lib/libvirt/images/disk-1-example-VM-2.qcow2 --file /var/lib/libvirt/images/disk-2-example-VM-2.qcow2
# virt-clone --original example-VM-2 --name example-VM-3 --file /var/lib/libvirt/images/disk-1-example-VM-2.qcow2 --file /var/lib/libvirt/images/disk-2-example-VM-2.qcow2 Allocating 'disk-1-example-VM-2-clone.qcow2' | 78.0 GB 00:05:37 Allocating 'disk-2-example-VM-2-clone.qcow2' | 80.0 GB 00:05:37 Clone 'example-VM-3' created successfully.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour cloner votre VM sur un autre hôte, migrez la VM sans la redéfinir sur l'hôte local. Par exemple, les commandes suivantes clonent la VM
example-VM-3
précédemment créée sur le système distant192.0.2.1
, y compris ses disques locaux. Notez que vous devez disposer des privilèges root pour exécuter ces commandes sur192.0.2.1
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Pour vérifier que la VM a été clonée avec succès et qu'elle fonctionne correctement :
Confirmez que le clone a été ajouté à la liste des VM sur votre hôte :
virsh list --all
# virsh list --all Id Name State --------------------------------------- - example-VM-1 shut off - example-VM-1-clone shut off
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrez le clone et observez s'il démarre :
virsh start example-VM-1-clone
# virsh start example-VM-1-clone Domain 'example-VM-1-clone' started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.4. Clonage d'une machine virtuelle à l'aide de la console web Copier lienLien copié sur presse-papiers!
Pour créer de nouvelles machines virtuelles (VM) avec un ensemble spécifique de propriétés, vous pouvez cloner une VM que vous avez précédemment configurée à l'aide de la console web.
Le clonage d'une VM entraîne également le clonage des disques associés à cette VM.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
- Assurez-vous que la VM que vous souhaitez cloner est éteinte.
Procédure
Dans l'interface Machines virtuelles de la console web, cliquez sur le bouton Menu
de la VM que vous souhaitez cloner.Un menu déroulant apparaît avec des commandes pour diverses opérations VM.
Cliquez sur
.La boîte de dialogue Créer un clone de VM s'affiche.
- Optional: Saisissez un nouveau nom pour le clone de VM.
Cliquez sur
.Une nouvelle VM est créée sur la base de la VM source.
Vérification
- Confirmez que la VM clonée apparaît dans la liste des VM disponibles sur votre hôte.
Chapitre 12. Migration des machines virtuelles Copier lienLien copié sur presse-papiers!
Si l'hôte actuel d'une machine virtuelle (VM) ne convient plus ou ne peut plus être utilisé, ou si vous souhaitez redistribuer la charge de travail d'hébergement, vous pouvez migrer la VM vers un autre hôte KVM.
12.1. Comment fonctionne la migration des machines virtuelles Copier lienLien copié sur presse-papiers!
La partie essentielle de la migration d'une machine virtuelle (VM) consiste à copier la configuration XML d'une VM vers une machine hôte différente. Si la VM migrée n'est pas arrêtée, la migration transfère également l'état de la mémoire de la VM et de tous les périphériques virtualisés vers une machine hôte de destination. Pour que la VM reste fonctionnelle sur l'hôte de destination, les images de disque de la VM doivent rester disponibles.
Par défaut, la VM migrée est transitoire sur l'hôte de destination et reste définie sur l'hôte source.
Vous pouvez migrer une VM en cours d'exécution en utilisant les migrations live ou non-live. Pour migrer une VM éteinte, vous devez utiliser une migration offline. Pour plus de détails, voir le tableau suivant.
Type de migration | Description | Cas d'utilisation | Storage requirements |
---|---|---|---|
Live migration | La VM continue de fonctionner sur la machine hôte source pendant que KVM transfère les pages mémoire de la VM vers la machine hôte de destination. Lorsque la migration est presque terminée, KVM suspend brièvement la VM et la reprend sur l'hôte de destination. | Utile pour les machines virtuelles qui nécessitent une disponibilité constante. Cependant, les machines virtuelles qui modifient les pages de mémoire plus rapidement que KVM ne peut les transférer, telles que les machines virtuelles soumises à une forte charge d'E/S, ne peuvent pas être migrées en direct, et non-live migration doit être utilisé à la place. | Les images de disque de la VM doivent être situées sur un réseau partagé, accessible à la fois à l'hôte source et à l'hôte de destination. |
Non-live migration | Suspend la VM, copie sa configuration et sa mémoire sur l'hôte de destination et reprend la VM. | Elle entraîne une indisponibilité de la VM, mais elle est généralement plus fiable que la migration en direct. Recommandé pour les machines virtuelles soumises à une forte charge de mémoire. | Les images de disque de la VM doivent être situées sur un réseau partagé, accessible à la fois à l'hôte source et à l'hôte de destination. |
Offline migration | Déplace la configuration de la VM vers l'hôte de destination | Recommandé pour les machines virtuelles arrêtées et dans les cas où l'arrêt de la machine virtuelle ne perturbe pas la charge de travail. | Les images de disque de la VM ne doivent pas nécessairement être disponibles sur un réseau partagé et peuvent être copiées ou déplacées manuellement vers l'hôte de destination. |
Vous pouvez également combiner live migration et non-live migration. Cette méthode est recommandée, par exemple, lors de la migration en direct d'une VM qui utilise un très grand nombre de vCPU ou une grande quantité de mémoire, ce qui empêche la migration de s'achever. Dans un tel scénario, vous pouvez suspendre la VM source. Cela permet d'éviter la génération de pages de mémoire sales supplémentaires et d'augmenter considérablement les chances de réussite de la migration. En fonction de la charge de travail de l'invité et du nombre de pages statiques pendant la migration, une telle migration hybrid peut entraîner un temps d'arrêt nettement inférieur à celui d'une migration non live.
12.2. Avantages de la migration des machines virtuelles Copier lienLien copié sur presse-papiers!
La migration des machines virtuelles (VM) peut être utile pour :
- Équilibrage de la charge
- Les machines virtuelles peuvent être déplacées vers des machines hôtes moins utilisées si leur hôte est surchargé ou si un autre hôte est sous-utilisé.
- Indépendance du matériel
- Lorsque vous avez besoin de mettre à niveau, d'ajouter ou de supprimer des périphériques matériels sur la machine hôte, vous pouvez déplacer en toute sécurité les machines virtuelles vers d'autres hôtes. Cela signifie que les VM ne subissent pas de temps d'arrêt pour les améliorations matérielles.
- Économie d'énergie
- Les machines virtuelles peuvent être redistribuées à d'autres hôtes, et les systèmes hôtes non chargés peuvent ainsi être mis hors tension pour économiser de l'énergie et réduire les coûts pendant les périodes de faible utilisation.
- Migration géographique
- Les machines virtuelles peuvent être déplacées vers un autre emplacement physique pour réduire la latence ou pour d'autres raisons.
12.3. Limites de la migration des machines virtuelles Copier lienLien copié sur presse-papiers!
Avant de migrer des machines virtuelles (VM) dans RHEL 9, assurez-vous de connaître les limites de la migration.
-
La migration des machines virtuelles depuis ou vers une connexion de session de
libvirt
n'est pas fiable et n'est donc pas recommandée. Les machines virtuelles qui utilisent certaines fonctions et configurations ne fonctionneront pas correctement si elles sont migrées, ou la migration échouera. Il s'agit notamment des fonctions suivantes
- Passage d'appareil
- Affectation des dispositifs SR-IOV
- Dispositifs médiatisés, tels que les vGPU
- Une migration entre des hôtes qui utilisent l'épinglage NUMA (Non-Uniform Memory Access) ne fonctionne que si les hôtes ont une topologie similaire. Cependant, les performances des charges de travail en cours d'exécution peuvent être affectées par la migration.
Les CPU émulés, tant sur la VM source que sur la VM de destination, doivent être identiques, sinon la migration risque d'échouer. Toute différence entre les VM dans les domaines suivants liés au processeur peut entraîner des problèmes de migration :
Modèle de CPU
- La migration entre un hôte Intel 64 et un hôte AMD64 n'est pas prise en charge, même s'ils partagent le jeu d'instructions x86-64.
- Pour savoir comment s'assurer qu'une machine virtuelle fonctionnera correctement après avoir migré vers un hôte doté d'un modèle de CPU différent, voir Vérifier la compatibilité du CPU de l'hôte pour la migration de la machine virtuelle.
- Paramètres du micrologiciel
- Version du microcode
- Version du BIOS
- Paramètres du BIOS
- Version de QEMU
- Version du noyau
- La migration en direct d'une VM qui utilise plus de 1 To de mémoire peut, dans certains cas, ne pas être fiable. Pour savoir comment éviter ou résoudre ce problème, voir La migration en direct d'une VM prend beaucoup de temps sans se terminer.
12.4. Vérification de la compatibilité de l'unité centrale de l'hôte pour la migration des machines virtuelles Copier lienLien copié sur presse-papiers!
Pour que les machines virtuelles (VM) migrées fonctionnent correctement sur l'hôte de destination, les CPU des hôtes source et de destination doivent être compatibles. Pour vous en assurer, calculez une base commune de CPU avant de commencer la migration.
Les instructions de cette section s'appuient sur un exemple de scénario de migration avec les processeurs hôtes suivants :
- Hôte source : Intel Core i7-8650U
- Hôtes de destination : Intel Xeon CPU E5-2620 v2
Conditions préalables
- La virtualisation est installée et activée sur votre système.
- Vous disposez d'un accès administrateur à l'hôte source et à l'hôte de destination pour la migration.
Procédure
Sur l'hôte source, obtenez les caractéristiques de son processeur et collez-les dans un nouveau fichier XML, tel que
domCaps-CPUs.xml
.virsh domcapabilities | xmllint --xpath "//cpu/mode[@name='host-model']" - > domCaps-CPUs.xml
# virsh domcapabilities | xmllint --xpath "//cpu/mode[@name='host-model']" - > domCaps-CPUs.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Dans le fichier XML, remplacez les balises
<mode> </mode>
par<cpu> </cpu>
. Optional: Vérifiez que le contenu du fichier
domCaps-CPUs.xml
ressemble à ce qui suit :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Sur l'hôte de destination, utilisez la commande suivante pour obtenir les caractéristiques de son processeur :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Ajoutez les caractéristiques de l'unité centrale obtenues de l'hôte de destination au fichier
domCaps-CPUs.xml
de l'hôte source. Remplacez à nouveau les balises<mode> </mode>
par<cpu> </cpu>
et enregistrez le fichier. Optional: Vérifiez que le fichier XML contient à présent les caractéristiques de l'unité centrale des deux hôtes.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utilisez le fichier XML pour calculer la ligne de base de la fonctionnalité CPU pour la VM que vous avez l'intention de migrer.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ouvrez la configuration XML de la VM que vous souhaitez migrer et remplacez le contenu de la section
<cpu>
par les paramètres obtenus à l'étape précédente.virsh edit VM-name
# virsh edit VM-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la VM est en cours d'exécution, redémarrez-la.
virsh reboot VM-name
# virsh reboot VM-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.5. Partage d'images de disques de machines virtuelles avec d'autres hôtes Copier lienLien copié sur presse-papiers!
Pour effectuer une migration en direct d'une machine virtuelle (VM) entre des hôtes KVM pris en charge, un stockage VM partagé est nécessaire. La procédure suivante fournit des instructions pour partager une image de VM stockée localement avec l'hôte source et l'hôte de destination à l'aide du protocole NFS.
Conditions préalables
- La machine virtuelle destinée à la migration est arrêtée.
- Optional: Un système hôte est disponible pour héberger le stockage qui n'est pas l'hôte source ou l'hôte de destination, mais l'hôte source et l'hôte de destination peuvent tous deux l'atteindre via le réseau. Il s'agit de la solution optimale pour le stockage partagé et elle est recommandée par Red Hat.
- Assurez-vous que le verrouillage des fichiers NFS n'est pas utilisé car il n'est pas pris en charge par KVM.
- NFS est installé et activé sur les hôtes source et destination. Voir
- Déploiement d'un serveur NFS.
Procédure
Connectez-vous à l'hôte qui fournira le stockage partagé. Dans cet exemple, il s'agit de l'hôte
example-shared-storage
:ssh root@example-shared-storage
# ssh root@example-shared-storage root@example-shared-storage's password: Last login: Mon Sep 24 12:05:36 2019 root~#
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez un répertoire sur l'hôte source qui contiendra l'image disque et sera partagé avec les hôtes de migration :
mkdir /var/lib/libvirt/shared-images
# mkdir /var/lib/libvirt/shared-images
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copiez l'image disque de la VM depuis l'hôte source vers le répertoire nouvellement créé. L'exemple suivant copie l'image disque
example-disk-1
de la VM dans le répertoire/var/lib/libvirt/shared-images/
de l'hôteexample-shared-storage
:scp /var/lib/libvirt/images/example-disk-1.qcow2 root@example-shared-storage:/var/lib/libvirt/shared-images/example-disk-1.qcow2
# scp /var/lib/libvirt/images/example-disk-1.qcow2 root@example-shared-storage:/var/lib/libvirt/shared-images/example-disk-1.qcow2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Sur l'hôte que vous voulez utiliser pour partager le stockage, ajoutez le répertoire de partage au fichier
/etc/exports
. L'exemple suivant partage le répertoire/var/lib/libvirt/shared-images
avec les hôtesexample-source-machine
etexample-destination-machine
:/var/lib/libvirt/shared-images example-source-machine(rw,no_root_squash) example-destination-machine(rw,no\_root_squash)
# /var/lib/libvirt/shared-images example-source-machine(rw,no_root_squash) example-destination-machine(rw,no\_root_squash)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Sur l'hôte source et l'hôte de destination, montez le répertoire partagé dans le répertoire
/var/lib/libvirt/images
:mount example-shared-storage:/var/lib/libvirt/shared-images /var/lib/libvirt/images
# mount example-shared-storage:/var/lib/libvirt/shared-images /var/lib/libvirt/images
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
- Démarrez la VM sur l'hôte source et observez si elle démarre correctement.
12.6. Migrer une machine virtuelle à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
Si l'hôte actuel d'une machine virtuelle (VM) ne convient plus ou ne peut plus être utilisé, ou si vous souhaitez redistribuer la charge de travail d'hébergement, vous pouvez migrer la VM vers un autre hôte KVM. La procédure suivante fournit des instructions et des exemples pour divers scénarios de migration.
Conditions préalables
- L'hôte source et l'hôte de destination utilisent tous deux l'hyperviseur KVM.
-
L'hôte source et l'hôte de destination sont en mesure de se joindre l'un l'autre sur le réseau. Utilisez l'utilitaire
ping
pour le vérifier. Assurez-vous que les ports suivants sont ouverts sur l'hôte de destination.
- Le port 22 est nécessaire pour se connecter à l'hôte de destination en utilisant SSH.
- Le port 16509 est nécessaire pour se connecter à l'hôte de destination en utilisant TLS.
- Le port 16514 est nécessaire pour se connecter à l'hôte de destination en utilisant TCP.
- Les ports 49152-49215 sont nécessaires à QEMU pour transférer les données de migration de la mémoire et du disque.
- Pour que la migration soit prise en charge par Red Hat, l'hôte source et l'hôte de destination doivent utiliser des systèmes d'exploitation et des types de machines spécifiques. Pour vous assurer que c'est le cas, consultez la section Hôtes pris en charge pour la migration de machines virtuelles.
- La machine virtuelle doit être compatible avec les caractéristiques du processeur de l'hôte de destination. Pour s'en assurer, voir Vérification de la compatibilité du CPU de l'hôte pour la migration de la machine virtuelle.
Les images de disque des machines virtuelles qui seront migrées sont situées sur un emplacement réseau distinct accessible à la fois à l'hôte source et à l'hôte de destination. Cette opération est facultative pour la migration hors ligne, mais obligatoire pour la migration d'une VM en cours d'exécution.
Pour obtenir des instructions sur la configuration d'un tel stockage partagé de VM, voir Partage d'images de disques de machines virtuelles avec d'autres hôtes.
Lors de la migration d'une VM en cours d'exécution, la bande passante de votre réseau doit être supérieure à la vitesse à laquelle la VM génère des pages de mémoire sale.
Pour obtenir le taux de pages sales de votre VM avant de lancer la migration en direct, procédez comme suit :
Surveillez le taux de génération de pages sales de la VM pendant une courte période.
virsh domdirtyrate-calc example-VM 30
# virsh domdirtyrate-calc example-VM 30
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Une fois le contrôle terminé, obtenez ses résultats :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple, la VM génère 2 Mo de pages de mémoire sale par seconde. Si vous tentez de migrer en direct une telle VM sur un réseau dont la bande passante est inférieure ou égale à 2 Mo/s, la migration en direct ne progressera pas si vous ne mettez pas la VM en pause ou si vous ne réduisez pas sa charge de travail.
Pour s'assurer que la migration en direct se termine avec succès, Red Hat recommande que la bande passante de votre réseau soit significativement plus grande que le taux de génération de pages sales de la VM.
- Lors de la migration d'une VM existante dans un réseau de robinets à pont public, les hôtes source et destination doivent être situés sur le même réseau. Dans le cas contraire, le réseau VM ne fonctionnera pas après la migration.
La valeur de l'option calc_period
peut varier en fonction de la charge de travail et du taux de pages sales. Vous pouvez expérimenter plusieurs valeurs de calc_period
pour déterminer la période la plus appropriée en fonction du taux de pages sales dans votre environnement.
Lors de la migration d'une VM, le client
virsh
sur l'hôte source peut utiliser l'un des protocoles suivants pour se connecter au démon libvirt sur l'hôte de destination. Les exemples de la procédure suivante utilisent une connexion SSH, mais vous pouvez en choisir une autre.Si vous souhaitez que libvirt utilise une connexion SSH, assurez-vous que le socket
virtqemud
est activé et fonctionne sur l'hôte de destination.systemctl enable --now virtqemud.socket
# systemctl enable --now virtqemud.socket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous souhaitez que libvirt utilise une connexion TLS, assurez-vous que le socket
virtproxyd-tls
est activé et fonctionne sur l'hôte de destination.systemctl enable --now virtproxyd-tls.socket
# systemctl enable --now virtproxyd-tls.socket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous souhaitez que libvirt utilise une connexion TCP, assurez-vous que le socket
virtproxyd-tcp
est activé et fonctionne sur l'hôte de destination.systemctl enable --now virtproxyd-tcp.socket
# systemctl enable --now virtproxyd-tcp.socket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Utilisez la commande
virsh migrate
avec les options appropriées à vos besoins de migration.La commande suivante permet de migrer la VM
example-VM-1
de votre hôte local vers la connexion système de l'hôteexample-destination
à l'aide d'un tunnel SSH. La machine virtuelle continue de fonctionner pendant la migration.virsh migrate --persistent --live example-VM-1 qemu ssh://example-destination/system
# virsh migrate --persistent --live example-VM-1 qemu ssh://example-destination/system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Les commandes suivantes vous permettent d'apporter des ajustements manuels à la configuration de la VM
example-VM-2
fonctionnant sur votre hôte local, puis de migrer la VM vers l'hôteexample-destination
. La VM migrée utilisera automatiquement la configuration mise à jour.virsh dumpxml --migratable example-VM-2 > example-VM-2.xml vi example-VM-2.xml virsh migrate --live --persistent --xml example-VM-2.xml example-VM-2 qemu+ssh://example-destination/system
# virsh dumpxml --migratable example-VM-2 > example-VM-2.xml # vi example-VM-2.xml # virsh migrate --live --persistent --xml example-VM-2.xml example-VM-2 qemu+ssh://example-destination/system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cette procédure peut s'avérer utile, par exemple, lorsque l'hôte de destination doit utiliser un chemin différent pour accéder au stockage partagé de la VM ou lorsqu'il s'agit de configurer une fonction spécifique à l'hôte de destination.
La commande suivante suspend la VM
example-VM-3
de l'hôteexample-source
, la migre vers l'hôteexample-destination
et lui demande d'utiliser la configuration XML ajustée, fournie par le fichierexample-VM-3-alt.xml
. Lorsque la migration est terminée,libvirt
reprend la VM sur l'hôte de destination.virsh migrate example-VM-3 qemu ssh://example-source/system qemu ssh://example-destination/system --xml example-VM-3-alt.xml
# virsh migrate example-VM-3 qemu ssh://example-source/system qemu ssh://example-destination/system --xml example-VM-3-alt.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Après la migration, la VM est à l'arrêt sur l'hôte source, et la copie migrée est supprimée après son arrêt.
La procédure suivante supprime la VM
example-VM-4
arrêtée de l'hôteexample-source
et déplace sa configuration vers l'hôteexample-destination
.virsh migrate --offline --persistent --undefinesource example-VM-4 qemu ssh://example-source/system qemu ssh://example-destination/system
# virsh migrate --offline --persistent --undefinesource example-VM-4 qemu ssh://example-source/system qemu ssh://example-destination/system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Notez que ce type de migration ne nécessite pas le déplacement de l'image disque de la VM vers le stockage partagé. Cependant, pour que la VM soit utilisable sur l'hôte de destination, vous devez également migrer l'image disque de la VM. Par exemple :
scp root@example-source:/var/lib/libvirt/images/example-VM-4.qcow2 root@example-destination:/var/lib/libvirt/images/example-VM-4.qcow2
# scp root@example-source:/var/lib/libvirt/images/example-VM-4.qcow2 root@example-destination:/var/lib/libvirt/images/example-VM-4.qcow2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La commande suivante migre la VM example-VM-5 vers l'hôte example-destination et utilise plusieurs connexions parallèles, également connues sous le nom de migration à descripteurs de fichiers multiples (multi-FD). La migration multi-FD permet d'accélérer la migration en utilisant toute la bande passante disponible pour le processus de migration.
virsh migrate --parallel --parallel-connections 4 <example-VM-5> qemu ssh://<example-destination>/system
# virsh migrate --parallel --parallel-connections 4 <example-VM-5> qemu ssh://<example-destination>/system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cet exemple utilise 4 canaux multi-FD pour migrer la VM example-VM-5. Il est recommandé d'utiliser un canal pour chaque 10 Gbps de bande passante réseau disponible. La valeur par défaut est de 2 canaux.
Attendez la fin de la migration. Le processus peut prendre un certain temps en fonction de la bande passante du réseau, de la charge du système et de la taille de la VM. Si l'option
--verbose
n'est pas utilisée pourvirsh migrate
, la CLI n'affiche aucun indicateur de progression, à l'exception des erreurs.Lorsque la migration est en cours, vous pouvez utiliser l'utilitaire
virsh domjobinfo
pour afficher les statistiques de migration.
Vérification
Sur l'hôte de destination, dressez la liste des VM disponibles pour vérifier si la VM a été migrée :
virsh list
# virsh list Id Name State ---------------------------------- 10 example-VM-1 running
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la migration est toujours en cours, cette commande indique que l'état de la VM est
paused
.
Résolution de problèmes
-
Dans certains cas, l'hôte cible ne sera pas compatible avec certaines valeurs de la configuration XML de la VM migrée, telles que le nom du réseau ou le type de CPU. Par conséquent, la VM ne pourra pas démarrer sur l'hôte cible. Pour résoudre ces problèmes, vous pouvez mettre à jour les valeurs problématiques à l'aide de la commande
virsh edit
. Après avoir mis à jour les valeurs, vous devez redémarrer la VM pour que les modifications soient appliquées. Si une migration en direct prend beaucoup de temps à se terminer, cela peut être dû au fait que la VM est fortement sollicitée et que trop de pages mémoire sont modifiées pour que la migration en direct soit possible. Pour résoudre ce problème, remplacez la migration par une migration non dynamique en suspendant la VM.
virsh suspend example-VM-1
# virsh suspend example-VM-1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.7. Migration en direct d'une machine virtuelle à l'aide de la console web Copier lienLien copié sur presse-papiers!
Si vous souhaitez migrer une machine virtuelle (VM) qui exécute des tâches nécessitant un fonctionnement constant, vous pouvez migrer cette VM vers un autre hôte KVM sans l'arrêter. C'est ce que l'on appelle la migration en direct. Les instructions suivantes expliquent comment procéder en utilisant la console web.
Pour les tâches qui modifient les pages de mémoire plus rapidement que KVM ne peut les transférer, telles que les tâches à forte charge d'E/S, il est recommandé de ne pas migrer la VM en direct.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
- Les hôtes source et destination fonctionnent.
Assurez-vous que les ports suivants sont ouverts sur l'hôte de destination.
- Le port 22 est nécessaire pour se connecter à l'hôte de destination en utilisant SSH.
- Le port 16509 est nécessaire pour se connecter à l'hôte de destination en utilisant TLS.
- Le port 16514 est nécessaire pour se connecter à l'hôte de destination en utilisant TCP.
- Les ports 49152-49215 sont nécessaires à QEMU pour transférer les données de migration de la mémoire et du disque.
- La machine virtuelle doit être compatible avec les caractéristiques du processeur de l'hôte de destination. Pour s'en assurer, voir Vérification de la compatibilité du CPU de l'hôte pour la migration de la machine virtuelle.
- Les images de disque de la VM sont situées sur un stockage partagé accessible à l'hôte source et à l'hôte de destination.
Lors de la migration d'une VM en cours d'exécution, la bande passante de votre réseau doit être supérieure à la vitesse à laquelle la VM génère des pages de mémoire sale.
Pour obtenir le taux de pages sales de votre VM avant de lancer la migration en direct, procédez comme suit dans votre interface de ligne de commande :
Surveillez le taux de génération de pages sales de la VM pendant une courte période.
virsh domdirtyrate-calc vm-name 30
# virsh domdirtyrate-calc vm-name 30
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Une fois le contrôle terminé, obtenez ses résultats :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple, la VM génère 2 Mo de pages de mémoire sale par seconde. Si vous tentez de migrer en direct une telle VM sur un réseau dont la bande passante est inférieure ou égale à 2 Mo/s, la migration en direct ne progressera pas si vous ne mettez pas la VM en pause ou si vous ne réduisez pas sa charge de travail.
Pour s'assurer que la migration en direct se termine avec succès, Red Hat recommande que la bande passante de votre réseau soit significativement plus grande que le taux de génération de pages sales de la VM.
La valeur de l'option calc_period
peut varier en fonction de la charge de travail et du taux de pages sales. Vous pouvez expérimenter plusieurs valeurs de calc_period
pour déterminer la période la plus appropriée en fonction du taux de pages sales dans votre environnement.
Procédure
Dans l'interface Machines virtuelles de la console web, cliquez sur le bouton Menu
de la VM que vous souhaitez migrer.Un menu déroulant apparaît avec des commandes pour diverses opérations VM.
Cliquez sur
La boîte de dialogue Migrer la VM vers un autre hôte s'affiche.
- Saisissez l'URI de l'hôte de destination.
Configurez la durée de la migration :
- Permanent - Ne cochez pas la case si vous souhaitez migrer la VM de façon permanente. La migration permanente supprime complètement la configuration de la VM de l'hôte source.
- Temporary - La migration temporaire migre une copie de la VM vers l'hôte de destination. Cette copie est supprimée de l'hôte de destination lorsque la VM est arrêtée. La VM d'origine reste sur l'hôte source.
Cliquez sur
Votre VM est migrée vers l'hôte de destination.
Vérification
Pour vérifier si la VM a été migrée avec succès et si elle fonctionne correctement :
- Confirmez si la VM apparaît dans la liste des VM disponibles sur l'hôte de destination.
- Démarrez la VM migrée et observez si elle démarre.
12.8. Migration en direct d'une machine virtuelle avec une fonction virtuelle Mellanox attachée Copier lienLien copié sur presse-papiers!
En tant qu'aperçu technologique, vous pouvez migrer en direct une machine virtuelle (VM) avec une fonction virtuelle (VF) attachée à un dispositif de mise en réseau Mellanox. Actuellement, cela n'est possible qu'en utilisant un dispositif de mise en réseau Mellanox CX-7. Le VF sur le périphérique de mise en réseau Mellanox CX-7 utilise un nouveau pilote mlx5_vfio_pci
, qui ajoute des fonctionnalités nécessaires à la migration en direct, et libvirt
lie automatiquement le nouveau pilote au VF.
Limites
Actuellement, certaines fonctions de virtualisation ne peuvent pas être utilisées lors de la migration en direct d'une VM à laquelle est attachée une fonction virtuelle Mellanox :
- Calcul du taux de génération de pages de mémoire sale de la VM.
- Utilisation d'une migration post-copie en direct.
- Utilisation d'une unité virtuelle de gestion de la mémoire d'E/S (vIOMMU) dans la VM.
Cette fonctionnalité n'est incluse dans RHEL 9 qu'en tant qu'aperçu technologique, ce qui signifie qu'elle n'est pas prise en charge.
Conditions préalables
Vous avez un périphérique réseau Mellanox CX-7 dont la version du micrologiciel est égale ou supérieure à 28.36.1010.
Reportez-vous à la documentation de Mellanox pour plus de détails sur les versions du micrologiciel.
Le paquetage
mstflint
est installé à la fois sur l'hôte source et sur l'hôte de destination :dnf install mstflint
# dnf install mstflint
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Le périphérique de mise en réseau Mellanox CX-7 a pour adresse
VF_MIGRATION_MODE
MIGRATION_ENABLED
:mstconfig -d <device_pci_address> query | grep -i VF_migration
# mstconfig -d <device_pci_address> query | grep -i VF_migration VF_MIGRATION_MODE MIGRATION_ENABLED(2)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez remplacer
VF_MIGRATION_MODE
parMIGRATION_ENABLED
à l'aide de la commande suivante :mstconfig -d <device_pci_address> set VF_MIGRATION_MODE=2
# mstconfig -d <device_pci_address> set VF_MIGRATION_MODE=2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Le paquetage
openvswitch
est installé à la fois sur l'hôte source et sur l'hôte de destination :dnf install openvswitch
# dnf install openvswitch
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L'unité centrale et le micrologiciel de votre hôte prennent en charge l'unité de gestion de la mémoire d'E/S (IOMMU).
- Si vous utilisez un processeur Intel, il doit supporter la technologie de virtualisation Intel pour Directed I/O (VT-d).
- Si vous utilisez un processeur AMD, il doit prendre en charge la fonction AMD-Vi.
Le système hôte utilise le service de contrôle d'accès (ACS) pour assurer l'isolation de l'accès direct à la mémoire (DMA) pour la topologie PCIe. Vérifiez ce point auprès du fournisseur du système.
Pour plus d'informations, voir Considérations matérielles pour l'implémentation du SR-IOV.
L'interface réseau hôte que vous souhaitez utiliser pour créer des VF est en cours d'exécution. Par exemple, pour activer l'interface eth1 et vérifier qu'elle fonctionne, utilisez les commandes suivantes :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour que l'attribution de périphériques SR-IOV fonctionne, la fonction IOMMU doit être activée dans le BIOS et le noyau de l'hôte. Pour ce faire, il faut
Sur un hôte Intel, activez la technologie de virtualisation Intel pour Directed I/O (VT-d) :
Régénérer la configuration GRUB avec les paramètres
intel_iommu=on
etiommu=pt
:grubby --args="intel_iommu=on iommu=pt" --update-kernel=ALL
# grubby --args="intel_iommu=on iommu=pt" --update-kernel=ALL
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Redémarrer l'hôte.
Sur un hôte AMD, activez AMD-Vi :
Régénérer la configuration GRUB avec le paramètre
iommu=pt
:grubby --args="iommu=pt" --update-kernel=ALL
# grubby --args="iommu=pt" --update-kernel=ALL
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Redémarrer l'hôte.
- L'hôte source et l'hôte de destination utilisent tous deux l'hyperviseur KVM.
-
L'hôte source et l'hôte de destination sont en mesure de se joindre l'un l'autre sur le réseau. Utilisez l'utilitaire
ping
pour le vérifier. Les ports suivants sont ouverts sur l'hôte de destination.
- Le port 22 est nécessaire pour se connecter à l'hôte de destination en utilisant SSH.
- Le port 16509 est nécessaire pour se connecter à l'hôte de destination en utilisant TLS.
- Le port 16514 est nécessaire pour se connecter à l'hôte de destination en utilisant TCP.
- Les ports 49152-49215 sont nécessaires à QEMU pour transférer les données de migration de la mémoire et du disque.
- L'hôte source et l'hôte de destination utilisent des systèmes d'exploitation et des types de machines qui autorisent la migration. Pour s'en assurer, voir Hôtes pris en charge pour la migration des machines virtuelles.
- La machine virtuelle doit être compatible avec les caractéristiques du processeur de l'hôte de destination. Pour s'en assurer, voir Vérification de la compatibilité du CPU de l'hôte pour la migration de la machine virtuelle.
Les images de disque des machines virtuelles qui seront migrées sont situées sur un emplacement réseau distinct accessible à la fois à l'hôte source et à l'hôte de destination. Cette opération est facultative pour la migration hors ligne, mais obligatoire pour la migration d'une VM en cours d'exécution.
Pour obtenir des instructions sur la configuration d'un tel stockage partagé de VM, voir Partage d'images de disques de machines virtuelles avec d'autres hôtes.
- Lors de la migration d'une VM en cours d'exécution, la bande passante de votre réseau doit être supérieure à la vitesse à laquelle la VM génère des pages de mémoire sale.
Une prise réseau virtuelle correspondant au protocole de connexion est activée.
When performing a VM migration, the
virsh
client on the source host can use one of several protocols to connect to the libvirt daemon on the destination host. Examples in the following procedure use an SSH connection, but you can choose a different one. ** If you want libvirt to use an SSH connection, ensure that thevirtqemud
socket is enabled and running on the destination host.systemctl enable --now virtqemud.socket
# systemctl enable --now virtqemud.socket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous souhaitez que libvirt utilise une connexion TLS, assurez-vous que le socket
virtproxyd-tls
est activé et fonctionne sur l'hôte de destination.systemctl enable --now virtproxyd-tls.socket
# systemctl enable --now virtproxyd-tls.socket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous souhaitez que libvirt utilise une connexion TCP, assurez-vous que le socket
virtproxyd-tcp
est activé et fonctionne sur l'hôte de destination.systemctl enable --now virtproxyd-tcp.socket
# systemctl enable --now virtproxyd-tcp.socket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Sur l'hôte source, configurez le périphérique réseau Mellanox en mode
switchdev
.devlink dev eswitch set pci/<device_pci_address> mode switchdev
# devlink dev eswitch set pci/<device_pci_address> mode switchdev
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Sur l'hôte source, créez une fonction virtuelle sur le dispositif Mellanox.
echo 1 > /sys/bus/pci/devices/0000\:e1\:00.0/sriov_numvfs
# echo 1 > /sys/bus/pci/devices/0000\:e1\:00.0/sriov_numvfs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La partie
/0000\:e1\:00.0/
du chemin d'accès au fichier est basée sur l'adresse PCI de l'appareil. Dans l'exemple, il s'agit de :0000:e1:00.0
Sur l'hôte source, détachez le VF de son pilote.
virsh nodedev-detach <vf_pci_address> --driver pci-stub
# virsh nodedev-detach <vf_pci_address> --driver pci-stub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez afficher l'adresse PCI du VF à l'aide de la commande suivante :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Sur l'hôte source, activez la fonction de migration du VF.
devlink port function set pci/0000:e1:00.0/1 migratable enable
# devlink port function set pci/0000:e1:00.0/1 migratable enable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple,
pci/0000:e1:00.0/1
fait référence au premier VF sur le périphérique Mellanox avec l'adresse PCI donnée.Sur l'hôte source, configurez Open vSwitch (OVS) pour la migration du VF. Si le périphérique Mellanox est en mode
switchdev
, il ne peut pas transférer de données sur le réseau.Assurez-vous que le service
openvswitch
est en cours d'exécution.systemctl start openvswitch
# systemctl start openvswitch
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Activer le délestage matériel pour améliorer les performances du réseau.
ovs-vsctl set Open_vSwitch . other_config:hw-offload=true
# ovs-vsctl set Open_vSwitch . other_config:hw-offload=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Augmentez la durée maximale d'inactivité pour vous assurer que les connexions réseau restent ouvertes pendant la migration.
ovs-vsctl set Open_vSwitch . other_config:max-idle=300000
# ovs-vsctl set Open_vSwitch . other_config:max-idle=300000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer un nouveau pont dans l'instance OVS.
ovs-vsctl add-br <bridge_name>
# ovs-vsctl add-br <bridge_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Redémarrez le service
openvswitch
.systemctl restart openvswitch
# systemctl restart openvswitch
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajoutez l'appareil physique Mellanox au pont OVS.
ovs-vsctl add-port <bridge_name> enp225s0np0
# ovs-vsctl add-port <bridge_name> enp225s0np0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple,
<bridge_name>
est le nom du pont que vous avez créé à l'étape d etenp225s0np0
est le nom de l'interface réseau du périphérique Mellanox.Ajouter le VF de l'appareil Mellanox au pont OVS.
ovs-vsctl add-port <bridge_name> enp225s0npf0vf0
# ovs-vsctl add-port <bridge_name> enp225s0npf0vf0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple,
<bridge_name>
est le nom du pont que vous avez créé à l'étape d etenp225s0npf0vf0
est le nom de l'interface réseau du VF.
- Répétez les étapes 1 à 5 sur le site destination host.
Sur l'hôte source, ouvrez un nouveau fichier, tel que
mlx_vf.xml
, et ajoutez la configuration XML suivante du VF :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cet exemple configure un passage du VF en tant qu'interface réseau pour la VM. Assurez-vous que l'adresse MAC est unique et utilisez l'adresse PCI du VF sur l'hôte source.
Sur l'hôte source, attachez le fichier XML VF à la VM.
virsh attach-device <vm_name> mlx_vf.xml --live --config
# virsh attach-device <vm_name> mlx_vf.xml --live --config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple,
mlx_vf.xml
est le nom du fichier XML contenant la configuration du VF. Utilisez l'option--live
pour attacher le périphérique à une VM en cours d'exécution.Sur l'hôte source, démarrez la migration en direct de la VM en cours d'exécution avec le VF joint.
virsh migrate --live --domain <vm_name> --desturi qemu ssh://<destination_host_ip_address>/system
# virsh migrate --live --domain <vm_name> --desturi qemu ssh://<destination_host_ip_address>/system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Dans la VM migrée, affichez le nom de l'interface réseau du VF Mellanox.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans la VM migrée, vérifiez que le VF Mellanox fonctionne, par exemple :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.9. Dépannage des migrations de machines virtuelles Copier lienLien copié sur presse-papiers!
Si vous rencontrez l'un des problèmes suivants lors de la migration de machines virtuelles (VM), consultez les instructions fournies pour résoudre ou éviter le problème.
12.9.1. La migration en direct d'une VM prend beaucoup de temps sans se terminer Copier lienLien copié sur presse-papiers!
Cause
Dans certains cas, la migration d'une VM en cours d'exécution peut amener la VM à générer dirty memory pages plus rapidement qu'elle ne peut être migrée. Dans ce cas, la migration ne peut pas s'achever correctement.
Les scénarios suivants sont souvent à l'origine de ce problème :
- Migration en direct d'une VM sous forte charge
Migration en direct d'une VM qui utilise une grande quantité de mémoire, par exemple 1 To ou plus
ImportantRed Hat a testé avec succès la migration en direct de VMs ayant jusqu'à 6 TB de mémoire. Cependant, pour les scénarios de migration en direct qui impliquent des machines virtuelles avec plus de 1 TB de mémoire, les clients doivent contacter le support technique de Red Hat.
Diagnosis
Si la migration en direct de votre VM prend plus de temps que prévu, utilisez la commande virsh domjobinfo
pour obtenir les données de la page mémoire de la VM :
Dans cette sortie, la multiplication de Dirty rate
et Page size
est supérieure à Memory bandwidth
, ce qui signifie que la VM génère des pages de mémoire sales plus rapidement que le réseau ne peut les migrer. Par conséquent, l'état de la VM sur l'hôte de destination ne peut pas converger avec l'état de la VM sur l'hôte source, ce qui empêche la migration de se terminer.
Fix
Pour améliorer les chances qu'une migration en direct bloquée se termine avec succès, vous pouvez prendre l'une des mesures suivantes :
Réduire la charge de travail de la VM, en particulier les mises à jour de la mémoire.
- Pour ce faire, arrêtez ou annulez les processus non essentiels dans le système d'exploitation invité de la machine virtuelle source.
Augmenter le temps d'arrêt prévu pour la migration en direct :
Affiche le temps d'arrêt maximum actuel à la fin d'une migration en direct pour la VM en cours de migration :
virsh migrate-getmaxdowntime vm-name
# virsh migrate-getmaxdowntime vm-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Fixer un temps d'arrêt maximal plus élevé :
virsh migrate-setmaxdowntime vm-name downtime-in-miliseconds
# virsh migrate-setmaxdowntime vm-name downtime-in-miliseconds
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Plus le temps d'indisponibilité maximal est élevé, plus la migration a de chances de s'achever.
Passez la migration en direct en mode post-copy.
virsh migrate-start-postcopy vm-name
# virsh migrate-start-postcopy vm-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cela permet de s'assurer que les pages de mémoire de la VM peuvent converger vers l'hôte de destination et que la migration peut s'achever.
Cependant, lorsque le mode post-copie est actif, la VM peut ralentir de manière significative, en raison des demandes de pages distantes de l'hôte de destination vers l'hôte source. En outre, si la connexion réseau entre l'hôte source et l'hôte de destination cesse de fonctionner pendant la migration post-copie, certains processus de la VM peuvent s'arrêter en raison de pages de mémoire manquantes.
Par conséquent, n'utilisez pas la migration post-copie si la disponibilité de la VM est critique ou si le réseau de migration est instable.
- Si votre charge de travail le permet, suspendez la VM et laissez la migration se terminer comme une migration non-live. Cela augmente le temps d'arrêt de la VM, mais dans la plupart des cas, cela garantit que la migration se termine avec succès.
Prevention
La probabilité de réussir la migration d'une VM dépend des éléments suivants :
La charge de travail de la VM pendant la migration
- Avant de commencer la migration, arrêtez ou annulez les processus non essentiels dans le système d'exploitation invité de la VM.
La bande passante du réseau que l'hôte peut utiliser pour la migration
- Pour obtenir des résultats optimaux lors d'une migration en direct, la bande passante du réseau utilisé pour la migration doit être nettement supérieure au taux de génération de pages sales de la machine virtuelle. Pour savoir comment obtenir le taux de génération de pages sales de la VM, reportez-vous à la section Conditions préalables à la migration d'une machine virtuelle à l'aide de l'interface de ligne de commande.
- L'hôte source et l'hôte de destination doivent disposer d'un contrôleur d'interface réseau (NIC) dédié à la migration. Pour la migration en direct d'une VM avec plus de 1 To de mémoire, Red Hat recommande une carte d'interface réseau avec une vitesse de 25 Gb/s ou plus.
-
Vous pouvez également spécifier la bande passante réseau affectée à la migration en direct en utilisant l'option
--bandwidth
lorsque vous lancez la migration. Pour la migration de très grandes machines virtuelles, attribuez autant de bande passante que possible pour votre déploiement.
Le mode de migration en direct
- Le mode de migration par défaut pre-copy copie les pages de mémoire à plusieurs reprises si elles sont sales.
Post-copy la migration ne copie les pages de mémoire qu'une seule fois.
Pour permettre à votre migration en direct de passer en mode post-copie si la migration se bloque, utilisez l'option
--postcopy
avecvirsh migrate
lors du démarrage de la migration.
Le temps d'arrêt spécifié pour le déploiement
-
Vous pouvez l'ajuster pendant la migration en utilisant
virsh migrate-setmaxdowntime
comme décrit précédemment.
-
Vous pouvez l'ajuster pendant la migration en utilisant
12.10. Hôtes pris en charge pour la migration des machines virtuelles Copier lienLien copié sur presse-papiers!
Pour que la migration de la machine virtuelle (VM) fonctionne correctement et soit prise en charge par Red Hat, les hôtes source et destination doivent être des versions RHEL et des types de machines spécifiques. Le tableau suivant présente les chemins de migration de VM pris en charge.
Méthode de migration | Type d'autorisation | Exemple de version future | Statut de soutien |
---|---|---|---|
En avant | Version mineure | 9.0.1 → 9.1 | Sur les systèmes RHEL 9 pris en charge : type de machine q35. |
Retour en arrière | Version mineure | 9.1 → 9.0.1 | Sur les systèmes RHEL 9 pris en charge : type de machine q35. |
Le niveau de support est différent pour les autres solutions de virtualisation fournies par Red Hat, notamment RHOSP et OpenShift Virtualization.
Chapitre 13. Sauvegarde et restauration de l'état d'une machine virtuelle à l'aide d'instantanés Copier lienLien copié sur presse-papiers!
Pour sauvegarder l'état actuel d'une machine virtuelle (VM), vous pouvez créer un snapshot de la VM. Ensuite, vous pouvez revenir à l'instantané pour ramener la VM à l'état sauvegardé.
Un instantané de VM contient l'image disque de la VM. Si vous créez un instantané à partir d'une VM en cours d'exécution (également appelée live snapshot), l'instantané contient également l'état de la mémoire de la VM, ce qui inclut les processus et les applications en cours d'exécution.
La création d'instantanés peut être utile, par exemple, pour les tâches suivantes :
- Sauvegarde d'un état propre du système d'exploitation invité
- S'assurer de disposer d'un point de restauration avant d'effectuer une opération potentiellement destructrice sur la VM
13.1. Limitations de la prise en charge des instantanés de machines virtuelles Copier lienLien copié sur presse-papiers!
Red Hat prend en charge la fonctionnalité d'instantané pour les machines virtuelles (VM) sur RHEL uniquement lorsque vous utilisez les instantanés external. Actuellement, les instantanés externes sont créés sur RHEL uniquement lorsque toutes les conditions suivantes sont remplies :
- Votre hôte utilise RHEL 9.4 ou une version ultérieure.
- La VM utilise un stockage basé sur des fichiers.
Vous ne créez l'instantané de la VM que dans l'un des scénarios suivants :
- La VM est arrêtée.
-
Si la VM est en cours d'exécution, vous utilisez les options
--disk-only --quiesce
ou--live --memspec
.
La plupart des autres configurations créent des instantanés internal, qui sont obsolètes dans RHEL 9. Les instantanés internes peuvent fonctionner pour votre cas d'utilisation, mais Red Hat ne fournit pas de test et de support complets pour eux.
N'utilisez pas d'instantanés internes dans les environnements de production.
Pour vous assurer qu'un instantané est pris en charge, affichez la configuration XML de l'instantané et vérifiez le type d'instantané et le stockage :
virsh snapshot-dumpxml <vm-name> <snapshot-name>
# virsh snapshot-dumpxml <vm-name> <snapshot-name>
Exemple de sortie d'un instantané pris en charge :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie d'un instantané non pris en charge :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
13.2. Création d'instantanés de machines virtuelles à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
Pour sauvegarder l'état d'une machine virtuelle (VM) dans un instantané, vous pouvez utiliser la commande virsh snapshot-create-as
.
Conditions préalables
- Votre hôte utilise RHEL 9.4 ou une version ultérieure.
La VM utilise un stockage basé sur des fichiers. Pour vérifier si c'est le cas, utilisez la commande suivante et assurez-vous que le périphérique
disk
affichedisk type
commefile
:virsh dumpxml <vm-name> | grep "disk type"
# virsh dumpxml <vm-name> | grep "disk type" <disk type='file' device='disk'> <disk type='file' device='cdrom'>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous souhaitez créer un instantané de VM qui inclut la mémoire d'une VM en cours d'exécution, vous devez disposer de suffisamment d'espace disque pour stocker la mémoire de la VM.
- L'espace minimum recommandé pour la sauvegarde de la mémoire d'une VM est égal à la RAM attribuée à la VM. Par exemple, la sauvegarde de la mémoire d'une VM avec 32 Go de RAM nécessite jusqu'à 32 Go d'espace disque.
- Si la VM est soumise à une forte charge d'E/S, un espace disque supplémentaire important peut être nécessaire.
- Si des périphériques VFIO passthrough ont été attribués à la VM, de l'espace disque supplémentaire peut être nécessaire.
Si un instantané est créé sans mettre la VM en pause, de l'espace disque supplémentaire peut être nécessaire.
AvertissementRed Hat recommande de ne pas sauvegarder la mémoire d'une VM en cours d'exécution qui est soumise à une charge de travail très élevée ou qui utilise des périphériques VFIO passthrough. Sauvegarder la mémoire de telles VM pourrait remplir le disque de l'hôte et dégrader le système. Au lieu de cela, envisagez de créer des instantanés sans mémoire pour de telles VM.
En outre, il convient de noter que tous les périphériques VFIO ne sont pas en mesure de créer des instantanés avec mémoire. Actuellement, la création d'un instantané avec mémoire ne fonctionne correctement que si le périphérique VFIO connecté est un VF Mellanox dont la capacité de migration est activée.
Procédure
Pour créer un instantané de VM avec les paramètres requis, utilisez la commande
virsh snapshot-create-as
.virsh snapshot-create-as <vm-name> <snapshot-name> <optional-description> <additional-parameters>
# virsh snapshot-create-as <vm-name> <snapshot-name> <optional-description> <additional-parameters>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour créer un instantané d'une VM arrêtée, utilisez le paramètre
--disk-only
. Par exemple, la commande suivante créeSnapshot1
à partir de l'état actuel du disque de la VM arrêtéeTestguest1
:virsh snapshot-create-as Testguest1 Snapshot1 --disk-only
# virsh snapshot-create-as Testguest1 Snapshot1 --disk-only Domain snapshot Snapshot1 created.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour créer un instantané qui sauvegarde l'état du disque d'une VM en cours d'exécution mais pas sa mémoire, utilisez les paramètres
--disk-only --quiesce
. Par exemple, la commande suivante créeSnapshot2
à partir de l'état actuel du disque de la VM en cours d'exécutionTestguest2
, avec la descriptionclean system install
:virsh snapshot-create-as Testguest2 Snapshot2 "clean system install" --disk-only --quiesce
# virsh snapshot-create-as Testguest2 Snapshot2 "clean system install" --disk-only --quiesce Domain snapshot Snapshot2 created.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour créer un instantané qui met en pause une VM en cours d'exécution et sauvegarde son état de disque et de mémoire, utilisez le paramètre
--memspec
. Par exemple, la commande suivante met en pause la VMTestguest3
et créeSnapshot3
à partir de l'état actuel du disque et de la mémoire de la VM. La mémoire de la VM est enregistrée dans le fichier/var/lib/libvirt/images/saved_memory.img
. Lorsque l'instantané est terminé, la VM reprend automatiquement ses activités.virsh snapshot-create-as Testguest3 Snapshot3 --memspec /var/lib/libvirt/images/saved_memory.img
# virsh snapshot-create-as Testguest3 Snapshot3 --memspec /var/lib/libvirt/images/saved_memory.img Domain snapshot Snapshot3 created.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La mise en pause de la VM pendant le processus d'instantané crée un temps d'arrêt, mais peut fonctionner de manière plus fiable que la création d'un instantané en direct d'une VM en cours d'exécution (en utilisant l'option
--live
), en particulier pour les VM soumises à une charge importante.Pour créer un instantané qui enregistre l'état du disque d'une VM en cours d'exécution ainsi que sa mémoire vive, utilisez les paramètres
--live --memspec
. Par exemple, la commande suivante créeSnapshot4
à partir de l'état actuel du disque et de la mémoire de la VM en cours d'exécutionTestguest4
, et enregistre l'état de la mémoire dans le fichier/var/lib/libvirt/images/saved_memory2.img
.virsh snapshot-create-as Testguest4 Snapshot4 --live --memspec /var/lib/libvirt/images/saved_memory2.img
# virsh snapshot-create-as Testguest4 Snapshot4 --live --memspec /var/lib/libvirt/images/saved_memory2.img Domain snapshot Snapshot4 created.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
L'enregistrement de la mémoire d'une VM dans un instantané permet de sauvegarder l'état des processus en cours d'exécution dans le système d'exploitation invité de la VM. Toutefois, lorsque vous revenez à un tel instantané, les processus peuvent échouer en raison de divers facteurs, tels que la perte de connectivité réseau ou la désynchronisation de l'heure système.
Vérification
Liste les instantanés associés à la VM spécifiée :
virsh snapshot-list <Testguest1>
# virsh snapshot-list <Testguest1> Name Creation Time State -------------------------------------------------------------- Snapshot1 2024-01-30 18:34:58 +0100 shutoff
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez que l'instantané a été créé à l'adresse external:
virsh snapshot-dumpxml <Testguest1> <Snapshot1> | grep external
# virsh snapshot-dumpxml <Testguest1> <Snapshot1> | grep external <disk name='vda' snapshot='external' type='file'>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la sortie de cette commande inclut
snapshot='external'
, l'instantané est externe et donc entièrement pris en charge par Red Hat.
13.3. Création d'instantanés de machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
Pour enregistrer l'état d'une machine virtuelle (VM) dans un instantané, vous pouvez utiliser la console web RHEL.
Conditions préalables
- Votre hôte utilise RHEL 9.4 ou une version ultérieure.
- Le plug-in VM de la console web est installé sur votre système.
La VM utilise un stockage basé sur des fichiers. Pour vous en assurer, procédez comme suit :
- Dans l'interface Virtual machines de la console Web, cliquez sur la VM dont vous souhaitez créer un instantané.
- Dans le volet Disks de la vue d'ensemble de la gestion, vérifiez la colonne Source des appareils répertoriés. Dans tous les appareils qui listent une source, cette source doit être File.
Procédure
Dans l'interface Virtual machines de la console Web, cliquez sur la VM dont vous souhaitez créer un instantané.
Une vue d'ensemble de la gestion de la VM s'ouvre.
-
Dans le volet Snapshots de la vue d'ensemble de la gestion, cliquez sur le bouton
Create snapshot
. - Saisissez un nom pour l'instantané et, éventuellement, une description.
-
Cliquez sur
Create
.
Vérification
- Pour vous assurer que la création de l'instantané a réussi, vérifiez que l'instantané est désormais répertorié dans le volet Snapshots de la VM.
Vérifiez que l'instantané a été créé à l'adresse external. Pour ce faire, utilisez la commande suivante dans l'interface de ligne de commande de l'hôte :
virsh snapshot-dumpxml <Testguest1> <Snapshot1> | grep external
# virsh snapshot-dumpxml <Testguest1> <Snapshot1> | grep external <disk name='vda' snapshot='external' type='file'>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la sortie de cette commande inclut
snapshot='external'
, l'instantané est externe et donc pris en charge par Red Hat.
13.4. Revenir à un instantané de machine virtuelle en utilisant l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
Pour ramener une machine virtuelle (VM) à l'état sauvegardé dans un instantané, vous pouvez utiliser l'interface de ligne de commande (CLI).
Conditions préalables
- Un instantané de la VM est disponible, que vous avez préalablement créé dans la console web ou en utilisant l'interface de ligne de commande.
- Optional: Vous avez créé un instantané de l'état actuel de la VM. Si vous revenez à un instantané précédent sans sauvegarder l'état actuel, les modifications effectuées sur la VM depuis le dernier instantané seront perdues.
Procédure
Utilisez l'utilitaire
virsh snapshot-revert
et indiquez le nom de la VM et le nom de l'instantané sur lequel vous souhaitez revenir. Par exemple, le nom de la VM et le nom de l'instantané vers lequel vous souhaitez revenir :virsh snapshot-revert Testguest2 clean-install
# virsh snapshot-revert Testguest2 clean-install Domain snapshot clean-install reverted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Affiche l'instantané actuellement actif pour la VM inversée :
virsh snapshot-current Testguest2 --name
# virsh snapshot-current Testguest2 --name clean-install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
13.5. Revenir à un snapshot de machine virtuelle en utilisant la console web Copier lienLien copié sur presse-papiers!
Pour ramener une machine virtuelle (VM) à l'état sauvegardé dans un instantané, vous pouvez utiliser la console web RHEL.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
- Un instantané de la VM est disponible, que vous avez préalablement créé dans la console web ou en utilisant l'interface de ligne de commande.
- Optional: Vous avez créé un instantané de l'état actuel de la VM. Si vous revenez à un instantané précédent sans sauvegarder l'état actuel, les modifications effectuées sur la VM depuis le dernier instantané seront perdues.
Procédure
Dans l'interface Virtual machines de la console Web, cliquez sur la VM dont vous voulez inverser l'état.
Une vue d'ensemble de la gestion de la VM s'ouvre.
-
Dans le volet Snapshots de la vue d'ensemble de la gestion, cliquez sur le bouton
Revert
en regard de l'instantané vers lequel vous souhaitez revenir. - Attendez que l'opération d'inversion se termine. En fonction de la taille de l'instantané et de sa différence avec l'état actuel, cette opération peut prendre plusieurs minutes.
Vérification
- Dans le volet Snapshots, si un symbole de vérification vert s'affiche à gauche de l'instantané sélectionné, cela signifie que vous avez réussi à revenir à cet instantané.
13.6. Suppression des snapshots de machines virtuelles à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
Lorsqu'un instantané de machine virtuelle (VM) ne vous est plus utile, vous pouvez le supprimer dans l'interface de ligne de commande afin de libérer l'espace disque qu'il utilise.
Conditions préalables
Optional: Un cliché enfant existe pour le cliché que vous souhaitez supprimer.
Un instantané enfant est créé automatiquement lorsque vous avez un instantané actif et que vous créez un nouvel instantané. Si vous supprimez un instantané qui n'a pas d'enfant, vous perdrez toutes les modifications enregistrées dans l'instantané après sa création à partir de l'instantané parent.
Pour afficher la structure parent-enfant des instantanés dans une VM, utilisez la commande
virsh snapshot-list --tree
. L'exemple suivant montre queLatest-snapshot
est un enfant deRedundant-snapshot
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Utilisez la commande
virsh snapshot-delete
pour supprimer l'instantané. Par exemple, la commande suivante supprimeRedundant-snapshot
de la VMTestguest1
:virsh snapshot-delete Testguest1 Redundant-snapshot
# virsh snapshot-delete Testguest1 Redundant-snapshot Domain snapshot Redundant-snapshot deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Pour vous assurer que l'instantané que vous avez supprimé n'est plus présent, affichez les instantanés existants de la VM concernée et leur structure parent-enfant :
virsh snapshot-list --tree <Testguest1>
# virsh snapshot-list --tree <Testguest1> Clean-install-snapshot | +- Latest-snapshot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple,
Redundant-snapshot
a été supprimé etLatest-snapshot
est devenu l'enfant deClean-install-snapshot
.
13.7. Suppression des snapshots de machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
Lorsqu'un instantané de machine virtuelle (VM) ne vous est plus utile, vous pouvez le supprimer dans la console Web afin de libérer l'espace disque qu'il utilise.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Optional: Un cliché enfant existe pour le cliché que vous souhaitez supprimer.
Un instantané enfant est créé automatiquement lorsque vous avez un instantané actif et que vous créez un nouvel instantané. Si vous supprimez un instantané qui n'a pas d'enfant, vous perdrez toutes les modifications enregistrées dans l'instantané après sa création à partir de l'instantané parent.
Pour vérifier que l'instantané a un enfant, confirmez que l'instantané est répertorié dans la colonne Parent snapshot de Snapshots dans la vue d'ensemble de la console Web de la VM.
Procédure
Dans l'interface Virtual machines de la console Web, cliquez sur la VM dont vous souhaitez supprimer l'instantané.
Une vue d'ensemble de la gestion de la VM s'ouvre.
-
Dans le volet Snapshots de la vue d'ensemble de la gestion, cliquez sur le bouton
Delete
en regard de l'instantané que vous souhaitez supprimer. - Attendez la fin de l'opération de suppression. Selon la taille de l'instantané, cette opération peut prendre plusieurs minutes.
Vérification
- Si l'instantané n'apparaît plus dans le volet Snapshots, c'est qu'il a été supprimé avec succès.
Chapitre 14. Gestion des dispositifs virtuels Copier lienLien copié sur presse-papiers!
L'un des moyens les plus efficaces de gérer les fonctionnalités, les caractéristiques et les performances d'une machine virtuelle (VM) est d'ajuster son site virtual devices.
Les sections suivantes donnent un aperçu général de ce que sont les dispositifs virtuels et des instructions sur la manière de les gérer à l'aide de la CLI ou de la console web.
14.1. Fonctionnement des dispositifs virtuels Copier lienLien copié sur presse-papiers!
Tout comme les machines physiques, les machines virtuelles (VM) nécessitent des dispositifs spécialisés pour fournir des fonctions au système, telles que la puissance de traitement, la mémoire, le stockage, la mise en réseau ou les graphiques. Les systèmes physiques utilisent généralement des dispositifs matériels à ces fins. Cependant, comme les VM fonctionnent comme des implémentations logicielles, elles doivent utiliser des abstractions logicielles de ces dispositifs, appelées virtual devices.
L'essentiel
Les dispositifs virtuels attachés à une VM peuvent être configurés lors de la création de la VM, et peuvent également être gérés sur une VM existante. En général, les périphériques virtuels ne peuvent être attachés ou détachés d'une VM que lorsque celle-ci est éteinte, mais certains peuvent être ajoutés ou supprimés lorsque la VM est en cours d'exécution. Cette fonctionnalité est désignée par les termes "device hot plug " et " hot unplug".
Lors de la création d'une nouvelle VM, libvirt
crée et configure automatiquement un ensemble par défaut de périphériques virtuels essentiels, sauf indication contraire de l'utilisateur. Ceux-ci sont basés sur l'architecture du système hôte et le type de machine, et comprennent généralement :
- l'unité centrale
- mémoire
- un clavier
- un contrôleur d'interface réseau (NIC)
- divers contrôleurs d'appareils
- une carte vidéo
- une carte son
Pour gérer les périphériques virtuels après la création de la VM, utilisez l'interface de ligne de commande (CLI). Toutefois, pour gérer les périphériques de stockage virtuels et les cartes réseau, vous pouvez également utiliser la console Web de RHEL 9.
Performance ou flexibilité
Pour certains types d'appareils, RHEL 9 prend en charge plusieurs implémentations, souvent avec un compromis entre performance et flexibilité.
Par exemple, le stockage physique utilisé pour les disques virtuels peut être représenté par des fichiers de différents formats, tels que qcow2
ou raw
, et présenté à la VM à l'aide de divers contrôleurs :
- un contrôleur émulé
-
virtio-scsi
-
virtio-blk
Un contrôleur émulé est plus lent qu'un contrôleur virtio
, car les périphériques virtio
sont conçus spécifiquement à des fins de virtualisation. D'un autre côté, les contrôleurs émulés permettent d'exécuter des systèmes d'exploitation qui n'ont pas de pilotes pour les périphériques virtio
. De même, virtio-scsi
offre un support plus complet pour les commandes SCSI et permet d'attacher un plus grand nombre de disques à la VM. Enfin, virtio-blk
offre de meilleures performances que virtio-scsi
et les contrôleurs émulés, mais une gamme plus limitée de cas d'utilisation. Par exemple, l'attachement d'un disque physique en tant que périphérique LUN à une VM n'est pas possible lorsque l'on utilise virtio-blk
.
Pour plus d'informations sur les types de dispositifs virtuels, voir Types de dispositifs virtuels.
14.2. Types de dispositifs virtuels Copier lienLien copié sur presse-papiers!
La virtualisation dans RHEL 9 peut présenter plusieurs types distincts de périphériques virtuels que vous pouvez attacher à des machines virtuelles (VM) :
- Dispositifs émulés
Les dispositifs émulés sont des implémentations logicielles de dispositifs physiques largement utilisés. Les pilotes conçus pour les dispositifs physiques sont également compatibles avec les dispositifs émulés. Par conséquent, les dispositifs émulés peuvent être utilisés de manière très flexible.
Toutefois, comme ils doivent émuler fidèlement un type particulier de matériel, les dispositifs émulés peuvent subir une perte de performance significative par rapport aux dispositifs physiques correspondants ou à des dispositifs virtuels plus optimisés.
Les types de dispositifs émulés suivants sont pris en charge :
- Les unités centrales virtuelles (vCPU), avec un large choix de modèles d'unités centrales disponibles. L'impact de l'émulation sur les performances dépend fortement des différences entre le CPU hôte et le vCPU émulé.
- Composants de systèmes émulés, tels que les contrôleurs de bus PCI.
- Contrôleurs de stockage émulés, tels que SATA, SCSI ou même IDE.
- Dispositifs sonores émulés, tels que ICH9, ICH6 ou AC97.
- Cartes graphiques émulées, telles que les cartes VGA.
- Périphériques réseau émulés, tels que rtl8139.
- Dispositifs paravirtualisés
La paravirtualisation fournit une méthode rapide et efficace pour exposer les appareils virtuels aux machines virtuelles. Les périphériques paravirtualisés exposent des interfaces conçues spécifiquement pour être utilisées dans les machines virtuelles, ce qui augmente considérablement les performances des périphériques. RHEL 9 fournit des périphériques paravirtualisés aux machines virtuelles en utilisant l'API virtio comme couche entre l'hyperviseur et la machine virtuelle. L'inconvénient de cette approche est qu'elle nécessite un pilote de périphérique spécifique dans le système d'exploitation invité.
Il est recommandé d'utiliser des périphériques paravirtualisés plutôt que des périphériques émulés pour les machines virtuelles chaque fois que cela est possible, notamment si elles exécutent des applications à forte intensité d'entrées/sorties. Les périphériques paravirtualisés réduisent la latence des E/S et augmentent le débit des E/S, ce qui les rapproche dans certains cas des performances d'une machine nue. D'autres dispositifs paravirtualisés ajoutent également des fonctionnalités aux machines virtuelles qui ne sont pas disponibles autrement.
Les types de dispositifs paravirtualisés suivants sont pris en charge :
-
Le dispositif de réseau paravirtualisé (
virtio-net
). Contrôleurs de stockage paravirtualisés :
-
virtio-blk
- fournit une émulation de périphérique de bloc. -
virtio-scsi
- fournit une émulation SCSI plus complète.
-
- L'horloge paravirtualisée.
-
Le dispositif sériel paravirtualisé (
virtio-serial
). -
Le dispositif de ballon (
virtio-balloon
), utilisé pour distribuer dynamiquement la mémoire entre une VM et son hôte. -
Le générateur de nombres aléatoires paravirtualisé (
virtio-rng
).
-
Le dispositif de réseau paravirtualisé (
- Dispositifs physiquement partagés
Certaines plates-formes matérielles permettent aux machines virtuelles d'accéder directement à divers dispositifs et composants matériels. Ce processus est connu sous le nom de device assignment ou passthrough.
Lorsqu'ils sont attachés de cette manière, certains aspects de l'appareil physique sont directement accessibles à la VM comme ils le seraient à une machine physique. Cela permet d'obtenir des performances supérieures pour l'appareil lorsqu'il est utilisé dans la VM. Cependant, les périphériques physiquement attachés à une VM deviennent indisponibles pour l'hôte et ne peuvent pas non plus être migrés.
Néanmoins, certains dispositifs peuvent être shared sur plusieurs machines virtuelles. Par exemple, un seul appareil physique peut, dans certains cas, fournir plusieurs mediated devices, qui peuvent ensuite être affectés à des machines virtuelles distinctes.
Les types suivants de dispositifs de passage sont pris en charge :
- USB, PCI et SCSI passthrough - exposent les bus standard de l'industrie directement aux machines virtuelles afin de mettre leurs fonctions spécifiques à la disposition du logiciel invité.
- Virtualisation des E/S à racine unique (SR-IOV) - une spécification qui permet une isolation matérielle des ressources PCI Express. Cela permet de partitionner de manière sûre et efficace une ressource PCI physique unique en fonctions PCI virtuelles. Elle est couramment utilisée pour les cartes d'interface réseau (NIC).
- N_Port ID virtualization (NPIV) - technologie Fibre Channel permettant de partager un seul adaptateur de bus hôte physique (HBA) avec plusieurs ports virtuels.
- GPU et vGPU - accélérateurs pour des types spécifiques de charges de travail graphiques ou informatiques. Certains GPU peuvent être attachés directement à une VM, tandis que d'autres offrent la possibilité de créer des GPU virtuels (vGPU) qui partagent le matériel physique sous-jacent.
Certains périphériques de ces types peuvent ne pas être pris en charge ou ne pas être compatibles avec RHEL. Si vous avez besoin d'aide pour configurer des périphériques virtuels, consultez l'assistance Red Hat.
14.3. Gérer les périphériques attachés aux machines virtuelles à l'aide de la CLI Copier lienLien copié sur presse-papiers!
Pour modifier les fonctionnalités de votre machine virtuelle (VM), vous pouvez gérer les périphériques connectés à votre VM à l'aide de l'interface de ligne de commande (CLI).
Vous pouvez utiliser le CLI pour
14.3.1. Attacher des périphériques aux machines virtuelles Copier lienLien copié sur presse-papiers!
Vous pouvez ajouter une fonctionnalité spécifique à vos machines virtuelles (VM) en attachant un nouveau dispositif virtuel.
La procédure suivante permet de créer et d'attacher des dispositifs virtuels à vos machines virtuelles (VM) à l'aide de l'interface de ligne de commande (CLI). Certains dispositifs peuvent également être attachés aux machines virtuelles à l'aide de la console Web RHEL.
Par exemple, vous pouvez augmenter la capacité de stockage d'une VM en lui attachant un nouveau disque virtuel. Cette opération est également appelée memory hot plug.
La suppression d'un périphérique de mémoire d'une VM, également connue sous le nom de memory hot unplug, n'est pas prise en charge dans RHEL 9, et Red Hat en déconseille fortement l'utilisation.
Conditions préalables
Obtenez les options requises pour le périphérique que vous avez l'intention d'attacher à une VM. Pour connaître les options disponibles pour un périphérique spécifique, utilisez la commande
virt-xml --device=?
pour afficher les options disponibles pour un périphérique spécifique. Par exemple :Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Pour attacher un périphérique à une VM, utilisez la commande
virt-xml --add-device
, y compris la définition du périphérique et les options requises :Par exemple, la commande suivante crée une image disque newdisk qcow2 de 20 Go dans le répertoire
/var/lib/libvirt/images/
et l'attache en tant que disque virtuel à la VM testguest en cours d'exécution lors du prochain démarrage de la VM :virt-xml testguest --add-device --disk /var/lib/libvirt/images/newdisk.qcow2,format=qcow2,size=20
# virt-xml testguest --add-device --disk /var/lib/libvirt/images/newdisk.qcow2,format=qcow2,size=20 Domain 'testguest' defined successfully. Changes will take effect after the domain is fully powered off.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La procédure suivante permet d'attacher une clé USB, attachée en tant que périphérique 004 sur le bus 002 de l'hôte, à la VM testguest2 pendant qu'elle est en cours d'exécution :
virt-xml testguest2 --add-device --update --hostdev 002.004
# virt-xml testguest2 --add-device --update --hostdev 002.004 Device hotplug successful. Domain 'testguest2' defined successfully.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La combinaison bus-dispositif pour définir l'USB peut être obtenue en utilisant la commande
lsusb
.
Vérification
Pour vérifier que l'appareil a été ajouté, effectuez l'une des opérations suivantes :
Utilisez la commande
virsh dumpxml
et vérifiez si la définition XML de l'appareil a été ajoutée à la section<devices>
de la configuration XML de la VM.Par exemple, la sortie suivante montre la configuration de la VM testguest et confirme que le périphérique de disque flash USB 002.004 a été ajouté.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Exécutez la VM et vérifiez que l'appareil est présent et fonctionne correctement.
14.3.2. Modifier les périphériques attachés aux machines virtuelles Copier lienLien copié sur presse-papiers!
Vous pouvez modifier les fonctionnalités de vos machines virtuelles (VM) en modifiant la configuration des périphériques virtuels connectés. Par exemple, si vous souhaitez optimiser les performances de vos machines virtuelles, vous pouvez modifier leurs modèles de CPU virtuels afin qu'ils correspondent mieux aux CPU des hôtes.
La procédure suivante fournit des instructions générales pour la modification des périphériques virtuels à l'aide de l'interface de ligne de commande (CLI). Certains périphériques attachés à votre VM, tels que les disques et les cartes réseau, peuvent également être modifiés à l'aide de la console Web RHEL 9.
Conditions préalables
-
Obtenez les options requises pour le périphérique que vous avez l'intention d'attacher à une VM. Pour connaître les options disponibles pour un périphérique spécifique, utilisez la commande
virt-xml --device=?
pour afficher les options disponibles pour un périphérique spécifique. Par exemple :
-
Optional: Sauvegardez la configuration XML de votre VM en utilisant
virsh dumpxml vm-name
et en envoyant le résultat dans un fichier. Par exemple, la procédure suivante permet de sauvegarder la configuration de votre VM testguest1 dans le fichiertestguest1.xml
:
Procédure
Utilisez la commande
virt-xml --edit
, y compris la définition de l'appareil et les options requises :Par exemple, ce qui suit efface la configuration <cpu> de l'arrêt testguest VM et la met à host-model:
virt-xml testguest --edit --cpu host-model,clearxml=yes
# virt-xml testguest --edit --cpu host-model,clearxml=yes Domain 'testguest' defined successfully.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Pour vérifier que l'appareil a été modifié, effectuez l'une des opérations suivantes :
- Exécutez la VM et vérifiez si le dispositif est présent et reflète les modifications.
Utilisez la commande
virsh dumpxml
et vérifiez si la définition XML de l'appareil a été modifiée dans la configuration XML de la VM.Par exemple, la sortie suivante montre la configuration de la VM testguest et confirme que le mode CPU a été configuré comme host-model.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Résolution de problèmes
Si la modification d'un périphérique rend votre VM non amorçable, utilisez l'utilitaire
virsh define
pour restaurer la configuration XML en rechargeant le fichier de configuration XML que vous avez sauvegardé précédemment.virsh define testguest.xml
# virsh define testguest.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Pour apporter de petites modifications à la configuration XML de votre VM, vous pouvez utiliser la commande virsh edit
- par exemple virsh edit testguest
. Cependant, n'utilisez pas cette méthode pour des modifications plus importantes, car elle est plus susceptible de casser la configuration d'une manière qui pourrait empêcher le démarrage de la VM.
14.3.3. Suppression des périphériques des machines virtuelles Copier lienLien copié sur presse-papiers!
Vous pouvez modifier la fonctionnalité de vos machines virtuelles (VM) en supprimant un périphérique virtuel. Par exemple, vous pouvez supprimer un disque virtuel de l'une de vos machines virtuelles s'il n'est plus nécessaire.
La procédure suivante explique comment supprimer des périphériques virtuels de vos machines virtuelles (VM) à l'aide de l'interface de ligne de commande (CLI). Certains périphériques, tels que les disques ou les cartes d'interface réseau, peuvent également être supprimés des machines virtuelles à l'aide de la console Web RHEL 9.
Conditions préalables
-
Optional: Sauvegardez la configuration XML de votre VM en utilisant
virsh dumpxml vm-name
et en envoyant le résultat dans un fichier. Par exemple, la procédure suivante permet de sauvegarder la configuration de votre VM testguest1 dans le fichiertestguest1.xml
:
Procédure
Utilisez la commande
virt-xml --remove-device
, en incluant une définition de l'appareil. Par exemple :La procédure suivante supprime le périphérique de stockage marqué comme vdb de la VM testguest en cours d'exécution après son arrêt :
virt-xml testguest --remove-device --disk target=vdb
# virt-xml testguest --remove-device --disk target=vdb Domain 'testguest' defined successfully. Changes will take effect after the domain is fully powered off.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La procédure suivante supprime immédiatement un lecteur flash USB de la VM testguest2 en cours d'exécution :
virt-xml testguest2 --remove-device --update --hostdev type=usb
# virt-xml testguest2 --remove-device --update --hostdev type=usb Device hotunplug successful. Domain 'testguest2' defined successfully.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Résolution de problèmes
Si la suppression d'un périphérique rend votre VM non amorçable, utilisez l'utilitaire
virsh define
pour restaurer la configuration XML en rechargeant le fichier de configuration XML que vous avez sauvegardé précédemment.virsh define testguest.xml
# virsh define testguest.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.4. Gestion des périphériques hôtes à l'aide de la console web Copier lienLien copié sur presse-papiers!
Pour modifier la fonctionnalité de votre machine virtuelle (VM), vous pouvez gérer les périphériques hôtes attachés à votre VM en utilisant la console web de Red Hat Enterprise Linux 9.
Les périphériques hôtes sont des périphériques physiques attachés au système hôte. En fonction de vos besoins, vous pouvez permettre à vos machines virtuelles d'accéder directement à ces périphériques et composants matériels.
Vous pouvez utiliser la console web pour :
14.4.1. Visualisation des périphériques attachés aux machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
Avant d'ajouter ou de modifier les périphériques attachés à votre machine virtuelle (VM), vous pouvez afficher les périphériques déjà attachés à votre VM. La procédure suivante fournit des instructions pour visualiser ces périphériques à l'aide de la console Web.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans l'interface
, cliquez sur la VM dont vous voulez voir les informations.Une nouvelle page s'ouvre avec des informations détaillées sur la VM.
Faites défiler jusqu'à la section Host devices.
14.4.2. Attacher des périphériques à des machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
Pour ajouter des fonctionnalités spécifiques à votre machine virtuelle (VM), vous pouvez utiliser la console web pour attacher des périphériques hôtes à la VM.
La connexion de plusieurs périphériques hôtes en même temps ne fonctionne pas. Vous ne pouvez attacher qu'un seul périphérique à la fois.
Pour plus d'informations, voir les problèmes connus de RHEL 9.
Conditions préalables
Si vous attachez des périphériques PCI, assurez-vous que l'état de l'attribut
managed
de l'élémenthostdev
est réglé suryes
.NoteLorsque vous attachez des périphériques PCI à votre VM, n'omettez pas l'attribut
managed
de l'élémenthostdev
ou donnez-lui la valeurno
. Si vous le faites, les périphériques PCI ne peuvent pas se détacher automatiquement de l'hôte lorsque vous les passez à la VM. Ils ne peuvent pas non plus se rattacher automatiquement à l'hôte lorsque vous éteignez la VM.En conséquence, l'hôte peut ne plus répondre ou s'arrêter de manière inattendue.
Vous pouvez trouver le statut de l'attribut
managed
dans la configuration XML de votre VM. L'exemple suivant ouvre la configuration XML de la VMexample-VM-1
.virsh edit example-VM-1
# virsh edit example-VM-1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Sauvegarder les données importantes de la VM.
Optional: Sauvegardez la configuration XML de votre VM. Par exemple, pour sauvegarder la VM
example-VM-1
:virsh dumpxml example-VM-1 > example-VM-1.xml
# virsh dumpxml example-VM-1 > example-VM-1.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans l'interface
, cliquez sur la VM à laquelle vous souhaitez attacher un périphérique hôte.Une nouvelle page s'ouvre avec une section Overview contenant des informations de base sur la VM sélectionnée et une section Console permettant d'accéder à l'interface graphique de la VM.
Faites défiler jusqu'à
.La section Host devices affiche des informations sur les périphériques attachés à la VM ainsi que des options pour Add ou Remove périphériques.
Cliquez sur
.La boîte de dialogue Add host device apparaît.
- Sélectionnez le périphérique que vous souhaitez attacher à la VM.
Cliquez sur
Le périphérique sélectionné est attaché à la VM.
Vérification
- Exécutez la VM et vérifiez si l'appareil apparaît dans la section Host devices.
14.4.3. Suppression des périphériques des machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
Pour libérer des ressources, modifier les fonctionnalités de votre VM, ou les deux, vous pouvez utiliser la console web pour modifier la VM et supprimer les périphériques hôtes qui ne sont plus nécessaires.
La suppression des périphériques hôtes USB connectés à l'aide de la console web peut échouer en raison d'une corrélation incorrecte entre les numéros de périphérique et de bus du périphérique USB.
Pour plus d'informations, voir les problèmes connus de RHEL 9.
Pour contourner le problème, supprimez la partie <hostdev> du périphérique USB de la configuration XML de la VM à l'aide de l'utilitaire virsh. L'exemple suivant ouvre la configuration XML de la VM example-VM-1
:
virsh edit <example-VM-1>
# virsh edit <example-VM-1>
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Optional: Sauvegardez la configuration XML de votre VM en utilisant
virsh dumpxml example-VM-1
et en envoyant le résultat dans un fichier. Par exemple, la procédure suivante permet de sauvegarder la configuration de votre VM testguest1 dans le fichiertestguest1.xml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Dans l'interface
, cliquez sur la VM dont vous souhaitez supprimer un périphérique hôte.Une nouvelle page s'ouvre avec une section Overview contenant des informations de base sur la VM sélectionnée et une section Console permettant d'accéder à l'interface graphique de la VM.
Faites défiler jusqu'à
.La section Host devices affiche des informations sur les périphériques attachés à la VM ainsi que des options pour Add ou Remove périphériques.
Cliquez sur le bouton
en regard du périphérique que vous souhaitez supprimer de la VM.Une boîte de dialogue de confirmation de la suppression du périphérique s'affiche.
Cliquez sur
.L'appareil est retiré de la VM.
Résolution de problèmes
Si la suppression d'un périphérique hôte rend votre VM non amorçable, utilisez l'utilitaire
virsh define
pour restaurer la configuration XML en rechargeant le fichier de configuration XML que vous avez sauvegardé précédemment.virsh define testguest1.xml
# virsh define testguest1.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.5. Gestion des périphériques USB virtuels Copier lienLien copié sur presse-papiers!
Lorsque vous utilisez une machine virtuelle (VM), vous pouvez accéder à un périphérique USB, tel qu'une clé USB ou une caméra Web, qui est connecté au système hôte, et le contrôler. Dans ce scénario, le système hôte transmet le contrôle du périphérique à la machine virtuelle. C'est ce que l'on appelle un USB-passthrough.
Les sections suivantes fournissent des informations sur l'utilisation de la ligne de commande pour :
- Attacher un périphérique USB à une VM
- Supprimer un périphérique USB d'une VM
14.5.1. Attacher des périphériques USB à des machines virtuelles Copier lienLien copié sur presse-papiers!
Pour attacher un périphérique USB à une machine virtuelle (VM), vous pouvez inclure les informations relatives au périphérique USB dans le fichier de configuration XML de la VM.
Conditions préalables
- Assurez-vous que le périphérique que vous souhaitez transférer à la VM est connecté à l'hôte.
Procédure
Localisez les valeurs de bus et de périphérique de l'USB que vous souhaitez connecter à la VM.
Par exemple, la commande suivante affiche la liste des périphériques USB connectés à l'hôte. Le périphérique que nous utiliserons dans cet exemple est connecté au bus 001 en tant que périphérique 005.
lsusb
# lsusb [...] Bus 001 Device 003: ID 2567:0a2b Intel Corp. Bus 001 Device 005: ID 0407:6252 Kingston River 2.0 [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utilisez l'utilitaire
virt-xml
avec l'argument--add-device
.Par exemple, la commande suivante permet d'attacher une clé USB à la VM
example-VM-1
.virt-xml example-VM-1 --add-device --hostdev 001.005
# virt-xml example-VM-1 --add-device --hostdev 001.005 Domain 'example-VM-1' defined successfully.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Pour attacher un périphérique USB à une VM en cours d'exécution, ajoutez l'argument --update
à la commande précédente.
Vérification
- Exécutez la VM et vérifiez si l'appareil est présent et s'il fonctionne comme prévu.
Utilisez la commande
virsh dumpxml
pour vérifier si la définition XML du dispositif a été ajoutée à la section <devices> du fichier de configuration XML de la VM.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.5.2. Suppression des périphériques USB des machines virtuelles Copier lienLien copié sur presse-papiers!
Pour supprimer un périphérique USB d'une machine virtuelle (VM), vous pouvez supprimer les informations relatives au périphérique USB de la configuration XML de la VM.
Procédure
Localisez les valeurs de bus et de périphérique de l'USB que vous souhaitez supprimer de la VM.
Par exemple, la commande suivante affiche la liste des périphériques USB connectés à l'hôte. Le périphérique que nous utiliserons dans cet exemple est connecté au bus 001 en tant que périphérique 005.
lsusb
# lsusb [...] Bus 001 Device 003: ID 2567:0a2b Intel Corp. Bus 001 Device 005: ID 0407:6252 Kingston River 2.0 [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utilisez l'utilitaire
virt-xml
avec l'argument--remove-device
.Par exemple, la commande suivante supprime une clé USB, attachée à l'hôte en tant que périphérique 005 sur le bus 001, de la VM
example-VM-1
.virt-xml example-VM-1 --remove-device --hostdev 001.005
# virt-xml example-VM-1 --remove-device --hostdev 001.005 Domain 'example-VM-1' defined successfully.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Pour supprimer un périphérique USB d'une VM en cours d'exécution, ajoutez l'argument --update
à la commande précédente.
Vérification
- Exécutez la VM et vérifiez si l'appareil a été supprimé de la liste des appareils.
14.6. Gestion des lecteurs optiques virtuels Copier lienLien copié sur presse-papiers!
Lorsque vous utilisez une machine virtuelle (VM), vous pouvez accéder aux informations stockées dans une image ISO sur l'hôte. Pour ce faire, attachez l'image ISO à la VM en tant que lecteur optique virtuel, tel qu'un lecteur de CD ou de DVD.
Les sections suivantes fournissent des informations sur l'utilisation de la ligne de commande pour :
- Attacher un lecteur et une image ISO à une VM
- Attacher un CD-ROM à une VM en cours d'exécution
- Remplacer une image ISO dans un lecteur optique virtuel
- Supprimer une image ISO d'un lecteur optique virtuel
- Retirer un disque de la VM
- Retirer un CD-ROM d'une machine virtuelle en cours d'exécution
14.6.1. Attacher des lecteurs optiques aux machines virtuelles Copier lienLien copié sur presse-papiers!
Pour attacher une image ISO en tant que lecteur optique virtuel, modifiez le fichier de configuration XML de la machine virtuelle (VM) et ajoutez le nouveau lecteur.
Conditions préalables
- Vous devez stocker et copier le chemin d'accès de l'image ISO sur la machine hôte.
Procédure
Utilisez l'utilitaire
virt-xml
avec l'argument--add-device
:Par exemple, la commande suivante attache l'image ISO
example-ISO-name
, stockée dans le répertoire/home/username/Downloads
, à la VMexample-VM-name
.virt-xml example-VM-name --add-device --disk /home/username/Downloads/example-ISO-name.iso,device=cdrom
# virt-xml example-VM-name --add-device --disk /home/username/Downloads/example-ISO-name.iso,device=cdrom Domain 'example-VM-name' defined successfully.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
- Exécutez la VM et vérifiez si l'appareil est présent et s'il fonctionne comme prévu.
14.6.2. Ajouter un CD-ROM à une machine virtuelle en cours d'exécution à l'aide de la console web Copier lienLien copié sur presse-papiers!
Vous pouvez utiliser la console web pour insérer un CD-ROM dans une machine virtuelle (VM) en cours d'exécution sans spécifier le support.
Conditions préalables
Procédure
- Arrêtez la VM.
Attacher un périphérique CD-ROM virtuel sans spécifier d'image source.
virt-xml vmname --add-device --disk target.dev=sda,device=cdrom
# virt-xml vmname --add-device --disk target.dev=sda,device=cdrom
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Exécutez la VM.
- Ouvrez la console web et dans l'interface , cliquez sur la VM à laquelle vous voulez attacher un CD-ROM.
Faites défiler jusqu'à
.La section Disques affiche des informations sur les disques affectés à la VM, ainsi que des options permettant d'accéder à Add ou Edit.
Cliquez sur l'option cdrom.
pour le périphériqueChoisissez une adresse Source pour le fichier que vous souhaitez joindre :
- Custom Path: Le fichier se trouve dans un répertoire personnalisé sur la machine hôte.
- Use existing: Le fichier se trouve dans les pools de stockage que vous avez créés.
- Cliquez sur .
Vérification
- Dans l'interface des Disks. , le fichier apparaîtra dans la section
14.6.3. Remplacement des images ISO dans les lecteurs optiques virtuels Copier lienLien copié sur presse-papiers!
Pour remplacer une image ISO attachée en tant que lecteur optique virtuel à une machine virtuelle (VM), modifiez le fichier de configuration XML de la VM et spécifiez le remplacement.
Conditions préalables
- Vous devez stocker l'image ISO sur la machine hôte.
- Vous devez connaître le chemin d'accès à l'image ISO.
Procédure
Localisez le périphérique cible sur lequel le CD-ROM est attaché à la VM. Vous trouverez cette information dans le fichier de configuration XML de la VM.
Par exemple, la commande suivante affiche le fichier de configuration XML de la VM
example-VM-name
Où le périphérique cible pour le CD-ROM estsda
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utilisez l'utilitaire
virt-xml
avec l'argument--edit
.Par exemple, la commande suivante remplace l'image ISO
example-ISO-name
, attachée à la VMexample-VM-name
à la ciblesda
, par l'image ISOexample-ISO-name-2
stockée dans le répertoire/dev/cdrom
.virt-xml example-VM-name --edit target=sda --disk /dev/cdrom/example-ISO-name-2.iso
# virt-xml example-VM-name --edit target=sda --disk /dev/cdrom/example-ISO-name-2.iso Domain 'example-VM-name' defined successfully.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
- Exécutez la VM et vérifiez si l'appareil est remplacé et fonctionne comme prévu.
14.6.4. Suppression des images ISO des lecteurs optiques virtuels Copier lienLien copié sur presse-papiers!
Pour supprimer une image ISO d'un lecteur optique virtuel attaché à une machine virtuelle (VM), modifiez le fichier de configuration XML de la VM.
Procédure
Localisez le périphérique cible sur lequel le CD-ROM est attaché à la VM. Vous trouverez cette information dans le fichier de configuration XML de la VM.
Par exemple, la commande suivante affiche le fichier de configuration XML de la VM
example-VM-name
, où le périphérique cible pour le CD-ROM estsda
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utilisez l'utilitaire
virt-xml
avec l'argument--edit
.Par exemple, la commande suivante supprime l'image ISO
example-ISO-name
du lecteur de CD connecté à la VMexample-VM-name
.virt-xml example-VM-name --edit target=sda --disk path=
# virt-xml example-VM-name --edit target=sda --disk path= Domain 'example-VM-name' defined successfully.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
- Exécutez la VM et vérifiez que l'image n'est plus disponible.
14.6.5. Suppression des lecteurs optiques des machines virtuelles Copier lienLien copié sur presse-papiers!
Pour supprimer un lecteur optique attaché à une machine virtuelle (VM), modifiez le fichier de configuration XML de la VM.
Procédure
Localisez le périphérique cible sur lequel le CD-ROM est attaché à la VM. Vous trouverez cette information dans le fichier de configuration XML de la VM.
Par exemple, la commande suivante affiche le fichier de configuration XML de la VM
example-VM-name
, où le périphérique cible pour le CD-ROM estsda
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utilisez l'utilitaire
virt-xml
avec l'argument--remove-device
.Par exemple, la commande suivante supprime le lecteur optique attaché en tant que cible
sda
de la VMexample-VM-name
.virt-xml example-VM-name --remove-device --disk target=sda
# virt-xml example-VM-name --remove-device --disk target=sda Domain 'example-VM-name' defined successfully.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
- Confirmez que le dispositif n'est plus répertorié dans le fichier de configuration XML de la VM.
14.6.6. Suppression d'un CD-ROM d'une machine virtuelle en cours d'exécution à l'aide de la console web Copier lienLien copié sur presse-papiers!
Vous pouvez utiliser la console web pour éjecter un périphérique CD-ROM d'une machine virtuelle (VM) en cours d'exécution.
Conditions préalables
Procédure
- Dans l'interface , cliquez sur la VM dont vous souhaitez supprimer le CD-ROM.
Faites défiler jusqu'à
.La section Disques affiche des informations sur les disques affectés à la VM, ainsi que des options permettant d'accéder à Add ou Edit.
Cliquez sur l'option cdrom.
pour le périphériqueLa boîte de dialogue Eject media from VM? s'ouvre.
- Cliquez sur .
Vérification
- Dans l'interface des Disks. , le fichier joint n'est plus affiché dans la section
14.7. Gestion des dispositifs SR-IOV Copier lienLien copié sur presse-papiers!
Un périphérique virtuel émulé utilise souvent plus de CPU et de mémoire qu'un périphérique réseau matériel. Cela peut limiter les performances d'une machine virtuelle (VM). Toutefois, si l'un des périphériques de votre hôte de virtualisation prend en charge la virtualisation d'E/S à racine unique (SR-IOV), vous pouvez utiliser cette fonctionnalité pour améliorer les performances du périphérique et, éventuellement, les performances globales de vos machines virtuelles.
14.7.1. Qu'est-ce que le SR-IOV ? Copier lienLien copié sur presse-papiers!
La virtualisation des E/S à racine unique (SR-IOV) est une spécification qui permet à un seul périphérique PCI Express (PCIe) de présenter au système hôte plusieurs périphériques PCI distincts, appelés virtual functions (VF). Chacun de ces périphériques :
- Est capable de fournir un service identique ou similaire à celui de l'appareil PCIe d'origine.
- Apparaît à une adresse différente sur le bus PCI de l'hôte.
- Peut être affecté à une VM différente en utilisant l'affectation VFIO.
Par exemple, un seul périphérique réseau compatible SR-IOV peut présenter des VF à plusieurs VM. Bien que tous les VF utilisent la même carte physique, la même connexion réseau et le même câble réseau, chaque VM contrôle directement son propre périphérique réseau matériel et n'utilise aucune ressource supplémentaire de l'hôte.
Comment fonctionne le SR-IOV
La fonctionnalité SR-IOV est possible grâce à l'introduction des fonctions PCIe suivantes :
- Physical functions (PFs) - Une fonction PCIe qui fournit la fonctionnalité de son dispositif (par exemple la mise en réseau) à l'hôte, mais qui peut également créer et gérer un ensemble de VF. Chaque périphérique compatible SR-IOV possède un ou plusieurs PF.
- Virtual functions (VFs) - Fonctions PCIe légères qui se comportent comme des dispositifs indépendants. Chaque VF est dérivé d'un PF. Le nombre maximum de VF qu'un périphérique peut avoir dépend du matériel du périphérique. Chaque VF ne peut être attribué qu'à une seule VM à la fois, mais plusieurs VF peuvent être attribués à une VM.
Les VM reconnaissent les VF comme des périphériques virtuels. Par exemple, un VF créé par un périphérique réseau SR-IOV apparaît comme une carte réseau pour une VM à laquelle il est assigné, de la même manière qu'une carte réseau physique apparaît au système hôte.
Figure 14.1. Architecture SR-IOV
Avantages
Les principaux avantages de l'utilisation de VF SR-IOV plutôt que de dispositifs émulés sont les suivants :
- Amélioration des performances
- Réduction de l'utilisation des ressources de l'unité centrale et de la mémoire de l'hôte
Par exemple, un VF attaché à une VM en tant que vNIC a des performances presque identiques à celles d'un NIC physique, et bien meilleures que celles des NIC paravirtualisés ou émulés. En particulier, lorsque plusieurs VF sont utilisés simultanément sur un même hôte, les avantages en termes de performances peuvent être significatifs.
Inconvénients
- Pour modifier la configuration d'un PF, vous devez d'abord changer le nombre de VFs exposés par le PF à zéro. Par conséquent, vous devez également supprimer les périphériques fournis par ces VFs de la VM à laquelle ils sont assignés.
- Une VM à laquelle sont attachés des périphériques assignés par VFIO, y compris des VF SR-IOV, ne peut pas être migrée vers un autre hôte. Dans certains cas, vous pouvez contourner cette limitation en associant le périphérique attribué à un périphérique émulé. Par exemple, vous pouvez lier un VF de réseau attribué à un vNIC émulé, et retirer le VF avant la migration.
- En outre, les périphériques attribués par VFIO nécessitent l'épinglage de la mémoire de la VM, ce qui augmente la consommation de mémoire de la VM et empêche l'utilisation du ballooning de la mémoire sur la VM.
14.7.2. Attacher des périphériques de réseau SR-IOV à des machines virtuelles Copier lienLien copié sur presse-papiers!
Pour attacher un périphérique réseau SR-IOV à une machine virtuelle (VM) sur un hôte Intel ou AMD, vous devez créer une fonction virtuelle (VF) à partir d'une interface réseau compatible SR-IOV sur l'hôte et affecter la VF en tant que périphérique à une VM spécifiée. Pour plus de détails, voir les instructions suivantes.
Conditions préalables
L'unité centrale et le micrologiciel de votre hôte prennent en charge l'unité de gestion de la mémoire d'E/S (IOMMU).
- Si vous utilisez un processeur Intel, il doit supporter la technologie de virtualisation Intel pour Directed I/O (VT-d).
- Si vous utilisez un processeur AMD, il doit prendre en charge la fonction AMD-Vi.
Le système hôte utilise le service de contrôle d'accès (ACS) pour assurer l'isolation de l'accès direct à la mémoire (DMA) pour la topologie PCIe. Vérifiez ce point auprès du fournisseur du système.
Pour plus d'informations, voir Considérations matérielles pour l'implémentation du SR-IOV.
Le périphérique réseau physique prend en charge SR-IOV. Pour vérifier si des périphériques réseau de votre système prennent en charge SR-IOV, utilisez la commande
lspci -v
et recherchezSingle Root I/O Virtualization (SR-IOV)
dans le résultat.Copy to Clipboard Copied! Toggle word wrap Toggle overflow L'interface réseau de l'hôte que vous voulez utiliser pour créer des VF est en cours d'exécution. Par exemple, pour activer l'interface eth1 et vérifier qu'elle fonctionne :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour que l'attribution de périphériques SR-IOV fonctionne, la fonction IOMMU doit être activée dans le BIOS et le noyau de l'hôte. Pour ce faire, il faut
Sur un hôte Intel, activez VT-d :
Régénérer la configuration GRUB avec les paramètres
intel_iommu=on
etiommu=pt
:grubby --args="intel_iommu=on iommu=pt" --update-kernel=ALL
# grubby --args="intel_iommu=on iommu=pt" --update-kernel=ALL
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Redémarrer l'hôte.
Sur un hôte AMD, activez AMD-Vi :
Régénérer la configuration GRUB avec le paramètre
iommu=pt
:grubby --args="iommu=pt" --update-kernel=ALL
# grubby --args="iommu=pt" --update-kernel=ALL
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Redémarrer l'hôte.
Procédure
Optional: Confirmez le nombre maximum de VF que votre périphérique de réseau peut utiliser. Pour ce faire, utilisez la commande suivante et remplacez eth1 par votre périphérique réseau compatible SR-IOV.
cat /sys/class/net/eth1/device/sriov_totalvfs 7
# cat /sys/class/net/eth1/device/sriov_totalvfs 7
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La commande suivante permet de créer une fonction virtuelle (VF) :
echo VF-number > /sys/class/net/network-interface/device/sriov_numvfs
# echo VF-number > /sys/class/net/network-interface/device/sriov_numvfs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans la commande, remplacez :
- VF-number avec le nombre de FV que vous souhaitez créer sur la CP.
- network-interface avec le nom de l'interface réseau pour laquelle les VF seront créés.
L'exemple suivant crée 2 VF à partir de l'interface réseau eth1 :
echo 2 > /sys/class/net/eth1/device/sriov_numvfs
# echo 2 > /sys/class/net/eth1/device/sriov_numvfs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifier que les VF ont été ajoutés :
lspci | grep Ethernet
# lspci | grep Ethernet 82:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) 82:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) 82:10.0 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) 82:10.2 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Rendez les VF créés persistants en créant une règle udev pour l'interface réseau que vous avez utilisée pour créer les VF. Par exemple, pour l'interface eth1, créez le fichier
/etc/udev/rules.d/eth1.rules
et ajoutez la ligne suivante :ACTION=="add", SUBSYSTEM=="net", ENV{ID_NET_DRIVER}=="ixgbe", ATTR{device/sriov_numvfs}="2"
ACTION=="add", SUBSYSTEM=="net", ENV{ID_NET_DRIVER}=="ixgbe", ATTR{device/sriov_numvfs}="2"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cela garantit que les deux VF qui utilisent le pilote
ixgbe
seront automatiquement disponibles pour l'interfaceeth1
au démarrage de l'hôte. Si vous n'avez pas besoin de périphériques SR-IOV persistants, ignorez cette étape.AvertissementActuellement, le paramètre décrit ci-dessus ne fonctionne pas correctement lorsque l'on tente de rendre les VF persistants sur les adaptateurs Broadcom NetXtreme II BCM57810. En outre, l'attachement de VF basés sur ces adaptateurs à des machines virtuelles Windows n'est actuellement pas fiable.
Branchez à chaud l'un des périphériques d'interface VF nouvellement ajoutés à une VM en cours d'exécution.
virsh attach-interface testguest1 hostdev 0000:82:10.0 --managed --live --config
# virsh attach-interface testguest1 hostdev 0000:82:10.0 --managed --live --config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
- Si la procédure réussit, le système d'exploitation invité détecte une nouvelle carte d'interface réseau.
14.7.3. Dispositifs pris en charge pour l'affectation SR-IOV Copier lienLien copié sur presse-papiers!
Tous les périphériques ne peuvent pas être utilisés pour le SR-IOV. Les périphériques suivants ont été testés et vérifiés comme étant compatibles avec SR-IOV dans RHEL 9.
Dispositifs de mise en réseau
-
Intel 82599ES 10 Gigabit Ethernet Controller - utilise le pilote
ixgbe
-
Intel Ethernet Controller XL710 Series - utilise le pilote
i40e
-
Intel Ethernet Network Adapter XXV710 - utilise le pilote
i40e
-
Intel 82576 Gigabit Ethernet Controller - utilise le pilote
igb
-
Broadcom NetXtreme II BCM57810 - utilise le pilote
bnx2x
-
Contrôleur Ethernet E810-C pour QSFP - utilise le pilote
ice
-
SFC9220 10/40G Ethernet Controller - utilise le pilote
sfc
-
Contrôleur FastLinQ QL41000 Series 10/25/40/50GbE - utilise le pilote
qede
- Cartes d'adaptateur Ethernet Mellanox ConnectX-5
- Famille Mellanox MT2892 [ConnectX-6 Dx]
14.8. Attacher des périphériques DASD à des machines virtuelles sur IBM Z Copier lienLien copié sur presse-papiers!
En utilisant la fonction vfio-ccw
, vous pouvez attribuer des périphériques de stockage à accès direct (DASD) en tant que périphériques médiatisés à vos machines virtuelles (VM) sur des hôtes IBM Z. Cela permet par exemple à la VM d'accéder à un ensemble de données z/OS ou de fournir des DASD assignés à une machine z/OS. Cela permet par exemple à la VM d'accéder à un ensemble de données z/OS ou de fournir les DASD attribués à une machine z/OS.
Conditions préalables
- Vous disposez d'un système doté d'une architecture matérielle IBM Z compatible avec le protocole FICON.
- Vous disposez d'une VM cible d'un système d'exploitation Linux.
Le paquetage driverctl est installé.
dnf install driverctl
# dnf install driverctl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Les modules nécessaires du noyau
vfio
ont été chargés sur l'hôte.lsmod | grep vfio
# lsmod | grep vfio
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La sortie de cette commande doit contenir les modules suivants :
-
vfio_ccw
-
vfio_mdev
-
vfio_iommu_type1
-
Vous disposez d'un périphérique DASD de rechange destiné à l'usage exclusif de la VM et vous connaissez l'identifiant de ce périphérique.
La procédure suivante utilise
0.0.002c
comme exemple. Lors de l'exécution des commandes, remplacez0.0.002c
par l'identifiant de votre périphérique DASD.
Procédure
Obtenir l'identifiant du sous-canal du dispositif DASD.
lscss -d 0.0.002c
# lscss -d 0.0.002c Device Subchan. DevType CU Type Use PIM PAM POM CHPIDs ---------------------------------------------------------------------- 0.0.002c 0.0.29a8 3390/0c 3990/e9 yes f0 f0 ff 02111221 00000000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple, l'identifiant du sous-canal est détecté comme étant
0.0.29a8
. Dans les commandes suivantes de cette procédure, remplacez0.0.29a8
par l'identifiant de sous-canal détecté pour votre appareil.Si la commande
lscss
de l'étape précédente n'a affiché que l'en-tête et aucune information sur le périphérique, procédez comme suit :Retirer l'appareil de la liste
cio_ignore
.cio_ignore -r 0.0.002c
# cio_ignore -r 0.0.002c
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans le système d'exploitation invité, modifiez la ligne de commande du noyau de la VM et ajoutez l'identifiant du périphérique avec une marque
!
à la ligne qui commence parcio_ignore=
, s'il n'est pas déjà présent.cio_ignore=all,!condev,!0.0.002c
cio_ignore=all,!condev,!0.0.002c
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Répétez l'étape 1 sur l'hôte pour obtenir l'identifiant du sous-canal.
Lier le sous-canal au pilote
vfio_ccw
passthrough.driverctl -b css set-override 0.0.29a8 vfio_ccw
# driverctl -b css set-override 0.0.29a8 vfio_ccw
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteCela lie le sous-canal 0.0.29a8 à
vfio_ccw
de manière persistante, ce qui signifie que le DASD ne sera pas utilisable sur l'hôte. Si vous devez utiliser le périphérique sur l'hôte, vous devez d'abord supprimer la liaison automatique à 'vfio_ccw' et lier à nouveau le sous-canal au pilote par défaut :# driverctl -b css unset-override 0.0.29a8
Définir et démarrer le dispositif à médiation DASD.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Arrêter la VM, si elle est en cours d'exécution.
Affichez l'UUID de l'appareil précédemment défini et enregistrez-le pour l'étape suivante.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Attachez le dispositif médiatisé à la VM. Pour ce faire, utilisez l'utilitaire
virsh edit
pour modifier la configuration XML de la VM, ajoutez la section suivante au XML et remplacez la valeuruuid
par l'UUID que vous avez obtenu à l'étape précédente.<hostdev mode='subsystem' type='mdev' model='vfio-ccw'> <source> <address uuid="30820a6f-b1a5-4503-91ca-0c10ba12345a"/> </source> </hostdev>
<hostdev mode='subsystem' type='mdev' model='vfio-ccw'> <source> <address uuid="30820a6f-b1a5-4503-91ca-0c10ba12345a"/> </source> </hostdev>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Configurer le périphérique médiatisé pour qu'il démarre automatiquement au démarrage de l'hôte.
virsh nodedev-autostart mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8
# virsh nodedev-autostart mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Assurez-vous que le dispositif médiatisé est correctement configuré.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Obtenez l'identifiant que
libvirt
a attribué au périphérique DASD médiatisé. Pour ce faire, affichez la configuration XML de la VM et recherchez un périphériquevfio-ccw
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple, l'identifiant attribué à l'appareil est
0.0.0009
.- Démarrez la VM et connectez-vous à son système d'exploitation invité.
Dans le système d'exploitation invité, vérifiez que le périphérique DASD est répertorié. Par exemple, dans le système d'exploitation invité, confirmez que le périphérique DASD est répertorié :
lscss | grep 0.0.0009
# lscss | grep 0.0.0009 0.0.0009 0.0.0007 3390/0c 3990/e9 f0 f0 ff 12212231 00000000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans le système d'exploitation invité, mettez le périphérique en ligne. Par exemple :
chccwdev -e 0.0009
# chccwdev -e 0.0009 Setting device 0.0.0009 online Done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.9. Attacher un dispositif de surveillance à une machine virtuelle en utilisant la console web Copier lienLien copié sur presse-papiers!
Pour forcer la machine virtuelle (VM) à effectuer une action spécifique lorsqu'elle ne répond plus, vous pouvez attacher des périphériques de surveillance virtuels à une VM.
Conditions préalables
- Vous avez installé le plug-in VM de la console web sur votre système. Pour plus d'informations, voir Section 8.2, « Configurer la console web pour gérer les machines virtuelles ».
Procédure
Dans l'interface de ligne de commande, installez le service watchdog.
# dnf install watchdog
- Arrêtez la VM.
Ajoutez le service watchdog à la VM.
# virt-xml vmname --add-device --watchdog action=reset --update
- Exécutez la VM.
- Ouvrez la console web et dans l'interface de la console web, cliquez sur la VM à laquelle vous voulez ajouter le dispositif de surveillance.
Cliquez sur Watchdog dans le volet Vue d'ensemble.
côté du champLa boîte de dialogue Add watchdog device type apparaît.
Sélectionnez l'action que vous souhaitez que le dispositif de surveillance effectue si la VM cesse de répondre.
- Cliquez sur .
Vérification
- L'action que vous avez sélectionnée est visible à côté du champ Watchdog dans le volet Vue d'ensemble.
14.10. Attacher des périphériques PCI à des machines virtuelles sur IBM Z Copier lienLien copié sur presse-papiers!
En utilisant le pilote de périphérique vfio-pci
, vous pouvez affecter des périphériques PCI en mode pass-through à vos machines virtuelles (VM) sur les hôtes IBM Z. Cela permet par exemple à la VM d'utiliser des disques flash NVMe pour gérer les bases de données.
Conditions préalables
- Vous disposez d'un système hôte doté de l'architecture matérielle IBM Z.
- Vous disposez d'une VM cible du système d'exploitation Linux.
Les modules nécessaires du noyau
vfio
ont été chargés sur l'hôte.lsmod | grep vfio
# lsmod | grep vfio
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La sortie de cette commande doit contenir les modules suivants :
-
vfio_pci
-
vfio_pci_core
-
vfio_iommu_type1
-
Procédure
Obtenez l'identifiant de l'adresse PCI de l'appareil que vous souhaitez utiliser.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ouvrez la configuration XML de la VM à laquelle vous souhaitez attacher le périphérique PCI.
virsh edit vm-name
# virsh edit vm-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajoutez la configuration suivante
<hostdev>
à la section<devices>
du fichier XML.Remplacez les valeurs de la ligne
address
par l'adresse PCI de votre appareil. Par exemple, si l'adresse de l'appareil est0003:00:00.0
, utilisez la configuration suivante :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Pour modifier la façon dont le système d'exploitation invité détectera le périphérique PCI, vous pouvez également ajouter un sous-élément
<zpci>
à l'élément<address>
. Dans la ligne<zpci>
, vous pouvez ajuster les valeursuid
etfid
, ce qui modifie l'adresse PCI et l'ID de fonction du périphérique dans le système d'exploitation invité.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple :
-
uid="0x0008"
définit l'adresse PCI de domaine du périphérique dans la VM à0008:00:00.0
. fid="0x001807"
définit la valeur de l'emplacement de l'appareil à0x001807
. Par conséquent, la configuration du périphérique dans le système de fichiers de la VM est enregistrée à l'adresse/sys/bus/pci/slots/00001087/address
.Si ces valeurs ne sont pas spécifiées,
libvirt
les configure automatiquement.
-
- Sauvegarder la configuration XML.
Si la VM est en cours d'exécution, arrêtez-la.
virsh shutdown vm-name
# virsh shutdown vm-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
- Démarrez la VM et connectez-vous à son système d'exploitation invité.
Dans le système d'exploitation invité, vérifiez que le périphérique PCI est répertorié.
Par exemple, si l'adresse de l'appareil est
0003:00:00.0
, utilisez la commande suivante :lspci -nkD | grep 0003:00:00.0
# lspci -nkD | grep 0003:00:00.0 0003:00:00.0 8086:9a09 (rev 01)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Chapitre 15. Gestion du stockage pour les machines virtuelles Copier lienLien copié sur presse-papiers!
Une machine virtuelle (VM), tout comme une machine physique, nécessite un espace de stockage pour les données, les programmes et les fichiers système. En tant qu'administrateur de machines virtuelles, vous pouvez attribuer à vos machines virtuelles un espace de stockage physique ou en réseau en tant qu'espace de stockage virtuel. Vous pouvez également modifier la façon dont le stockage est présenté à une VM, quel que soit le matériel sous-jacent.
Les sections suivantes fournissent des informations sur les différents types de stockage de VM, leur fonctionnement et la manière dont vous pouvez les gérer à l'aide de l'interface CLI ou de la console Web.
15.1. Comprendre le stockage des machines virtuelles Copier lienLien copié sur presse-papiers!
Si vous êtes novice en matière de stockage de machines virtuelles (VM) ou si vous n'êtes pas sûr de son fonctionnement, les sections suivantes fournissent une vue d'ensemble des différents composants du stockage de VM, de son fonctionnement, des bases de la gestion et des solutions prises en charge fournies par Red Hat.
Vous pouvez trouver des informations sur :
15.1.1. Introduction aux pools de stockage Copier lienLien copié sur presse-papiers!
Un pool de stockage est un fichier, un répertoire ou un périphérique de stockage, géré par libvirt
pour fournir un stockage aux machines virtuelles (VM). Vous pouvez diviser les pools de stockage en volumes de stockage, qui stockent les images des machines virtuelles ou sont attachés aux machines virtuelles en tant que stockage supplémentaire.
En outre, plusieurs machines virtuelles peuvent partager le même pool de stockage, ce qui permet une meilleure allocation des ressources de stockage.
Les pools de stockage peuvent être persistants ou transitoires :
-
Un pool de stockage persistant survit à un redémarrage du système de la machine hôte. Vous pouvez utiliser le site
virsh pool-define
pour créer un pool de stockage persistant. -
Un pool de stockage transitoire n'existe que jusqu'au redémarrage de l'hôte. Vous pouvez utiliser la commande
virsh pool-create
pour créer un pool de stockage transitoire.
-
Un pool de stockage persistant survit à un redémarrage du système de la machine hôte. Vous pouvez utiliser le site
Types de stockage du pool de stockage
Les pools de stockage peuvent être locaux ou en réseau (partagés) :
Local storage pools
Les pools de stockage locaux sont attachés directement au serveur hôte. Ils comprennent les répertoires locaux, les disques directement attachés, les partitions physiques et les groupes de volumes LVM (Logical Volume Management) sur les périphériques locaux.
Les pools de stockage locaux sont utiles pour le développement, les tests et les petits déploiements qui ne nécessitent pas de migration ou qui comportent un grand nombre de machines virtuelles.
Networked (shared) storage pools
Les pools de stockage en réseau comprennent des périphériques de stockage partagés sur un réseau à l'aide de protocoles standard.
15.1.2. Introduction aux volumes de stockage Copier lienLien copié sur presse-papiers!
Les pools de stockage sont divisés en storage volumes
. Les volumes de stockage sont des abstractions de partitions physiques, de volumes logiques LVM, d'images de disque basées sur des fichiers et d'autres types de stockage gérés par libvirt
. Les volumes de stockage sont présentés aux machines virtuelles comme des périphériques de stockage locaux, tels que des disques, quel que soit le matériel sous-jacent.
Sur la machine hôte, un volume de stockage est désigné par son nom et par l'identifiant du pool de stockage dont il provient. Sur la ligne de commande virsh
, cela prend la forme suivante --pool storage_pool volume_name
.
Par exemple, pour afficher des informations sur un volume nommé firstimage dans le pool guest_images.
virsh vol-info --pool guest_images firstimage
# virsh vol-info --pool guest_images firstimage
Name: firstimage
Type: block
Capacity: 20.00 GB
Allocation: 20.00 GB
15.1.3. Gestion du stockage à l'aide de libvirt Copier lienLien copié sur presse-papiers!
En utilisant le protocole à distance libvirt
, vous pouvez gérer tous les aspects du stockage des VM. Ces opérations peuvent également être effectuées sur un hôte distant. Par conséquent, une application de gestion qui utilise libvirt
, telle que la console web RHEL, peut être utilisée pour effectuer toutes les tâches nécessaires à la configuration du stockage d'une VM.
Vous pouvez utiliser l'API libvirt
pour demander la liste des volumes d'un pool de stockage ou pour obtenir des informations sur la capacité, l'allocation et le stockage disponible dans ce pool de stockage. Pour les pools de stockage qui le prennent en charge, vous pouvez également utiliser l'API libvirt
pour créer, cloner, redimensionner et supprimer des volumes de stockage. En outre, vous pouvez utiliser l'API libvirt
pour télécharger des données vers des volumes de stockage, télécharger des données à partir de volumes de stockage ou effacer des données à partir de volumes de stockage.
15.1.4. Vue d'ensemble de la gestion du stockage Copier lienLien copié sur presse-papiers!
Pour illustrer les options disponibles pour la gestion du stockage, l'exemple suivant présente un exemple de serveur NFS qui utilise mount -t nfs nfs.example.com:/path/to/share /path/to/data
.
En tant qu'administrateur de stockage :
-
Vous pouvez définir un pool de stockage NFS sur l'hôte de virtualisation pour décrire le chemin du serveur exporté et le chemin cible du client. Par conséquent,
libvirt
peut monter le stockage soit automatiquement lorsquelibvirt
est démarré, soit au besoin lorsquelibvirt
est en cours d'exécution. - Vous pouvez simplement ajouter le pool de stockage et le volume de stockage à une VM par son nom. Il n'est pas nécessaire d'ajouter le chemin cible au volume. Par conséquent, même si le chemin d'accès du client cible change, cela n'affecte pas la VM.
-
Vous pouvez configurer les pools de stockage pour qu'ils démarrent automatiquement. Dans ce cas,
libvirt
monte automatiquement le disque partagé NFS dans le répertoire spécifié lors du démarrage delibvirt
.libvirt
monte le partage dans le répertoire spécifié, de la même manière que la commandemount nfs.example.com:/path/to/share /vmdata
. -
Vous pouvez interroger les chemins d'accès aux volumes de stockage à l'aide de l'API
libvirt
. Ces volumes de stockage sont essentiellement les fichiers présents sur le disque partagé NFS. Vous pouvez ensuite copier ces chemins dans la section de la définition XML d'une VM qui décrit le stockage source pour les périphériques de bloc de la VM. Dans le cas de NFS, vous pouvez utiliser une application qui utilise l'API
libvirt
pour créer et supprimer des volumes de stockage dans le pool de stockage (fichiers dans le partage NFS) jusqu'à la limite de la taille du pool (capacité de stockage du partage).Notez que tous les types de pools de stockage ne prennent pas en charge la création et la suppression de volumes.
-
Vous pouvez arrêter un pool de stockage lorsqu'il n'est plus nécessaire. L'arrêt d'un pool de stockage (
pool-destroy
) annule l'opération de démarrage, dans ce cas, le démontage du partage NFS. Les données du partage ne sont pas modifiées par l'opération de destruction, malgré ce que le nom de la commande suggère. Pour plus d'informations, voirman virsh
.
15.1.5. Types de pools de stockage pris en charge et non pris en charge Copier lienLien copié sur presse-papiers!
Supported storage pool types
Voici une liste des types de pools de stockage pris en charge par RHEL :
- Pools de stockage basés sur un répertoire
- Pools de stockage sur disque
- Pools de stockage basés sur des partitions
- pools de stockage basés sur iSCSI
- Pools de stockage basés sur LVM
- Pools de stockage basés sur NFS
- Pools de stockage basés sur SCSI avec périphériques vHBA
- Pools de stockage basés sur des chemins multiples
- Pools de stockage basés sur les BDR
Unsupported storage pool types
Voici une liste des types de pools de stockage libvirt
non pris en charge par RHEL :
- Pools de stockage basés sur des chiens de berger
- Pools de stockage basés sur Vstorage
- Pools de stockage basés sur ZFS
- pools de stockage iSCSI-direct
- Pools de stockage GlusterFS
15.2. Gestion des pools de stockage des machines virtuelles à l'aide de la CLI Copier lienLien copié sur presse-papiers!
Vous pouvez utiliser le CLI pour gérer les aspects suivants de vos pools de stockage afin d'affecter du stockage à vos machines virtuelles (VM) :
- Afficher les informations sur le pool de stockage
Créer des pools de stockage
- Créer des pools de stockage basés sur des répertoires à l'aide de la CLI
- Créer des pools de stockage sur disque à l'aide de l'interface de ligne de commande
- Créer des pools de stockage basés sur des systèmes de fichiers à l'aide de l'interface CLI
- Créer des pools de stockage basés sur iSCSI à l'aide de la CLI
- Créer des pools de stockage basés sur LVM à l'aide de la CLI
- Créer des pools de stockage basés sur NFS à l'aide de la CLI
- Créer des pools de stockage basés sur SCSI avec des périphériques vHBA à l'aide de la CLI
- Supprimer les pools de stockage
15.2.1. Visualisation des informations sur les pools de stockage à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
En utilisant l'interface de commande, vous pouvez afficher une liste de tous les pools de stockage avec des détails limités ou complets sur les pools de stockage. Vous pouvez également filtrer les pools de stockage répertoriés.
Procédure
Utilisez la commande
virsh pool-list
pour afficher les informations relatives au pool de stockage.virsh pool-list --all --details
# virsh pool-list --all --details Name State Autostart Persistent Capacity Allocation Available default running yes yes 48.97 GiB 23.93 GiB 25.03 GiB Downloads running yes yes 175.62 GiB 62.02 GiB 113.60 GiB RHEL-Storage-Pool running yes yes 214.62 GiB 93.02 GiB 168.60 GiB
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.2. Création de pools de stockage basés sur des répertoires à l'aide de la CLI Copier lienLien copié sur presse-papiers!
Un pool de stockage basé sur un répertoire est basé sur un répertoire dans un système de fichiers monté existant. Ceci est utile, par exemple, lorsque vous souhaitez utiliser l'espace restant sur le système de fichiers à d'autres fins. Vous pouvez utiliser l'utilitaire virsh
pour créer des pools de stockage basés sur des répertoires.
Conditions préalables
Assurez-vous que votre hyperviseur prend en charge les pools de stockage de répertoires :
virsh pool-capabilities | grep "'dir' supported='yes'"
# virsh pool-capabilities | grep "'dir' supported='yes'"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la commande affiche une sortie, les pools de répertoires sont pris en charge.
Procédure
Create a storage pool
Utilisez la commande
virsh pool-define-as
pour définir et créer un pool de stockage de type répertoire. Par exemple, pour créer un pool de stockage nomméguest_images_dir
qui utilise le répertoire /guest_images:virsh pool-define-as guest_images_dir dir --target "/guest_images"
# virsh pool-define-as guest_images_dir dir --target "/guest_images" Pool guest_images_dir defined
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous disposez déjà d'une configuration XML du pool de stockage que vous souhaitez créer, vous pouvez également définir le pool sur la base du XML. Pour plus d'informations, voir Paramètres des pools de stockage basés sur le répertoire.
Create the storage pool target path
La commande
virsh pool-build
permet de créer un chemin cible de pool de stockage pour un pool de stockage de système de fichiers préformaté, d'initialiser le périphérique source de stockage et de définir le format des données.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verify that the pool was created
Utilisez la commande
virsh pool-list
pour vérifier que le pool a été créé.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Start the storage pool
Utilisez la commande
virsh pool-start
pour monter le pool de stockage.virsh pool-start guest_images_dir
# virsh pool-start guest_images_dir Pool guest_images_dir started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLa commande
virsh pool-start
n'est nécessaire que pour les pools de stockage permanents. Les pools de stockage transitoires sont automatiquement démarrés lors de leur création.[Optional] Turn on autostart
Par défaut, un pool de stockage défini avec la commande
virsh
n'est pas configuré pour démarrer automatiquement chaque fois que les services de virtualisation démarrent. Utilisez la commandevirsh pool-autostart
pour configurer le pool de stockage afin qu'il démarre automatiquement.virsh pool-autostart guest_images_dir
# virsh pool-autostart guest_images_dir Pool guest_images_dir marked as autostarted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Utilisez la commande
virsh pool-info
pour vérifier que le pool de stockage est dans l'étatrunning
état. Vérifiez que les tailles signalées sont conformes aux attentes et que le démarrage automatique est configuré correctement.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.3. Création de pools de stockage sur disque à l'aide de la CLI Copier lienLien copié sur presse-papiers!
Dans un pool de stockage sur disque, le pool est basé sur une partition de disque. Cela est utile, par exemple, lorsque vous souhaitez qu'une partition entière du disque soit dédiée au stockage de la machine virtuelle (VM). Vous pouvez utiliser l'utilitaire virsh
pour créer des pools de stockage sur disque.
Conditions préalables
Assurez-vous que votre hyperviseur prend en charge les pools de stockage sur disque :
virsh pool-capabilities | grep "'disk' supported='yes'"
# virsh pool-capabilities | grep "'disk' supported='yes'"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la commande affiche une sortie, les pools sur disque sont pris en charge.
Préparez un périphérique sur lequel vous baserez le pool de stockage. Pour ce faire, préférez les partitions (par exemple,
/dev/sdb1
) ou les volumes LVM. Si vous donnez à une VM un accès en écriture à un disque entier ou à un périphérique bloc (par exemple,/dev/sdb
), la VM le partitionnera probablement ou y créera ses propres groupes LVM. Cela peut entraîner des erreurs système sur l'hôte.Cependant, si vous avez besoin d'utiliser un périphérique bloc entier pour le pool de stockage, Red Hat recommande de protéger toutes les partitions importantes sur le périphérique de la fonction
os-prober
de GRUB. Pour ce faire, éditez le fichier/etc/default/grub
et appliquez l'une des configurations suivantes :Désactiver
os-prober
.GRUB_DISABLE_OS_PROBER=true
GRUB_DISABLE_OS_PROBER=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Empêcher
os-prober
de découvrir une partition spécifique. Par exemple :GRUB_OS_PROBER_SKIP_LIST="5ef6313a-257c-4d43@/dev/sdb1"
GRUB_OS_PROBER_SKIP_LIST="5ef6313a-257c-4d43@/dev/sdb1"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Sauvegardez toutes les données sur l'unité de stockage sélectionnée avant de créer un pool de stockage. Selon la version de
libvirt
utilisée, le fait de dédier un disque à un pool de stockage peut entraîner le reformatage et l'effacement de toutes les données actuellement stockées sur l'unité de disque.
Procédure
Create a storage pool
Utilisez la commande
virsh pool-define-as
pour définir et créer un pool de stockage de type disque. L'exemple suivant crée un pool de stockage nomméguest_images_disk
qui utilise le périphérique /dev/sdb et est monté sur le répertoire /dev.virsh pool-define-as guest_images_disk disk --source-format=gpt --source-dev=/dev/sdb --target /dev
# virsh pool-define-as guest_images_disk disk --source-format=gpt --source-dev=/dev/sdb --target /dev Pool guest_images_disk defined
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous disposez déjà d'une configuration XML du pool de stockage que vous souhaitez créer, vous pouvez également définir le pool sur la base du XML. Pour plus d'informations, voir Paramètres des pools de stockage sur disque.
Create the storage pool target path
La commande
virsh pool-build
permet de créer un chemin cible de pool de stockage pour un pool de stockage de système de fichiers préformaté, d'initialiser le périphérique source de stockage et de définir le format des données.virsh pool-build guest_images_disk
# virsh pool-build guest_images_disk Pool guest_images_disk built
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLa construction du chemin d'accès à la cible n'est nécessaire que pour les pools de stockage sur disque, sur système de fichiers et logiques. Si
libvirt
détecte que le format de données de l'unité de stockage source diffère du type de pool de stockage sélectionné, la construction échoue, sauf si l'optionoverwrite
soit spécifiée.Verify that the pool was created
Utilisez la commande
virsh pool-list
pour vérifier que le pool a été créé.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Start the storage pool
Utilisez la commande
virsh pool-start
pour monter le pool de stockage.virsh pool-start guest_images_disk
# virsh pool-start guest_images_disk Pool guest_images_disk started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLa commande
virsh pool-start
n'est nécessaire que pour les pools de stockage permanents. Les pools de stockage transitoires sont automatiquement démarrés lors de leur création.[Optional] Turn on autostart
Par défaut, un pool de stockage défini avec la commande
virsh
n'est pas configuré pour démarrer automatiquement chaque fois que les services de virtualisation démarrent. Utilisez la commandevirsh pool-autostart
pour configurer le pool de stockage afin qu'il démarre automatiquement.virsh pool-autostart guest_images_disk
# virsh pool-autostart guest_images_disk Pool guest_images_disk marked as autostarted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Utilisez la commande
virsh pool-info
pour vérifier que le pool de stockage est dans l'étatrunning
état. Vérifiez que les tailles signalées sont conformes aux attentes et que le démarrage automatique est configuré correctement.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.4. Création de pools de stockage basés sur des systèmes de fichiers à l'aide de la CLI Copier lienLien copié sur presse-papiers!
Lorsque vous souhaitez créer un pool de stockage sur un système de fichiers qui n'est pas monté, utilisez le pool de stockage basé sur le système de fichiers. Ce pool de stockage est basé sur un point de montage de système de fichiers donné. Vous pouvez utiliser l'utilitaire virsh
pour créer des pools de stockage basés sur le système de fichiers.
Conditions préalables
Assurez-vous que votre hyperviseur prend en charge les pools de stockage basés sur des systèmes de fichiers :
virsh pool-capabilities | grep "'fs' supported='yes'"
# virsh pool-capabilities | grep "'fs' supported='yes'"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la commande affiche un résultat, les pools basés sur des fichiers sont pris en charge.
Préparez un périphérique sur lequel vous baserez le pool de stockage. Pour ce faire, préférez les partitions (par exemple,
/dev/sdb1
) ou les volumes LVM. Si vous donnez à une VM un accès en écriture à un disque entier ou à un périphérique bloc (par exemple,/dev/sdb
), la VM le partitionnera probablement ou y créera ses propres groupes LVM. Cela peut entraîner des erreurs système sur l'hôte.Cependant, si vous avez besoin d'utiliser un périphérique bloc entier pour le pool de stockage, Red Hat recommande de protéger toutes les partitions importantes sur le périphérique de la fonction
os-prober
de GRUB. Pour ce faire, éditez le fichier/etc/default/grub
et appliquez l'une des configurations suivantes :Désactiver
os-prober
.GRUB_DISABLE_OS_PROBER=true
GRUB_DISABLE_OS_PROBER=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Empêcher
os-prober
de découvrir une partition spécifique. Par exemple :GRUB_OS_PROBER_SKIP_LIST="5ef6313a-257c-4d43@/dev/sdb1"
GRUB_OS_PROBER_SKIP_LIST="5ef6313a-257c-4d43@/dev/sdb1"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Create a storage pool
Utilisez la commande
virsh pool-define-as
pour définir et créer un pool de stockage de type système de fichiers. Par exemple, pour créer un pool de stockage nomméguest_images_fs
qui utilise la partition /dev/sdc1 et qui est monté sur le répertoire /guest_images :virsh pool-define-as guest_images_fs fs --source-dev /dev/sdc1 --target /guest_images
# virsh pool-define-as guest_images_fs fs --source-dev /dev/sdc1 --target /guest_images Pool guest_images_fs defined
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous disposez déjà d'une configuration XML du pool de stockage que vous souhaitez créer, vous pouvez également définir le pool sur la base du XML. Pour plus d'informations, voir Paramètres des pools de stockage basés sur le système de fichiers.
Define the storage pool target path
La commande
virsh pool-build
permet de créer un chemin cible de pool de stockage pour un pool de stockage de système de fichiers préformaté, d'initialiser le périphérique source de stockage et de définir le format des données.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verify that the pool was created
Utilisez la commande
virsh pool-list
pour vérifier que le pool a été créé.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Start the storage pool
Utilisez la commande
virsh pool-start
pour monter le pool de stockage.virsh pool-start guest_images_fs
# virsh pool-start guest_images_fs Pool guest_images_fs started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLa commande
virsh pool-start
n'est nécessaire que pour les pools de stockage permanents. Les pools de stockage transitoires sont automatiquement démarrés lors de leur création.Optional: Activer le démarrage automatique
Par défaut, un pool de stockage défini avec la commande
virsh
n'est pas configuré pour démarrer automatiquement chaque fois que les services de virtualisation démarrent. Utilisez la commandevirsh pool-autostart
pour configurer le pool de stockage afin qu'il démarre automatiquement.virsh pool-autostart guest_images_fs
# virsh pool-autostart guest_images_fs Pool guest_images_fs marked as autostarted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Utilisez la commande
virsh pool-info
pour vérifier que le pool de stockage est dans l'étatrunning
état. Vérifiez que les tailles signalées sont conformes aux attentes et que le démarrage automatique est configuré correctement.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez qu'il existe un répertoire
lost found
dans le chemin cible sur le système de fichiers, ce qui indique que le périphérique est monté.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.5. Création de pools de stockage basés sur iSCSI à l'aide de la CLI Copier lienLien copié sur presse-papiers!
Internet Small Computer Systems Interface (iSCSI) est une norme de réseau de stockage basée sur IP permettant de relier des installations de stockage de données. Si vous souhaitez disposer d'un pool de stockage sur un serveur iSCSI, vous pouvez utiliser l'utilitaire virsh
pour créer des pools de stockage basés sur iSCSI.
Conditions préalables
Assurez-vous que votre hyperviseur prend en charge les pools de stockage basés sur iSCSI :
virsh pool-capabilities | grep "'iscsi' supported='yes'"
# virsh pool-capabilities | grep "'iscsi' supported='yes'"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la commande affiche une sortie, les pools basés sur iSCSI sont pris en charge.
Procédure
Create a storage pool
Utilisez la commande
virsh pool-define-as
pour définir et créer un pool de stockage de type iSCSI. Par exemple, pour créer un pool de stockage nomméguest_images_iscsi
qui utilise l'IQNiqn.2010-05.com.example.server1:iscsirhel7guest
surserver1.example.com
, et qui est monté sur le chemin/dev/disk/by-path
:virsh pool-define-as --name guest_images_iscsi --type iscsi --source-host server1.example.com --source-dev iqn.2010-05.com.example.server1:iscsirhel7guest --target /dev/disk/by-path
# virsh pool-define-as --name guest_images_iscsi --type iscsi --source-host server1.example.com --source-dev iqn.2010-05.com.example.server1:iscsirhel7guest --target /dev/disk/by-path Pool guest_images_iscsi defined
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous disposez déjà d'une configuration XML du pool de stockage que vous souhaitez créer, vous pouvez également définir le pool sur la base du XML. Pour plus de détails, voir Paramètres des pools de stockage basés sur iSCSI.
Verify that the pool was created
Utilisez la commande
virsh pool-list
pour vérifier que le pool a été créé.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Start the storage pool
Utilisez la commande
virsh pool-start
pour monter le pool de stockage.virsh pool-start guest_images_iscsi
# virsh pool-start guest_images_iscsi Pool guest_images_iscsi started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLa commande
virsh pool-start
n'est nécessaire que pour les pools de stockage permanents. Les pools de stockage transitoires sont automatiquement démarrés lors de leur création.[Optional] Turn on autostart
Par défaut, un pool de stockage défini avec la commande
virsh
n'est pas configuré pour démarrer automatiquement chaque fois que les services de virtualisation démarrent. Utilisez la commandevirsh pool-autostart
pour configurer le pool de stockage afin qu'il démarre automatiquement.virsh pool-autostart guest_images_iscsi
# virsh pool-autostart guest_images_iscsi Pool guest_images_iscsi marked as autostarted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Utilisez la commande
virsh pool-info
pour vérifier que le pool de stockage est dans l'étatrunning
état. Vérifiez que les tailles signalées sont conformes aux attentes et que le démarrage automatique est configuré correctement.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.6. Création de pools de stockage basés sur LVM à l'aide de la CLI Copier lienLien copié sur presse-papiers!
Si vous souhaitez disposer d'un pool de stockage faisant partie d'un groupe de volumes LVM, vous pouvez utiliser l'utilitaire virsh
pour créer des pools de stockage basés sur LVM.
Recommandations
Avant de créer un pool de stockage basé sur LVM, il convient de tenir compte des points suivants :
- Les pools de stockage basés sur LVM n'offrent pas toute la souplesse de LVM.
-
libvirt
prend en charge les volumes logiques légers, mais n'offre pas les fonctionnalités des pools de stockage légers. Les pools de stockage basés sur LVM sont des groupes de volumes. Vous pouvez créer des groupes de volumes à l'aide de l'utilitaire
virsh
, mais de cette façon vous ne pouvez avoir qu'un seul périphérique dans le groupe de volumes créé. Pour créer un groupe de volumes avec plusieurs périphériques, utilisez plutôt l'utilitaire LVM, voir Comment créer un groupe de volumes sous Linux avec LVM.Pour plus d'informations sur les groupes de volumes, consultez le site Red Hat Enterprise Linux Logical Volume Manager Administration Guide.
-
Les pools de stockage basés sur LVM nécessitent une partition complète du disque. Si vous activez une nouvelle partition ou un nouveau périphérique à l'aide des commandes
virsh
, la partition sera formatée et toutes les données seront effacées. Si vous utilisez le groupe de volumes existant d'un hôte, comme dans ces procédures, rien ne sera effacé.
Conditions préalables
Assurez-vous que votre hyperviseur prend en charge les pools de stockage basés sur LVM :
virsh pool-capabilities | grep "'logical' supported='yes'"
# virsh pool-capabilities | grep "'logical' supported='yes'"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la commande affiche une sortie, les pools basés sur LVM sont pris en charge.
Procédure
Create a storage pool
Utilisez la commande
virsh pool-define-as
pour définir et créer un pool de stockage de type LVM. Par exemple, la commande suivante crée un pool de stockage nomméguest_images_lvm
qui utilise le groupe de volumeslvm_vg
et est monté sur le répertoire/dev/lvm_vg
:virsh pool-define-as guest_images_lvm logical --source-name lvm_vg --target /dev/lvm_vg
# virsh pool-define-as guest_images_lvm logical --source-name lvm_vg --target /dev/lvm_vg Pool guest_images_lvm defined
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous disposez déjà d'une configuration XML du pool de stockage que vous souhaitez créer, vous pouvez également définir le pool sur la base du XML. Pour plus d'informations, voir Paramètres des pools de stockage basés sur LVM.
Verify that the pool was created
Utilisez la commande
virsh pool-list
pour vérifier que le pool a été créé.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Start the storage pool
Utilisez la commande
virsh pool-start
pour monter le pool de stockage.virsh pool-start guest_images_lvm
# virsh pool-start guest_images_lvm Pool guest_images_lvm started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLa commande
virsh pool-start
n'est nécessaire que pour les pools de stockage permanents. Les pools de stockage transitoires sont automatiquement démarrés lors de leur création.[Optional] Turn on autostart
Par défaut, un pool de stockage défini avec la commande
virsh
n'est pas configuré pour démarrer automatiquement chaque fois que les services de virtualisation démarrent. Utilisez la commandevirsh pool-autostart
pour configurer le pool de stockage afin qu'il démarre automatiquement.virsh pool-autostart guest_images_lvm
# virsh pool-autostart guest_images_lvm Pool guest_images_lvm marked as autostarted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Utilisez la commande
virsh pool-info
pour vérifier que le pool de stockage est dans l'étatrunning
état. Vérifiez que les tailles signalées sont conformes aux attentes et que le démarrage automatique est configuré correctement.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.7. Création de pools de stockage basés sur NFS à l'aide de la CLI Copier lienLien copié sur presse-papiers!
Si vous souhaitez disposer d'un pool de stockage sur un serveur NFS (Network File System), vous pouvez utiliser l'utilitaire virsh
pour créer des pools de stockage basés sur NFS.
Conditions préalables
Assurez-vous que votre hyperviseur prend en charge les pools de stockage basés sur NFS :
virsh pool-capabilities | grep "<value>nfs</value>"
# virsh pool-capabilities | grep "<value>nfs</value>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la commande affiche une sortie, les pools basés sur NFS sont pris en charge.
Procédure
Create a storage pool
Utilisez la commande virsh
pool-define-as
pour définir et créer un pool de stockage de type NFS. Par exemple, pour créer un pool de stockage nomméguest_images_netfs
qui utilise un serveur NFS avec l'IP111.222.111.222
monté sur le répertoire serveur/home/net_mount
en utilisant le répertoire cible/var/lib/libvirt/images/nfspool
:virsh pool-define-as --name guest_images_netfs --type netfs --source-host='111.222.111.222' --source-path='/home/net_mount' --source-format='nfs' --target='/var/lib/libvirt/images/nfspool'
# virsh pool-define-as --name guest_images_netfs --type netfs --source-host='111.222.111.222' --source-path='/home/net_mount' --source-format='nfs' --target='/var/lib/libvirt/images/nfspool'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous disposez déjà d'une configuration XML du pool de stockage que vous souhaitez créer, vous pouvez également définir le pool sur la base du XML. Pour plus d'informations, voir Paramètres des pools de stockage basés sur NFS.
Verify that the pool was created
Utilisez la commande
virsh pool-list
pour vérifier que le pool a été créé.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Start the storage pool
Utilisez la commande
virsh pool-start
pour monter le pool de stockage.virsh pool-start guest_images_netfs
# virsh pool-start guest_images_netfs Pool guest_images_netfs started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLa commande
virsh pool-start
n'est nécessaire que pour les pools de stockage permanents. Les pools de stockage transitoires sont automatiquement démarrés lors de leur création.[Optional] Turn on autostart
Par défaut, un pool de stockage défini avec la commande
virsh
n'est pas configuré pour démarrer automatiquement chaque fois que les services de virtualisation démarrent. Utilisez la commandevirsh pool-autostart
pour configurer le pool de stockage afin qu'il démarre automatiquement.virsh pool-autostart guest_images_netfs
# virsh pool-autostart guest_images_netfs Pool guest_images_netfs marked as autostarted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Utilisez la commande
virsh pool-info
pour vérifier que le pool de stockage est dans l'étatrunning
état. Vérifiez que les tailles signalées sont conformes aux attentes et que le démarrage automatique est configuré correctement.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.8. Création de pools de stockage basés sur SCSI avec des périphériques vHBA à l'aide de la CLI Copier lienLien copié sur presse-papiers!
Si vous souhaitez disposer d'un pool de stockage sur un périphérique SCSI (Small Computer System Interface), votre hôte doit pouvoir se connecter au périphérique SCSI à l'aide d'un adaptateur de bus hôte virtuel (vHBA). Vous pouvez ensuite utiliser l'utilitaire virsh
pour créer des pools de stockage basés sur SCSI.
Conditions préalables
Assurez-vous que votre hyperviseur prend en charge les pools de stockage basés sur SCSI :
virsh pool-capabilities | grep "'scsi' supported='yes'"
# virsh pool-capabilities | grep "'scsi' supported='yes'"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la commande affiche une sortie, les pools basés sur SCSI sont pris en charge.
- Avant de créer un pool de stockage basé sur SCSI avec des périphériques vHBA, créez un vHBA. Pour plus d'informations, voir Création de vHBA.
Procédure
Create a storage pool
Utilisez la commande
virsh pool-define-as
pour définir et créer un pool de stockage SCSI en utilisant un vHBA. Par exemple, la commande suivante crée un pool de stockage nomméguest_images_vhba
qui utilise un vHBA identifié par l'adaptateur parentscsi_host3
, le numéro de port mondial5001a4ace3ee047d
et le numéro de nœud mondial5001a4a93526d0a1
. Le pool de stockage est monté sur le répertoire/dev/disk/
:virsh pool-define-as guest_images_vhba scsi --adapter-parent scsi_host3 --adapter-wwnn 5001a4a93526d0a1 --adapter-wwpn 5001a4ace3ee047d --target /dev/disk/
# virsh pool-define-as guest_images_vhba scsi --adapter-parent scsi_host3 --adapter-wwnn 5001a4a93526d0a1 --adapter-wwpn 5001a4ace3ee047d --target /dev/disk/ Pool guest_images_vhba defined
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous disposez déjà d'une configuration XML du pool de stockage que vous souhaitez créer, vous pouvez également définir le pool sur la base du XML. Pour plus de détails, voir Paramètres pour les pools de stockage basés sur SCSI avec des périphériques vHBA.
Verify that the pool was created
Utilisez la commande
virsh pool-list
pour vérifier que le pool a été créé.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Start the storage pool
Utilisez la commande
virsh pool-start
pour monter le pool de stockage.virsh pool-start guest_images_vhba
# virsh pool-start guest_images_vhba Pool guest_images_vhba started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLa commande
virsh pool-start
n'est nécessaire que pour les pools de stockage permanents. Les pools de stockage transitoires sont automatiquement démarrés lors de leur création.[Optional] Turn on autostart
Par défaut, un pool de stockage défini avec la commande
virsh
n'est pas configuré pour démarrer automatiquement chaque fois que les services de virtualisation démarrent. Utilisez la commandevirsh pool-autostart
pour configurer le pool de stockage afin qu'il démarre automatiquement.virsh pool-autostart guest_images_vhba
# virsh pool-autostart guest_images_vhba Pool guest_images_vhba marked as autostarted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Utilisez la commande
virsh pool-info
pour vérifier que le pool de stockage est dans l'étatrunning
état. Vérifiez que les tailles signalées sont conformes aux attentes et que le démarrage automatique est configuré correctement.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.9. Suppression de pools de stockage à l'aide de la CLI Copier lienLien copié sur presse-papiers!
Pour supprimer un pool de stockage de votre système hôte, vous devez arrêter le pool et supprimer sa définition XML.
Procédure
Dressez la liste des pools de stockage définis à l'aide de la commande
virsh pool-list
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Arrêtez le pool de stockage que vous souhaitez supprimer à l'aide de la commande
virsh pool-destroy
.virsh pool-destroy Downloads
# virsh pool-destroy Downloads Pool Downloads destroyed
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Pour certains types de pools de stockage, vous pouvez supprimer le répertoire où réside le pool de stockage à l'aide de la commande
virsh pool-delete
. Pour ce faire, le répertoire doit être vide.virsh pool-delete Downloads
# virsh pool-delete Downloads Pool Downloads deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Supprimez la définition du pool de stockage à l'aide de la commande
virsh pool-undefine
.virsh pool-undefine Downloads
# virsh pool-undefine Downloads Pool Downloads has been undefined
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Confirmez que le pool de stockage a été supprimé.
virsh pool-list --all
# virsh pool-list --all Name State Autostart ------------------------------------------- default active yes rhel-Storage-Pool active yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.3. Gestion des pools de stockage des machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web RHEL, vous pouvez gérer les pools de stockage afin d'affecter du stockage à vos machines virtuelles (VM).
Vous pouvez utiliser la console web pour :
- Voir les informations sur le pool de stockage.
Créer des pools de stockage :
- Supprimer les pools de stockage.
- Désactiver les pools de stockage.
15.3.1. Visualisation des informations sur les pools de stockage à l'aide de la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web, vous pouvez afficher des informations détaillées sur les pools de stockage disponibles sur votre système. Les pools de stockage peuvent être utilisés pour créer des images de disque pour vos machines virtuelles.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Cliquez sur
en haut de l'interface .La fenêtre Storage pools s'affiche et présente une liste des pools de stockage configurés.
Les informations comprennent les éléments suivants :
- Name - Le nom du pool de stockage.
- Size - L'allocation actuelle et la capacité totale du pool de stockage.
- Connection - La connexion utilisée pour accéder au pool de stockage.
- State - L'état du pool de stockage.
Cliquez sur la flèche située à côté du pool de stockage dont vous souhaitez consulter les informations.
La ligne se développe pour faire apparaître le volet Vue d'ensemble contenant des informations détaillées sur le pool de stockage sélectionné.
Les informations comprennent
- Target path - Emplacement du pool de stockage.
- Persistent - Indique si le pool de stockage a une configuration persistante ou non.
- Autostart - Indique si le pool de stockage démarre automatiquement au démarrage du système.
- Type - Le type de pool de stockage.
Pour afficher la liste des volumes de stockage associés au pool de stockage, cliquez sur
.Le volet Volumes de stockage s'affiche et présente une liste des volumes de stockage configurés.
Les informations comprennent
- Name - Le nom du volume de stockage.
- Used by - La VM qui utilise actuellement le volume de stockage.
- Size - La taille du volume.
15.3.2. Création de pools de stockage basés sur des répertoires à l'aide de la console web Copier lienLien copié sur presse-papiers!
Un pool de stockage basé sur un répertoire est basé sur un répertoire dans un système de fichiers monté existant. Ceci est utile, par exemple, lorsque vous souhaitez utiliser l'espace restant sur le système de fichiers à d'autres fins.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans la console Web RHEL, cliquez sur Virtual Machines.
dans l'ongletLa fenêtre Storage pools s'affiche et présente la liste des pools de stockage configurés, le cas échéant.
Cliquez sur
.La boîte de dialogue Create storage pool apparaît.
- Entrez un nom pour le pool de stockage.
Dans le menu déroulant Type, sélectionnez Filesystem directory.
NoteSi l'option Filesystem directory n'apparaît pas dans le menu déroulant, c'est que votre hyperviseur ne prend pas en charge les pools de stockage basés sur des répertoires.
Saisissez les informations suivantes :
- Target path - Emplacement du pool de stockage.
- Startup - Démarrage ou non du pool de stockage au démarrage de l'hôte.
Cliquez sur
.Le pool de stockage est créé, la boîte de dialogue Create Storage Pool se ferme et le nouveau pool de stockage apparaît dans la liste des pools de stockage.
15.3.3. Création de pools de stockage basés sur NFS à l'aide de la console web Copier lienLien copié sur presse-papiers!
Un pool de stockage basé sur NFS repose sur un système de fichiers hébergé sur un serveur.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans la console Web RHEL, cliquez sur Virtual Machines.
dans l'ongletLa fenêtre Storage pools s'affiche et présente la liste des pools de stockage configurés, le cas échéant.
Cliquez sur
.La boîte de dialogue Create storage pool apparaît.
- Entrez un nom pour le pool de stockage.
Dans le menu déroulant Type, sélectionnez Network file system.
NoteSi vous ne voyez pas l'option Network file system dans le menu déroulant, c'est que votre hyperviseur ne prend pas en charge les pools de stockage basés sur nfs.
Saisissez le reste des informations :
- Target path - Le chemin spécifiant la cible. Il s'agit du chemin utilisé pour le pool de stockage.
- Host - Le nom d'hôte du serveur réseau où se trouve le point de montage. Il peut s'agir d'un nom d'hôte ou d'une adresse IP.
- Source path - Le répertoire utilisé sur le serveur du réseau.
- Startup - Démarrage ou non du pool de stockage au démarrage de l'hôte.
Cliquez sur
.Le pool de stockage est créé. La boîte de dialogue Create storage pool se ferme et le nouveau pool de stockage apparaît dans la liste des pools de stockage.
15.3.4. Création de pools de stockage basés sur iSCSI à l'aide de la console web Copier lienLien copié sur presse-papiers!
Un pool de stockage iSCSI est basé sur l'Internet Small Computer Systems Interface (iSCSI), une norme de réseau de stockage IP permettant de relier des installations de stockage de données.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans la console Web RHEL, cliquez sur Virtual Machines.
dans l'ongletLa fenêtre Storage pools s'affiche et présente la liste des pools de stockage configurés, le cas échéant.
Cliquez sur
.La boîte de dialogue Create storage pool apparaît.
- Entrez un nom pour le pool de stockage.
Dans le menu déroulant Type, sélectionnez iSCSI target.
Saisissez le reste des informations :
- Target Path - Le chemin spécifiant la cible. Il s'agit du chemin utilisé pour le pool de stockage.
- Host - Le nom d'hôte ou l'adresse IP du serveur ISCSI.
- Source path - Le nom unique iSCSI Qualified Name (IQN) de la cible iSCSI.
- Startup - Démarrage ou non du pool de stockage au démarrage de l'hôte.
Cliquez sur
.Le pool de stockage est créé. La boîte de dialogue Create storage pool se ferme et le nouveau pool de stockage apparaît dans la liste des pools de stockage.
15.3.5. Création de pools de stockage sur disque à l'aide de la console web Copier lienLien copié sur presse-papiers!
Un pool de stockage sur disque utilise des partitions entières de disque.
- Selon la version de libvirt utilisée, dédier un disque à un pool de stockage peut reformater et effacer toutes les données actuellement stockées sur le périphérique de disque. Il est fortement recommandé de sauvegarder les données sur le périphérique de stockage avant de créer un pool de stockage.
Lorsque des disques entiers ou des périphériques en mode bloc sont transmis à la machine virtuelle, celle-ci les partitionne ou crée ses propres groupes LVM. La machine hôte peut alors détecter ces partitions ou groupes LVM et provoquer des erreurs.
Ces erreurs peuvent également se produire lorsque vous créez manuellement des partitions ou des groupes LVM et que vous les transmettez à la machine virtuelle.
Pour éviter ces erreurs, utilisez plutôt des pools de stockage basés sur des fichiers.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans la console Web RHEL, cliquez sur Virtual Machines.
dans l'ongletLa fenêtre Storage pools s'affiche et présente la liste des pools de stockage configurés, le cas échéant.
Cliquez sur
.La boîte de dialogue Create storage pool apparaît.
- Entrez un nom pour le pool de stockage.
Dans le menu déroulant Type, sélectionnez Physical disk device.
NoteSi l'option Physical disk device n'apparaît pas dans le menu déroulant, c'est que votre hyperviseur ne prend pas en charge les pools de stockage sur disque.
Saisissez le reste des informations :
- Target Path - Chemin d'accès spécifiant le périphérique cible. Il s'agit du chemin utilisé pour le pool de stockage.
-
Source path - Le chemin d'accès spécifiant l'unité de stockage. Par exemple,
/dev/sdb
. - Format - Le type de table de partition.
- Startup - Démarrage ou non du pool de stockage au démarrage de l'hôte.
Cliquez sur
.Le pool de stockage est créé. La boîte de dialogue Create storage pool se ferme et le nouveau pool de stockage apparaît dans la liste des pools de stockage.
15.3.6. Création de pools de stockage basés sur LVM à l'aide de la console web Copier lienLien copié sur presse-papiers!
Un pool de stockage basé sur LVM est basé sur des groupes de volumes, que vous pouvez gérer à l'aide du Logical Volume Manager (LVM). Un groupe de volumes est une combinaison de plusieurs volumes physiques qui crée une structure de stockage unique.
- Les pools de stockage basés sur LVM n'offrent pas toute la souplesse de LVM.
-
libvirt
prend en charge les volumes logiques légers, mais n'offre pas les fonctionnalités des pools de stockage légers. -
Les pools de stockage basés sur LVM nécessitent une partition complète du disque. Si vous activez une nouvelle partition ou un nouveau périphérique à l'aide des commandes
virsh
, la partition sera formatée et toutes les données seront effacées. Si vous utilisez le groupe de volumes existant d'un hôte, comme dans ces procédures, rien ne sera effacé. Pour créer un groupe de volumes avec plusieurs périphériques, utilisez plutôt l'utilitaire LVM, voir Comment créer un groupe de volumes sous Linux avec LVM.
Pour plus d'informations sur les groupes de volumes, consultez le site Red Hat Enterprise Linux Logical Volume Manager Administration Guide.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans la console Web RHEL, cliquez sur Virtual Machines.
dans l'ongletLa fenêtre Storage pools s'affiche et présente la liste des pools de stockage configurés, le cas échéant.
Cliquez sur
.La boîte de dialogue Create storage pool apparaît.
- Entrez un nom pour le pool de stockage.
Dans le menu déroulant Type, sélectionnez LVM volume group.
NoteSi l'option LVM volume group n'apparaît pas dans le menu déroulant, c'est que votre hyperviseur ne prend pas en charge les pools de stockage basés sur LVM.
Saisissez le reste des informations :
- Source volume group - Le nom du groupe de volumes LVM que vous souhaitez utiliser.
- Startup - Démarrage ou non du pool de stockage au démarrage de l'hôte.
Cliquez sur
.Le pool de stockage est créé. La boîte de dialogue Create storage pool se ferme et le nouveau pool de stockage apparaît dans la liste des pools de stockage.
15.3.7. Suppression de pools de stockage à l'aide de la console web Copier lienLien copié sur presse-papiers!
Vous pouvez supprimer des pools de stockage pour libérer des ressources sur l'hôte ou sur le réseau afin d'améliorer les performances du système. La suppression des pools de stockage libère également des ressources qui peuvent alors être utilisées par d'autres machines virtuelles (VM).
Sauf indication contraire, la suppression d'un pool de stockage n'entraîne pas la suppression simultanée des volumes de stockage qu'il contient.
Pour désactiver temporairement un pool de stockage au lieu de le supprimer, voir Désactiver des pools de stockage à l'aide de la console web
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
- Détachez le disque de la VM.
- Si vous souhaitez supprimer les volumes de stockage associés en même temps que le pool, activez le pool.
Procédure
Cliquez sur Virtual Machines.
dans l'ongletLa fenêtre Storage Pools s'affiche et présente une liste des pools de stockage configurés.
Cliquez sur le bouton de menu
du pool de stockage que vous souhaitez supprimer et cliquez sur .Une boîte de dialogue de confirmation apparaît.
- Optional: Pour supprimer les volumes de stockage à l'intérieur du pool, cochez les cases correspondantes dans la boîte de dialogue.
Cliquez sur
.Le pool de stockage est supprimé. Si vous avez coché la case à l'étape précédente, les volumes de stockage associés sont également supprimés.
15.3.8. Désactivation des pools de stockage à l'aide de la console web Copier lienLien copié sur presse-papiers!
Si vous ne souhaitez pas supprimer définitivement un pool de stockage, vous pouvez le désactiver temporairement.
Lorsque vous désactivez un pool de stockage, aucun nouveau volume ne peut être créé dans ce pool. Cependant, les machines virtuelles (VM) qui ont des volumes dans ce pool continueront à fonctionner. Ceci est utile pour un certain nombre de raisons, par exemple, vous pouvez limiter le nombre de volumes qui peuvent être créés dans un pool afin d'augmenter les performances du système.
Pour désactiver un pool de stockage à l'aide de la console web RHEL, suivez la procédure suivante.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Cliquez sur
stockage en haut de l'onglet Machines virtuelles. La fenêtre Pools de stockage apparaît, affichant une liste des pools de stockage configurés.Cliquez sur
sur la ligne du pool de stockage.Le pool de stockage est désactivé.
15.4. Paramètres de création des pools de stockage Copier lienLien copié sur presse-papiers!
En fonction du type de pool de stockage dont vous avez besoin, vous pouvez modifier son fichier de configuration XML et définir un type spécifique de pool de stockage. Cette section fournit des informations sur les paramètres XML nécessaires à la création de différents types de pools de stockage, ainsi que des exemples.
15.4.1. Paramètres du pool de stockage basé sur un répertoire Copier lienLien copié sur presse-papiers!
Lorsque vous souhaitez créer ou modifier un pool de stockage basé sur un répertoire à l'aide d'un fichier de configuration XML, vous devez inclure certains paramètres requis. Voir le tableau suivant pour plus d'informations sur ces paramètres.
Vous pouvez utiliser la commande virsh pool-define
pour créer un pool de stockage basé sur la configuration XML d'un fichier spécifié. Par exemple :
virsh pool-define ~/guest_images.xml
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_dir
Parameters
Le tableau suivant fournit une liste des paramètres requis pour le fichier XML d'un pool de stockage basé sur un répertoire.
Description | XML |
---|---|
Le type de pool de stockage |
|
Le nom du pool de stockage |
|
Le chemin spécifiant la cible. Il s'agit du chemin utilisé pour le pool de stockage. |
|
Exemple :
Voici un exemple de fichier XML pour un pool de stockage basé sur le répertoire /guest_images
:
15.4.2. Paramètres du pool de stockage sur disque Copier lienLien copié sur presse-papiers!
Lorsque vous souhaitez créer ou modifier un pool de stockage sur disque à l'aide d'un fichier de configuration XML, vous devez inclure certains paramètres requis. Voir le tableau suivant pour plus d'informations sur ces paramètres.
Vous pouvez utiliser la commande virsh pool-define
pour créer un pool de stockage basé sur la configuration XML d'un fichier spécifié. Par exemple :
virsh pool-define ~/guest_images.xml
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_disk
Parameters
Le tableau suivant fournit une liste des paramètres requis pour le fichier XML d'un pool de stockage sur disque.
Description | XML |
---|---|
Le type de pool de stockage |
|
Le nom du pool de stockage |
|
Le chemin d'accès spécifiant l'unité de stockage. Par exemple, |
|
Le chemin d'accès spécifiant le périphérique cible. Il s'agit du chemin utilisé pour le pool de stockage. |
|
Exemple :
Voici un exemple de fichier XML pour un pool de stockage sur disque :
15.4.3. Paramètres du pool de stockage basé sur un système de fichiers Copier lienLien copié sur presse-papiers!
Lorsque vous souhaitez créer ou modifier un pool de stockage basé sur un système de fichiers à l'aide d'un fichier de configuration XML, vous devez inclure certains paramètres requis. Voir le tableau suivant pour plus d'informations sur ces paramètres.
Vous pouvez utiliser la commande virsh pool-define
pour créer un pool de stockage basé sur la configuration XML d'un fichier spécifié. Par exemple :
virsh pool-define ~/guest_images.xml
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_fs
Parameters
Le tableau suivant fournit une liste des paramètres requis pour le fichier XML d'un pool de stockage basé sur un système de fichiers.
Description | XML |
---|---|
Le type de pool de stockage |
|
Le nom du pool de stockage |
|
Le chemin d'accès spécifiant la partition. Par exemple, |
|
Le type de système de fichiers, par exemple ext4. |
|
Le chemin spécifiant la cible. Il s'agit du chemin utilisé pour le pool de stockage. |
|
Exemple :
Voici un exemple de fichier XML pour un pool de stockage basé sur la partition /dev/sdc1
:
15.4.4. paramètres du pool de stockage basé sur iSCSI Copier lienLien copié sur presse-papiers!
Lorsque vous souhaitez créer ou modifier un pool de stockage basé sur iSCSI à l'aide d'un fichier de configuration XML, vous devez inclure certains paramètres requis. Voir le tableau suivant pour plus d'informations sur ces paramètres.
Vous pouvez utiliser la commande virsh pool-define
pour créer un pool de stockage basé sur la configuration XML d'un fichier spécifié. Par exemple :
virsh pool-define ~/guest_images.xml
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_iscsi
Parameters
Le tableau suivant fournit une liste des paramètres requis pour le fichier XML d'un pool de stockage basé sur iSCSI.
Description | XML |
---|---|
Le type de pool de stockage |
|
Le nom du pool de stockage |
|
Le nom de l'hôte |
|
L'IQN iSCSI |
|
Le chemin spécifiant la cible. Il s'agit du chemin utilisé pour le pool de stockage. |
|
[Facultatif] IQN de l'initiateur iSCSI. Ceci n'est nécessaire que lorsque l'ACL restreint le LUN à un initiateur particulier. |
|
L'IQN de l'initiateur iSCSI peut être déterminé à l'aide de la commande virsh find-storage-pool-sources-as
iscsi.
Exemple :
Voici un exemple de fichier XML pour un pool de stockage basé sur le périphérique iSCSI spécifié :
15.4.5. Paramètres du pool de stockage basé sur LVM Copier lienLien copié sur presse-papiers!
Lorsque vous souhaitez créer ou modifier un pool de stockage basé sur LVM à l'aide d'un fichier de configuration XML, vous devez inclure certains paramètres requis. Voir le tableau suivant pour plus d'informations sur ces paramètres.
Vous pouvez utiliser la commande virsh pool-define
pour créer un pool de stockage basé sur la configuration XML d'un fichier spécifié. Par exemple :
virsh pool-define ~/guest_images.xml
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_logical
Parameters
Le tableau suivant fournit une liste des paramètres requis pour le fichier XML d'un pool de stockage basé sur LVM.
Description | XML |
---|---|
Le type de pool de stockage |
|
Le nom du pool de stockage |
|
Chemin d'accès au périphérique du pool de stockage |
|
Le nom du groupe de volumes |
|
Le format du groupe virtuel |
|
Le chemin cible |
|
Si le groupe de volumes logiques est composé de plusieurs partitions de disque, il peut y avoir plusieurs périphériques sources répertoriés. Par exemple :
Exemple :
Voici un exemple de fichier XML pour un pool de stockage basé sur le LVM spécifié :
15.4.6. Paramètres du pool de stockage basé sur NFS Copier lienLien copié sur presse-papiers!
Lorsque vous souhaitez créer ou modifier un pool de stockage basé sur NFS à l'aide d'un fichier de configuration XML, vous devez inclure certains paramètres requis. Voir le tableau suivant pour plus d'informations sur ces paramètres.
Vous pouvez utiliser la commande virsh pool-define
pour créer un pool de stockage basé sur la configuration XML d'un fichier spécifié. Par exemple :
virsh pool-define ~/guest_images.xml
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_netfs
Parameters
Le tableau suivant fournit une liste des paramètres requis pour le fichier XML d'un pool de stockage basé sur NFS.
Description | XML |
---|---|
Le type de pool de stockage |
|
Le nom du pool de stockage |
|
Le nom d'hôte du serveur réseau où se trouve le point de montage. Il peut s'agir d'un nom d'hôte ou d'une adresse IP. |
|
Le format du pool de stockage | L'un des éléments suivants :
|
Le répertoire utilisé sur le serveur du réseau |
|
Le chemin spécifiant la cible. Il s'agit du chemin utilisé pour le pool de stockage. |
|
Exemple :
Voici un exemple de fichier XML pour un pool de stockage basé sur le répertoire /home/net_mount
du serveur NFS file_server
:
15.4.7. Paramètres pour les pools de stockage basés sur SCSI avec des périphériques vHBA Copier lienLien copié sur presse-papiers!
Pour créer ou modifier un fichier de configuration XML pour un pool de stockage basé sur SCSi qui utilise un périphérique vHBA (virtual host adapter bus), vous devez inclure certains paramètres requis dans le fichier de configuration XML. Voir le tableau suivant pour plus d'informations sur les paramètres requis.
Vous pouvez utiliser la commande virsh pool-define
pour créer un pool de stockage basé sur la configuration XML d'un fichier spécifié. Par exemple :
virsh pool-define ~/guest_images.xml
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_vhba
Parameters
Le tableau suivant fournit une liste des paramètres requis pour le fichier XML d'un pool de stockage basé sur SCSI avec vHBA.
Description | XML |
---|---|
Le type de pool de stockage |
|
Le nom du pool de stockage |
|
L'identifiant du vHBA. L'attribut |
|
Le chemin d'accès à la cible. Il s'agit du chemin utilisé pour le pool de stockage. |
|
Lorsque le champ <path>
est égal à /dev/
libvirt
génère un chemin d'accès court et unique pour le chemin d'accès du volume. Par exemple, /dev/sdc
. Sinon, le chemin d'accès de l'hôte physique est utilisé. Par exemple, , /dev/disk/by-path/pci-0000:10:00.0-fc-0x5006016044602198-lun-0
. Le chemin d'accès court unique permet au même volume d'être répertorié dans plusieurs machines virtuelles (VM) par plusieurs pools de stockage. Si le chemin d'accès de l'hôte physique est utilisé par plusieurs machines virtuelles, des avertissements de duplication de type de périphérique peuvent survenir.
L'attribut parent
peut être utilisé dans le champ <adapter>
pour identifier le parent HBA physique à partir duquel les LUN NPIV par différents chemins peuvent être utilisés. Ce champ, scsi_hostN
, est combiné avec les attributs vports
et max_vports
pour compléter l'identification du parent. Les attributs parent
, parent_wwnn
, parent_wwpn
ou parent_fabric_wwn
garantissent à des degrés divers qu'après le redémarrage de l'hôte, le même HBA est utilisé.
-
Si aucun
parent
n'est spécifié,libvirt
utilise le premier adaptateurscsi_hostN
qui prend en charge NPIV. -
Si seul le site
parent
est spécifié, des problèmes peuvent survenir si des adaptateurs hôtes SCSI supplémentaires sont ajoutés à la configuration. -
Si
parent_wwnn
ouparent_wwpn
est spécifié, le même HBA est utilisé après le redémarrage de l'hôte. -
Si
parent_fabric_wwn
est utilisé, après le redémarrage de l'hôte, un HBA sur le même tissu est sélectionné, quel que soit lescsi_hostN
utilisé.
Examples
Voici des exemples de fichiers XML pour les pools de stockage basés sur SCSI avec vHBA.
Un pool de stockage qui est le seul pool de stockage sur le HBA :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Un pool de stockage qui fait partie de plusieurs pools de stockage utilisant un seul vHBA et qui utilise l'attribut
parent
pour identifier le périphérique hôte SCSI :Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.5. Gestion des volumes de stockage des machines virtuelles à l'aide de la CLI Copier lienLien copié sur presse-papiers!
Vous pouvez utiliser la CLI pour gérer les aspects suivants de vos volumes de stockage afin d'affecter du stockage à vos machines virtuelles (VM) :
15.5.1. Visualisation des informations sur les volumes de stockage à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
En utilisant la ligne de commande, vous pouvez afficher une liste de tous les pools de stockage disponibles sur votre hôte, ainsi que des détails sur un pool de stockage spécifique
Procédure
La commande
virsh vol-list
permet de répertorier les volumes de stockage d'un pool de stockage donné.Copy to Clipboard Copied! Toggle word wrap Toggle overflow La commande
virsh vol-info
permet de répertorier les volumes de stockage d'un pool de stockage donné.virsh vol-info --pool RHEL-Storage-Pool --vol RHEL_Volume.qcow2
# virsh vol-info --pool RHEL-Storage-Pool --vol RHEL_Volume.qcow2 Name: RHEL_Volume.qcow2 Type: file Capacity: 60.00 GiB Allocation: 13.93 GiB
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.5.2. Création et affectation de volumes de stockage à l'aide de la CLI Copier lienLien copié sur presse-papiers!
Pour obtenir une image de disque et l'attacher à une machine virtuelle (VM) en tant que disque virtuel, créez un volume de stockage et attribuez sa configuration XML à la VM.
Conditions préalables
Un pool de stockage avec de l'espace non alloué est présent sur l'hôte.
Pour vérifier, dressez la liste des pools de stockage sur l'hôte :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Si vous n'avez pas de pool de stockage existant, créez-en un. Pour plus d'informations, voir Gestion du stockage pour les machines virtuelles.
Procédure
Créez un volume de stockage à l'aide de la commande
virsh vol-create-as
. Par exemple, pour créer un volume qcow2 de 20 Go basé sur le pool de stockageguest-images-fs
:virsh vol-create-as --pool guest-images-fs --name vm-disk1 --capacity 20 --format qcow2
# virsh vol-create-as --pool guest-images-fs --name vm-disk1 --capacity 20 --format qcow2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Important: Certains types de pools de stockage ne prennent pas en charge la commande
virsh vol-create-as
et nécessitent des processus spécifiques pour créer des volumes de stockage :- iSCSI-based - Préparez les LUN iSCSI à l'avance sur le serveur iSCSI.
-
Multipath-based - Utilisez la commande
multipathd
pour préparer ou gérer le chemin multiple. - vHBA-based - Préparez la carte fibre channel à l'avance.
Créez un fichier XML et ajoutez-y les lignes suivantes. Ce fichier sera utilisé pour ajouter le volume de stockage en tant que disque à une VM.
<disk type='volume' device='disk'> <driver name='qemu' type='qcow2'/> <source pool='guest-images-fs' volume='vm-disk1'/> <target dev='hdk' bus='ide'/> </disk>
<disk type='volume' device='disk'> <driver name='qemu' type='qcow2'/> <source pool='guest-images-fs' volume='vm-disk1'/> <target dev='hdk' bus='ide'/> </disk>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cet exemple spécifie un disque virtuel qui utilise le volume
vm-disk1
, créé à l'étape précédente, et configure le volume en tant que disquehdk
sur un buside
. Modifiez les paramètres respectifs en fonction de votre environnement.Important: Avec certains types de pools de stockage, vous devez utiliser différents formats XML pour décrire un disque de volume de stockage.
Pour les piscines multipath-based:
<disk type='block' device='disk'> <driver name='qemu' type='raw'/> <source dev='/dev/mapper/mpatha' /> <target dev='sda' bus='scsi'/> </disk>
<disk type='block' device='disk'> <driver name='qemu' type='raw'/> <source dev='/dev/mapper/mpatha' /> <target dev='sda' bus='scsi'/> </disk>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour les piscines RBD-based storage:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Utilisez le fichier XML pour affecter le volume de stockage en tant que disque à une VM. Par exemple, pour affecter un disque défini dans
~/vm-disk1.xml
à la VMtestguest1
, utilisez la commande suivante :virsh attach-device --config testguest1 ~/vm-disk1.xml
# virsh attach-device --config testguest1 ~/vm-disk1.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
- Dans le système d'exploitation invité de la VM, confirmez que l'image disque est devenue disponible en tant que disque non formaté et non alloué.
15.5.3. Suppression de volumes de stockage à l'aide de l'interface de programmation Copier lienLien copié sur presse-papiers!
Pour supprimer un volume de stockage de votre système hôte, vous devez arrêter le pool et supprimer sa définition XML.
Conditions préalables
- Toute machine virtuelle utilisant le volume de stockage à supprimer est arrêtée.
Procédure
La commande
virsh vol-list
permet de répertorier les volumes de stockage d'un pool de stockage donné.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Utilisez la commande
virsh vol-wipe
pour effacer un volume de stockage. Par exemple, pour effacer un volume de stockage nommévm-disk1
associé au pool de stockageRHEL-SP
:virsh vol-wipe --pool RHEL-SP vm-disk1
# virsh vol-wipe --pool RHEL-SP vm-disk1 Vol vm-disk1 wiped
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utilisez la commande
virsh vol-delete
pour supprimer un volume de stockage. Par exemple, pour supprimer un volume de stockage nommévm-disk1
associé au pool de stockageRHEL-SP
:virsh vol-delete --pool RHEL-SP vm-disk1
# virsh vol-delete --pool RHEL-SP vm-disk1 Vol vm-disk1 deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Utilisez à nouveau la commande
virsh vol-list
pour vérifier que le volume de stockage a été supprimé.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.6. Gestion des images de disques virtuels à l'aide de la CLI Copier lienLien copié sur presse-papiers!
Les images de disques virtuels sont un type de volumes de stockage virtuels et fournissent un espace de stockage aux machines virtuelles (VM) de la même manière que les disques durs fournissent un espace de stockage aux machines physiques.
Lors de la création d'une nouvelle VM, libvirt
crée automatiquement une nouvelle image disque, sauf indication contraire de votre part. Toutefois, en fonction de votre cas d'utilisation, vous pouvez souhaiter créer et gérer une image de disque séparément de la VM.
15.6.1. Création d'une image de disque virtuel à l'aide de qemu-img Copier lienLien copié sur presse-papiers!
Si vous avez besoin de créer une nouvelle image de disque virtuel séparément d'une nouvelle machine virtuelle (VM) et que la création d'un volume de stockage n'est pas viable pour vous, vous pouvez utiliser l'utilitaire de ligne de commande qemu-img
.
Procédure
Créez une image de disque virtuel à l'aide de l'utilitaire
qemu-img
:qemu-img create -f <format> <image-name> <size>
# qemu-img create -f <format> <image-name> <size>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Par exemple, la commande suivante crée une image disque qcow2 nommée test-image d'une taille de 30 gigaoctets.
qemu-img create -f qcow2 test-image 30G
# qemu-img create -f qcow2 test-image 30G Formatting 'test-img', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=32212254720 lazy_refcounts=off refcount_bits=16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Affichez les informations relatives à l'image que vous avez créée et vérifiez qu'elle a la taille requise et qu'elle n'est pas corrompue :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.6.2. Vérification de la cohérence d'une image de disque virtuel Copier lienLien copié sur presse-papiers!
Avant d'attacher une image de disque à une machine virtuelle (VM), assurez-vous que l'image de disque ne présente pas de problèmes, tels qu'une corruption ou une fragmentation importante. Pour ce faire, vous pouvez utiliser la commande qemu-img check
.
Si nécessaire, vous pouvez également utiliser cette commande pour tenter de réparer l'image disque.
Conditions préalables
- Toutes les machines virtuelles (VM) qui utilisent l'image disque doivent être arrêtées.
Procédure
Utilisez la commande
qemu-img check
sur l'image que vous souhaitez tester. Par exemple :qemu-img check <test-name.qcow2>
# qemu-img check <test-name.qcow2> No errors were found on the image. 327434/327680 = 99.92% allocated, 0.00% fragmented, 0.00% compressed clusters Image end offset: 21478375424
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la vérification trouve des problèmes sur l'image de disque, la sortie de la commande ressemble à ce qui suit :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Réparez-les en utilisant la commande
qemu-img check
avec l'option-r all
. Notez cependant que cela peut ne résoudre qu'une partie des problèmes.AvertissementLa réparation de l'image disque peut entraîner une corruption des données ou d'autres problèmes. Sauvegardez l'image disque avant de procéder à la réparation.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cette sortie indique le nombre de problèmes trouvés sur l'image disque après la réparation.
-
Si d'autres réparations d'images de disque sont nécessaires, vous pouvez utiliser divers outils
libguestfs
dans le shellguestfish
.
15.6.3. Redimensionnement d'une image de disque virtuel Copier lienLien copié sur presse-papiers!
Si une image de disque existante nécessite de l'espace supplémentaire, vous pouvez utiliser l'utilitaire qemu-img resize
pour modifier la taille de l'image afin de l'adapter à votre cas d'utilisation.
Conditions préalables
- Vous avez créé une copie de sauvegarde de l'image disque.
Toutes les machines virtuelles (VM) qui utilisent l'image disque doivent être arrêtées.
AvertissementLe redimensionnement de l'image disque d'une VM en cours d'exécution peut entraîner une corruption des données ou d'autres problèmes.
- Le disque dur de l'hôte dispose de suffisamment d'espace libre pour la taille prévue de l'image disque.
- Facultatif : vous vous êtes assuré que l'image de disque ne présente pas de corruption de données ou de problèmes similaires. Pour plus d'informations, voir Vérification de la cohérence d'une image de disque virtuel.
Procédure
Déterminez l'emplacement du fichier d'image disque de la VM que vous souhaitez redimensionner. Par exemple :
virsh domblklist <vm-name>
# virsh domblklist <vm-name> Target Source ---------------------------------------------------------- vda /home/username/disk-images/example-image.qcow2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Facultatif : Sauvegarder l'image disque actuelle.
cp <example-image.qcow2> <example-image-backup.qcow2>
# cp <example-image.qcow2> <example-image-backup.qcow2>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utilisez l'utilitaire
qemu-img resize
pour redimensionner l'image.Par exemple, pour augmenter la taille de <example-image.qcow2> de 10 gigaoctets :
qemu-img resize <example-image.qcow2> 10G
# qemu-img resize <example-image.qcow2> 10G
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Redimensionnez le système de fichiers, les partitions ou les volumes physiques à l'intérieur de l'image disque pour utiliser l'espace supplémentaire. Pour ce faire, dans un système d'exploitation invité RHEL, suivez les instructions des sections Gestion des périphériques de stockage et Gestion des systèmes de fichiers.
Vérification
Affiche des informations sur l'image redimensionnée et vérifie si elle a la taille prévue :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Vérifiez que l'image de disque redimensionnée ne contient pas d'erreurs potentielles. Pour plus d'informations, voir Vérification de la cohérence d'une image de disque virtuel.
15.6.4. Conversion entre formats d'images de disques virtuels Copier lienLien copié sur presse-papiers!
Vous pouvez convertir l'image du disque virtuel dans un format différent à l'aide de la commande qemu-img convert
. Par exemple, la conversion d'un format d'image de disque virtuel à un autre peut s'avérer nécessaire si vous souhaitez attacher l'image de disque à une machine virtuelle (VM) fonctionnant sur un hyperviseur différent.
Conditions préalables
- Toutes les machines virtuelles (VM) qui utilisent l'image disque doivent être arrêtées.
Procédure
Utilisez la commande
qemu-im convert
pour convertir une image de disque virtuel existante dans un format différent. Par exemple, pour convertir une image de disque raw en une image de disque QCOW2:qemu-img convert -f raw <original-image.img> -O qcow2 <converted-image.qcow2>
# qemu-img convert -f raw <original-image.img> -O qcow2 <converted-image.qcow2>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Affiche des informations sur l'image convertie et vérifie si elle a le format et la taille prévus.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Vérifiez que l'image du disque ne contient pas d'erreurs potentielles. pour plus d'informations, voir Vérifier la cohérence d'une image de disque virtuel.
15.7. Gestion des volumes de stockage des machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
En utilisant RHEL, vous pouvez gérer les volumes de stockage utilisés pour allouer de l'espace à vos machines virtuelles (VM).
Vous pouvez utiliser la console web RHEL pour :
15.7.1. Création de volumes de stockage à l'aide de la console web Copier lienLien copié sur presse-papiers!
Pour créer une machine virtuelle (VM) opérationnelle, vous avez besoin d'un périphérique de stockage local affecté à la VM et capable de stocker l'image de la VM et les données liées à la VM. Vous pouvez créer un volume de stockage dans un pool de stockage et l'affecter à une VM en tant que disque de stockage.
Pour créer des volumes de stockage à l'aide de la console web, voir la procédure suivante.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Cliquez sur
stockage en haut de l'onglet Machines virtuelles. La fenêtre Pools de stockage apparaît, affichant une liste des pools de stockage configurés.Dans la fenêtre
, cliquez sur le pool de stockage à partir duquel vous souhaitez créer un volume de stockage.La ligne se développe pour faire apparaître le volet Aperçu qui contient des informations de base sur le pool de stockage sélectionné.
Cliquez sur
en regard de l'onglet Vue d'ensemble dans la ligne développée.L'onglet Volume de stockage s'affiche avec des informations de base sur les volumes de stockage existants, le cas échéant.
Cliquez sur
.La boîte de dialogue Create storage volume apparaît.
Entrez les informations suivantes dans la boîte de dialogue Créer un volume de stockage :
- Name - Le nom du volume de stockage.
- Size - Taille du volume de stockage en MiB ou GiB.
-
Format - Le format du volume de stockage. Les types pris en charge sont
qcow2
etraw
.
Cliquez sur
.Le volume de stockage est créé, la boîte de dialogue Créer un volume de stockage se ferme et le nouveau volume de stockage apparaît dans la liste des volumes de stockage.
15.7.2. Suppression de volumes de stockage à l'aide de la console web Copier lienLien copié sur presse-papiers!
Vous pouvez supprimer des volumes de stockage pour libérer de l'espace dans le pool de stockage ou pour supprimer des éléments de stockage associés à des machines virtuelles (VM) hors service.
Pour supprimer des volumes de stockage à l'aide de la console web RHEL, voir la procédure suivante.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
- Toute machine virtuelle utilisant le volume de stockage à supprimer est arrêtée.
Procédure
Cliquez sur
stockage en haut de l'onglet Machines virtuelles. La fenêtre Pools de stockage apparaît, affichant une liste des pools de stockage configurés.Dans la fenêtre
, cliquez sur le pool de stockage à partir duquel vous souhaitez supprimer un volume de stockage.La ligne se développe pour faire apparaître le volet Aperçu qui contient des informations de base sur le pool de stockage sélectionné.
Cliquez sur
en regard de l'onglet Vue d'ensemble dans la ligne développée.L'onglet Volume de stockage s'affiche avec des informations de base sur les volumes de stockage existants, le cas échéant.
Sélectionnez le volume de stockage que vous souhaitez supprimer.
- Cliquez sur
15.8. Gérer les disques de stockage des machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
En utilisant RHEL, vous pouvez gérer les disques de stockage qui sont attachés à vos machines virtuelles (VM).
Vous pouvez utiliser la console web RHEL pour :
15.8.1. Visualisation des informations sur les disques des machines virtuelles dans la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web, vous pouvez afficher des informations détaillées sur les disques affectés à une machine virtuelle (VM) sélectionnée.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Cliquez sur la VM dont vous souhaitez consulter les informations.
Une nouvelle page s'ouvre avec une section Vue d'ensemble contenant des informations de base sur la VM sélectionnée et une section Console permettant d'accéder à l'interface graphique de la VM.
Faites défiler jusqu'à
.La section Disques affiche des informations sur les disques affectés à la VM, ainsi que des options permettant d'accéder à Add ou Edit.
Les informations comprennent les éléments suivants :
- Device - Le type de périphérique du disque.
- Used - Quantité de disque actuellement allouée.
- Capacity - Taille maximale du volume de stockage.
- Bus - Le type de disque émulé.
-
Access - Si le disque est Writeable ou Read-only. Pour les disques
raw
, vous pouvez également définir l'accès à Writeable and shared. - Source - L'unité de disque ou le fichier.
15.8.2. Ajouter de nouveaux disques aux machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
Vous pouvez ajouter de nouveaux disques aux machines virtuelles (VM) en créant un nouveau volume de stockage et en l'attachant à une VM à l'aide de la console web RHEL 9.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans l'interface
, cliquez sur la VM pour laquelle vous souhaitez créer et attacher un nouveau disque.Une nouvelle page s'ouvre avec une section Vue d'ensemble contenant des informations de base sur la VM sélectionnée et une section Console permettant d'accéder à l'interface graphique de la VM.
Faites défiler jusqu'à
.La section Disques affiche des informations sur les disques affectés à la VM, ainsi que des options permettant d'accéder à Add ou Edit.
Cliquez sur
.La boîte de dialogue Add Disk apparaît.
- Sélectionnez l'option Create New.
Configurez le nouveau disque.
- Pool - Sélectionnez le pool de stockage à partir duquel le disque virtuel sera créé.
- Name - Entrez un nom pour le disque virtuel qui sera créé.
- Size - Entrez la taille et sélectionnez l'unité (MiB ou GiB) du disque virtuel qui sera créé.
-
Format - Sélectionnez le format du disque virtuel qui sera créé. Les types pris en charge sont
qcow2
etraw
. Persistence - Si cette case est cochée, le disque virtuel est persistant. Si la case n'est pas cochée, le disque virtuel est transitoire.
NoteLes disques transitoires ne peuvent être ajoutés qu'à des machines virtuelles en cours d'exécution.
Additional Options - Définir des configurations supplémentaires pour le disque virtuel.
- Cache - Sélectionnez le mécanisme de cache.
- Bus - Sélectionnez le type de disque à émuler.
- Disk Identifier - Définissez un identifiant pour le disque connecté que vous pouvez utiliser pour les configurations de stockage à chemins multiples. L'identifiant est également utile lors de l'utilisation de logiciels propriétaires dont la licence est liée à des numéros de série de disque spécifiques.
Cliquez sur
.Le disque virtuel est créé et connecté à la VM.
15.8.3. Attacher des disques existants à des machines virtuelles en utilisant la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web, vous pouvez attacher des volumes de stockage existants en tant que disques à une machine virtuelle (VM).
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans l'interface
, cliquez sur la VM pour laquelle vous souhaitez créer et attacher un nouveau disque.Une nouvelle page s'ouvre avec une section Vue d'ensemble contenant des informations de base sur la VM sélectionnée et une section Console permettant d'accéder à l'interface graphique de la VM.
Faites défiler jusqu'à
.La section Disques affiche des informations sur les disques affectés à la VM, ainsi que des options permettant d'accéder à Add ou Edit.
Cliquez sur
.La boîte de dialogue Add Disk apparaît.
Cliquez sur le bouton radio Use Existing.
Les champs de configuration appropriés apparaissent dans la boîte de dialogue Ajouter un disque.
Configurer le disque pour la VM.
- Pool - Sélectionnez le pool de stockage à partir duquel le disque virtuel sera attaché.
- Volume - Sélectionnez le volume de stockage qui sera attaché.
- Persistence - Disponible lorsque la VM est en cours d'exécution. Cochez la case Always attach pour rendre le disque virtuel persistant. Décochez la case pour rendre le disque virtuel transitoire.
Additional Options - Définir des configurations supplémentaires pour le disque virtuel.
- Cache - Sélectionnez le mécanisme de cache.
- Bus - Sélectionnez le type de disque à émuler.
- Disk Identifier - Définissez un identifiant pour le disque connecté que vous pouvez utiliser pour les configurations de stockage à chemins multiples. L'identifiant est également utile lors de l'utilisation de logiciels propriétaires dont la licence est liée à des numéros de série de disque spécifiques.
Cliquez sur
Le disque virtuel sélectionné est attaché à la VM.
15.8.4. Détacher les disques des machines virtuelles à l'aide de la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web, vous pouvez détacher les disques des machines virtuelles (VM).
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans l'interface
, cliquez sur la VM dont vous souhaitez détacher un disque.Une nouvelle page s'ouvre avec une section Vue d'ensemble contenant des informations de base sur la VM sélectionnée et une section Console permettant d'accéder à l'interface graphique de la VM.
Faites défiler jusqu'à
.La section Disques affiche des informations sur les disques affectés à la VM, ainsi que des options permettant d'accéder à Add ou Edit.
- Dans la partie droite de la ligne correspondant au disque que vous souhaitez détacher, cliquez sur le bouton Menu .
Dans le menu déroulant qui apparaît, cliquez sur le bouton
.Une boîte de dialogue de confirmation
Remove disk from VM?
apparaît.Dans la boîte de dialogue de confirmation, cliquez sur
. Si vous souhaitez également supprimer l'image disque, cliquez sur .Le disque virtuel est détaché de la VM.
15.9. Sécuriser les pools de stockage iSCSI avec les secrets libvirt Copier lienLien copié sur presse-papiers!
Les paramètres de nom d'utilisateur et de mot de passe peuvent être configurés à l'adresse virsh
pour sécuriser un pool de stockage iSCSI. Vous pouvez configurer cela avant ou après avoir défini le pool, mais le pool doit être démarré pour que les paramètres d'authentification soient pris en compte.
Les instructions suivantes permettent de sécuriser les pools de stockage basés sur iSCSI à l'aide des secrets libvirt
.
Cette procédure est requise si un user_ID
et password
ont été définis lors de la création de la cible iSCSI.
Conditions préalables
- Assurez-vous d'avoir créé un pool de stockage basé sur iSCSI. Pour plus d'informations, voir Création de pools de stockage basés sur iSCSI à l'aide de l'interface CLI.
Procédure
Créez un fichier secret libvirt avec un nom d'utilisateur CHAP (challenge-handshake authentication protocol). Par exemple, vous pouvez créer un fichier secret libvirt avec un nom d'utilisateur CHAP :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Définissez le secret libvirt avec la commande
virsh secret-define
:virsh secret-define secret.xml
# virsh secret-define secret.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez l'UUID à l'aide de la commande
virsh secret-list
:virsh secret-list
# virsh secret-list UUID Usage -------------------------------------------------------------- 2d7891af-20be-4e5e-af83-190e8a922360 iscsi iscsirhel7secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Attribuez un secret à l'UUID dans la sortie de l'étape précédente à l'aide de la commande
virsh secret-set-value
. Cela garantit que le nom d'utilisateur et le mot de passe CHAP figurent dans une liste de secrets contrôlée par libvirt. Par exemple :virsh secret-set-value --interactive 2d7891af-20be-4e5e-af83-190e8a922360
# virsh secret-set-value --interactive 2d7891af-20be-4e5e-af83-190e8a922360 Enter new value for secret: Secret value set
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajoutez une entrée d'authentification dans le fichier XML du pool de stockage à l'aide de la commande
virsh edit
et ajoutez un élément<auth>
, en spécifiantauthentication type
,username
etsecret usage
. Par exemple :Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLe sous-élément
<auth>
le sous-élément existe à différents endroits dans les fichiers de la machine virtuelle<pool>
et<disk>
XML de la machine virtuelle. Pour un élément<pool>
,<auth>
est spécifié dans l'élément<source>
car il décrit où trouver les sources de pool, l'authentification étant une propriété de certaines sources de pool (iSCSI et RBD). Pour un<disk>
qui est un sous-élément d'un domaine, l'authentification du disque iSCSI ou RBD est une propriété du disque. En outre, le sous-élément<auth>
d'un disque diffère de celui d'un pool de stockage.<auth username='redhat'> <secret type='iscsi' usage='iscsirhel7secret'/> </auth>
<auth username='redhat'> <secret type='iscsi' usage='iscsirhel7secret'/> </auth>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour activer les modifications, activez le pool de stockage. Si le pool a déjà été démarré, arrêtez et redémarrez le pool de stockage :
virsh pool-destroy iscsirhel7pool virsh pool-start iscsirhel7pool
# virsh pool-destroy iscsirhel7pool # virsh pool-start iscsirhel7pool
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.10. Créer des vHBA Copier lienLien copié sur presse-papiers!
Un adaptateur de bus hôte virtuel (vHBA) relie le système hôte à un périphérique SCSI et est nécessaire pour créer un pool de stockage basé sur SCSI.
Vous pouvez créer un dispositif vHBA en le définissant dans un fichier de configuration XML.
Procédure
Localisez les HBA sur votre système hôte en utilisant la commande
virsh nodedev-list --cap vports
.L'exemple suivant présente un hôte doté de deux HBA prenant en charge le vHBA :
virsh nodedev-list --cap vports
# virsh nodedev-list --cap vports scsi_host3 scsi_host4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Affichez les détails du HBA à l'aide de la commande
virsh nodedev-dumpxml HBA_device
à l'aide de la commandevirsh nodedev-dumpxml scsi_host3
# virsh nodedev-dumpxml scsi_host3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La sortie de la commande répertorie les champs
<name>
,<wwnn>
et<wwpn>
, qui sont utilisés pour créer un vHBA.<max_vports>
indique le nombre maximum de vHBA pris en charge. Par exemple :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple, la valeur
<max_vports>
indique qu'il y a un total de 127 ports virtuels disponibles dans la configuration HBA. La valeur<vports>
indique le nombre de ports virtuels actuellement utilisés. Ces valeurs sont mises à jour après la création d'un vHBA.Créez un fichier XML similaire à l'un des fichiers suivants pour l'hôte vHBA. Dans ces exemples, le fichier est nommé
vhba_host3.xml
.Cet exemple utilise
scsi_host3
pour décrire le vHBA parent.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cet exemple utilise une paire WWNN/WWPN pour décrire le vHBA parent.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLes valeurs WWNN et WWPN doivent correspondre à celles indiquées dans les détails du HBA vus à l'étape précédente.
Le champ
<parent>
indique le périphérique HBA à associer à ce périphérique vHBA. Les détails de la balise<device>
sont utilisés dans l'étape suivante pour créer un nouveau périphérique vHBA pour l'hôte. Pour plus d'informations sur le format XMLnodedev
, consultez les pages en amont de libvirt.NoteLa commande
virsh
ne permet pas de définir les attributsparent_wwnn
,parent_wwpn
ouparent_fabric_wwn
.Créez un VHBA basé sur le fichier XML créé à l'étape précédente en utilisant la commande
virsh nodev-create
.virsh nodedev-create vhba_host3
# virsh nodedev-create vhba_host3 Node device scsi_host5 created from vhba_host3.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Vérifiez les détails du nouveau vHBA (scsi_host5) en utilisant la commande
virsh nodedev-dumpxml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Chapitre 16. Gestion des périphériques GPU dans les machines virtuelles Copier lienLien copié sur presse-papiers!
Pour améliorer les performances graphiques de vos machines virtuelles (VM) sur un hôte RHEL 9, vous pouvez affecter un GPU hôte à une VM.
- Vous pouvez détacher le GPU de l'hôte et passer le contrôle total du GPU directement à la VM.
- Vous pouvez créer plusieurs périphériques médiatisés à partir d'un GPU physique et les affecter en tant que GPU virtuels (vGPU) à plusieurs invités. Cette fonction n'est actuellement prise en charge que sur certains GPU NVIDIA, et un seul périphérique médiatisé peut être attribué à un seul invité.
L'affectation de GPU n'est actuellement prise en charge que sur les systèmes Intel 64 et AMD64.
16.1. Affectation d'un GPU à une machine virtuelle Copier lienLien copié sur presse-papiers!
Pour accéder aux GPU attachés au système hôte et les contrôler, vous devez configurer le système hôte pour qu'il transmette le contrôle direct du GPU à la machine virtuelle (VM).
Si vous recherchez des informations sur l'attribution d'un GPU virtuel, consultez la section Gestion des périphériques NVIDIA vGPU.
Conditions préalables
Vous devez activer la prise en charge de l'IOMMU dans le noyau de la machine hôte.
Sur un hôte Intel, vous devez activer VT-d :
Régénérer la configuration GRUB avec les paramètres
intel_iommu=on
etiommu=pt
:grubby --args="intel_iommu=on iommu_pt" --update-kernel DEFAULT
# grubby --args="intel_iommu=on iommu_pt" --update-kernel DEFAULT
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Redémarrer l'hôte.
Sur un hôte AMD, vous devez activer AMD-Vi.
Notez que sur les hôtes AMD, IOMMU est activé par défaut, vous pouvez ajouter
iommu=pt
pour le faire passer en mode pass-through :Régénérer la configuration GRUB avec le paramètre
iommu=pt
:grubby --args="iommu=pt" --update-kernel DEFAULT
# grubby --args="iommu=pt" --update-kernel DEFAULT
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteL'option
pt
n'active l'IOMMU que pour les périphériques utilisés en mode pass-through et offre de meilleures performances à l'hôte. Cependant, tous les matériels ne prennent pas en charge cette option. Vous pouvez toujours attribuer des périphériques même si cette option n'est pas activée.- Redémarrer l'hôte.
Procédure
Empêche le pilote de se lier au GPU.
Identifier l'adresse du bus PCI auquel le GPU est connecté.
lspci -Dnn | grep VGA
# lspci -Dnn | grep VGA 0000:02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK106GL [Quadro K4000] [10de:11fa] (rev a1)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Empêcher le pilote graphique de l'hôte d'utiliser le GPU. Pour ce faire, utilisez l'ID PCI du GPU avec le pilote pci-stub.
Par exemple, la commande suivante empêche le pilote de se lier au GPU connecté au bus 10de:11fa:
grubby --args="pci-stub.ids=10de:11fa" --update-kernel DEFAULT
# grubby --args="pci-stub.ids=10de:11fa" --update-kernel DEFAULT
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Redémarrer l'hôte.
Optional: Si certaines fonctions GPU, telles que l'audio, ne peuvent pas être transmises à la VM en raison de limitations de prise en charge, vous pouvez modifier les liaisons de pilote des points d'extrémité au sein d'un groupe IOMMU afin de ne transmettre que les fonctions GPU nécessaires.
Convertissez les paramètres du GPU en XML et notez l'adresse PCI des points d'extrémité que vous souhaitez empêcher de s'attacher aux pilotes de l'hôte.
Pour ce faire, convertissez l'adresse du bus PCI du GPU dans un format compatible avec libvirt en ajoutant le préfixe
pci_
à l'adresse et en convertissant les délimiteurs en traits de soulignement.Par exemple, la commande suivante affiche la configuration XML du GPU connecté à l'adresse de bus
0000:02:00.0
.virsh nodedev-dumpxml pci_0000_02_00_0
# virsh nodedev-dumpxml pci_0000_02_00_0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow Empêcher les points d'extrémité de s'attacher au pilote de l'hôte.
Dans cet exemple, pour affecter le GPU à une VM, empêchez les points d'extrémité correspondant à la fonction audio,
<address domain='0x0000' bus='0x02' slot='0x00' function='0x1'/>
, de s'attacher au pilote audio de l'hôte, et attachez plutôt les points d'extrémité à VFIO-PCI.driverctl set-override 0000:02:00.1 vfio-pci
# driverctl set-override 0000:02:00.1 vfio-pci
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Attacher le GPU à la VM
Créer un fichier de configuration XML pour le GPU en utilisant l'adresse du bus PCI.
Par exemple, vous pouvez créer le fichier XML suivant, GPU-Assign.xml, en utilisant les paramètres de l'adresse du bus du GPU.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Enregistrer le fichier sur le système hôte.
Fusionner le fichier avec la configuration XML de la VM.
Par exemple, la commande suivante fusionne le fichier XML du GPU, GPU-Assign.xml, avec le fichier de configuration XML de la VM
System1
.virsh attach-device System1 --file /home/GPU-Assign.xml --persistent
# virsh attach-device System1 --file /home/GPU-Assign.xml --persistent Device attached successfully.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLe GPU est attaché en tant que périphérique graphique secondaire à la VM. L'affectation d'un GPU en tant que périphérique graphique principal n'est pas prise en charge, et Red Hat ne recommande pas de supprimer le périphérique graphique émulé principal dans la configuration XML de la VM.
Vérification
-
Le périphérique apparaît sous la section
<devices>
dans la configuration XML de la VM. Pour plus d'informations, voir Exemple de configuration XML de machine virtuelle.
Problèmes connus
Le nombre de GPU pouvant être attachés à une VM est limité par le nombre maximum de périphériques PCI assignés, qui est actuellement de 64 dans RHEL 9. Cependant, le fait d'attacher plusieurs GPU à une VM est susceptible de causer des problèmes avec l'E/S mappée en mémoire (MMIO) sur l'invité, ce qui peut avoir pour conséquence que les GPU ne sont pas disponibles pour la VM.
Pour contourner ces problèmes, définissez un espace MMIO 64 bits plus important et configurez les bits d'adresse physique de la vCPU de manière à ce que l'espace MMIO 64 bits étendu soit adressable.
- La connexion d'un périphérique GPU NVIDIA à une VM utilisant un système d'exploitation invité RHEL 9 désactive actuellement la session Wayland sur cette VM et charge une session Xorg à la place. Ceci est dû à des incompatibilités entre les pilotes NVIDIA et Wayland.
16.2. Gestion des périphériques NVIDIA vGPU Copier lienLien copié sur presse-papiers!
La fonction vGPU permet de diviser un périphérique GPU NVIDIA physique en plusieurs périphériques virtuels, appelés mediated devices
. Ces dispositifs médiatisés peuvent ensuite être affectés à plusieurs machines virtuelles (VM) en tant que GPU virtuels. Ces machines virtuelles peuvent ainsi partager les performances d'un seul GPU physique.
L'attribution d'un GPU physique aux VM, avec ou sans utilisation de périphériques médiatisés, rend impossible l'utilisation du GPU par l'hôte.
16.2.1. Configuration des périphériques NVIDIA vGPU Copier lienLien copié sur presse-papiers!
Pour configurer la fonction NVIDIA vGPU, vous devez télécharger les pilotes NVIDIA vGPU pour votre périphérique GPU, créer des périphériques médiatisés et les affecter aux machines virtuelles concernées. Pour des instructions détaillées, voir ci-dessous.
Conditions préalables
Votre GPU prend en charge les appareils à médiation vGPU. Pour obtenir une liste actualisée des GPU NVIDIA prenant en charge la création de vGPU, consultez la documentation du logiciel NVIDIA vGPU.
Si vous ne savez pas quel GPU utilise votre hôte, installez le paquetage lshw et utilisez la commande
lshw -C display
. L'exemple suivant montre que le système utilise un GPU NVIDIA Tesla P4, compatible avec vGPU.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
- Téléchargez les pilotes NVIDIA vGPU et installez-les sur votre système. Pour obtenir des instructions, consultez la documentation de NVIDIA.
Si le programme d'installation du logiciel NVIDIA n'a pas créé le fichier /etc/modprobe.d/nvidia-installer-disable-nouveau.conf, créez un fichier
conf
de n'importe quel nom dans /etc/modprobe.d/, et ajoutez les lignes suivantes dans le fichier :blacklist nouveau options nouveau modeset=0
blacklist nouveau options nouveau modeset=0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Régénérer le ramdisk initial pour le noyau actuel, puis redémarrer.
dracut --force reboot
# dracut --force # reboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez que le noyau a chargé le module
nvidia_vgpu_vfio
et que le servicenvidia-vgpu-mgr.service
fonctionne.Copy to Clipboard Copied! Toggle word wrap Toggle overflow En outre, si vous créez une vGPU basée sur un périphérique GPU NVIDIA Ampere, assurez-vous que les fonctions virtuelles sont activées pour le GPU physique. Pour plus d'informations, consultez la documentation de NVIDIA.
Générer un UUID de l'appareil.
uuidgen
# uuidgen 30820a6f-b1a5-4503-91ca-0c10ba58692a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Préparer un fichier XML avec une configuration du dispositif médiatisé, basée sur le matériel GPU détecté. Par exemple, l'exemple suivant configure un périphérique médiatisé de type
nvidia-63
vGPU sur une carte NVIDIA Tesla P4 qui fonctionne sur le bus PCI 0000:01:00.0 et utilise l'UUID généré à l'étape précédente.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Définissez un dispositif vGPU basé sur le fichier XML que vous avez préparé. Par exemple :
virsh nodedev-define vgpu-test.xml
# virsh nodedev-define vgpu-test.xml Node device mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0 created from vgpu-test.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Vérifiez que le dispositif médiatisé est répertorié comme inactif.
virsh nodedev-list --cap mdev --inactive
# virsh nodedev-list --cap mdev --inactive mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrez le dispositif vGPU que vous avez créé.
virsh nodedev-start mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
# virsh nodedev-start mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0 Device mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0 started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Assurez-vous que le dispositif médiatisé est répertorié comme actif.
virsh nodedev-list --cap mdev
# virsh nodedev-list --cap mdev mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configurer le périphérique vGPU pour qu'il démarre automatiquement après le redémarrage de l'hôte
virsh nodedev-autostart mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
# virsh nodedev-autostart mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0 Device mdev_d196754e_d8ed_4f43_bf22_684ed698b08b_0000_9b_00_0 marked as autostarted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Attachez le dispositif médiatisé à une VM dont vous souhaitez partager les ressources vGPU. Pour ce faire, ajoutez les lignes suivantes, ainsi que l'UUID précédemment généré, aux sections <devices/> de la configuration XML de la VM.
<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci' display='on'> <source> <address uuid='30820a6f-b1a5-4503-91ca-0c10ba58692a'/> </source> </hostdev>
<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci' display='on'> <source> <address uuid='30820a6f-b1a5-4503-91ca-0c10ba58692a'/> </source> </hostdev>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Notez que chaque UUID ne peut être attribué qu'à une seule VM à la fois. En outre, si la VM n'a pas de périphériques vidéo QEMU, tels que
virtio-vga
, ajoutez également le paramètreramfb='on'
sur la ligne<hostdev>
.- Pour que toutes les fonctionnalités des périphériques vGPU soient disponibles sur les machines virtuelles assignées, configurez la licence du logiciel invité NVIDIA vGPU sur les machines virtuelles. Pour plus d'informations et d'instructions, consultez le Guide de l'utilisateur du serveur de licences logicielles NVIDIA Virtual GPU.
Vérification
Interrogez les capacités de la vGPU que vous avez créée et assurez-vous qu'elle est répertoriée comme active et persistante.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrez la VM et vérifiez que le système d'exploitation invité détecte le périphérique médiatisé comme étant un GPU NVIDIA. Par exemple, si la VM utilise Linux :
lspci -d 10de: -k
# lspci -d 10de: -k 07:00.0 VGA compatible controller: NVIDIA Corporation GV100GL [Tesla V100 SXM2 32GB] (rev a1) Subsystem: NVIDIA Corporation Device 12ce Kernel driver in use: nvidia Kernel modules: nouveau, nvidia_drm, nvidia
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Problèmes connus
- L'attribution d'un périphérique NVIDIA vGPU à une VM qui utilise un système d'exploitation invité RHEL 9 désactive actuellement la session Wayland sur cette VM et charge une session Xorg à la place. Ceci est dû à des incompatibilités entre les pilotes NVIDIA et Wayland.
16.2.2. Suppression des périphériques NVIDIA vGPU Copier lienLien copié sur presse-papiers!
Pour modifier la configuration des périphériques vGPU assignés, vous devez supprimer les périphériques existants des machines virtuelles assignées. Pour plus d'informations, voir ci-dessous :
Conditions préalables
- La VM à partir de laquelle vous souhaitez supprimer le périphérique est arrêtée.
Procédure
Obtenez l'ID du dispositif médiatisé que vous souhaitez supprimer.
virsh nodedev-list --cap mdev
# virsh nodedev-list --cap mdev mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Arrêter l'instance en cours d'exécution du dispositif vGPU.
virsh nodedev-destroy mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
# virsh nodedev-destroy mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0 Destroyed node device 'mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Assurez-vous que le dispositif de médiation a été désactivé.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Supprimez le périphérique de la configuration XML de la VM. Pour ce faire, utilisez l'utilitaire
virsh edit
pour modifier la configuration XML de la VM, et supprimez le segment de configuration de mdev. Le segment ressemblera à ce qui suit :<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci'> <source> <address uuid='30820a6f-b1a5-4503-91ca-0c10ba58692a'/> </source> </hostdev>
<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci'> <source> <address uuid='30820a6f-b1a5-4503-91ca-0c10ba58692a'/> </source> </hostdev>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Notez que l'arrêt et le détachement du périphérique médiatisé ne le supprime pas, mais le conserve à l'adresse defined. Vous pouvez donc redémarrer et attacher le périphérique à une autre VM.
Optional: Pour supprimer le dispositif à médiation arrêté, supprimez sa définition.
virsh nodedev-undefine mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
# virsh nodedev-undefine mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0 Undefined node device 'mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Si vous avez seulement arrêté et détaché le périphérique, assurez-vous que le périphérique médiatisé est répertorié comme inactif.
virsh nodedev-list --cap mdev --inactive
# virsh nodedev-list --cap mdev --inactive mdev_30820a6f_b1a5_4503_91ca_0c10ba58692a_0000_01_00_0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous avez également supprimé le périphérique, assurez-vous que la commande suivante ne l'affiche pas.
virsh nodedev-list --cap mdev
# virsh nodedev-list --cap mdev
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
16.2.3. Obtenir des informations sur votre système NVIDIA vGPU Copier lienLien copié sur presse-papiers!
Pour évaluer les capacités des fonctions vGPU à votre disposition, vous pouvez obtenir des informations supplémentaires sur les périphériques médiatisés de votre système, telles que
- Combien de dispositifs médiatisés d'un type donné peuvent être créés ?
- Quels sont les dispositifs à médiation déjà configurés sur votre système.
Procédure
Pour voir les périphériques GPU disponibles sur votre hôte qui peuvent prendre en charge les périphériques vGPU, utilisez la commande
virsh nodedev-list --cap mdev_types
. Par exemple, l'illustration suivante montre un système avec deux périphériques NVIDIA Quadro RTX6000.virsh nodedev-list --cap mdev_types
# virsh nodedev-list --cap mdev_types pci_0000_5b_00_0 pci_0000_9b_00_0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour afficher les types de vGPU pris en charge par un périphérique GPU spécifique, ainsi que des métadonnées supplémentaires, utilisez la commande
virsh nodedev-dumpxml
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
16.2.4. Services de streaming de bureau à distance pour NVIDIA vGPU Copier lienLien copié sur presse-papiers!
Les services de streaming de bureau à distance suivants sont pris en charge sur l'hyperviseur RHEL 9 avec NVIDIA vGPU ou NVIDIA GPU passthrough activé :
- HP ZCentral Remote Boost/Teradici
- NICE DCV
- Mechdyne TGX
Pour plus de détails sur l'assistance, voir la matrice d'assistance du fournisseur approprié.
Chapitre 17. Configuration des connexions réseau des machines virtuelles Copier lienLien copié sur presse-papiers!
Pour que vos machines virtuelles (VM) puissent se connecter sur un réseau à votre hôte, à d'autres VM sur votre hôte et à des emplacements sur un réseau externe, la mise en réseau de la VM doit être configurée en conséquence. Pour assurer la mise en réseau des VM, l'hyperviseur RHEL 9 et les VM nouvellement créées disposent d'une configuration réseau par défaut, qui peut également être modifiée. Cette configuration peut être modifiée :
- Vous pouvez permettre aux VM de votre hôte d'être découvertes et connectées à partir d'emplacements situés en dehors de l'hôte, comme si les VM se trouvaient sur le même réseau que l'hôte.
- Vous pouvez isoler partiellement ou totalement une VM du trafic réseau entrant afin d'accroître sa sécurité et de minimiser le risque que des problèmes liés à la VM aient un impact sur l'hôte.
Les sections suivantes expliquent les différents types de configuration de réseau VM et fournissent des instructions pour mettre en place les configurations de réseau VM sélectionnées.
17.1. Comprendre les réseaux virtuels Copier lienLien copié sur presse-papiers!
La connexion des machines virtuelles (VM) à d'autres périphériques et emplacements sur un réseau doit être facilitée par le matériel hôte. Les sections suivantes expliquent les mécanismes de connexion au réseau des machines virtuelles et décrivent les paramètres par défaut du réseau des machines virtuelles.
17.1.1. Fonctionnement des réseaux virtuels Copier lienLien copié sur presse-papiers!
La mise en réseau virtuelle utilise le concept de commutateur de réseau virtuel. Un commutateur de réseau virtuel est une construction logicielle qui fonctionne sur une machine hôte. Les machines virtuelles se connectent au réseau par l'intermédiaire du commutateur de réseau virtuel. En fonction de la configuration du commutateur virtuel, une machine virtuelle peut utiliser un réseau virtuel existant géré par l'hyperviseur ou une méthode de connexion au réseau différente.
La figure suivante montre un commutateur de réseau virtuel connectant deux machines virtuelles au réseau :
Du point de vue d'un système d'exploitation invité, une connexion réseau virtuelle est identique à une connexion réseau physique. Les machines hôtes considèrent les commutateurs réseau virtuels comme des interfaces réseau. Lorsque le service virtnetworkd
est installé et démarré pour la première fois, il crée virbr0, l'interface réseau par défaut des machines virtuelles.
Pour afficher des informations sur cette interface, utilisez l'utilitaire ip
sur l'hôte.
ip addr show virbr0
$ ip addr show virbr0
3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state
UNKNOWN link/ether 1b:c4:94:cf:fd:17 brd ff:ff:ff:ff:ff:ff
inet 192.0.2.1/24 brd 192.0.2.255 scope global virbr0
Par défaut, toutes les machines virtuelles d'un même hôte sont connectées au même réseau virtuel de type NAT, appelé default, qui utilise l'interface virbr0. Pour plus d'informations, voir Configuration par défaut du réseau virtuel.
Pour un accès de base au réseau sortant uniquement à partir des machines virtuelles, aucune configuration réseau supplémentaire n'est généralement nécessaire, car le réseau par défaut est installé avec le paquetage libvirt-daemon-config-network
et est automatiquement lancé lorsque le service virtnetworkd
est démarré.
Si vous avez besoin d'une fonctionnalité réseau VM différente, vous pouvez créer des réseaux virtuels et des interfaces réseau supplémentaires et configurer vos VM pour qu'elles les utilisent. Outre le NAT par défaut, ces réseaux et interfaces peuvent être configurés pour utiliser l'un des modes suivants :
17.1.2. Configuration par défaut du réseau virtuel Copier lienLien copié sur presse-papiers!
Lorsque le service virtnetworkd
est installé pour la première fois sur un hôte de virtualisation, il contient une configuration initiale de réseau virtuel en mode de traduction d'adresse réseau (NAT). Par défaut, toutes les machines virtuelles de l'hôte sont connectées au même réseau virtuel libvirt
, appelé default. Les machines virtuelles sur ce réseau peuvent se connecter à des emplacements à la fois sur l'hôte et sur le réseau au-delà de l'hôte, mais avec les limitations suivantes :
-
Les VM sur le réseau sont visibles par l'hôte et les autres VM sur l'hôte, mais le trafic réseau est affecté par les pare-feu dans la pile réseau du système d'exploitation invité et par les règles de filtrage du réseau
libvirt
attachées à l'interface de l'invité. - Les machines virtuelles sur le réseau peuvent se connecter à des emplacements extérieurs à l'hôte, mais ne sont pas visibles pour eux. Le trafic sortant est affecté par les règles NAT, ainsi que par le pare-feu du système hôte.
Le diagramme suivant illustre la configuration par défaut du réseau VM :
17.2. Utilisation de la console web pour gérer les interfaces réseau des machines virtuelles Copier lienLien copié sur presse-papiers!
La console web RHEL 9 permet de gérer les interfaces réseau virtuelles des machines virtuelles auxquelles la console web est connectée. Vous pouvez :
17.2.1. Visualisation et modification des informations relatives à l'interface réseau virtuelle dans la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web RHEL 9, vous pouvez afficher et modifier les interfaces réseau virtuelles sur une machine virtuelle (VM) sélectionnée :
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans l'interface
, cliquez sur la VM dont vous voulez voir les informations.Une nouvelle page s'ouvre avec une section Vue d'ensemble contenant des informations de base sur la VM sélectionnée et une section Console permettant d'accéder à l'interface graphique de la VM.
Faites défiler jusqu'à
.La section Interfaces réseau affiche des informations sur l'interface réseau virtuelle configurée pour la VM ainsi que des options pour les interfaces réseau Add, Delete, Edit, ou Unplug.
Les informations comprennent les éléments suivants :
Type - Type d'interface réseau pour la VM. Les types comprennent le réseau virtuel, le pont vers le réseau local et l'attachement direct.
NoteLa connexion Ethernet générique n'est pas prise en charge dans RHEL 9 et les versions ultérieures.
- Model type - Le modèle de l'interface réseau virtuelle.
- MAC Address - L'adresse MAC de l'interface réseau virtuelle.
- IP Address - L'adresse IP de l'interface réseau virtuelle.
- Source - La source de l'interface réseau. Elle dépend du type de réseau.
- State - État de l'interface réseau virtuelle.
Pour modifier les paramètres de l'interface réseau virtuelle, cliquez sur
. La boîte de dialogue Virtual Network Interface Settings (Paramètres de l'interface réseau virtuelle) s'ouvre.- Modifier le type d'interface, la source, le modèle ou l'adresse MAC.
Cliquez sur
. L'interface réseau est modifiée.NoteLes modifications apportées aux paramètres de l'interface réseau virtuelle ne prennent effet qu'après le redémarrage de la VM.
En outre, l'adresse MAC ne peut être modifiée que lorsque la machine virtuelle est éteinte.
17.2.2. Ajout et connexion d'interfaces réseau virtuelles dans la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web RHEL 9, vous pouvez créer une interface réseau virtuelle et y connecter une machine virtuelle (VM).
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans l'interface
, cliquez sur la VM dont vous voulez voir les informations.Une nouvelle page s'ouvre avec une section Vue d'ensemble contenant des informations de base sur la VM sélectionnée et une section Console permettant d'accéder à l'interface graphique de la VM.
Faites défiler jusqu'à
.La section Interfaces réseau affiche des informations sur l'interface réseau virtuelle configurée pour la VM ainsi que des options pour les interfaces réseau Add, Edit, ou Plug.
Cliquez sur
dans la ligne de l'interface réseau virtuelle que vous souhaitez connecter.L'interface réseau virtuelle sélectionnée se connecte à la VM.
17.2.3. Déconnexion et suppression d'interfaces réseau virtuelles dans la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web RHEL 9, vous pouvez déconnecter les interfaces réseau virtuelles connectées à une machine virtuelle (VM) sélectionnée.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans l'interface
, cliquez sur la VM dont vous voulez voir les informations.Une nouvelle page s'ouvre avec une section Vue d'ensemble contenant des informations de base sur la VM sélectionnée et une section Console permettant d'accéder à l'interface graphique de la VM.
Faites défiler jusqu'à
.La section Interfaces réseau affiche des informations sur l'interface réseau virtuelle configurée pour la VM ainsi que des options pour les interfaces réseau Add, Delete, Edit, ou Unplug.
Cliquez sur
dans la ligne de l'interface réseau virtuelle que vous souhaitez déconnecter.L'interface réseau virtuelle sélectionnée se déconnecte de la VM.
17.3. Configurations réseau recommandées pour les machines virtuelles Copier lienLien copié sur presse-papiers!
Dans de nombreux cas, la configuration par défaut de la mise en réseau de la VM est suffisante. Toutefois, s'il est nécessaire d'ajuster la configuration, vous pouvez utiliser l'interface de ligne de commande (CLI) ou la console Web RHEL 9 pour le faire. Les sections suivantes décrivent des configurations de réseau VM sélectionnées pour de telles situations.
17.3.1. Configurer les machines virtuelles visibles de l'extérieur à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
Par défaut, une VM nouvellement créée se connecte à un réseau de type NAT qui utilise virbr0
, le pont virtuel par défaut de l'hôte. Ainsi, la VM peut utiliser le contrôleur d'interface réseau (NIC) de l'hôte pour se connecter à des réseaux extérieurs, mais elle n'est pas joignable depuis des systèmes externes.
Si vous souhaitez qu'une VM apparaisse sur le même réseau externe que l'hyperviseur, vous devez utiliser le mode ponté. Pour ce faire, attachez la VM à un périphérique de pont connecté au périphérique réseau physique de l'hyperviseur. Pour utiliser l'interface de ligne de commande, suivez les instructions ci-dessous.
Conditions préalables
- Une VM existante éteinte avec la configuration NAT par défaut.
La configuration IP de l'hyperviseur. Elle varie en fonction de la connexion réseau de l'hôte. À titre d'exemple, cette procédure utilise un scénario dans lequel l'hôte est connecté au réseau à l'aide d'un câble Ethernet, et l'adresse MAC du NIC physique de l'hôte est attribuée à une IP statique sur un serveur DHCP. Par conséquent, l'interface Ethernet est traitée comme l'IP de l'hyperviseur.
Pour obtenir la configuration IP de l'interface Ethernet, utilisez l'utilitaire
ip addr
:ip addr
# ip addr [...] enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 54:ee:75:49:dc:46 brd ff:ff:ff:ff:ff:ff inet 192.0.2.1/24 brd 192.0.2.255 scope global dynamic noprefixroute enp0s25
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Créez et configurez une connexion de pont pour l'interface physique de l'hôte. Pour plus d'informations, reportez-vous à la section Configuration d'un pont réseau.
Notez que dans un scénario où l'attribution statique d'IP est utilisée, vous devez déplacer le paramètre IPv4 de l'interface Ethernet physique vers l'interface de pont.
Modifiez le réseau de la VM pour utiliser l'interface pontée créée. Par exemple, l'exemple suivant permet à testguest d'utiliser bridge0.
virt-xml testguest --edit --network bridge=bridge0
# virt-xml testguest --edit --network bridge=bridge0 Domain 'testguest' defined successfully.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrer la VM.
virsh start testguest
# virsh start testguest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans le système d'exploitation invité, réglez les paramètres IP et DHCP de l'interface réseau du système comme si la VM était un autre système physique sur le même réseau que l'hyperviseur.
Les étapes spécifiques diffèrent en fonction du système d'exploitation invité utilisé par la VM. Par exemple, si le système d'exploitation invité est RHEL 9, voir Configuration d'une connexion Ethernet.
Vérification
Assurez-vous que le pont nouvellement créé fonctionne et qu'il contient à la fois l'interface physique de l'hôte et l'interface de la VM.
ip link show master bridge0
# ip link show master bridge0 2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000 link/ether 54:ee:75:49:dc:46 brd ff:ff:ff:ff:ff:ff 10: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UNKNOWN mode DEFAULT group default qlen 1000 link/ether fe:54:00:89:15:40 brd ff:ff:ff:ff:ff:ff
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assurez-vous que la VM apparaît sur le même réseau externe que l'hyperviseur :
Dans le système d'exploitation invité, obtenez l'ID réseau du système. Par exemple, s'il s'agit d'un invité Linux :
ip addr
# ip addr [...] enp0s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:09:15:46 brd ff:ff:ff:ff:ff:ff inet 192.0.2.1/24 brd 192.0.2.255 scope global dynamic noprefixroute enp0s0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Depuis un système externe connecté au réseau local, connectez-vous à la VM en utilisant l'identifiant obtenu.
ssh root@192.0.2.1
# ssh root@192.0.2.1 root@192.0.2.1's password: Last login: Mon Sep 24 12:05:36 2019 root~#*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la connexion fonctionne, le réseau a été configuré avec succès.
Résolution de problèmes
Dans certaines situations, par exemple lors de l'utilisation d'un VPN client-site alors que la VM est hébergée sur le client, il n'est pas possible d'utiliser le mode ponté pour rendre vos VM accessibles à des sites externes.
Pour contourner ce problème, vous pouvez définir le NAT de destination en utilisant
nftables
pour la VM.
17.3.2. Configurer les machines virtuelles visibles de l'extérieur à l'aide de la console web Copier lienLien copié sur presse-papiers!
Par défaut, une VM nouvellement créée se connecte à un réseau de type NAT qui utilise virbr0
, le pont virtuel par défaut de l'hôte. Ainsi, la VM peut utiliser le contrôleur d'interface réseau (NIC) de l'hôte pour se connecter à des réseaux extérieurs, mais elle n'est pas joignable depuis des systèmes externes.
Si vous souhaitez qu'une VM apparaisse sur le même réseau externe que l'hyperviseur, vous devez utiliser le mode ponté. Pour ce faire, attachez la VM à un périphérique de pont connecté au périphérique réseau physique de l'hyperviseur. Pour utiliser la console web RHEL 9 à cette fin, suivez les instructions ci-dessous.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
- Une VM existante éteinte avec la configuration NAT par défaut.
La configuration IP de l'hyperviseur. Elle varie en fonction de la connexion réseau de l'hôte. À titre d'exemple, cette procédure utilise un scénario dans lequel l'hôte est connecté au réseau à l'aide d'un câble Ethernet, et l'adresse MAC du NIC physique de l'hôte est attribuée à une IP statique sur un serveur DHCP. Par conséquent, l'interface Ethernet est traitée comme l'IP de l'hyperviseur.
Pour obtenir la configuration IP de l'interface ethernet, allez dans l'onglet
Networking
de la console web, et consultez la sectionInterfaces
.Procédure
Créez et configurez une connexion de pont pour l'interface physique de l'hôte. Pour plus d'informations, reportez-vous à la section Configuration des ponts réseau dans la console Web.
Notez que dans un scénario où l'attribution statique d'IP est utilisée, vous devez déplacer le paramètre IPv4 de l'interface Ethernet physique vers l'interface de pont.
Modifiez le réseau de la VM pour utiliser l'interface pontée. Dans l'onglet Interfaces réseau de la VM :
- Cliquez sur
Dans la boîte de dialogue
Add Virtual Network Interface
, définissez :-
Interface Type à
Bridge to LAN
-
Source vers le pont nouvellement créé, par exemple
bridge0
-
Interface Type à
- Cliquez sur
- Optional: Cliquez sur pour toutes les autres interfaces connectées à la VM.
- Cliquez sur pour démarrer la VM.
Dans le système d'exploitation invité, réglez les paramètres IP et DHCP de l'interface réseau du système comme si la VM était un autre système physique sur le même réseau que l'hyperviseur.
Les étapes spécifiques diffèrent en fonction du système d'exploitation invité utilisé par la VM. Par exemple, si le système d'exploitation invité est RHEL 9, voir Configuration d'une connexion Ethernet.
Vérification
- Dans l'onglet Networking de la console web de l'hôte, cliquez sur la ligne contenant le pont nouvellement créé pour vous assurer qu'il fonctionne et qu'il contient à la fois l'interface physique de l'hôte et l'interface de la VM.
Assurez-vous que la VM apparaît sur le même réseau externe que l'hyperviseur.
Dans le système d'exploitation invité, obtenez l'ID réseau du système. Par exemple, s'il s'agit d'un invité Linux :
ip addr
# ip addr [...] enp0s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:09:15:46 brd ff:ff:ff:ff:ff:ff inet 192.0.2.1/24 brd 192.0.2.255 scope global dynamic noprefixroute enp0s0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Depuis un système externe connecté au réseau local, connectez-vous à la VM en utilisant l'identifiant obtenu.
ssh root@192.0.2.1
# ssh root@192.0.2.1 root@192.0.2.1's password: Last login: Mon Sep 24 12:05:36 2019 root~#*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la connexion fonctionne, le réseau a été configuré avec succès.
Résolution de problèmes
- Dans certaines situations, par exemple lors de l'utilisation d'un VPN client-site alors que la VM est hébergée sur le client, il n'est pas possible d'utiliser le mode ponté pour rendre vos VM accessibles à des sites externes.
17.4. Types de connexions réseau des machines virtuelles Copier lienLien copié sur presse-papiers!
Pour modifier les propriétés de mise en réseau et le comportement de vos machines virtuelles, changez le type de réseau virtuel ou d'interface que les machines virtuelles utilisent. Les sections suivantes décrivent les types de connexion disponibles pour les VM dans RHEL 9.
17.4.1. Mise en réseau virtuelle avec traduction d'adresses de réseau Copier lienLien copié sur presse-papiers!
Par défaut, les commutateurs de réseau virtuel fonctionnent en mode de traduction d'adresse réseau (NAT). Ils utilisent le masquage IP plutôt que le Source-NAT (SNAT) ou le Destination-NAT (DNAT). Le masquage IP permet aux machines virtuelles connectées d'utiliser l'adresse IP de la machine hôte pour communiquer avec n'importe quel réseau externe. Lorsque le commutateur de réseau virtuel fonctionne en mode NAT, les ordinateurs externes à l'hôte ne peuvent pas communiquer avec les machines virtuelles à l'intérieur de l'hôte.
Les commutateurs de réseau virtuel utilisent le NAT configuré par des règles de pare-feu. Il n'est pas recommandé de modifier ces règles pendant que le commutateur fonctionne, car des règles incorrectes peuvent empêcher le commutateur de communiquer.
17.4.2. Réseau virtuel en mode routé Copier lienLien copié sur presse-papiers!
En utilisant le mode Routed, le commutateur virtuel se connecte au LAN physique connecté à la machine hôte, transmettant le trafic dans les deux sens sans utiliser de NAT. Le commutateur virtuel peut examiner tout le trafic et utiliser les informations contenues dans les paquets réseau pour prendre des décisions de routage. Dans ce mode, les machines virtuelles (VM) se trouvent toutes dans un sous-réseau unique, séparé de la machine hôte. Le sous-réseau des machines virtuelles est acheminé via un commutateur virtuel, qui existe sur la machine hôte. Cela permet d'établir des connexions entrantes, mais nécessite des entrées supplémentaires dans la table de routage pour les systèmes sur le réseau externe.
Le mode routé utilise le routage basé sur l'adresse IP :
L'hébergement de serveurs virtuels (VSH) est une topologie courante qui utilise le mode routé. Un fournisseur VSH peut avoir plusieurs machines hôtes, chacune avec deux connexions réseau physiques. Une interface est utilisée pour la gestion et la comptabilité, l'autre pour la connexion des machines virtuelles. Chaque VM possède sa propre adresse IP publique, mais les machines hôtes utilisent des adresses IP privées afin que seuls les administrateurs internes puissent gérer les VM.
17.4.3. Réseau virtuel en mode ponté Copier lienLien copié sur presse-papiers!
Dans la plupart des modes de mise en réseau des VM, les VM créent automatiquement le pont virtuel virbr0
et s'y connectent. En revanche, en mode bridged, la VM se connecte à un pont Linux existant sur l'hôte. Par conséquent, la VM est directement visible sur le réseau physique. Cela permet les connexions entrantes, mais ne nécessite pas d'entrées supplémentaires dans la table de routage.
Le mode ponté utilise la commutation de connexion basée sur l'adresse MAC :
En mode ponté, la VM apparaît dans le même sous-réseau que la machine hôte. Toutes les autres machines physiques sur le même réseau physique peuvent détecter la VM et y accéder.
Liaison entre réseaux pontés
Il est possible d'utiliser plusieurs interfaces de pont physiques sur l'hyperviseur en les reliant par un lien. Le lien peut ensuite être ajouté à un pont, après quoi les machines virtuelles peuvent également être ajoutées au pont. Cependant, le pilote de liaison a plusieurs modes de fonctionnement, et tous ces modes ne fonctionnent pas avec une passerelle où des machines virtuelles sont en cours d'utilisation.
Les modes de liaison suivants sont utilisables :
- mode 1
- mode 2
- mode 4
En revanche, les modes 0, 3, 5 ou 6 sont susceptibles de faire échouer la connexion. Notez également que la surveillance des interfaces indépendantes du support (MII) doit être utilisée pour surveiller les modes de liaison, car la surveillance du protocole de résolution d'adresses (ARP) ne fonctionne pas correctement.
Pour plus d'informations sur les modes de liaison, reportez-vous à la base de connaissances de Red Hat.
Scénarios courants
Les cas d'utilisation les plus courants du mode ponté sont les suivants :
- Déploiement de machines virtuelles dans un réseau existant aux côtés de machines hôtes, rendant la différence entre machines virtuelles et physiques invisible pour l'utilisateur final.
- Déploiement de machines virtuelles sans modification des paramètres de configuration du réseau physique existant.
- Déploiement de machines virtuelles qui doivent être facilement accessibles à un réseau physique existant. Placer des machines virtuelles sur un réseau physique où elles doivent accéder à des services DHCP.
- Connexion des machines virtuelles à un réseau existant où des réseaux locaux virtuels (VLAN) sont utilisés.
- Un réseau de zone démilitarisée (DMZ). Pour un déploiement DMZ avec des machines virtuelles, Red Hat recommande de configurer la DMZ au niveau du routeur et des commutateurs du réseau physique, et de connecter les machines virtuelles au réseau physique en utilisant le mode ponté.
17.4.4. Mise en réseau virtuelle en mode isolé Copier lienLien copié sur presse-papiers!
En utilisant le mode isolated, les machines virtuelles connectées au commutateur virtuel peuvent communiquer entre elles et avec la machine hôte, mais leur trafic ne passera pas en dehors de la machine hôte, et elles ne peuvent pas recevoir de trafic en provenance de l'extérieur de la machine hôte. L'utilisation de dnsmasq
dans ce mode est nécessaire pour les fonctionnalités de base telles que DHCP.
17.4.5. Mise en réseau virtuelle en mode ouvert Copier lienLien copié sur presse-papiers!
Lorsque le mode open est utilisé pour la mise en réseau, libvirt
ne génère aucune règle de pare-feu pour le réseau. Par conséquent, libvirt
n'écrase pas les règles de pare-feu fournies par l'hôte, et l'utilisateur peut donc gérer manuellement les règles de pare-feu de la VM.
17.4.6. Comparaison des types de connexion des machines virtuelles Copier lienLien copié sur presse-papiers!
Le tableau suivant fournit des informations sur les emplacements auxquels certains types de configurations réseau de machines virtuelles (VM) peuvent se connecter et sur lesquels elles sont visibles.
Connexion à l'hôte | Connexion à d'autres machines virtuelles sur l'hôte | Connexion à des sites extérieurs | Visible de l'extérieur | |
---|---|---|---|---|
Bridged mode | OUI | OUI | OUI | OUI |
NAT | OUI | OUI | OUI | no |
Routed mode | OUI | OUI | OUI | OUI |
Isolated mode | OUI | OUI | no | no |
Open mode | Depends on the host’s firewall rules |
17.5. Démarrer les machines virtuelles à partir d'un serveur PXE Copier lienLien copié sur presse-papiers!
Les machines virtuelles (VM) qui utilisent l'environnement d'exécution avant démarrage (PXE) peuvent démarrer et charger leur configuration à partir d'un réseau. Ce chapitre explique comment utiliser libvirt
pour démarrer des machines virtuelles à partir d'un serveur PXE sur un réseau virtuel ou ponté.
Ces procédures ne sont fournies qu'à titre d'exemple. Assurez-vous que vous disposez de suffisamment de sauvegardes avant de poursuivre.
17.5.1. Mise en place d'un serveur de démarrage PXE sur un réseau virtuel Copier lienLien copié sur presse-papiers!
Cette procédure décrit comment configurer un réseau virtuel libvirt
pour fournir un environnement d'exécution avant démarrage (PXE). Cela permet aux machines virtuelles sur votre hôte d'être configurées pour démarrer à partir d'une image de démarrage disponible sur le réseau virtuel.
Conditions préalables
Un serveur PXE local (DHCP et TFTP), tel que :
- serveur interne libvirt
- dhcpd et tftpd configurés manuellement
- dnsmasq
- Serveur de cordonnier
-
Images de démarrage PXE, telles que
PXELINUX
configurées par Cobbler ou manuellement.
Procédure
-
Placez les images de démarrage PXE et la configuration dans le dossier
/var/lib/tftpboot
. Définir les droits d'accès aux dossiers :
chmod -R a r /var/lib/tftpboot
# chmod -R a r /var/lib/tftpboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Définir la propriété du dossier :
chown -R nobody: /var/lib/tftpboot
# chown -R nobody: /var/lib/tftpboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Mise à jour du contexte SELinux :
chcon -R --reference /usr/sbin/dnsmasq /var/lib/tftpboot chcon -R --reference /usr/libexec/libvirt_leaseshelper /var/lib/tftpboot
# chcon -R --reference /usr/sbin/dnsmasq /var/lib/tftpboot # chcon -R --reference /usr/libexec/libvirt_leaseshelper /var/lib/tftpboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Arrêter le réseau virtuel :
virsh net-destroy default
# virsh net-destroy default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ouvrez le fichier de configuration du réseau virtuel dans votre éditeur par défaut :
virsh net-edit default
# virsh net-edit default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Modifiez l'élément
<ip>
pour inclure l'adresse, le masque de réseau, la plage d'adresses DHCP et le fichier de démarrage appropriés, où example-pxelinux est le nom du fichier de l'image de démarrage.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrer le réseau virtuel :
virsh net-start default
# virsh net-start default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Vérifiez que le réseau virtuel
default
est actif :virsh net-list
# virsh net-list Name State Autostart Persistent --------------------------------------------------- default active no no
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.5.2. Démarrer les machines virtuelles en utilisant PXE et un réseau virtuel Copier lienLien copié sur presse-papiers!
Pour démarrer les machines virtuelles (VM) à partir d'un serveur Preboot Execution Environment (PXE) disponible sur un réseau virtuel, vous devez activer le démarrage PXE.
Conditions préalables
- Un serveur d'amorçage PXE est configuré sur le réseau virtuel comme décrit dans la section Configuration d'un serveur d'amorçage PXE sur un réseau virtuel.
Procédure
Créez une nouvelle VM avec le démarrage PXE activé. Par exemple, pour installer à partir d'un PXE, disponible sur le réseau virtuel
default
, dans un nouveau fichier image qcow2 de 10 Go :virt-install --pxe --network network=default --memory 2048 --vcpus 2 --disk size=10
# virt-install --pxe --network network=default --memory 2048 --vcpus 2 --disk size=10
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez également modifier manuellement le fichier de configuration XML d'une VM existante :
Veiller à ce que l'élément
<os>
contienne un élément<boot dev='network'/>
:<os> <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type> <boot dev='network'/> <boot dev='hd'/> </os>
<os> <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type> <boot dev='network'/> <boot dev='hd'/> </os>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assurez-vous que le réseau invité est configuré pour utiliser votre réseau virtuel :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
-
Démarrez la VM à l'aide de la commande
virsh start
. Si PXE est configuré correctement, la VM démarre à partir d'une image de démarrage disponible sur le serveur PXE.
17.5.3. Démarrer les machines virtuelles en utilisant PXE et un réseau ponté Copier lienLien copié sur presse-papiers!
Pour démarrer les machines virtuelles (VM) à partir d'un serveur Preboot Execution Environment (PXE) disponible sur un réseau ponté, vous devez activer le démarrage PXE.
Conditions préalables
- Le pontage réseau est activé.
- Un serveur de démarrage PXE est disponible sur le réseau ponté.
Procédure
Créez une nouvelle VM avec le démarrage PXE activé. Par exemple, pour installer à partir d'un PXE, disponible sur le réseau ponté
breth0
, dans un nouveau fichier image qcow2 de 10 Go :virt-install --pxe --network bridge=breth0 --memory 2048 --vcpus 2 --disk size=10
# virt-install --pxe --network bridge=breth0 --memory 2048 --vcpus 2 --disk size=10
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez également modifier manuellement le fichier de configuration XML d'une VM existante :
Veiller à ce que l'élément
<os>
contienne un élément<boot dev='network'/>
:<os> <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type> <boot dev='network'/> <boot dev='hd'/> </os>
<os> <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type> <boot dev='network'/> <boot dev='hd'/> </os>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assurez-vous que la VM est configurée pour utiliser votre réseau ponté :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
-
Démarrez la VM à l'aide de la commande
virsh start
. Si PXE est configuré correctement, la VM démarre à partir d'une image de démarrage disponible sur le serveur PXE.
17.6. Configuration de la connexion de l'espace utilisateur passt Copier lienLien copié sur presse-papiers!
Si vous avez besoin d'un accès non privilégié à un réseau virtuel, par exemple lorsque vous utilisez une connexion session
de libvirt
, vous pouvez configurer votre machine virtuelle (VM) pour qu'elle utilise le back-end de mise en réseau passt
.
Conditions préalables
Le paquetage
passt
a été installé sur votre système.dnf install passt
# dnf install passt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Ouvrez la configuration XML de la VM sur laquelle vous souhaitez utiliser une connexion
passt
. Par exemple :virsh edit <testguest1>
# virsh edit <testguest1>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans la section
<devices>
, ajoutez un élément<interface type='user'>
qui utilisepasst
comme type d'arrière-plan.Par exemple, la configuration suivante établit une connexion
passt
qui utilise des adresses et des routes copiées à partir de l'interface hôte associée à la première route par défaut :Copy to Clipboard Copied! Toggle word wrap Toggle overflow En option, lorsque vous utilisez
passt
, vous pouvez spécifier plusieurs éléments<portForward>
pour transférer le trafic réseau entrant de l'hôte vers cette interface VM. Vous pouvez également personnaliser les adresses IP des interfaces. Par exemple :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cet exemple de configuration établit une connexion
passt
avec les paramètres suivants :-
La VM copie les itinéraires réseau pour transmettre le trafic à partir de l'interface de l'hôte
eth0
. -
Le MAC de l'interface est défini sur
52:54:00:98:d8:b7
. S'il n'est pas défini, un MAC aléatoire sera généré. -
L'adresse IPv4 est définie sur
192.0.2.1/24
, et l'adresse IPv6 sur::ffff:c000:201
. -
Le port TCP
2022
de l'hôte transmet son trafic réseau au port22
de la VM. -
L'adresse TCP
2001:db8:ac10:fd01::1:10
sur l'interface hôteeth0
et le port8080
transmettent leur trafic réseau au port8080
de la VM. Le port4433
transmet son trafic au port3444
de la VM. -
L'adresse UDP
1.2.3.4
et les ports5000 - 5009
et5016 - 5020
de l'hôte transmettent leur trafic réseau aux ports6000 - 6009
et6016 - 6020
de la VM.
-
La VM copie les itinéraires réseau pour transmettre le trafic à partir de l'interface de l'hôte
- Sauvegarder la configuration XML.
Vérification
Démarrez ou redémarrez la VM que vous avez configurée avec
passt
:virsh reboot <vm-name> virsh start <vm-name>
# virsh reboot <vm-name> # virsh start <vm-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la VM démarre avec succès, elle utilise maintenant le backend de mise en réseau
passt
.
Chapitre 18. Optimiser les performances des machines virtuelles Copier lienLien copié sur presse-papiers!
Les machines virtuelles (VM) subissent toujours un certain degré de détérioration des performances par rapport à l'hôte. Les sections suivantes expliquent les raisons de cette détérioration et fournissent des instructions sur la manière de minimiser l'impact de la virtualisation sur les performances dans RHEL 9, afin que les ressources de votre infrastructure matérielle puissent être utilisées aussi efficacement que possible.
18.1. Quels sont les facteurs qui influencent les performances des machines virtuelles ? Copier lienLien copié sur presse-papiers!
Les VM sont exécutées en tant que processus de l'espace utilisateur sur l'hôte. L'hyperviseur doit donc convertir les ressources système de l'hôte pour que les machines virtuelles puissent les utiliser. Par conséquent, une partie des ressources est consommée par la conversion, et la VM ne peut donc pas atteindre le même niveau de performance que l'hôte.
L'impact de la virtualisation sur les performances des systèmes
Les raisons plus spécifiques de la perte de performance d'une VM sont les suivantes :
- Les unités centrales virtuelles (vCPU) sont implémentées comme des threads sur l'hôte, gérés par le planificateur Linux.
- Les machines virtuelles n'héritent pas automatiquement des fonctions d'optimisation, telles que NUMA ou les pages volumineuses, du noyau hôte.
- Les paramètres d'E/S disque et réseau de l'hôte peuvent avoir un impact significatif sur les performances de la VM.
- Le trafic réseau est généralement acheminé vers une VM par l'intermédiaire d'un pont logiciel.
- En fonction des appareils hôtes et de leurs modèles, l'émulation d'un matériel particulier peut entraîner des frais généraux importants.
La gravité de l'impact de la virtualisation sur les performances de la VM est influencée par divers facteurs, notamment
- Nombre de machines virtuelles fonctionnant simultanément.
- La quantité de périphériques virtuels utilisés par chaque VM.
- Les types de périphériques utilisés par les VM.
Réduire la perte de performance des machines virtuelles
RHEL 9 propose un certain nombre de fonctionnalités que vous pouvez utiliser pour réduire les effets négatifs de la virtualisation sur les performances. Notamment :
-
Le service
TuneD
peut automatiquement optimiser la distribution des ressources et les performances de vos machines virtuelles. - L'optimisation des E/S par blocs permet d'améliorer les performances des périphériques de blocs de la VM, tels que les disques.
- Le réglage des NUMA peut augmenter les performances des vCPU.
- La mise en réseau virtuelle peut être optimisée de différentes manières.
L'optimisation des performances de la VM peut avoir des effets négatifs sur d'autres fonctions de virtualisation. Par exemple, cela peut rendre la migration de la VM modifiée plus difficile.
18.2. Optimiser les performances des machines virtuelles à l'aide de TuneD Copier lienLien copié sur presse-papiers!
L'utilitaire TuneD
est un mécanisme de fourniture de profils de réglage qui adapte RHEL à certaines caractéristiques de la charge de travail, telles que les exigences des tâches à forte intensité de CPU ou la réactivité du débit du réseau de stockage. Il fournit un certain nombre de profils de réglage préconfigurés pour améliorer les performances et réduire la consommation d'énergie dans un certain nombre de cas d'utilisation spécifiques. Vous pouvez modifier ces profils ou en créer de nouveaux afin d'élaborer des solutions de performance adaptées à votre environnement, y compris les environnements virtualisés.
Pour optimiser RHEL 9 pour la virtualisation, utilisez les profils suivants :
-
Pour les machines virtuelles RHEL 9, utilisez le profil virtual-guest. Il est basé sur le profil généralement applicable
throughput-performance
généralement applicable, mais il diminue également l'échange de mémoire virtuelle. - Pour les hôtes de virtualisation RHEL 9, utilisez le profil virtual-host. Ce profil permet une réécriture plus agressive des pages de mémoire sales, ce qui améliore les performances de l'hôte.
Conditions préalables
-
Le service
TuneD
est installé et activé.
Procédure
Pour activer un profil TuneD
spécifique :
Liste des profils
TuneD
disponibles.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Créez un nouveau profil
TuneD
ou modifiez un profilTuneD
existant.Pour plus d'informations, voir Personnaliser les profils TuneD.
Activer un profil
TuneD
.tuned-adm profile selected-profile
# tuned-adm profile selected-profile
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour optimiser un hôte de virtualisation, utilisez le profil virtual-host.
tuned-adm profile virtual-host
# tuned-adm profile virtual-host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Sur un système d'exploitation invité RHEL, utilisez le profil virtual-guest.
tuned-adm profile virtual-guest
# tuned-adm profile virtual-guest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.3. Optimisation des démons libvirt Copier lienLien copié sur presse-papiers!
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 Copier lienLien copié sur presse-papiers!
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 Copier lienLien copié sur presse-papiers!
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
# systemctl is-active libvirtd.service active
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ systemctl stop libvirtd.service $ systemctl stop libvirtd{,-ro,-admin,-tcp,-tls}.socket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ systemctl disable libvirtd.service $ systemctl disable libvirtd{,-ro,-admin,-tcp,-tls}.socket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# for drv in qemu network nodedev nwfilter secret storage; do systemctl start virt${drv}d{,-ro,-admin}.socket; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# grep listen_tls /etc/libvirt/libvirtd.conf listen_tls = 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# virsh uri qemu:///system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez que votre hôte utilise le démon modulaire
virtqemud
.systemctl is-active virtqemud.service
# systemctl is-active virtqemud.service active
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si l'état est
active
, vous avez activé avec succès les démons modulaireslibvirt
.
18.4. Configuration de la mémoire de la machine virtuelle Copier lienLien copié sur presse-papiers!
Pour améliorer les performances d'une machine virtuelle (VM), vous pouvez lui attribuer de la mémoire vive supplémentaire. De même, vous pouvez réduire la quantité de mémoire allouée à une VM afin que la mémoire de l'hôte puisse être allouée à d'autres VM ou tâches.
Pour effectuer ces actions, vous pouvez utiliser la console web ou l'interface de ligne de commande.
18.4.1. Ajouter et supprimer la mémoire d'une machine virtuelle à l'aide de la console web Copier lienLien copié sur presse-papiers!
Pour améliorer les performances d'une machine virtuelle (VM) ou libérer les ressources de l'hôte qu'elle utilise, vous pouvez utiliser la console web pour ajuster la quantité de mémoire allouée à la VM.
Conditions préalables
Le système d'exploitation invité exécute les pilotes de ballons de mémoire. Pour vérifier que c'est bien le cas :
Assurez-vous que la configuration de la VM inclut le périphérique
memballoon
:virsh dumpxml testguest | grep memballoon
# virsh dumpxml testguest | grep memballoon <memballoon model='virtio'> </memballoon>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si cette commande affiche une sortie et que le modèle n'est pas défini sur
none
, le dispositifmemballoon
est présent.Assurez-vous que les pilotes de ballons fonctionnent dans le système d'exploitation invité.
-
Dans les invités Windows, les pilotes sont installés dans le cadre du paquet de pilotes
virtio-win
. Pour plus d'informations, voir Installation des pilotes KVM paravirtualisés pour les machines virtuelles Windows. -
Dans les hôtes Linux, les pilotes sont généralement inclus par défaut et s'activent lorsque le périphérique
memballoon
est présent.
-
Dans les invités Windows, les pilotes sont installés dans le cadre du paquet de pilotes
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Optional: Obtenez les informations relatives à la mémoire maximale et à la mémoire actuellement utilisée pour une VM. Cela servira de base de référence pour vos modifications, ainsi que pour la vérification.
virsh dominfo testguest
# virsh dominfo testguest Max memory: 2097152 KiB Used memory: 2097152 KiB
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans l'interface
, cliquez sur la VM dont vous voulez voir les informations.Une nouvelle page s'ouvre avec une section Vue d'ensemble contenant des informations de base sur la VM sélectionnée et une section Console permettant d'accéder à l'interface graphique de la VM.
Cliquez sur
à côté de la ligneMemory
dans le volet Vue d'ensemble.La boîte de dialogue
Memory Adjustment
apparaît.Configurer la mémoire virtuelle pour la VM sélectionnée.
Maximum allocation - Définit la quantité maximale de mémoire hôte que la VM peut utiliser pour ses processus. Vous pouvez spécifier la mémoire maximale lors de la création de la VM ou l'augmenter ultérieurement. Vous pouvez spécifier la mémoire en multiples de MiB ou GiB.
Le réglage de l'allocation maximale de mémoire n'est possible que sur une VM éteinte.
Current allocation - Définit la quantité réelle de mémoire allouée à la VM. Cette valeur peut être inférieure à l'allocation maximale, mais ne peut pas la dépasser. Vous pouvez ajuster la valeur pour réguler la mémoire disponible pour les processus de la VM. Vous pouvez spécifier la mémoire en multiples de MiB ou GiB.
Si vous ne spécifiez pas cette valeur, l'allocation par défaut est la valeur Maximum allocation.
Cliquez sur
.L'allocation de mémoire de la VM est ajustée.
18.4.2. Ajout et suppression de la mémoire de la machine virtuelle à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
Pour améliorer les performances d'une machine virtuelle (VM) ou libérer les ressources de l'hôte qu'elle utilise, vous pouvez utiliser le CLI pour ajuster la quantité de mémoire allouée à la VM.
Conditions préalables
Le système d'exploitation invité exécute les pilotes de ballons de mémoire. Pour vérifier que c'est bien le cas :
Assurez-vous que la configuration de la VM inclut le périphérique
memballoon
:virsh dumpxml testguest | grep memballoon
# virsh dumpxml testguest | grep memballoon <memballoon model='virtio'> </memballoon>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si cette commande affiche une sortie et que le modèle n'est pas défini sur
none
, le dispositifmemballoon
est présent.Assurez-vous que les pilotes Ballon fonctionnent dans le système d'exploitation invité.
-
Dans les invités Windows, les pilotes sont installés dans le cadre du paquet de pilotes
virtio-win
. Pour plus d'informations, voir Installation des pilotes KVM paravirtualisés pour les machines virtuelles Windows. -
Dans les hôtes Linux, les pilotes sont généralement inclus par défaut et s'activent lorsque le périphérique
memballoon
est présent.
-
Dans les invités Windows, les pilotes sont installés dans le cadre du paquet de pilotes
Procédure
Optional: Obtenez les informations relatives à la mémoire maximale et à la mémoire actuellement utilisée pour une VM. Cela servira de base de référence pour vos modifications, ainsi que pour la vérification.
virsh dominfo testguest
# virsh dominfo testguest Max memory: 2097152 KiB Used memory: 2097152 KiB
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajuste la mémoire maximale allouée à une VM. L'augmentation de cette valeur améliore le potentiel de performance de la VM, et la réduction de cette valeur diminue l'empreinte de performance de la VM sur votre hôte. Notez que cette modification ne peut être effectuée que sur une VM éteinte, de sorte que l'ajustement d'une VM en cours d'exécution nécessite un redémarrage pour être pris en compte.
Par exemple, pour modifier la mémoire maximale que la VM testguest peut utiliser à 4096 MiB :
virt-xml testguest --edit --memory memory=4096,currentMemory=4096
# virt-xml testguest --edit --memory memory=4096,currentMemory=4096 Domain 'testguest' defined successfully. Changes will take effect after the domain is fully powered off.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour augmenter la mémoire maximale d'une VM en cours d'exécution, vous pouvez attacher un périphérique de mémoire à la VM. Cette opération est également appelée memory hot plug. Pour plus d'informations, voir Attacher des périphériques de mémoire aux machines virtuelles.
AvertissementLa suppression des périphériques de mémoire d'une VM en cours d'exécution (également appelée débranchement à chaud de la mémoire) n'est pas prise en charge et est fortement déconseillée par Red Hat.
Optional: Vous pouvez également ajuster la mémoire actuellement utilisée par la VM, jusqu'à l'allocation maximale. Cela permet de réguler la charge de mémoire de la VM sur l'hôte jusqu'au prochain redémarrage, sans modifier l'allocation maximale de la VM.
virsh setmem testguest --current 2048
# virsh setmem testguest --current 2048
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Confirmez que la mémoire utilisée par la VM a été mise à jour :
virsh dominfo testguest
# virsh dominfo testguest Max memory: 4194304 KiB Used memory: 2097152 KiB
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Si vous avez ajusté la mémoire actuelle de la VM, vous pouvez obtenir des statistiques sur les ballons de mémoire de la VM afin d'évaluer l'efficacité avec laquelle elle régule son utilisation de la mémoire.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.4.3. Ajouter et supprimer la mémoire de la machine virtuelle en utilisant virtio-mem Copier lienLien copié sur presse-papiers!
RHEL 9 fournit le périphérique de mémoire paravirtualisée virtio-mem
. Ce périphérique permet d'ajouter ou de supprimer dynamiquement de la mémoire hôte dans les machines virtuelles (VM). Par exemple, vous pouvez utiliser virtio-mem
pour déplacer des ressources mémoire entre des machines virtuelles en cours d'exécution ou pour redimensionner la mémoire des machines virtuelles dans des configurations en nuage en fonction de vos besoins actuels.
18.4.3.1. Aperçu de virtio-mem Copier lienLien copié sur presse-papiers!
virtio-mem
est un dispositif de mémoire paravirtualisé qui peut être utilisé pour ajouter ou supprimer dynamiquement de la mémoire hôte dans les machines virtuelles (VM). Par exemple, vous pouvez utiliser ce périphérique pour déplacer des ressources mémoire entre des machines virtuelles en cours d'exécution ou pour redimensionner la mémoire des machines virtuelles dans des configurations en nuage en fonction de vos besoins actuels.
En utilisant virtio-mem
, vous pouvez augmenter la mémoire d'une VM au-delà de sa taille initiale, et la réduire à sa taille d'origine, dans des unités qui peuvent avoir une taille de 4 à plusieurs centaines de mégaoctets (MiBs). Notez toutefois que virtio-mem
repose également sur une configuration spécifique du système d'exploitation invité, notamment pour débrancher la mémoire de manière fiable.
limitations des fonctionnalités du virtio-mem
virtio-mem
n'est actuellement pas compatible avec les fonctionnalités suivantes :
- Utilisation du verrouillage de la mémoire pour les applications en temps réel sur l'hôte
- Utilisation de la virtualisation chiffrée sur l'hôte
-
Combinaison de
virtio-mem
avecmemballoon
inflation et déflation sur l'hôte -
Décharger ou recharger le pilote
virtio_mem
dans une VM -
L'utilisation de dispositifs pour utilisateurs virtuels, à l'exception de
virtiofs
18.4.3.2. Configuration de l'optimisation de la mémoire dans les machines virtuelles Copier lienLien copié sur presse-papiers!
Avant d'utiliser virtio-mem
pour attacher de la mémoire à une machine virtuelle en cours d'exécution (également connue sous le nom de hot-plugging de mémoire), vous devez configurer le système d'exploitation de la machine virtuelle (VM) pour qu'il mette automatiquement la mémoire hot-plugged dans un état en ligne. Sinon, le système d'exploitation invité n'est pas en mesure d'utiliser la mémoire supplémentaire. Vous pouvez choisir l'une des configurations suivantes pour la mise en ligne de la mémoire :
-
online_movable
-
online_kernel
-
auto-movable
Pour en savoir plus sur les différences entre ces configurations, voir : Comparaison des configurations d'optimisation de la mémoire
L'activation de la mémoire est configurée par défaut avec les règles udev dans RHEL. Cependant, lorsque vous utilisez virtio-mem
, il est recommandé de configurer l'allocation de mémoire directement dans le noyau.
Conditions préalables
- L'hôte a une architecture CPU Intel 64 ou AMD64.
- L'hôte utilise le système d'exploitation RHEL 9.4 ou une version ultérieure.
Les machines virtuelles exécutées sur l'hôte utilisent l'une des versions suivantes du système d'exploitation :
RHEL 8.10
ImportantLe débranchement de la mémoire d'une VM en cours d'exécution est désactivé par défaut dans les VM RHEL 8.10.
- RHEL 9
Procédure
Pour configurer l'onlining de la mémoire afin d'utiliser la configuration
online_movable
dans la VM :Définissez le paramètre de ligne de commande
memhp_default_state
kernel àonline_movable
:grubby --update-kernel=ALL --remove-args=memhp_default_state --args=memhp_default_state=online_movable
# grubby --update-kernel=ALL --remove-args=memhp_default_state --args=memhp_default_state=online_movable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Redémarrez la VM.
Pour configurer l'onlining de la mémoire afin d'utiliser la configuration
online_kernel
dans la VM :Définissez le paramètre de ligne de commande
memhp_default_state
kernel àonline_kernel
:grubby --update-kernel=ALL --remove-args=memhp_default_state --args=memhp_default_state=online_kernel
# grubby --update-kernel=ALL --remove-args=memhp_default_state --args=memhp_default_state=online_kernel
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Redémarrez la VM.
Pour utiliser la politique d'optimisation de la mémoire
auto-movable
dans la VM :Définissez le paramètre de ligne de commande
memhp_default_state
kernel àonline
:grubby --update-kernel=ALL --remove-args=memhp_default_state --args=memhp_default_state=online
# grubby --update-kernel=ALL --remove-args=memhp_default_state --args=memhp_default_state=online
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Définissez le paramètre de ligne de commande
memory_hotplug.online_policy
kernel àauto-movable
:grubby --update-kernel=ALL --remove-args="memory_hotplug.online_policy" --args=memory_hotplug.online_policy=auto-movable
# grubby --update-kernel=ALL --remove-args="memory_hotplug.online_policy" --args=memory_hotplug.online_policy=auto-movable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Pour affiner la politique de mise en ligne de
auto-movable
, modifiez les paramètresmemory_hotplug.auto_movable_ratio
etmemory_hotplug.auto_movable_numa_aware
:grubby --update-kernel=ALL --remove-args="memory_hotplug.auto_movable_ratio" --args=memory_hotplug.auto_movable_ratio=<percentage> grubby --update-kernel=ALL --remove-args="memory_hotplug.memory_auto_movable_numa_aware" --args=memory_hotplug.auto_movable_numa_aware=<y/n>
# grubby --update-kernel=ALL --remove-args="memory_hotplug.auto_movable_ratio" --args=memory_hotplug.auto_movable_ratio=<percentage> # grubby --update-kernel=ALL --remove-args="memory_hotplug.memory_auto_movable_numa_aware" --args=memory_hotplug.auto_movable_numa_aware=<y/n>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
La valeur
memory_hotplug.auto_movable_ratio parameter
définit le ratio maximum de mémoire disponible uniquement pour les allocations mobiles par rapport à la mémoire disponible pour toutes les allocations. Le ratio est exprimé en pourcentage et la valeur par défaut est : 301 (%), ce qui correspond à un ratio de 3:1. Le paramètre
memory_hotplug.auto_movable_numa_aware
détermine si le paramètrememory_hotplug.auto_movable_ratio
s'applique à la mémoire de tous les nœuds NUMA disponibles ou uniquement à la mémoire d'un seul nœud NUMA. La valeur par défaut est : y (yes)Par exemple, si le rapport maximal est fixé à 301 % et que le paramètre
memory_hotplug.auto_movable_numa_aware
est fixé à y (oui), le rapport 3:1 est appliqué même au sein du nœud NUMA auquel est rattaché le périphériquevirtio-mem
. Si le paramètre est défini sur n (no), le rapport maximal de 3:1 n'est appliqué que pour l'ensemble des nœuds NUMA.En outre, si le ratio n'est pas dépassé, la nouvelle mémoire connectée à chaud ne sera disponible que pour les attributions mobiles. Dans le cas contraire, la nouvelle mémoire connectée à chaud sera disponible à la fois pour les allocations mobiles et inamovibles.
-
La valeur
- Redémarrez la VM.
Vérification
Pour savoir si la configuration de
online_movable
a été définie correctement, vérifiez la valeur actuelle du paramètre du noyaumemhp_default_state
:cat /sys/devices/system/memory/auto_online_blocks online_movable
# cat /sys/devices/system/memory/auto_online_blocks online_movable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour savoir si la configuration de
online_kernel
a été définie correctement, vérifiez la valeur actuelle du paramètre du noyaumemhp_default_state
:cat /sys/devices/system/memory/auto_online_blocks online_kernel
# cat /sys/devices/system/memory/auto_online_blocks online_kernel
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour savoir si la configuration de
auto-movable
est correcte, vérifiez les paramètres suivants du noyau :memhp_default_state
:cat /sys/devices/system/memory/auto_online_blocks online
# cat /sys/devices/system/memory/auto_online_blocks online
Copy to Clipboard Copied! Toggle word wrap Toggle overflow memory_hotplug.online_policy
:cat /sys/module/memory_hotplug/parameters/online_policy auto-movable
# cat /sys/module/memory_hotplug/parameters/online_policy auto-movable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow memory_hotplug.auto_movable_ratio
:cat /sys/module/memory_hotplug/parameters/auto_movable_ratio 301
# cat /sys/module/memory_hotplug/parameters/auto_movable_ratio 301
Copy to Clipboard Copied! Toggle word wrap Toggle overflow memory_hotplug.auto_movable_numa_aware
:cat /sys/module/memory_hotplug/parameters/auto_movable_numa_aware y
# cat /sys/module/memory_hotplug/parameters/auto_movable_numa_aware y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.4.3.3. Attacher un périphérique virtio-mem aux machines virtuelles Copier lienLien copié sur presse-papiers!
Pour attacher de la mémoire supplémentaire à une machine virtuelle en cours d'exécution (également connue sous le nom de hot-plugging de mémoire) et pouvoir ensuite redimensionner la mémoire connectée à chaud, vous pouvez utiliser un périphérique virtio-mem
. Plus précisément, vous pouvez utiliser les fichiers de configuration XML de libvirt et les commandes virsh
pour définir et attacher des périphériques virtio-mem
aux machines virtuelles (VM).
Conditions préalables
- L'hôte a une architecture CPU Intel 64 ou AMD64.
- L'hôte utilise le système d'exploitation RHEL 9.4 ou une version ultérieure.
Les machines virtuelles exécutées sur l'hôte utilisent l'une des versions suivantes du système d'exploitation :
RHEL 8.10
ImportantLe débranchement de la mémoire d'une VM en cours d'exécution est désactivé par défaut dans les VM RHEL 8.10.
- RHEL 9
- La VM est configurée pour l'optimisation de la mémoire. Pour plus d'informations, voir : Configuration de l'allocation de mémoire dans les machines virtuelles
Procédure
Assurez-vous que la configuration XML de la VM cible inclut le paramètre
maxMemory
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple, la configuration XML de la VM
testguest1
définit un paramètremaxMemory
d'une taille de 128 gibibytes (GiB). La taille demaxMemory
spécifie la mémoire maximale que la VM peut utiliser, ce qui inclut la mémoire initiale et la mémoire connectée à chaud.Créer et ouvrir un fichier XML pour définir les périphériques
virtio-mem
sur l'hôte, par exemple :vim virtio-mem-device.xml
# vim virtio-mem-device.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajoutez les définitions XML des dispositifs
virtio-mem
au fichier et enregistrez-le :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple, deux appareils
virtio-mem
sont définis avec les paramètres suivants :-
size
: Il s'agit de la taille maximale de l'appareil. Dans l'exemple, elle est de 48 GiB. La taille desize
doit être un multiple de celle deblock
. -
node
: Il s'agit du nœud vNUMA attribué à l'appareilvirtio-mem
. -
block
: Il s'agit de la taille du bloc de l'appareil. Elle doit être au moins égale à la taille de la Transparent Huge Page (THP), qui est de 2 MiB sur l'architecture CPU Intel 64 ou AMD64. La taille de bloc de 2 MiB sur l'architecture Intel 64 ou AMD64 est généralement un bon choix par défaut. Lorsque vous utilisezvirtio-mem
avec Virtual Function I/O (VFIO) ou mediated devices (mdev), le nombre total de blocs sur tous les périphériquesvirtio-mem
ne doit pas être supérieur à 32768, sinon l'enfichage de la RAM risque d'échouer. -
requested
: Il s'agit de la quantité de mémoire que vous attachez à la VM avec le périphériquevirtio-mem
. Cependant, il s'agit simplement d'une demande adressée à la VM et il se peut qu'elle ne soit pas résolue avec succès, par exemple si la VM n'est pas correctement configurée. La taille derequested
doit être un multiple de la taille deblock
et ne peut pas dépasser le maximum définisize
. -
current
: Ceci représente la taille actuelle que le périphériquevirtio-mem
fournit à la VM. La taille decurrent
peut être différente de celle derequested
, par exemple lorsque les demandes ne peuvent pas être exécutées ou lors du redémarrage de la VM. alias
: Il s'agit d'un alias facultatif défini par l'utilisateur que vous pouvez utiliser pour spécifier le périphériquevirtio-mem
prévu, par exemple lors de l'édition du périphérique avec les commandes libvirt. Tous les alias définis par l'utilisateur dans libvirt doivent commencer par le préfixe "ua-".Hormis ces paramètres spécifiques,
libvirt
gère le périphériquevirtio-mem
comme n'importe quel autre périphérique PCI. Pour plus d'informations sur la gestion des périphériques PCI attachés aux machines virtuelles, voir : Gestion des périphériques virtuels
-
Utilisez le fichier XML pour attacher les dispositifs
virtio-mem
définis à une VM. Par exemple, pour attacher de façon permanente les deux dispositifs définis dans le fichiervirtio-mem-device.xml
à la VMtestguest1
en cours d'exécution :virsh attach-device testguest1 virtio-mem-device.xml --live --config
# virsh attach-device testguest1 virtio-mem-device.xml --live --config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L'option
--live
attache le périphérique à une VM en cours d'exécution uniquement, sans persistance entre les démarrages. L'option--config
rend les modifications de configuration persistantes. Vous pouvez également attacher le périphérique à une VM à l'arrêt sans l'option--live
.Optional: Pour modifier dynamiquement la taille de
requested
d'un périphériquevirtio-mem
connecté à une VM en cours d'exécution, utilisez la commandevirsh update-memory-device
:virsh update-memory-device testguest1 --alias ua-virtiomem0 --requested-size 4GiB
# virsh update-memory-device testguest1 --alias ua-virtiomem0 --requested-size 4GiB
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple :
-
testguest1
est la VM que vous souhaitez mettre à jour. -
--alias ua-virtiomem0
est le dispositifvirtio-mem
spécifié par un alias précédemment défini. --requested-size 4GiB
modifie la taille derequested
du périphériquevirtio-mem
à 4 GiB.AvertissementDébrancher la mémoire d'une VM en cours d'exécution en réduisant la taille de
requested
peut ne pas être fiable. La réussite de ce processus dépend de plusieurs facteurs, tels que la politique d'onlining de la mémoire utilisée.Dans certains cas, le système d'exploitation invité ne peut pas terminer la demande avec succès, car la modification de la quantité de mémoire connectée à chaud n'est pas possible à ce moment-là.
En outre, le débranchement de la mémoire d'une VM en cours d'exécution est désactivé par défaut dans les VM RHEL 8.10.
-
Optional: Pour débrancher un périphérique
virtio-mem
d'une VM arrêtée, utilisez la commandevirsh detach-device
:virsh detach-device testguest1 virtio-mem-device.xml
# virsh detach-device testguest1 virtio-mem-device.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Pour débrancher un périphérique
virtio-mem
d'une VM en cours d'exécution :Modifiez la taille de
requested
du périphériquevirtio-mem
à 0, sinon la tentative de débrancher un périphériquevirtio-mem
d'une VM en cours d'exécution échouera.virsh update-memory-device testguest1 --alias ua-virtiomem0 --requested-size 0
# virsh update-memory-device testguest1 --alias ua-virtiomem0 --requested-size 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Débranchez un périphérique
virtio-mem
de la VM en cours d'exécution :virsh detach-device testguest1 virtio-mem-device.xml
# virsh detach-device testguest1 virtio-mem-device.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Dans la VM, vérifiez la RAM disponible et voyez si la quantité totale inclut maintenant la mémoire connectée à chaud :
free -h
# free -h total used free shared buff/cache available Mem: 31Gi 5.5Gi 14Gi 1.3Gi 11Gi 23Gi Swap: 8.0Gi 0B 8.0Gi
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow La quantité actuelle de RAM branchée peut également être visualisée sur l'hôte en affichant la configuration XML de la VM en cours d'exécution :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple :
-
<currentMemory unit='GiB'>31</currentMemory>
représente la mémoire vive totale disponible dans la VM, toutes sources confondues. -
<current unit='GiB'>16</current>
représente la taille actuelle de la mémoire vive enfichée fournie par le dispositifvirtio-mem
.
-
18.4.3.4. Comparaison des configurations d'optimisation de la mémoire Copier lienLien copié sur presse-papiers!
Lorsque vous attachez de la mémoire à une machine virtuelle RHEL en cours d'exécution (également connue sous le nom de hot-plugging de mémoire), vous devez mettre la mémoire hot-plugged dans un état en ligne dans le système d'exploitation de la machine virtuelle (VM). Sinon, le système ne pourra pas utiliser la mémoire.
Le tableau suivant résume les principales considérations à prendre en compte lors du choix entre les différentes configurations de mise en ligne de la mémoire.
Nom de la configuration | Débrancher la mémoire d'une VM | Un risque de déséquilibre de la zone de mémoire | Un cas d'utilisation potentiel | Exigences en matière de mémoire de la charge de travail prévue |
---|---|---|---|---|
| La mémoire connectée à chaud peut être débranchée de manière fiable. | Oui | Branchement à chaud d'une quantité relativement faible de mémoire | Principalement la mémoire de l'espace utilisateur |
| Les parties mobiles de la mémoire connectée à chaud peuvent être débranchées de manière fiable. | Minime | Branchement à chaud d'une grande quantité de mémoire | Principalement la mémoire de l'espace utilisateur |
| La mémoire connectée à chaud ne peut pas être débranchée de manière fiable. | Non | Un débranchement de la mémoire peu fiable est acceptable. | Mémoire de l'espace utilisateur ou de l'espace noyau |
Un zone imbalance est un manque de pages de mémoire disponibles dans l'une des zones de mémoire de Linux. Un zone imbalance peut avoir un impact négatif sur les performances du système. Par exemple, le noyau peut se bloquer s'il n'a plus de mémoire libre pour les allocations inamovibles. En général, les allocations mobiles contiennent principalement des pages de mémoire de l'espace utilisateur et les allocations inamovibles contiennent principalement des pages de mémoire de l'espace noyau.
18.5. Optimiser les performances des E/S des machines virtuelles Copier lienLien copié sur presse-papiers!
Les capacités d'entrée et de sortie (E/S) d'une machine virtuelle (VM) peuvent limiter de manière significative l'efficacité globale de la VM. Pour y remédier, vous pouvez optimiser les E/S d'une VM en configurant les paramètres d'E/S par bloc.
18.5.1. Optimisation des E/S par blocs dans les machines virtuelles Copier lienLien copié sur presse-papiers!
Lorsque plusieurs périphériques de bloc sont utilisés par une ou plusieurs machines virtuelles, il peut être important d'ajuster la priorité d'E/S de certains périphériques virtuels en modifiant leur adresse I/O weights.
L'augmentation du poids d'E/S d'un périphérique augmente sa priorité pour la bande passante d'E/S et lui permet donc de disposer de plus de ressources hôte. De même, la réduction du poids d'un périphérique lui permet de consommer moins de ressources hôte.
La valeur weight
de chaque appareil doit être comprise entre 100
et 1000
. La valeur peut également être 0
, ce qui supprime ce dispositif des listes par dispositif.
Procédure
Pour afficher et définir les paramètres d'E/S en bloc d'une VM :
Affiche les paramètres actuels de
<blkio>
pour une VM :# virsh dumpxml VM-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Modifier le poids des E/S d'un appareil spécifié :
virsh blkiotune VM-name --device-weights device, I/O-weight
# virsh blkiotune VM-name --device-weights device, I/O-weight
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Par exemple, la procédure suivante modifie le poids du périphérique /dev/sda dans la VM testguest1 pour le porter à 500.
virsh blkiotune testguest1 --device-weights /dev/sda, 500
# virsh blkiotune testguest1 --device-weights /dev/sda, 500
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.5.2. Limitation des entrées/sorties de disques dans les machines virtuelles Copier lienLien copié sur presse-papiers!
Lorsque plusieurs machines virtuelles fonctionnent simultanément, elles peuvent perturber les performances du système en utilisant un nombre excessif d'entrées/sorties sur disque. La limitation des E/S disque dans la virtualisation KVM permet de fixer une limite aux demandes d'E/S disque envoyées par les machines virtuelles à la machine hôte. Cela permet d'éviter qu'une machine virtuelle ne surutilise les ressources partagées et n'affecte les performances des autres machines virtuelles.
Pour activer la limitation des E/S de disque, définissez une limite pour les demandes d'E/S de disque envoyées à la machine hôte à partir de chaque périphérique de bloc attaché aux machines virtuelles.
Procédure
Utilisez la commande
virsh domblklist
pour répertorier les noms de tous les périphériques de disque d'une VM donnée.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Recherchez le périphérique de bloc hôte sur lequel est monté le disque virtuel que vous souhaitez supprimer.
Par exemple, si vous souhaitez accélérer le disque virtuel
sdb
de l'étape précédente, la sortie suivante montre que le disque est monté sur la partition/dev/nvme0n1p3
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Définissez les limites d'E/S pour le périphérique de bloc à l'aide de la commande
virsh blkiotune
.virsh blkiotune VM-name --parameter device,limit
# virsh blkiotune VM-name --parameter device,limit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L'exemple suivant limite le disque
sdb
de la VMrollin-coal
à 1 000 opérations d'E/S en lecture et en écriture par seconde et à 50 Mo par seconde de débit en lecture et en écriture.virsh blkiotune rollin-coal --device-read-iops-sec /dev/nvme0n1p3,1000 --device-write-iops-sec /dev/nvme0n1p3,1000 --device-write-bytes-sec /dev/nvme0n1p3,52428800 --device-read-bytes-sec /dev/nvme0n1p3,52428800
# virsh blkiotune rollin-coal --device-read-iops-sec /dev/nvme0n1p3,1000 --device-write-iops-sec /dev/nvme0n1p3,1000 --device-write-bytes-sec /dev/nvme0n1p3,52428800 --device-read-bytes-sec /dev/nvme0n1p3,52428800
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Informations complémentaires
- L'étranglement des E/S disque peut être utile dans diverses situations, par exemple lorsque des machines virtuelles appartenant à différents clients tournent sur le même hôte, ou lorsque des garanties de qualité de service sont données pour différentes machines virtuelles. La limitation des E/S disque peut également être utilisée pour simuler des disques plus lents.
- La limitation des E/S peut être appliquée indépendamment à chaque périphérique bloc attaché à une VM et permet de limiter le débit et les opérations d'E/S.
-
Red Hat ne prend pas en charge l'utilisation de la commande
virsh blkdeviotune
pour configurer la limitation des E/S dans les machines virtuelles. Pour plus d'informations sur les fonctionnalités non prises en charge lors de l'utilisation de RHEL 9 en tant qu'hôte de VM, voir Fonctionnalités non prises en charge dans la virtualisation RHEL 9.
18.5.3. Activation de virtio-scsi multi-queues Copier lienLien copié sur presse-papiers!
Lorsque vous utilisez des périphériques de stockage virtio-scsi
dans vos machines virtuelles (VM), la fonction multi-queue virtio-scsi améliore les performances et l'évolutivité du stockage. Elle permet à chaque unité centrale virtuelle (vCPU) de disposer d'une file d'attente distincte et d'une interruption à utiliser sans affecter les autres vCPU.
Procédure
Pour activer la prise en charge de virtio-scsi multi-queues pour une VM spécifique, ajoutez les éléments suivants à la configuration XML de la VM, où N est le nombre total de files d'attente vCPU :
<controller type='scsi' index='0' model='virtio-scsi'> <driver queues='N' /> </controller>
<controller type='scsi' index='0' model='virtio-scsi'> <driver queues='N' /> </controller>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.6. Optimiser les performances de l'unité centrale de la machine virtuelle Copier lienLien copié sur presse-papiers!
Tout comme les processeurs physiques des machines hôtes, les vCPU sont essentiels aux performances des machines virtuelles (VM). Par conséquent, l'optimisation des vCPU peut avoir un impact significatif sur l'efficacité des ressources de vos VM. Pour optimiser votre vCPU :
- Ajustez le nombre d'unités centrales attribuées à la VM. Vous pouvez effectuer cette opération à l'aide du CLI ou de la console Web.
Assurez-vous que le modèle vCPU est aligné sur le modèle CPU de l'hôte. Par exemple, pour configurer la VM testguest1 afin qu'elle utilise le modèle de CPU de l'hôte :
virt-xml testguest1 --edit --cpu host-model
# virt-xml testguest1 --edit --cpu host-model
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Sur un système ARM 64, utilisez
--cpu host-passthrough
.- Gérer la fusion des pages identiques du noyau (KSM).
Si votre machine hôte utilise l'accès non uniforme à la mémoire (NUMA), vous pouvez également consulter le site configure NUMA pour ses machines virtuelles. Les processus de l'unité centrale et de la mémoire de l'hôte sont ainsi mappés au plus près des processus de l'unité centrale et de la mémoire de la VM. En effet, le réglage NUMA fournit au vCPU un accès plus rationnel à la mémoire système allouée à la VM, ce qui peut améliorer l'efficacité de traitement du vCPU.
Pour plus de détails, voir Configuration de NUMA dans une machine virtuelle et Exemple de scénario d'optimisation des performances vCPU.
18.6.1. Ajout et suppression de CPU virtuels à l'aide de l'interface de ligne de commande Copier lienLien copié sur presse-papiers!
Pour augmenter ou optimiser les performances du processeur d'une machine virtuelle (VM), vous pouvez ajouter ou supprimer des processeurs virtuels (vCPU) assignés à la VM.
Lorsqu'elle est effectuée sur une VM en cours d'exécution, cette opération est également appelée vCPU hot plugging et hot unplugging (branchement et débranchement à chaud des vCPU). Cependant, notez que le vCPU hot unplug n'est pas pris en charge dans RHEL 9, et Red Hat déconseille fortement son utilisation.
Conditions préalables
Optional: Affichez l'état actuel des vCPU de la VM ciblée. Par exemple, pour afficher le nombre de vCPU sur la VM testguest:
virsh vcpucount testguest
# virsh vcpucount testguest maximum config 4 maximum live 2 current config 2 current live 1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cette sortie indique que testguest utilise actuellement 1 vCPU, et qu'il est possible d'y connecter à chaud 1 vCPU supplémentaire pour augmenter les performances de la VM. Cependant, après le redémarrage, le nombre de vCPUs utilisées par testguest passera à 2, et il sera possible de brancher à chaud 2 vCPUs supplémentaires.
Procédure
Ajuste le nombre maximum de vCPU qui peuvent être attachés à une VM, ce qui prend effet au prochain démarrage de la VM.
Par exemple, pour augmenter le nombre maximum de vCPU pour la VM testguest à 8 :
virsh setvcpus testguest 8 --maximum --config
# virsh setvcpus testguest 8 --maximum --config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Notez que le maximum peut être limité par la topologie de l'unité centrale, le matériel de l'hôte, l'hyperviseur et d'autres facteurs.
Ajustez le nombre actuel de vCPUs attachés à une VM, jusqu'au maximum configuré à l'étape précédente. Par exemple :
Pour augmenter le nombre de vCPU attachés à la VM testguest en cours d'exécution à 4 :
virsh setvcpus testguest 4 --live
# virsh setvcpus testguest 4 --live
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cela augmente les performances de la VM et l'empreinte de la charge de l'hôte de testguest jusqu'au prochain démarrage de la VM.
Pour réduire de façon permanente le nombre de vCPUs attachés à la VM testguest à 1 :
virsh setvcpus testguest 1 --config
# virsh setvcpus testguest 1 --config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cela diminue les performances de la VM et l'empreinte de la charge de l'hôte sur testguest après le prochain démarrage de la VM. Toutefois, si nécessaire, des vCPU supplémentaires peuvent être connectées à chaud à la VM pour augmenter temporairement ses performances.
Vérification
Confirmez que l'état actuel de vCPU pour la VM reflète vos changements.
virsh vcpucount testguest
# virsh vcpucount testguest maximum config 8 maximum live 4 current config 1 current live 4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.6.2. Gestion des CPU virtuels à l'aide de la console web Copier lienLien copié sur presse-papiers!
En utilisant la console web RHEL 9, vous pouvez examiner et configurer les CPU virtuels utilisés par les machines virtuelles (VM) auxquelles la console web est connectée.
Conditions préalables
- Le plug-in VM de la console web est installé sur votre système.
Procédure
Dans l'interface
, cliquez sur la VM dont vous voulez voir les informations.Une nouvelle page s'ouvre avec une section Vue d'ensemble contenant des informations de base sur la VM sélectionnée et une section Console permettant d'accéder à l'interface graphique de la VM.
Cliquez sur
en regard du nombre de vCPU dans le volet Vue d'ensemble.La boîte de dialogue vCPU details apparaît.
Configurer les CPU virtuels pour la VM sélectionnée.
vCPU Count - Le nombre de vCPUs actuellement utilisés.
NoteLe nombre de vCPU ne peut pas être supérieur au maximum de vCPU.
- vCPU Maximum - Le nombre maximum de CPU virtuels qui peuvent être configurés pour la VM. Si cette valeur est supérieure à vCPU Count, des vCPU supplémentaires peuvent être attachés à la VM.
- Sockets - Le nombre de sockets à exposer à la VM.
- Cores per socket - Le nombre de cœurs pour chaque socket à exposer à la VM.
Threads per core - Le nombre de threads pour chaque cœur à exposer à la VM.
Notez que les options Sockets, Cores per socket, et Threads per core ajustent la topologie du CPU de la VM. Cela peut être bénéfique pour les performances du vCPU et peut avoir un impact sur la fonctionnalité de certains logiciels dans le système d'exploitation invité. Si un paramètre différent n'est pas requis par votre déploiement, conservez les valeurs par défaut.
Cliquez sur
.Les CPU virtuels de la VM sont configurés.
NoteLes modifications apportées aux paramètres de l'unité centrale virtuelle ne prennent effet qu'après le redémarrage de la VM.
18.6.3. Configurer NUMA dans une machine virtuelle Copier lienLien copié sur presse-papiers!
Les méthodes suivantes peuvent être utilisées pour configurer les paramètres NUMA (Non-Uniform Memory Access) d'une machine virtuelle (VM) sur un hôte RHEL 9.
Conditions préalables
L'hôte est une machine compatible NUMA. Pour savoir si c'est le cas, utilisez la commande
virsh nodeinfo
et consultez la ligneNUMA cell(s)
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la valeur de la ligne est égale ou supérieure à 2, l'hôte est compatible NUMA.
Procédure
Pour faciliter l'utilisation, vous pouvez mettre en place la configuration NUMA d'une VM à l'aide d'utilitaires et de services automatisés. Toutefois, une configuration NUMA manuelle est plus susceptible de produire une amélioration significative des performances.
Automatic methods
Définissez la politique NUMA de la VM sur
Preferred
. Par exemple, pour la VM testguest5:virt-xml testguest5 --edit --vcpus placement=auto virt-xml testguest5 --edit --numatune mode=preferred
# virt-xml testguest5 --edit --vcpus placement=auto # virt-xml testguest5 --edit --numatune mode=preferred
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Activer l'équilibrage automatique des NUMA sur l'hôte :
echo 1 > /proc/sys/kernel/numa_balancing
# echo 1 > /proc/sys/kernel/numa_balancing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrez le service
numad
pour aligner automatiquement le processeur de la VM sur les ressources mémoire.systemctl start numad
# systemctl start numad
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Manual methods
Affecter des threads vCPU spécifiques à un processeur hôte spécifique ou à une gamme de processeurs. Ceci est également possible sur les hôtes et les VMs non-NUMA, et est recommandé comme méthode sûre d'amélioration des performances vCPU.
Par exemple, les commandes suivantes épinglent les threads vCPU 0 à 5 de la VM testguest6 aux CPU 1, 3, 5, 7, 9 et 11 de l'hôte, respectivement :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez ensuite vérifier si l'opération s'est déroulée correctement :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Après avoir épinglé les threads vCPU, vous pouvez également épingler les threads de processus QEMU associés à une VM spécifique à un processeur hôte spécifique ou à une plage de processeurs. Par exemple, les commandes suivantes épinglent le thread de processus QEMU de testguest6 aux CPU 13 et 15, et vérifient que cela a réussi :
virsh emulatorpin testguest6 13,15 virsh emulatorpin testguest6
# virsh emulatorpin testguest6 13,15 # virsh emulatorpin testguest6 emulator: CPU Affinity ---------------------------------- *: 13,15
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Enfin, vous pouvez également spécifier les nœuds NUMA de l'hôte qui seront affectés spécifiquement à une certaine VM. Cela peut améliorer l'utilisation de la mémoire de l'hôte par le vCPU de la VM. Par exemple, les commandes suivantes configurent testguest6 pour qu'il utilise les nœuds NUMA 3 à 5, et vérifient que l'opération a réussi :
virsh numatune testguest6 --nodeset 3-5 virsh numatune testguest6
# virsh numatune testguest6 --nodeset 3-5 # virsh numatune testguest6
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Pour obtenir les meilleurs résultats, il est recommandé d'utiliser toutes les méthodes de réglage manuel énumérées ci-dessus
18.6.4. Exemple de scénario d'optimisation des performances des vCPU Copier lienLien copié sur presse-papiers!
Pour obtenir la meilleure performance vCPU possible, Red Hat recommande d'utiliser les paramètres manuels vcpupin
, emulatorpin
, et numatune
ensemble, par exemple comme dans le scénario suivant.
Scénario de départ
Votre hôte présente les caractéristiques matérielles suivantes :
- 2 nœuds NUMA
- 3 cœurs de CPU sur chaque nœud
- 2 threads sur chaque cœur
La sortie de
virsh nodeinfo
d'une telle machine ressemblerait à ce qui suit :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous avez l'intention de modifier une VM existante pour qu'elle ait 8 vCPU, ce qui signifie qu'elle ne tiendra pas dans un seul nœud NUMA.
Par conséquent, vous devez distribuer 4 vCPU sur chaque nœud NUMA et faire en sorte que la topologie des vCPU ressemble le plus possible à la topologie de l'hôte. Cela signifie que les vCPU qui s'exécutent en tant que threads frères d'une unité centrale physique donnée doivent être rattachées à des threads hôtes sur le même cœur. Pour plus de détails, voir le site Solution ci-dessous :
Solution
Obtenir des informations sur la topologie de l'hôte :
virsh capabilities
# virsh capabilities
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Le résultat doit comprendre une section qui ressemble à ce qui suit :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Optional: Testez les performances de la VM en utilisant les outils et utilitaires appropriés.
Mettre en place et monter des pages gigantesques de 1 GiB sur l'hôte :
Noteil se peut que certaines architectures et configurations, telles que les hôtes ARM 64, ne disposent pas d'énormes pages de 1 gigaoctet.
Ajoutez la ligne suivante à la ligne de commande du noyau de l'hôte :
default_hugepagesz=1G hugepagesz=1G
default_hugepagesz=1G hugepagesz=1G
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez le fichier
/etc/systemd/system/hugetlb-gigantic-pages.service
avec le contenu suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez le fichier
/etc/systemd/hugetlb-reserve-pages.sh
avec le contenu suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cela réserve quatre grandes pages de 1GiB de node1 et quatre grandes pages de 1GiB de node2.
Rendez exécutable le script créé à l'étape précédente :
chmod x /etc/systemd/hugetlb-reserve-pages.sh
# chmod x /etc/systemd/hugetlb-reserve-pages.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Activer la réservation d'une grande page au démarrage :
systemctl enable hugetlb-gigantic-pages
# systemctl enable hugetlb-gigantic-pages
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Utilisez la commande
virsh edit
pour éditer la configuration XML de la VM que vous souhaitez optimiser, dans cet exemple super-VM:virsh edit super-vm
# virsh edit super-vm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajustez la configuration XML de la VM de la manière suivante :
-
Configurez la VM pour qu'elle utilise 8 vCPU statiques. Pour ce faire, utilisez l'élément
<vcpu/>
. Épinglez chacun des threads vCPU aux threads correspondants de l'unité centrale de l'hôte qu'il reflète dans la topologie. Pour ce faire, utilisez les éléments
<vcpupin/>
dans la section<cputune>
.Notez que, comme le montre l'utilitaire
virsh capabilities
ci-dessus, les threads du processeur hôte ne sont pas ordonnés de manière séquentielle dans leurs cœurs respectifs. En outre, les threads vCPU doivent être rattachés à l'ensemble le plus élevé de cœurs hôtes disponibles sur le même nœud NUMA. Pour une illustration sous forme de tableau, voir la section Sample topology ci-dessous.La configuration XML pour les étapes a. et b. peut ressembler à ce qui suit :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configurez la VM pour qu'elle utilise 1 GiB de pages énormes :
<memoryBacking> <hugepages> <page size='1' unit='GiB'/> </hugepages> </memoryBacking>
<memoryBacking> <hugepages> <page size='1' unit='GiB'/> </hugepages> </memoryBacking>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configurez les nœuds NUMA de la VM pour qu'ils utilisent la mémoire des nœuds NUMA correspondants de l'hôte. Pour ce faire, utilisez les éléments
<memnode/>
dans la section<numatune/>
:<numatune> <memory mode="preferred" nodeset="1"/> <memnode cellid="0" mode="strict" nodeset="0"/> <memnode cellid="1" mode="strict" nodeset="1"/> </numatune>
<numatune> <memory mode="preferred" nodeset="1"/> <memnode cellid="0" mode="strict" nodeset="0"/> <memnode cellid="1" mode="strict" nodeset="1"/> </numatune>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assurez-vous que le mode de l'unité centrale est réglé sur
host-passthrough
et que l'unité centrale utilise la mémoire cache en modepassthrough
:<cpu mode="host-passthrough"> <topology sockets="2" cores="2" threads="2"/> <cache mode="passthrough"/>
<cpu mode="host-passthrough"> <topology sockets="2" cores="2" threads="2"/> <cache mode="passthrough"/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Sur un système ARM 64, omettre la ligne
<cache mode="passthrough"/>
.
-
Configurez la VM pour qu'elle utilise 8 vCPU statiques. Pour ce faire, utilisez l'élément
Vérification
Confirmez que la configuration XML résultante de la VM comprend une section similaire à la suivante :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Optional: Tester les performances de la VM en utilisant les outils et utilitaires applicables pour évaluer l'impact de l'optimisation de la VM.
Exemple de topologie
Les tableaux suivants illustrent les connexions entre les vCPU et les CPU hôtes auxquels ils doivent être rattachés :
Expand Tableau 18.2. Topologie de l'hôte CPU threads
0
3
1
4
2
5
6
9
7
10
8
11
Cores
0
1
2
3
4
5
Sockets
0
1
NUMA nodes
0
1
Expand Tableau 18.3. Topologie de la VM vCPU threads
0
1
2
3
4
5
6
7
Cores
0
1
2
3
Sockets
0
1
NUMA nodes
0
1
Expand Tableau 18.4. Topologie combinée d'hôtes et de machines virtuelles vCPU threads
0
1
2
3
4
5
6
7
Host CPU threads
0
3
1
4
2
5
6
9
7
10
8
11
Cores
0
1
2
3
4
5
Sockets
0
1
NUMA nodes
0
1
Dans ce scénario, il y a 2 nœuds NUMA et 8 vCPU. Par conséquent, 4 threads vCPU doivent être épinglés sur chaque nœud.
De plus, Red Hat recommande de laisser au moins un thread de CPU disponible sur chaque nœud pour les opérations du système hôte.
Étant donné que dans cet exemple, chaque nœud NUMA héberge 3 cœurs, chacun avec 2 threads de l'unité centrale, l'ensemble pour le nœud 0 se traduit comme suit :
<vcpupin vcpu='0' cpuset='1'/> <vcpupin vcpu='1' cpuset='4'/> <vcpupin vcpu='2' cpuset='2'/> <vcpupin vcpu='3' cpuset='5'/>
<vcpupin vcpu='0' cpuset='1'/> <vcpupin vcpu='1' cpuset='4'/> <vcpupin vcpu='2' cpuset='2'/> <vcpupin vcpu='3' cpuset='5'/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.6.5. Gestion de la fusion de pages identiques dans le noyau Copier lienLien copié sur presse-papiers!
Le Kernel Same-Page Merging (KSM) améliore la densité de la mémoire en partageant des pages de mémoire identiques entre les machines virtuelles (VM). Cependant, l'activation de KSM augmente l'utilisation du processeur et peut nuire aux performances globales en fonction de la charge de travail.
En fonction de vos besoins, vous pouvez activer ou désactiver KSM pour une session unique ou de façon permanente.
Dans RHEL 9 et les versions ultérieures, KSM est désactivé par défaut.
Conditions préalables
- Accès à la racine de votre système hôte.
Procédure
Désactiver KSM :
Pour désactiver KSM pour une seule session, utilisez l'utilitaire
systemctl
pour arrêter les servicesksm
etksmtuned
.systemctl stop ksm systemctl stop ksmtuned
# systemctl stop ksm # systemctl stop ksmtuned
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour désactiver KSM de manière persistante, utilisez l'utilitaire
systemctl
pour désactiver les servicesksm
etksmtuned
.systemctl disable ksm systemctl disable ksmtuned
# systemctl disable ksm Removed /etc/systemd/system/multi-user.target.wants/ksm.service. # systemctl disable ksmtuned Removed /etc/systemd/system/multi-user.target.wants/ksmtuned.service.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Les pages de mémoire partagées entre les machines virtuelles avant la désactivation de KSM resteront partagées. Pour arrêter le partage, supprimez toutes les pages PageKSM
dans le système à l'aide de la commande suivante :
echo 2 > /sys/kernel/mm/ksm/run
# echo 2 > /sys/kernel/mm/ksm/run
Une fois que les pages anonymes ont remplacé les pages KSM, le service du noyau khugepaged
reconstruit les hugepages transparentes sur la mémoire physique de la VM.
- Activer KSM :
L'activation de KSM augmente l'utilisation de l'unité centrale et affecte les performances globales de l'unité centrale.
Installer le service
ksmtuned
:# dnf install ksmtuned
Démarrer le service :
Pour activer KSM pour une seule session, utilisez l'utilitaire
systemctl
pour démarrer les servicesksm
etksmtuned
.systemctl start ksm systemctl start ksmtuned
# systemctl start ksm # systemctl start ksmtuned
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour activer KSM de manière persistante, utilisez l'utilitaire
systemctl
pour activer les servicesksm
etksmtuned
.systemctl enable ksm systemctl enable ksmtuned
# systemctl enable ksm Created symlink /etc/systemd/system/multi-user.target.wants/ksm.service → /usr/lib/systemd/system/ksm.service # systemctl enable ksmtuned Created symlink /etc/systemd/system/multi-user.target.wants/ksmtuned.service → /usr/lib/systemd/system/ksmtuned.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.7. Optimiser les performances du réseau des machines virtuelles Copier lienLien copié sur presse-papiers!
En raison de la nature virtuelle de la carte d'interface réseau (NIC) d'une VM, cette dernière perd une partie de la bande passante du réseau hôte qui lui est allouée, ce qui peut réduire l'efficacité globale de la charge de travail de la VM. Les conseils suivants peuvent minimiser l'impact négatif de la virtualisation sur le débit de la carte d'interface réseau virtuelle (vNIC).
Procédure
Utilisez l'une des méthodes suivantes et observez si elle a un effet bénéfique sur les performances du réseau de votre VM :
- Activer le module vhost_net
Sur l'hôte, vérifiez que la fonction
vhost_net
kernel est activée :lsmod | grep vhost
# lsmod | grep vhost vhost_net 32768 1 vhost 53248 1 vhost_net tap 24576 1 vhost_net tun 57344 6 vhost_net
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la sortie de cette commande est vide, activez le module du noyau
vhost_net
:modprobe vhost_net
# modprobe vhost_net
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Mise en place d'un réseau virtio-net multi-queues
Pour configurer la fonction multi-queue virtio-net pour une VM, utilisez la commande
virsh edit
pour éditer la configuration XML de la VM. Dans le fichier XML, ajoutez ce qui suit à la section<devices>
et remplacezN
par le nombre de vCPU de la VM, jusqu'à 16 :<interface type='network'> <source network='default'/> <model type='virtio'/> <driver name='vhost' queues='N'/> </interface>
<interface type='network'> <source network='default'/> <model type='virtio'/> <driver name='vhost' queues='N'/> </interface>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la VM est en cours d'exécution, redémarrez-la pour que les modifications soient prises en compte.
- Mise en lots des paquets réseau
Dans les configurations de VM Linux avec un long chemin de transmission, la mise en lot des paquets avant de les soumettre au noyau peut améliorer l'utilisation du cache. Pour configurer la mise en lot des paquets, utilisez la commande suivante sur l'hôte et remplacez tap0 par le nom de l'interface réseau utilisée par les machines virtuelles :
ethtool -C tap0 rx-frames 64
# ethtool -C tap0 rx-frames 64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - SR-IOV
- Si votre carte réseau hôte prend en charge SR-IOV, utilisez l'affectation de périphériques SR-IOV pour vos cartes réseau virtuelles. Pour plus d'informations, voir Gestion des périphériques SR-IOV.
18.8. Outils de contrôle des performances des machines virtuelles Copier lienLien copié sur presse-papiers!
Pour identifier ce qui consomme le plus de ressources de la VM et quel aspect des performances de la VM doit être optimisé, il est possible d'utiliser des outils de diagnostic des performances, à la fois généraux et spécifiques à la VM.
Outils de contrôle des performances du système d'exploitation par défaut
Pour une évaluation standard des performances, vous pouvez utiliser les utilitaires fournis par défaut par vos systèmes d'exploitation hôte et invité :
Sur votre hôte RHEL 9, en tant que root, utilisez l'utilitaire
top
ou l'application system monitor, et recherchezqemu
etvirt
dans les résultats. Cela indique la quantité de ressources du système hôte que vos machines virtuelles consomment.-
Si l'outil de surveillance indique que l'un des processus
qemu
ouvirt
consomme une grande partie de l'unité centrale ou de la capacité de mémoire de l'hôte, utilisez l'utilitaireperf
pour enquêter. Pour plus de détails, voir ci-dessous. -
En outre, si un processus
vhost_net
, nommé par exemple vhost_net-1234, est affiché comme consommant une quantité excessive de capacité de l'unité centrale de l'hôte, envisagez d'utiliser des fonctions d'optimisation du réseau virtuel, telles quemulti-queue virtio-net
.
-
Si l'outil de surveillance indique que l'un des processus
Sur le système d'exploitation invité, utilisez les utilitaires de performance et les applications disponibles sur le système pour évaluer les processus qui consomment le plus de ressources système.
-
Sur les systèmes Linux, vous pouvez utiliser l'utilitaire
top
. - Sur les systèmes Windows, vous pouvez utiliser l'application Task Manager.
-
Sur les systèmes Linux, vous pouvez utiliser l'utilitaire
perf kvm
Vous pouvez utiliser l'utilitaire perf
pour collecter et analyser des statistiques spécifiques à la virtualisation sur les performances de votre hôte RHEL 9. Pour ce faire, procédez comme suit
Sur l'hôte, installez le paquetage perf:
dnf install perf
# dnf install perf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utilisez l'une des commandes
perf kvm stat
pour afficher les statistiques de perf de votre hôte de virtualisation :-
Pour une surveillance en temps réel de votre hyperviseur, utilisez la commande
perf kvm stat live
. -
Pour enregistrer les données de performance de votre hyperviseur sur une période donnée, activez l'enregistrement à l'aide de la commande
perf kvm stat record
. Après l'annulation ou l'interruption de la commande, les données sont enregistrées dans le fichierperf.data.guest
, qui peut être analysé à l'aide de la commandeperf kvm stat report
.
-
Pour une surveillance en temps réel de votre hyperviseur, utilisez la commande
Analysez la sortie
perf
pour identifier les types d'événementsVM-EXIT
et leur distribution. Par exemple, les événementsPAUSE_INSTRUCTION
devraient être peu fréquents, mais dans la sortie suivante, l'occurrence élevée de cet événement suggère que les CPU de l'hôte ne gèrent pas bien les vCPU en cours d'exécution. Dans un tel scénario, envisagez d'arrêter certaines de vos machines virtuelles actives, de supprimer les vCPU de ces machines virtuelles ou de régler les performances des vCPU.Copy to Clipboard Copied! Toggle word wrap Toggle overflow D'autres types d'événements peuvent signaler des problèmes dans la sortie de
perf kvm stat
:-
INSN_EMULATION
- suggère une configuration sous-optimale des E/S de la VM.
-
Pour plus d'informations sur l'utilisation de perf
pour surveiller les performances de la virtualisation, voir la page de manuel perf-kvm
.
numastat
Pour connaître la configuration NUMA actuelle de votre système, vous pouvez utiliser l'utilitaire numastat
, qui est fourni en installant le paquetage numactl.
L'exemple suivant montre un hôte avec 4 VM en cours d'exécution, chacune obtenant de la mémoire à partir de plusieurs nœuds NUMA. Cette situation n'est pas optimale pour les performances des vCPU et mérite d'être corrigée:
En revanche, la figure suivante montre que la mémoire est fournie à chaque machine virtuelle par un seul nœud, ce qui est nettement plus efficace.
Chapitre 19. Sécuriser les machines virtuelles Copier lienLien copié sur presse-papiers!
En tant qu'administrateur d'un système RHEL 9 doté de machines virtuelles (VM), vous devez vous assurer que vos VM sont aussi sécurisées que possible afin de réduire considérablement le risque d'infection de vos systèmes d'exploitation invités et hôtes par des logiciels malveillants.
Ce document décrit les mécanismes de sécurisation des machines virtuelles sur un hôte RHEL 9 et fournit une liste de méthodes permettant d'améliorer la sécurité de vos machines virtuelles.
19.1. Comment fonctionne la sécurité dans les machines virtuelles Copier lienLien copié sur presse-papiers!
Lors de l'utilisation de machines virtuelles (VM), plusieurs systèmes d'exploitation peuvent être hébergés dans une seule machine hôte. Ces systèmes sont connectés à l'hôte par l'intermédiaire de l'hyperviseur et, en général, d'un réseau virtuel. Par conséquent, chaque VM peut être utilisée comme vecteur pour attaquer l'hôte avec des logiciels malveillants, et l'hôte peut être utilisé comme vecteur pour attaquer n'importe laquelle des VM.
Figure 19.1. Un vecteur potentiel d'attaque de logiciels malveillants sur un hôte de virtualisation
Étant donné que l'hyperviseur utilise le noyau de l'hôte pour gérer les machines virtuelles, les services fonctionnant sur le système d'exploitation de la machine virtuelle sont souvent utilisés pour injecter du code malveillant dans le système hôte. Cependant, vous pouvez protéger votre système contre de telles menaces de sécurité en utilisant un certain nombre de fonctions de sécurité sur votre système hôte et votre système invité.
Ces fonctionnalités, telles que SELinux ou QEMU sandboxing, fournissent diverses mesures qui rendent plus difficile l'attaque de l'hyperviseur par des codes malveillants et leur transfert entre votre hôte et vos machines virtuelles.
Figure 19.2. Prévention des attaques de logiciels malveillants sur un hôte de virtualisation
De nombreuses fonctionnalités fournies par RHEL 9 pour la sécurité des machines virtuelles sont toujours actives et n'ont pas besoin d'être activées ou configurées. Pour plus d'informations, voir Fonctionnalités automatiques pour la sécurité des machines virtuelles.
En outre, vous pouvez adhérer à une série de bonnes pratiques pour minimiser la vulnérabilité de vos machines virtuelles et de votre hyperviseur. Pour plus d'informations, voir Meilleures pratiques pour sécuriser les machines virtuelles.
19.2. Meilleures pratiques pour sécuriser les machines virtuelles Copier lienLien copié sur presse-papiers!
Le respect des instructions ci-dessous réduit considérablement le risque que vos machines virtuelles soient infectées par un code malveillant et utilisées comme vecteurs d'attaque pour infecter votre système hôte.
On the guest side:
Sécuriser la machine virtuelle comme s'il s'agissait d'une machine physique. Les méthodes spécifiques disponibles pour renforcer la sécurité dépendent du système d'exploitation invité.
Si votre VM exécute RHEL 9, voir Sécuriser Red Hat Enterprise Linux 9 pour des instructions détaillées sur l'amélioration de la sécurité de votre système invité.
On the host side:
- Lorsque vous gérez des VM à distance, utilisez des utilitaires cryptographiques tels que SSH et des protocoles réseau tels que SSL pour vous connecter aux VM.
Assurez-vous que SELinux est en mode "Enforcing" :
getenforce
# getenforce Enforcing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si SELinux est désactivé ou en mode Permissive, consultez le document Using SELinux pour savoir comment activer le mode Enforcing.
NoteLe mode SELinux Enforcing active également la fonction sVirt RHEL 9. Il s'agit d'un ensemble de booléens SELinux spécialisés dans la virtualisation, qui peuvent être ajustés manuellement pour une gestion fine de la sécurité des machines virtuelles.
Utiliser les VM avec SecureBoot:
SecureBoot est une fonction qui garantit que votre VM exécute un système d'exploitation signé par un système de cryptographie. Cela empêche les machines virtuelles dont le système d'exploitation a été modifié par un logiciel malveillant de démarrer.
SecureBoot ne peut être appliqué que lors de l'installation d'une VM Linux utilisant le micrologiciel OVMF sur un hôte AMD64 ou Intel 64. Pour plus d'informations, voir Création d'une machine virtuelle SecureBoot.
N'utilisez pas les commandes
qemu-*
, telles queqemu-kvm
.QEMU est un composant essentiel de l'architecture de virtualisation dans RHEL 9, mais il est difficile à gérer manuellement, et des configurations QEMU incorrectes peuvent entraîner des vulnérabilités de sécurité. Par conséquent, l'utilisation de la plupart des commandes
qemu-*
n'est pas prise en charge par Red Hat. Utilisez plutôt les utilitaires libvirt, tels quevirsh
,virt-install
, etvirt-xml
, car ils orchestrent QEMU selon les meilleures pratiques.Notez toutefois que l'utilitaire
qemu-img
est pris en charge pour la gestion des images de disques virtuels.
19.3. Création d'une machine virtuelle SecureBoot Copier lienLien copié sur presse-papiers!
Vous pouvez créer une machine virtuelle (VM) Linux qui utilise la fonctionnalité SecureBoot, qui garantit que votre VM exécute un système d'exploitation signé cryptographiquement. Cela peut s'avérer utile si le système d'exploitation invité d'une VM a été modifié par un logiciel malveillant. Dans ce cas, SecureBoot empêche la VM de démarrer, ce qui bloque la propagation potentielle du logiciel malveillant sur votre machine hôte.
Conditions préalables
- La VM est le type de machine Q35.
- Votre système hôte utilise l'architecture AMD64 ou Intel 64.
Le paquet
edk2-OVMF
est installé :dnf install edk2-ovmf
# dnf install edk2-ovmf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Une source d'installation du système d'exploitation (OS) est disponible localement ou sur un réseau. Il peut s'agir de l'un des formats suivants :
- Une image ISO d'un support d'installation
Une image disque d'une installation VM existante
AvertissementL'installation à partir d'un CD-ROM ou d'un DVD-ROM hôte n'est pas possible dans RHEL 9. Si vous sélectionnez un CD-ROM ou un DVD-ROM comme source d'installation lors de l'utilisation d'une méthode d'installation de VM disponible dans RHEL 9, l'installation échouera. Pour plus d'informations, consultez la base de connaissances de Red Hat.
- Facultatif : Un fichier Kickstart peut être fourni pour faciliter et accélérer la configuration de l'installation.
Procédure
Utilisez la commande
virt-install
pour créer une machine virtuelle, comme indiqué dans la section Création de machines virtuelles à l'aide de l'interface de ligne de commande. Pour l'option--boot
, utilisez la valeuruefi,nvram_template=/usr/share/OVMF/OVMF_VARS.secboot.fd
. Cette commande utilise les fichiersOVMF_VARS.secboot.fd
etOVMF_CODE.secboot.fd
comme modèles pour les paramètres de la mémoire vive non volatile (NVRAM) de la VM, ce qui permet d'activer la fonction SecureBoot.Par exemple :
virt-install --name rhel8sb --memory 4096 --vcpus 4 --os-variant rhel9.0 --boot uefi,nvram_template=/usr/share/OVMF/OVMF_VARS.secboot.fd --disk boot_order=2,size=10 --disk boot_order=1,device=cdrom,bus=scsi,path=/images/RHEL-9.0-installation.iso
# virt-install --name rhel8sb --memory 4096 --vcpus 4 --os-variant rhel9.0 --boot uefi,nvram_template=/usr/share/OVMF/OVMF_VARS.secboot.fd --disk boot_order=2,size=10 --disk boot_order=1,device=cdrom,bus=scsi,path=/images/RHEL-9.0-installation.iso
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Suivez la procédure d'installation du système d'exploitation conformément aux instructions affichées à l'écran.
Vérification
- Une fois le système d'exploitation invité installé, accédez à la ligne de commande de la VM en ouvrant le terminal dans la console graphique de l'invité ou en vous connectant au système d'exploitation invité à l'aide de SSH.
Pour confirmer que SecureBoot a été activé sur la VM, utilisez la commande
mokutil --sb-state
:mokutil --sb-state
# mokutil --sb-state SecureBoot enabled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.4. Limiter les actions disponibles pour les utilisateurs de machines virtuelles Copier lienLien copié sur presse-papiers!
Dans certains cas, les actions que les utilisateurs de machines virtuelles (VM) hébergées sur RHEL 9 peuvent effectuer par défaut peuvent présenter un risque pour la sécurité. Dans ce cas, vous pouvez limiter les actions disponibles pour les utilisateurs de VM en configurant les démons libvirt
pour qu'ils utilisent la boîte à outils de stratégie polkit
sur la machine hôte.
Procédure
Optional: Assurez-vous que les politiques de contrôle de votre système
polkit
relatives àlibvirt
sont configurées selon vos préférences.Trouver tous les fichiers liés à libvirt dans les répertoires
/usr/share/polkit-1/actions/
et/usr/share/polkit-1/rules.d/
.ls /usr/share/polkit-1/actions | grep libvirt ls /usr/share/polkit-1/rules.d | grep libvirt
# ls /usr/share/polkit-1/actions | grep libvirt # ls /usr/share/polkit-1/rules.d | grep libvirt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ouvrez les fichiers et examinez les paramètres des règles.
Pour obtenir des informations sur la lecture de la syntaxe des politiques de contrôle
polkit
, utilisezman polkit
.Modifier les politiques de contrôle de
libvirt
. Pour ce faire, il faut-
Créez un nouveau fichier
.rules
dans le répertoire/etc/polkit-1/rules.d/
. Ajoutez vos politiques personnalisées à ce fichier et enregistrez-le.
Pour de plus amples informations et des exemples de politiques de contrôle
libvirt
, voir la documentation en amontlibvirt
.
-
Créez un nouveau fichier
Configurez vos machines virtuelles pour qu'elles utilisent les politiques d'accès déterminées par
polkit
.Pour ce faire, recherchez tous les fichiers de configuration des pilotes de virtualisation dans le répertoire
/etc/libvirt/
et décommentez la ligneaccess_drivers = [ "polkit" ]
qui s'y trouve.find /etc/libvirt/ -name virt*d.conf -exec sed -i 's/#access_drivers = \[ "polkit" \]/access_drivers = \[ "polkit" \]/g' {}
# find /etc/libvirt/ -name virt*d.conf -exec sed -i 's/#access_drivers = \[ "polkit" \]/access_drivers = \[ "polkit" \]/g' {}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour chaque fichier modifié à l'étape précédente, redémarrez le service correspondant.
Par exemple, si vous avez modifié
/etc/libvirt/virtqemud.conf
, redémarrez le servicevirtqemud
.systemctl try-restart virtqemud
# systemctl try-restart virtqemud
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
En tant qu'utilisateur dont vous souhaitez limiter les actions de la VM, effectuez l'une des actions restreintes.
Par exemple, si les utilisateurs non privilégiés ne peuvent pas voir les machines virtuelles créées dans la session système :
virsh -c qemu:///system list --all
$ virsh -c qemu:///system list --all Id Name State -------------------------------
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si cette commande ne répertorie aucune VM alors qu'une ou plusieurs VM existent sur votre système,
polkit
restreint avec succès l'action pour les utilisateurs non privilégiés.
Résolution de problèmes
Actuellement, la configuration de
libvirt
pour utiliserpolkit
rend impossible la connexion aux machines virtuelles à l'aide de la console web RHEL 9, en raison d'une incompatibilité avec le servicelibvirt-dbus
.Si vous avez besoin d'un contrôle d'accès précis des machines virtuelles dans la console Web, créez une politique D-Bus personnalisée. Pour obtenir des instructions, voir Comment configurer un contrôle fin des machines virtuelles dans Cockpit dans la base de connaissances de Red Hat.
19.5. Fonctionnalités automatiques pour la sécurité des machines virtuelles Copier lienLien copié sur presse-papiers!
Outre les moyens manuels d'améliorer la sécurité de vos machines virtuelles énumérés dans la section Meilleures pratiques pour sécuriser les machines virtuelles, un certain nombre de fonctions de sécurité sont fournies par la suite logicielle libvirt et sont automatiquement activées lors de l'utilisation de la virtualisation dans RHEL 9. Ces fonctions incluent
- Connexions au système et à la session
Pour accéder à tous les utilitaires disponibles pour la gestion des machines virtuelles dans RHEL 9, vous devez utiliser le site system connection de libvirt (
qemu:///system
). Pour ce faire, vous devez avoir les privilèges de root sur le système ou faire partie du groupe d'utilisateurs libvirt.Les utilisateurs non root qui ne font pas partie du groupe libvirt ne peuvent accéder qu'à un session connection de libvirt (
qemu:///session
), qui doit respecter les droits d'accès de l'utilisateur local lorsqu'il accède aux ressources. Par exemple, en utilisant la connexion de session, vous ne pouvez pas détecter ou accéder aux machines virtuelles créées dans la connexion système ou par d'autres utilisateurs. En outre, les options de configuration de la mise en réseau des machines virtuelles sont considérablement limitées.NoteLa documentation de RHEL 9 suppose que vous disposez des privilèges de connexion au système.
- Séparation des machines virtuelles
- Les VM individuelles s'exécutent en tant que processus isolés sur l'hôte et s'appuient sur la sécurité mise en œuvre par le noyau de l'hôte. Par conséquent, une VM ne peut pas lire ou accéder à la mémoire ou au stockage d'autres VM sur le même hôte.
- QEMU sandboxing
- Fonctionnalité qui empêche le code QEMU d'exécuter des appels système susceptibles de compromettre la sécurité de l'hôte.
- Randomisation de l'espace d'adressage du noyau (KASLR)
- Permet de randomiser les adresses physiques et virtuelles auxquelles l'image du noyau est décompressée. Ainsi, KASLR empêche les exploits de sécurité de l'invité basés sur l'emplacement des objets du noyau.
19.6. Les booléens SELinux pour la virtualisation Copier lienLien copié sur presse-papiers!
RHEL 9 propose la fonctionnalité sVirt
, qui est un ensemble de booléens SELinux spécialisés automatiquement activés sur un hôte avec SELinux en mode Enforcing.
Pour une configuration fine de la sécurité des machines virtuelles sur un système RHEL 9, vous pouvez configurer des booléens SELinux sur l'hôte afin que l'hyperviseur agisse d'une manière spécifique.
Pour dresser la liste de tous les booléens liés à la virtualisation et de leur état, utilisez la commande getsebool -a | grep virt
:
Pour activer un booléen spécifique, utilisez la commande setsebool -P boolean_name on
en tant que root. Pour désactiver un booléen, utilisez la commande setsebool -P boolean_name off
.
Le tableau suivant répertorie les booléens relatifs à la virtualisation disponibles dans RHEL 9 et leur fonction lorsqu'ils sont activés :
SELinux booléen | Description |
---|---|
staff_use_svirt | Permet aux utilisateurs non root de créer et de transférer des machines virtuelles vers sVirt. |
unprivuser_use_svirt | Permet aux utilisateurs non privilégiés de créer et de transférer des machines virtuelles vers sVirt. |
virt_sandbox_use_audit | Permet aux conteneurs de bac à sable d'envoyer des messages d'audit. |
virt_sandbox_use_netlink | Permet aux conteneurs de bac à sable d'utiliser les appels système netlink. |
virt_sandbox_use_sys_admin | Permet aux conteneurs de bac à sable d'utiliser les appels système sys_admin, tels que mount. |
virt_transition_userdomain | Permet aux processus virtuels de s'exécuter en tant que domaines d'utilisateurs. |
virt_use_comm | Permet à virt d'utiliser des ports de communication série/parallèle. |
virt_use_execmem | Permet aux invités virtuels confinés d'utiliser la mémoire et la pile exécutables. |
virt_use_fusefs | Permet à virt de lire les fichiers montés sur FUSE. |
virt_use_nfs | Permet à virt de gérer les fichiers montés sur NFS. |
virt_use_rawip | Permet à virt d'interagir avec les sockets rawip. |
virt_use_samba | Permet à virt de gérer les fichiers montés en CIFS. |
virt_use_sanlock | Permet aux invités virtuels confinés d'interagir avec le sanlock. |
virt_use_usb | Permet à virt d'utiliser des périphériques USB. |
virt_use_xserver | Permet à la machine virtuelle d'interagir avec le système X Window. |
19.7. Configuration d'IBM Secure Execution sur IBM Z Copier lienLien copié sur presse-papiers!
Lorsque vous utilisez du matériel IBM Z pour exécuter un hôte RHEL 9, vous pouvez améliorer la sécurité de vos machines virtuelles (VM) en configurant IBM Secure Execution pour les VM.
IBM Secure Execution, également connu sous le nom de Protected Virtualization, empêche le système hôte d'accéder à l'état et au contenu de la mémoire d'une VM. Par conséquent, même si l'hôte est compromis, il ne peut pas être utilisé comme vecteur d'attaque du système d'exploitation invité. En outre, Secure Execution peut être utilisé pour empêcher les hôtes non fiables d'obtenir des informations sensibles de la VM.
La procédure suivante décrit comment convertir une VM existante sur un hôte IBM Z en une VM sécurisée.
Conditions préalables
Le matériel du système est l'un des suivants :
- IBM z15 ou ultérieur
- IBM LinuxONE III ou version ultérieure
La fonction d'exécution sécurisée est activée pour votre système. Pour le vérifier, utilisez :
grep facilities /proc/cpuinfo | grep 158
# grep facilities /proc/cpuinfo | grep 158
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si cette commande affiche une sortie, votre unité centrale est compatible avec Secure Execution.
Le noyau prend en charge l'exécution sécurisée. Pour confirmer, utilisez :
ls /sys/firmware | grep uv
# ls /sys/firmware | grep uv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la commande génère une sortie, votre noyau prend en charge l'exécution sécurisée.
Le modèle de l'unité centrale hôte contient la fonction
unpack
. Pour confirmer, utilisez :virsh domcapabilities | grep unpack
# virsh domcapabilities | grep unpack <feature policy='require' name='unpack'/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la commande génère le résultat ci-dessus, votre modèle d'hôte CPU est compatible avec Secure Execution.
Le mode CPU de la VM est défini sur
host-model
. Pour le confirmer, utilisez la procédure suivante et remplacezvm-name
par le nom de votre VM.virsh dumpxml vm-name | grep "<cpu mode='host-model'/>"
# virsh dumpxml vm-name | grep "<cpu mode='host-model'/>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la commande génère une sortie, le mode CPU de la VM est correctement défini.
Le paquetage genprotimg doit être installé sur l'hôte.
dnf install genprotimg
# dnf install genprotimg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Vous avez obtenu et vérifié le document de la clé hôte IBM Z. Pour obtenir des instructions à ce sujet, reportez-vous à la section Vérification du document de clé hôte dans la documentation IBM.
Procédure
Effectuez les étapes suivantes on your host:
Ajoutez le paramètre
prot_virt=1
kernel à la configuration de démarrage de l'hôte.grubby --update-kernel=ALL --args="prot_virt=1"
# grubby --update-kernel=ALL --args="prot_virt=1"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Mettre à jour le menu de démarrage :
# zipl
-
Utilisez
virsh edit
pour modifier la configuration XML de la VM que vous souhaitez sécuriser. Ajoutez
<launchSecurity type="s390-pv"/>
sous la ligne</devices>
. Par exemple :[...] </memballoon> </devices> <launchSecurity type="s390-pv"/> </domain>
[...] </memballoon> </devices> <launchSecurity type="s390-pv"/> </domain>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Si la section
<devices>
de la configuration comprend un dispositifvirtio-rng
(<rng model="virtio">
), supprimez toutes les lignes du bloc<rng> </rng>
. Optional: Si la VM que vous souhaitez sécuriser utilise 32 GiB de RAM ou plus, ajoutez la ligne
<async-teardown enabled='yes'/>
à la section<features></features>
de sa configuration XML.Cela améliore la performance du redémarrage ou de l'arrêt de ces hôtes de Secure Execution.
Effectuez les étapes suivantes in the guest operating system de la VM que vous souhaitez sécuriser.
Créer un fichier de paramètres. Par exemple :
touch ~/secure-parameters
# touch ~/secure-parameters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans le répertoire
/boot/loader/entries
, identifiez l'entrée du chargeur de démarrage avec la dernière version :ls /boot/loader/entries -l
# ls /boot/loader/entries -l [...] -rw-r--r--. 1 root root 281 Oct 9 15:51 3ab27a195c2849429927b00679db15c1-4.18.0-240.el8.s390x.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Récupère la ligne d'options du noyau de l'entrée du chargeur de démarrage :
cat /boot/loader/entries/3ab27a195c2849429927b00679db15c1-4.18.0-240.el8.s390x.conf | grep options options root=/dev/mapper/rhel-root rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap
# cat /boot/loader/entries/3ab27a195c2849429927b00679db15c1-4.18.0-240.el8.s390x.conf | grep options options root=/dev/mapper/rhel-root rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajoutez le contenu de la ligne d'options et
swiotlb=262144
au fichier de paramètres créé.echo "root=/dev/mapper/rhel-root rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap swiotlb=262144" > ~/secure-parameters
# echo "root=/dev/mapper/rhel-root rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap swiotlb=262144" > ~/secure-parameters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Générer une image IBM Secure Execution.
Par exemple, la procédure suivante crée une image sécurisée
/boot/secure-image
basée sur l'image/boot/vmlinuz-4.18.0-240.el8.s390x
, en utilisant le fichiersecure-parameters
, le fichier de disque RAM initial/boot/initramfs-4.18.0-240.el8.s390x.img
et le document de clé d'hôteHKD-8651-000201C048.crt
.genprotimg -i /boot/vmlinuz-4.18.0-240.el8.s390x -r /boot/initramfs-4.18.0-240.el8.s390x.img -p ~/secure-parameters -k HKD-8651-00020089A8.crt -o /boot/secure-image
# genprotimg -i /boot/vmlinuz-4.18.0-240.el8.s390x -r /boot/initramfs-4.18.0-240.el8.s390x.img -p ~/secure-parameters -k HKD-8651-00020089A8.crt -o /boot/secure-image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L'utilitaire
genprotimg
permet de créer l'image sécurisée, qui contient les paramètres du noyau, le disque RAM initial et l'image de démarrage.Mettez à jour le menu de démarrage de la VM pour démarrer à partir de l'image sécurisée. En outre, supprimez les lignes commençant par
initrd
etoptions
, car elles ne sont pas nécessaires.Par exemple, dans une VM RHEL 8.3, le menu de démarrage peut être édité dans le répertoire
/boot/loader/entries/
:cat /boot/loader/entries/3ab27a195c2849429927b00679db15c1-4.18.0-240.el8.s390x.conf title Red Hat Enterprise Linux 8.3 version 4.18.0-240.el8.s390x linux /boot/secure-image [...]
# cat /boot/loader/entries/3ab27a195c2849429927b00679db15c1-4.18.0-240.el8.s390x.conf title Red Hat Enterprise Linux 8.3 version 4.18.0-240.el8.s390x linux /boot/secure-image [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer l'image disque amorçable :
zipl -V
# zipl -V
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Supprimer en toute sécurité les fichiers originaux non protégés. Par exemple :
shred /boot/vmlinuz-4.18.0-240.el8.s390x shred /boot/initramfs-4.18.0-240.el8.s390x.img shred secure-parameters
# shred /boot/vmlinuz-4.18.0-240.el8.s390x # shred /boot/initramfs-4.18.0-240.el8.s390x.img # shred secure-parameters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L'image de démarrage originale, l'image RAM initiale et le fichier de paramètres du noyau ne sont pas protégés et, s'ils ne sont pas supprimés, les machines virtuelles dont l'exécution sécurisée est activée peuvent toujours être vulnérables aux tentatives de piratage ou à l'extraction de données sensibles.
Vérification
Sur l'hôte, utilisez l'utilitaire
virsh dumpxml
pour confirmer la configuration XML de la VM sécurisée. La configuration doit inclure l'élément<launchSecurity type="s390-pv"/>
et aucune ligne <rng model="virtio">.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.8. Attacher des coprocesseurs cryptographiques à des machines virtuelles sur IBM Z Copier lienLien copié sur presse-papiers!
Pour utiliser le chiffrement matériel dans votre machine virtuelle (VM) sur un hôte IBM Z, créez des périphériques médiatisés à partir d'un coprocesseur cryptographique et affectez-les aux VM concernées. Pour des instructions détaillées, voir ci-dessous.
Conditions préalables
- Votre hôte fonctionne sur du matériel IBM Z.
Le coprocesseur cryptographique est compatible avec l'affectation des dispositifs. Pour le confirmer, assurez-vous que le site
type
de votre coprocesseur est répertorié commeCEX4
ou plus récent.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Le module du noyau
vfio_ap
est chargé. Pour le vérifier, utilisez :lsmod | grep vfio_ap
# lsmod | grep vfio_ap vfio_ap 24576 0 [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour charger le module, utilisez :
modprobe vfio_ap
# modprobe vfio_ap
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La version
s390utils
prend en charge la manipulation deap
:lszdev --list-types
# lszdev --list-types ... ap Cryptographic Adjunct Processor (AP) device ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Obtenez les valeurs décimales des périphériques que vous souhaitez attribuer à la VM. Par exemple, pour les périphériques
05.0004
et05.00ab
:echo "obase=10; ibase=16; 04" | bc echo "obase=10; ibase=16; AB" | bc
# echo "obase=10; ibase=16; 04" | bc 4 # echo "obase=10; ibase=16; AB" | bc 171
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Sur l'hôte, réaffectez les périphériques aux pilotes
vfio-ap
:chzdev -t ap apmask=-5 aqmask=-4,-171
# chzdev -t ap apmask=-5 aqmask=-4,-171
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotePour affecter les appareils de manière permanente, utilisez l'option
-p
.Vérifiez que les dispositifs cryptographiques ont été réaffectés correctement.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si les valeurs DRIVER des files d'attente du domaine sont passées à
vfio_ap
, la réaffectation a réussi.Créer un extrait XML qui définit un nouveau dispositif médiatisé.
L'exemple suivant montre la définition d'un dispositif persistant à médiation et l'affectation de files d'attente à ce dispositif. Plus précisément, l'extrait XML
vfio_ap.xml
de cet exemple attribue un adaptateur de domaine0x05
, des files d'attente de domaine0x0004
et0x00ab
et un domaine de contrôle0x00ab
au dispositif à médiation.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer un nouveau dispositif médiatisé à partir de l'extrait XML
vfio_ap.xml
.virsh nodedev-define vfio_ap.xml
# virsh nodedev-define vfio_ap.xml Node device 'mdev_8f9c4a73_1411_48d2_895d_34db9ac18f85_matrix' defined from 'vfio_ap.xml'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrez le dispositif de médiation que vous avez créé à l'étape précédente, dans ce cas
mdev_8f9c4a73_1411_48d2_895d_34db9ac18f85_matrix
.virsh nodedev-start mdev_8f9c4a73_1411_48d2_895d_34db9ac18f85_matrix
# virsh nodedev-start mdev_8f9c4a73_1411_48d2_895d_34db9ac18f85_matrix Device mdev_8f9c4a73_1411_48d2_895d_34db9ac18f85_matrix started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifier que la configuration a été appliquée correctement
cat /sys/devices/vfio_ap/matrix/mdev_supported_types/vfio_ap-passthrough/devices/669d9b23-fe1b-4ecb-be08-a2fabca99b71/matrix 05.0004 05.00ab
# cat /sys/devices/vfio_ap/matrix/mdev_supported_types/vfio_ap-passthrough/devices/669d9b23-fe1b-4ecb-be08-a2fabca99b71/matrix 05.0004 05.00ab
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la sortie contient les valeurs numériques des files d'attente que vous avez précédemment affectées à
vfio-ap
, le processus a réussi.Attachez le périphérique médiatisé à la VM.
Affichez l'UUID du dispositif médiatisé que vous avez créé et enregistrez-le pour l'étape suivante.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez et ouvrez un fichier XML pour le dispositif à carte cryptographique. Par exemple :
vim crypto-dev.xml
# vim crypto-dev.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajoutez les lignes suivantes au fichier et enregistrez-le. Remplacez la valeur
uuid
par l'UUID que vous avez obtenu à l'étape a.<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-ap'> <source> <address uuid='8f9c4a73-1411-48d2-895d-34db9ac18f85'/> </source> </hostdev>
<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-ap'> <source> <address uuid='8f9c4a73-1411-48d2-895d-34db9ac18f85'/> </source> </hostdev>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utilisez le fichier XML pour attacher le dispositif médiatisé à la VM. Par exemple, pour attacher de façon permanente un dispositif défini dans le fichier
crypto-dev.xml
à la VMtestguest1
en cours d'exécution :virsh attach-device testguest1 crypto-dev.xml --live --config
# virsh attach-device testguest1 crypto-dev.xml --live --config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L'option
--live
attache le périphérique à une VM en cours d'exécution uniquement, sans persistance entre les démarrages. L'option--config
rend les modifications de configuration persistantes. Vous pouvez utiliser l'option--config
seule pour attacher le périphérique à une VM arrêtée.Notez que chaque UUID ne peut être attribué qu'à une seule VM à la fois.
Vérification
Assurez-vous que le système d'exploitation invité détecte les dispositifs cryptographiques assignés.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La sortie de cette commande dans le système d'exploitation invité sera identique à celle d'une partition logique hôte avec les mêmes coprocesseurs cryptographiques disponibles.
Dans le système d'exploitation invité, confirmez qu'un domaine de contrôle a bien été attribué aux dispositifs cryptographiques.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si
lszcrypt -d C
affiche les intersectionsU
etB
dans la matrice du dispositif cryptographique, l'attribution du domaine de contrôle a réussi.
19.9. Activation de la sécurité matérielle standard sur les machines virtuelles Windows Copier lienLien copié sur presse-papiers!
Pour sécuriser les machines virtuelles (VM) Windows, vous pouvez activer une sécurité de base en utilisant les capacités matérielles standard de l'appareil Windows.
Conditions préalables
- Assurez-vous d'avoir installé les derniers pilotes VirtIO certifiés WHQL.
- Assurez-vous que le firmware de la VM prend en charge le démarrage UEFI.
Installez le paquetage
edk2-OVMF
sur votre machine hôte.{PackageManagerCommand} install edk2-ovmf
# {PackageManagerCommand} install edk2-ovmf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Installez les paquets
vTPM
sur votre machine hôte.{PackageManagerCommand} install swtpm libtpms
# {PackageManagerCommand} install swtpm libtpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Assurez-vous que la VM utilise l'architecture de machine Q35.
- Assurez-vous que vous disposez du support d'installation de Windows.
Procédure
Activez TPM 2.0 en ajoutant les paramètres suivants à la section
<devices>
de la configuration XML de la VM.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Installez Windows en mode UEFI. Pour plus d'informations sur la procédure à suivre, voir Création d'une machine virtuelle SecureBoot.
- Installer les pilotes VirtIO sur la VM Windows. Pour plus d'informations sur la procédure à suivre, voir Installation des pilotes VirtIO sur un invité Windows.
- Dans l'UEFI, activez le démarrage sécurisé. Pour plus d'informations sur la procédure à suivre, voir Secure Boot.
Vérification
Assurez-vous que la page Device Security de votre machine Windows affiche le message suivant :
Settings > Update & Security > Windows Security > Device Security
Your device meets the requirements for standard hardware security.
Your device meets the requirements for standard hardware security.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.10. Activation d'une sécurité matérielle renforcée sur les machines virtuelles Windows Copier lienLien copié sur presse-papiers!
Pour sécuriser davantage les machines virtuelles Windows (VM), vous pouvez activer la protection de l'intégrité du code basée sur la virtualisation, également connue sous le nom d'intégrité du code protégée par l'hyperviseur (HVCI).
Conditions préalables
- Assurez-vous que la sécurité matérielle standard est activée. Pour plus d'informations, voir Activation de la sécurité matérielle standard sur les machines virtuelles Windows.
- Assurez-vous d'avoir activé les extensions Hyper-V. Pour plus d'informations, voir Activation des améliorations Hyper-V.
Procédure
Ouvrez la configuration XML de la VM Windows. L'exemple suivant ouvre la configuration de la VM Example-L1:
virsh edit Example-L1
# virsh edit Example-L1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans la section
<cpu>
, spécifiez le mode CPU et ajoutez l'indicateur de politique.Important-
Pour les processeurs Intel, activez l'indicateur de politique
vmx
. -
Pour les processeurs AMD, activez l'indicateur de politique
svm
. -
Si vous ne souhaitez pas spécifier une unité centrale personnalisée, vous pouvez définir l'adresse
<cpu mode>
commehost-passthrough
.
<cpu mode='custom' match='exact' check='partial'> <model fallback='allow'>Skylake-Client-IBRS</model> <topology sockets='1' dies='1' cores='4' threads='1'/> <feature policy='require' name='vmx'/> </cpu>
<cpu mode='custom' match='exact' check='partial'> <model fallback='allow'>Skylake-Client-IBRS</model> <topology sockets='1' dies='1' cores='4' threads='1'/> <feature policy='require' name='vmx'/> </cpu>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Pour les processeurs Intel, activez l'indicateur de politique
- Enregistrez la configuration XML et redémarrez la VM.
Sur le système d'exploitation des VM, accédez à la page Core isolation details:
Settings > Update & Security > Windows Security > Device Security > Core isolation details
- Basculer l'interrupteur pour activer Memory Integrity.
- Redémarrez la VM.
Pour d'autres méthodes d'activation de HVCI, voir la documentation Microsoft correspondante.
Vérification
Assurez-vous que la page Device Security de votre VM Windows affiche le message suivant :
Settings > Update & Security > Windows Security > Device Security
Your device meets the requirements for enhanced hardware security.
Your device meets the requirements for enhanced hardware security.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez également consulter les informations système relatives à la VM Windows :
-
Exécutez
msinfo32.exe
dans une invite de commande. - Vérifiez si Credential Guard, Hypervisor enforced Code Integrity figure sous Virtualization-based security Services Running.
-
Exécutez
Chapitre 20. Partage de fichiers entre l'hôte et ses machines virtuelles Copier lienLien copié sur presse-papiers!
Il se peut que vous ayez souvent besoin de partager des données entre votre système hôte et les machines virtuelles (VM) qu'il exécute. Pour le faire rapidement et efficacement, vous pouvez configurer des partages de fichiers NFS sur votre système. Vous pouvez également utiliser le site virtiofs
pour partager des données avec vos machines virtuelles Linux et Windows.
20.1. Partage de fichiers entre l'hôte et ses machines virtuelles à l'aide de NFS Copier lienLien copié sur presse-papiers!
Pour un partage efficace des fichiers entre le système hôte RHEL 9 et les machines virtuelles (VM), vous pouvez exporter un partage NFS que les VM peuvent monter et auquel elles peuvent accéder.
Cependant, avec les VM Linux, il est généralement plus pratique d'utiliser la fonction virtiofs
fonctionnalité.
Conditions préalables
Le paquetage
nfs-utils
est installé sur l'hôte.dnf install nfs-utils -y
# dnf install nfs-utils -y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Un réseau virtuel de type
NAT
oubridge
est configuré pour connecter un hôte aux machines virtuelles. - Optional: Pour une meilleure sécurité, assurez-vous que vos machines virtuelles sont compatibles avec la version 4 ou ultérieure de NFS.
Procédure
Sur l'hôte, exportez un répertoire contenant les fichiers que vous souhaitez partager en tant que système de fichiers réseau (NFS) :
Partager un répertoire existant avec les machines virtuelles. Si vous ne souhaitez partager aucun des répertoires existants, créez-en un nouveau :
mkdir shared-files
# mkdir shared-files
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Obtenez l'adresse IP de chaque VM pour partager des fichiers à partir de l'hôte, par exemple, testguest1 et testguest2:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Modifiez le fichier
/etc/exports
sur l'hôte et ajoutez une ligne indiquant le répertoire que vous souhaitez partager, les adresses IP des machines virtuelles à partager et des options supplémentaires :/home/<username>/Downloads/<shared_directory>/ <VM1-IP(options)> <VM2-IP(options)> ...
/home/<username>/Downloads/<shared_directory>/ <VM1-IP(options)> <VM2-IP(options)> ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L'exemple suivant partage le répertoire
/usr/local/shared-files
sur l'hôte avec testguest1 et testguest2, et permet aux machines virtuelles de modifier le contenu du répertoire :/usr/local/shared-files/ 192.0.2.2(rw,sync) 192.0.2.3(rw,sync)
/usr/local/shared-files/ 192.0.2.2(rw,sync) 192.0.2.3(rw,sync)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotePour partager un répertoire avec une VM Windows, vous devez vous assurer que le client NFS Windows dispose des droits d'écriture sur le répertoire partagé. Vous pouvez utiliser les options
all_squash
,anonuid
, etanongid
dans le fichier/etc/exports
./usr/local/shared-files/ 192.0.2.2(rw,sync,all_squash,anonuid=<directory-owner-UID>,anongid=<directory-owner-GID>)
<directory-owner-UID> et <directory-owner-GID> sont l'UID et le GID de l'utilisateur local qui possède le répertoire partagé sur l'hôte.
Pour d'autres options de gestion des autorisations des clients NFS, consultez le guide Sécuriser le service NFS.
Exporter le système de fichiers mis à jour :
exportfs -a
# exportfs -a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrez le service
nfs-server
:systemctl start nfs-server
# systemctl start nfs-server
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Obtenez l'adresse IP du système hôte pour monter le répertoire partagé sur les machines virtuelles :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Notez que le réseau concerné relie l'hôte aux machines virtuelles pour le partage des fichiers. En général, il s'agit de
virbr0
.
Monter le répertoire partagé sur une VM Linux spécifiée dans le fichier
/etc/exports
:mount 192.0.2.1:/usr/local/shared-files /mnt/host-share
# mount 192.0.2.1:/usr/local/shared-files /mnt/host-share
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
192.0.2.1
: L'adresse IP de l'hôte. -
/usr/local/shared-files
: Chemin d'accès du système de fichiers au répertoire exporté sur l'hôte. /mnt/host-share
: Un point de montage sur la VMNoteLe point de montage doit être un répertoire vide.
-
Pour monter le répertoire partagé sur une VM Windows comme indiqué dans le fichier
/etc/exports
:- Ouvrez une invite PowerShell en tant qu'administrateur.
Installez le paquet
NFS-Client
sur Windows.Pour l'installation sur une version serveur, entrez :
Install-WindowsFeature NFS-Client
# Install-WindowsFeature NFS-Client
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour l'installer sur une version de bureau, entrez :
Enable-WindowsOptionalFeature -FeatureName ServicesForNFS-ClientOnly, ClientForNFS-Infrastructure -Online -NoRestart
# Enable-WindowsOptionalFeature -FeatureName ServicesForNFS-ClientOnly, ClientForNFS-Infrastructure -Online -NoRestart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Monter le répertoire exporté par l'hôte sur une VM Windows :
C:\Windows\system32\mount.exe -o anon \\192.0.2.1\usr\local\shared-files Z:
# C:\Windows\system32\mount.exe -o anon \\192.0.2.1\usr\local\shared-files Z:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple :
-
192.0.2.1
: L'adresse IP de l'hôte. -
/usr/local/shared-files
: Chemin d'accès au système de fichiers vers le répertoire exporté sur l'hôte. Z:
: La lettre du lecteur pour un point de montage.NoteVous devez choisir une lettre de lecteur qui n'est pas utilisée sur le système.
-
Vérification
Répertoriez le contenu du répertoire partagé sur la VM afin de pouvoir partager des fichiers entre l'hôte et la VM :
ls <mount_point>
$ ls <mount_point> shared-file1 shared-file2 shared-file3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple, remplacez <mount_point> par un chemin d'accès au répertoire partagé monté.
20.2. Partage de fichiers entre l'hôte et ses machines virtuelles à l'aide de virtiofs Copier lienLien copié sur presse-papiers!
Avec virtiofs, vous pouvez partager des fichiers entre votre hôte et vos machines virtuelles (VM) sous la forme d'une arborescence de répertoires qui fonctionne de la même manière que la structure du système de fichiers local. Vous pouvez utiliser virtiofs pour effectuer les tâches suivantes :
- Partager des fichiers entre l'hôte et les machines virtuelles
- Partager des fichiers entre l'hôte et les machines virtuelles Windows
- Partager des fichiers entre l'hôte et les machines virtuelles à l'aide de la console web
- Supprimer les fichiers partagés entre l'hôte et les machines virtuelles à l'aide de la console Web
20.2.1. Partage de fichiers entre l'hôte et ses machines virtuelles à l'aide de virtiofs Copier lienLien copié sur presse-papiers!
Lorsque vous utilisez RHEL 9 comme hyperviseur, vous pouvez partager efficacement des fichiers entre votre système hôte et ses machines virtuelles (VM) à l'aide de la fonctionnalité virtiofs
.
Conditions préalables
- La virtualisation est installée et activée sur votre hôte RHEL 9.
Un répertoire que vous souhaitez partager avec vos machines virtuelles. Si vous ne souhaitez partager aucun de vos répertoires existants, créez-en un nouveau, par exemple nommé shared-files.
mkdir /root/shared-files
# mkdir /root/shared-files
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - La VM avec laquelle vous souhaitez partager des données utilise une distribution Linux comme système d'exploitation invité.
Procédure
Pour chaque répertoire de l'hôte que vous souhaitez partager avec votre VM, définissez-le comme système de fichiers virtiofs dans la configuration XML de la VM.
Ouvrez la configuration XML de la VM visée.
virsh edit vm-name
# virsh edit vm-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajoutez une entrée similaire à la suivante à la section
<devices>
de la configuration XML de la VM.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cet exemple définit le répertoire
/root/shared-files
sur l'hôte pour qu'il soit visible en tant quehost-file-share
par la VM.
Configurez la mémoire partagée pour la VM. Pour ce faire, ajoutez la mémoire partagée à la section
<domain>
de la configuration XML :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrer la VM.
virsh start vm-name
# virsh start vm-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Monter le système de fichiers dans le système d'exploitation invité. L'exemple suivant monte le répertoire
host-file-share
précédemment configuré avec un système d'exploitation invité Linux.mount -t virtiofs host-file-share /mnt
# mount -t virtiofs host-file-share /mnt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
- Assurez-vous que le répertoire partagé est devenu accessible sur la VM et que vous pouvez maintenant ouvrir les fichiers stockés dans le répertoire.
Problèmes et limites connus
-
Les options de montage du système de fichiers liées au temps d'accès, telles que
noatime
etstrictatime
, ne sont pas susceptibles de fonctionner avec les virtiofs, et Red Hat déconseille leur utilisation.
Résolution de problèmes
-
Si
virtiofs
n'est pas optimal pour votre cas d'utilisation ou n'est pas pris en charge par votre système, vous pouvez utiliser NFS à la place.
20.2.2. Partage de fichiers entre l'hôte et les machines virtuelles Windows à l'aide de virtiofs Copier lienLien copié sur presse-papiers!
Lorsque vous utilisez RHEL 9 comme hyperviseur, vous pouvez partager efficacement des fichiers entre votre système hôte et les machines virtuelles (VM) Windows à l'aide de la fonctionnalité virtiofs
et du paquetage virtio-win
.
Vous pouvez exécuter le service virtiofs
en mode insensible à la casse sur une VM Windows à l'aide de la commande virtiofs.exe
et du paramètre -i
.
Conditions préalables
- Vous avez configuré le fichier de configuration XML de votre VM pour utiliser virtiofs. Pour des informations détaillées, voir Section 20.2.1, « Partage de fichiers entre l'hôte et ses machines virtuelles à l'aide de virtiofs ».
-
Vous avez attaché le média d'installation du pilote
virtio
à la VM. -
Vous avez installé le paquetage
virtio-win
sur votre VM Windows. Pour plus d'informations, voir Installation des pilotes virtio sur un invité Windows.
Procédure
Sur votre VM Windows, installez WinFsp. Pour ce faire, montez l'image ISO
virtio-win
, lancez le programme d'installation MSIwinfsp
et suivez les instructions.Dans la fenêtre Custom Setup de l'assistant d'installation, sélectionnez les fonctionnalités que vous souhaitez installer sur la VM.
Démarrer le service virtiofs :
sc start VirtioFsSvc
# sc start VirtioFsSvc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Naviguez jusqu'à This PC:
File Explorer → This PC
Virtiofs doit être disponible sur la VM Windows en tant que première lettre de lecteur disponible, en commençant par
z:
et en remontant. Par exemple,my_viofs (Z:)
.ImportantVous devez redémarrer le service virtiofs après chaque redémarrage de la VM pour accéder au répertoire partagé.
Optional: Pour mettre en place des instances virtiofs supplémentaires :
Arrêter le service virtiofs :
sc stop VirtioFsSvc sc config VirtioFsSvc start=demand
# sc stop VirtioFsSvc # sc config VirtioFsSvc start=demand
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configurer le service WinFSP.Launcher pour mettre en place plusieurs instances virtiofs :
"C:\Program Files (x86)\WinFsp\bin\fsreg.bat" virtiofs "<path to the binary>\virtiofs.exe" "-t %1 -m %2"
# "C:\Program Files (x86)\WinFsp\bin\fsreg.bat" virtiofs "<path to the binary>\virtiofs.exe" "-t %1 -m %2"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Monter les instances virtiofs sur les lecteurs.
Par exemple, pour monter virtiofs avec l'étiquette
mount_tag0
sur le lecteurY:
:"C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" start virtiofs viofsY mount_tag0 Y:
"C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" start virtiofs viofsY mount_tag0 Y:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Répétez l'étape précédente pour monter toutes vos instances virtiofs.
Pour démonter l'instance virtiofs :
"C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" stop virtiofs viofsY
"C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" stop virtiofs viofsY
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Sur votre VM Windows, accédez à This PC:
File Explorer → This PC
-
Si vous n'avez pas spécifié de point de montage lors de la configuration du service virtiofs, celui-ci utilisera la première lettre de lecteur disponible, en commençant par
z:
et en remontant. - Si vous avez configuré plusieurs instances virtiofs, elles apparaîtront comme des lecteurs avec les lettres que vous avez attribuées aux instances.
-
Si vous n'avez pas spécifié de point de montage lors de la configuration du service virtiofs, celui-ci utilisera la première lettre de lecteur disponible, en commençant par
Chapitre 21. Installation et gestion des machines virtuelles Windows Copier lienLien copié sur presse-papiers!
Pour utiliser Microsoft Windows comme système d'exploitation invité dans vos machines virtuelles (VM) sur un hôte RHEL 9, Red Hat recommande de prendre des mesures supplémentaires pour s'assurer que ces VM fonctionnent correctement.
À cette fin, les sections suivantes fournissent des informations sur l'installation et l'optimisation des VM Windows sur l'hôte, ainsi que sur l'installation et la configuration des pilotes dans ces VM.
21.1. Installation de machines virtuelles Windows Copier lienLien copié sur presse-papiers!
Vous pouvez créer une machine Windows entièrement virtualisée sur un hôte RHEL 9, lancer le programme d'installation graphique de Windows dans la machine virtuelle (VM) et optimiser le système d'exploitation invité (OS) Windows installé.
Pour créer la VM et installer le système d'exploitation invité Windows, utilisez la commande virt-install
ou la console web RHEL 9.
Conditions préalables
Une source d'installation du système d'exploitation Windows, qui peut être l'une des suivantes et être disponible localement ou sur un réseau :
- Une image ISO d'un support d'installation
- Une image disque d'une installation VM existante
Un support de stockage contenant les pilotes KVM
virtio
.Pour créer ce support, voir Préparation du support d'installation du pilote virtio sur une machine hôte.
-
Si vous installez Windows 11, les paquets
edk2-ovmf
,swtpm
etlibtpms
doivent être installés sur l'hôte.
Procédure
Créez la machine virtuelle. Pour plus d'informations, voir Création de machines virtuelles, mais gardez à l'esprit les spécificités suivantes.
Si vous utilisez l'utilitaire
virt-install
pour créer la VM, ajoutez les options suivantes à la commande :Le support de stockage contenant les pilotes KVM
virtio
. Par exemple :--disk path=/usr/share/virtio-win/virtio-win.iso,device=cdrom
--disk path=/usr/share/virtio-win/virtio-win.iso,device=cdrom
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La version de Windows que vous allez installer. Par exemple, pour Windows 10 et 11 :
--os-variant win10
--os-variant win10
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour obtenir la liste des versions de Windows disponibles et l'option appropriée, utilisez la commande suivante :
osinfo-query os
# osinfo-query os
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous installez Windows 11, activez Unified Extensible Firmware Interface (UEFI) et virtual Trusted Platform Module (vTPM) :
--boot uefi
--boot uefi
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Si vous utilisez la console web pour créer la VM, indiquez votre version de Windows dans le champ Operating system de la fenêtre Create new virtual machine.
- Si vous installez des versions de Windows antérieures à Windows 11 et Windows Server 2022, démarrez l'installation en cliquant sur .
Si vous installez Windows 11 ou si vous souhaitez utiliser d'autres fonctionnalités de Windows Server 2022, confirmez en cliquant sur
et activer UEFI et vTPM à l'aide de la CLI :Ouvrez la configuration XML de la VM :
virsh edit windows-vm
# virsh edit windows-vm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajouter l'option
firmware='efi'
à l'élémentos
:<os firmware='efi'> <type arch='x86_64' machine='pc-q35-6.2'>hvm</type> <boot dev='hd'/> </os>
<os firmware='efi'> <type arch='x86_64' machine='pc-q35-6.2'>hvm</type> <boot dev='hd'/> </os>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajoutez le dispositif
tpm
à l'intérieur de l'élémentdevices
:<devices> <tpm model='tpm-crb'> <backend type='emulator' version='2.0'/> </tpm> </devices>
<devices> <tpm model='tpm-crb'> <backend type='emulator' version='2.0'/> </tpm> </devices>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Lancez l'installation de Windows en cliquant sur Virtual machines. dans le tableau
Installer le système d'exploitation Windows dans la VM.
Pour plus d'informations sur l'installation d'un système d'exploitation Windows, reportez-vous à la documentation d'installation Microsoft correspondante.
- Si vous utilisez la console Web pour créer la VM, attachez le support de stockage avec les pilotes virtio à la VM en utilisant l'interface Disks. Pour plus d'instructions, voir Attacher des disques existants à des machines virtuelles en utilisant la console web.
-
Configurez les pilotes KVM
virtio
dans le système d'exploitation invité de Windows. Pour plus d'informations, voir Installation des pilotes KVM paravirtualisés pour les machines virtuelles Windows.
21.2. Optimisation des machines virtuelles Windows Copier lienLien copié sur presse-papiers!
Lors de l'utilisation de Microsoft Windows en tant que système d'exploitation invité dans une machine virtuelle (VM) hébergée dans RHEL 9, les performances de l'invité peuvent être affectées négativement.
Par conséquent, Red Hat recommande d'optimiser vos VM Windows en effectuant une combinaison des actions suivantes :
- Utilisation de pilotes paravirtualisés. Pour plus d'informations, voir Installation des pilotes KVM paravirtualisés pour les machines virtuelles Windows.
- Activation des extensions Hyper-V. Pour plus d'informations, voir Activation des extensions Hyper-V.
- Configuration des paramètres du pilote NetKVM. Pour plus d'informations, voir Configuration des paramètres du pilote NetKVM.
- Optimiser ou désactiver les processus d'arrière-plan de Windows. Pour plus d'informations, voir Optimisation des processus d'arrière-plan sur les machines virtuelles Windows.
21.2.1. Installation des pilotes KVM paravirtualisés pour les machines virtuelles Windows Copier lienLien copié sur presse-papiers!
La principale méthode pour améliorer les performances de vos machines virtuelles (VM) Windows consiste à installer des pilotes KVM paravirtualisés (virtio
) pour Windows sur le système d'exploitation invité.
Les pilotes virtio-win
sont certifiés (WHQL) pour les dernières versions de Windows 10 et 11, disponibles au moment de la publication de virtio-win
. Cependant, les pilotes virtio-win
sont généralement testés et devraient fonctionner correctement sur les versions précédentes de Windows 10 et 11.
Pour installer les pilotes sur une VM Windows, effectuez les opérations suivantes :
- Préparez le support d'installation sur la machine hôte. Pour plus d'informations, voir Préparation du support d'installation du pilote virtio sur une machine hôte.
- Attachez le support d'installation à une VM Windows existante ou attachez-le lors de la création d'une nouvelle VM Windows. Pour plus d'informations, voir Installation de machines virtuelles Windows sur RHEL.
-
Installez les pilotes
virtio
sur le système d'exploitation invité Windows. Pour plus d'informations, voir Installation des pilotes virtio sur un invité Windows. -
Installez le site
QEMU Guest Agent
sur le système d'exploitation invité Windows. Pour plus d'informations, voir Installation de l'agent invité QEMU sur un invité Windows.
21.2.1.1. Fonctionnement des pilotes Windows virtio Copier lienLien copié sur presse-papiers!
Les pilotes paravirtualisés améliorent les performances des machines virtuelles (VM) en réduisant la latence des E/S et en augmentant le débit à des niveaux proches de ceux d'une machine nue. Red Hat vous recommande d'utiliser des pilotes paravirtualisés pour les machines virtuelles qui exécutent des tâches et des applications à forte charge d'E/S.
virtio
sont des pilotes de périphériques paravirtualisés de KVM, disponibles pour les machines virtuelles Windows fonctionnant sur des hôtes KVM. Ces pilotes sont fournis par le paquetage virtio-win
, qui comprend des pilotes pour :
- Dispositifs de bloc (stockage)
- Contrôleurs d'interface réseau
- Contrôleurs vidéo
- Dispositif de gonflage de la mémoire
- Dispositif de port série paravirtuel
- Dispositif de source d'entropie
- Dispositif de panique paravirtuel
- Dispositifs d'entrée, tels que souris, claviers ou tablettes
- Un petit ensemble de dispositifs émulés
Pour plus d'informations sur les périphériques émulés, virtio
et attribués, reportez-vous à la section Gestion des périphériques virtuels.
En utilisant les pilotes KVM virtio, les versions suivantes de Microsoft Windows devraient fonctionner de la même manière que les systèmes physiques :
- Versions de Windows Server : Voir Systèmes d'exploitation invités certifiés pour Red Hat Enterprise Linux avec KVM dans la base de connaissances de Red Hat.
Versions Windows Desktop (non serveur) :
- Windows 10 (versions 32 bits et 64 bits)
- Windows 11 (64-bit)
21.2.1.2. Préparation du support d'installation du pilote virtio sur une machine hôte Copier lienLien copié sur presse-papiers!
Pour installer ou mettre à jour les pilotes KVM virtio
sur une machine virtuelle (VM) Windows, vous devez d'abord préparer le support d'installation du pilote virtio
sur la machine hôte. Pour ce faire, attachez le fichier .iso
, fourni par le paquet virtio-win
, en tant que périphérique de stockage à la VM Windows.
Conditions préalables
- Assurez-vous que la virtualisation est activée dans votre système hôte RHEL 9. Pour plus d'informations, voir Activation de la virtualisation.
- Assurez-vous que vous disposez des privilèges d'accès root à la VM.
Procédure
Actualisez vos données d'abonnement :
subscription-manager refresh
# subscription-manager refresh All local data refreshed
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Obtenir la dernière version du paquet
virtio-win
.Si
virtio-win
n'est pas installé :dnf install -y virtio-win
# dnf install -y virtio-win
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si
virtio-win
est installé :dnf upgrade -y virtio-win
# dnf upgrade -y virtio-win
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si l'installation réussit, les fichiers du pilote
virtio-win
sont disponibles dans le répertoire/usr/share/virtio-win/
. Ceux-ci comprennent les fichiersISO
et un répertoiredrivers
contenant les fichiers des pilotes dans des répertoires, un pour chaque architecture et chaque version de Windows prise en charge.ls /usr/share/virtio-win/
# ls /usr/share/virtio-win/ drivers/ guest-agent/ virtio-win-1.9.9.iso virtio-win.iso
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Attachez le fichier
virtio-win.iso
comme périphérique de stockage à la VM Windows.-
Lors de la création d'une nouvelle VM Windows, joignez le fichier en utilisant les options de la commande
virt-install
. Lors de l'installation des pilotes sur une VM Windows existante, attachez le fichier en tant que CD-ROM en utilisant l'utilitaire
virt-xml
:virt-xml WindowsVM --add-device --disk virtio-win.iso,device=cdrom
# virt-xml WindowsVM --add-device --disk virtio-win.iso,device=cdrom Domain 'WindowsVM' defined successfully.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Lors de la création d'une nouvelle VM Windows, joignez le fichier en utilisant les options de la commande
21.2.1.3. Installation des pilotes virtio sur un invité Windows Copier lienLien copié sur presse-papiers!
Pour installer les pilotes KVM virtio
sur un système d'exploitation invité Windows, vous devez ajouter une unité de stockage contenant les pilotes (soit lors de la création de la machine virtuelle (VM), soit ultérieurement) et installer les pilotes dans le système d'exploitation invité Windows.
Cette procédure fournit des instructions pour installer les pilotes à l'aide de l'interface graphique. Vous pouvez également utiliser l'interface de ligne de commande Microsoft Windows Installer (MSI).
Conditions préalables
-
Un support d'installation contenant les pilotes KVM
virtio
doit être attaché à la VM. Pour obtenir des instructions sur la préparation du support, voir Préparation du support d'installation du pilote virtio sur une machine hôte.
Procédure
-
Dans le système d'exploitation invité Windows, ouvrez l'application
File Explorer
. -
Cliquez sur
This PC
. -
Dans le volet
Devices and drives
, ouvrez le supportvirtio-win
. En fonction du système d'exploitation installé sur la VM, exécutez l'un des programmes d'installation :
-
Si vous utilisez un système d'exploitation 32 bits, exécutez le programme d'installation
virtio-win-gt-x86.msi
. -
Si vous utilisez un système d'exploitation 64 bits, exécutez le programme d'installation
virtio-win-gt-x64.msi
.
-
Si vous utilisez un système d'exploitation 32 bits, exécutez le programme d'installation
Dans l'assistant de configuration
Virtio-win-driver-installer
qui s'ouvre, suivez les instructions affichées jusqu'à l'étapeCustom Setup
.- Dans la fenêtre Installation personnalisée, sélectionnez les pilotes de périphériques que vous souhaitez installer. Le jeu de pilotes recommandé est sélectionné automatiquement et les descriptions des pilotes sont affichées à droite de la liste.
- Cliquez sur , puis sur .
- Une fois l'installation terminée, cliquez sur .
- Redémarrez la VM pour terminer l'installation du pilote.
Vérification
Sur votre VM Windows, accédez à l'adresse Device Manager:
- Cliquez sur Démarrer
- Rechercher Device Manager
Assurez-vous que les périphériques utilisent les bons pilotes :
- Cliquez sur un appareil pour ouvrir la fenêtre Driver Properties.
- Naviguez jusqu'à l'onglet Driver.
- Cliquez sur Driver Details.
Prochaines étapes
- Si vous avez installé le pilote NetKVM, il se peut que vous deviez également configurer les paramètres de mise en réseau de l'invité Windows. Pour plus d'informations, voir Configuration des paramètres du pilote NetKVM.
21.2.1.4. Mise à jour des pilotes virtio sur un invité Windows Copier lienLien copié sur presse-papiers!
Pour mettre à jour les pilotes KVM virtio
sur un système d'exploitation invité (SE) Windows, vous pouvez utiliser le service Windows Update
, si la version du SE Windows le prend en charge. Si ce n'est pas le cas, réinstallez les pilotes à partir du support d'installation virtio
joint à la machine virtuelle (VM) Windows.
Conditions préalables
- Un système d'exploitation invité Windows avec des pilotes virtio installés.
-
Si vous n'utilisez pas
Windows Update
, un support d'installation contenant des pilotes KVMvirtio
à jour doit être attaché à la VM Windows. Pour obtenir des instructions sur la préparation du support, voir Préparation du support d'installation des pilotes virtio sur une machine hôte.
Procédure 1 : Mise à jour des pilotes à l'aide de Windows Update
Sur Windows 10, Windows Server 2016 et les systèmes d'exploitation ultérieurs, vérifiez si les mises à jour des pilotes sont disponibles en utilisant l'interface graphique Windows Update
:
- Démarrez la VM Windows et connectez-vous à son système d'exploitation invité.
Naviguez jusqu'à la page Optional updates:
Settings → Windows Update → Advanced options → Optional updates
- Installer toutes les mises à jour à partir de Red Hat, Inc.
Procédure 2 : Mise à jour des pilotes en les réinstallant
Sur les systèmes d'exploitation antérieurs à Windows 10 et Windows Server 2016, ou si le système d'exploitation n'a pas accès à Windows Update
, réinstallez les pilotes. Cette opération permet de restaurer la configuration réseau du système d'exploitation invité Windows par défaut (DHCP). Si vous souhaitez préserver une configuration réseau personnalisée, vous devez également créer une sauvegarde et la restaurer à l'aide de l'utilitaire netsh
:
- Démarrez la VM Windows et connectez-vous à son système d'exploitation invité.
Ouvrez l'invite de commande Windows :
- Utiliser le Super+R pour le raccourci clavier.
-
Dans la fenêtre qui apparaît, tapez
cmd
et appuyez sur Ctrl+Shift+Entrée pour être exécuté en tant qu'administrateur.
Sauvegardez la configuration réseau du système d'exploitation à l'aide de l'invite de commande Windows :
backup.txt
C:\WINDOWS\system32\netsh dump > backup.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Réinstallez les pilotes KVM
virtio
à partir du support d'installation joint. Effectuez l'une des opérations suivantes :Réinstallez les pilotes à l'aide de l'invite de commande Windows, où X est la lettre du lecteur du support d'installation. Les commandes suivantes installent tous les pilotes
virtio
.Si vous utilisez une vCPU 64 bits :
C:\WINDOWS\system32\msiexec.exe /i X:\virtio-win-gt-x64.msi /passive /norestart
C:\WINDOWS\system32\msiexec.exe /i X:\virtio-win-gt-x64.msi /passive /norestart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous utilisez une vCPU 32 bits :
C:\WINDOWS\system32\msiexec.exe /i X:\virtio-win-gt-x86.msi /passive /norestart
C:\WINDOWS\system32\msiexec.exe /i X:\virtio-win-gt-x86.msi /passive /norestart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Réinstallez les pilotes à l'aide de l'interface graphique sans redémarrer la VM.
Restaurer la configuration réseau du système d'exploitation à l'aide de l'invite de commande Windows :
C:\WINDOWS\system32\netsh -f backup.txt
C:\WINDOWS\system32\netsh -f backup.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Redémarrez la VM pour terminer l'installation du pilote.
21.2.1.5. Activation de QEMU Guest Agent sur les invités Windows Copier lienLien copié sur presse-papiers!
Pour permettre à un hôte RHEL d'effectuer un certain sous-ensemble d'opérations sur une machine virtuelle (VM) Windows, vous devez activer l'agent invité QEMU (GA). Pour ce faire, ajoutez un périphérique de stockage contenant le programme d'installation de l'agent invité QEMU à une machine virtuelle existante ou lors de la création d'une nouvelle machine virtuelle, et installez les pilotes sur le système d'exploitation invité Windows.
Pour installer l'agent invité (GA) à l'aide de l'interface graphique, voir la procédure ci-dessous. Pour installer l'AG dans une interface de ligne de commande, utilisez le programme d'installation Microsoft Windows (MSI).
Conditions préalables
- Un support d'installation contenant l'agent invité est attaché à la VM. Pour obtenir des instructions sur la préparation du support, voir Préparation du support d'installation du pilote virtio sur une machine hôte.
Procédure
-
Dans le système d'exploitation invité Windows, ouvrez l'application
File Explorer
. -
Cliquez sur
This PC
. -
Dans le volet
Devices and drives
, ouvrez le supportvirtio-win
. -
Ouvrez le dossier
guest-agent
. En fonction du système d'exploitation installé sur la VM, exécutez l'un des programmes d'installation suivants :
-
Si vous utilisez un système d'exploitation 32 bits, exécutez le programme d'installation
qemu-ga-i386.msi
. -
Si vous utilisez un système d'exploitation 64 bits, exécutez le programme d'installation
qemu-ga-x86_64.msi
.
-
Si vous utilisez un système d'exploitation 32 bits, exécutez le programme d'installation
-
Optional: Si vous souhaitez utiliser le pilote série para-virtualisé (
virtio-serial
) comme interface de communication entre l'hôte et l'invité Windows, vérifiez que le pilotevirtio-serial
est installé sur l'invité Windows. Pour plus d'informations sur l'installation des pilotesvirtio
, voir : Installation des pilotes virtio sur un invité Windows.
Vérification
Sur votre VM Windows, accédez à la fenêtre Services.
Computer Management > Services
-
Assurez-vous que l'état du service
QEMU Guest Agent
estRunning
.
21.2.2. Activation des éclairages Hyper-V Copier lienLien copié sur presse-papiers!
Les améliorations apportées à Hyper-V permettent à KVM d'émuler l'hyperviseur Hyper-V de Microsoft. Cela permet d'améliorer les performances des machines virtuelles Windows.
Les sections suivantes fournissent des informations sur les améliorations Hyper-V prises en charge et sur la manière de les activer.
21.2.2.1. Activation des éclairages Hyper-V sur une machine virtuelle Windows Copier lienLien copié sur presse-papiers!
Les améliorations Hyper-V permettent d'améliorer les performances d'une machine virtuelle (VM) Windows exécutée sur un hôte RHEL 9. Pour savoir comment les activer, voir ce qui suit.
Procédure
Utilisez la commande
virsh edit
pour ouvrir la configuration XML de la VM. Par exemple :virsh edit windows-vm
# virsh edit windows-vm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajouter la sous-section
<hyperv>
suivante à la section<features>
du XML :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si le XML contient déjà une sous-section
<hyperv>
, modifiez-la comme indiqué ci-dessus.Modifiez la section
clock
de la configuration comme suit :<clock offset='localtime'> ... <timer name='hypervclock' present='yes'/> </clock>
<clock offset='localtime'> ... <timer name='hypervclock' present='yes'/> </clock>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Sauvegarder et quitter la configuration XML.
- Si la VM est en cours d'exécution, redémarrez-la.
Vérification
Utilisez la commande
virsh dumpxml
pour afficher la configuration XML de la VM en cours d'exécution. Si elle comprend les segments suivants, les améliorations Hyper-V sont activées sur la VM.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
21.2.2.2. Éclairages configurables pour Hyper-V Copier lienLien copié sur presse-papiers!
Vous pouvez configurer certaines fonctions Hyper-V pour optimiser les machines virtuelles Windows. Le tableau suivant fournit des informations sur ces fonctionnalités configurables d'Hyper-V et leurs valeurs.
L'illumination | Description | Valeurs |
---|---|---|
accident | Fournit des MSR aux VM qui peuvent être utilisés pour stocker des informations et des journaux si une VM tombe en panne. Les informations sont disponibles dans le journal QEMU. Note Si l'option hv_crash est activée, les données de crash de Windows ne sont pas créées. | marche, arrêt |
evmcs | Implémente un protocole paravirtualisé entre les hyperviseurs L0 (KVM) et L1 (Hyper-V), ce qui permet des sorties L2 plus rapides vers l'hyperviseur. Note Cette fonction est exclusive aux processeurs Intel. | marche, arrêt |
fréquences | Active les registres spécifiques à la machine (MSR) de la fréquence Hyper-V. | marche, arrêt |
ipi | Active la prise en charge des interruptions interprocesseurs (IPI) paravirtualisées. | marche, arrêt |
partage des cœurs sans hiérarchisation | Notifie au système d'exploitation invité que les processeurs virtuels ne partageront jamais un cœur physique à moins qu'ils ne soient signalés comme des threads SMT frères. Cette information est requise par les invités Windows et Hyper-V pour atténuer correctement les vulnérabilités liées au multithreading simultané (SMT) du processeur. | marche, arrêt, auto |
ré-éclaircissement | Notifie le changement de fréquence du compteur d'horodatage (TSC), qui ne se produit que lors de la migration. Il permet également à l'invité de continuer à utiliser l'ancienne fréquence jusqu'à ce qu'il soit prêt à passer à la nouvelle. | marche, arrêt |
détendu | Désactive un contrôle d'intégrité de Windows qui provoque souvent un BSOD lorsque la VM s'exécute sur un hôte très chargé. Cette option est similaire à l'option no_timer_check du noyau Linux, qui est automatiquement activée lorsque Linux est exécuté sur KVM. | marche, arrêt |
durée d'exécution | Définit le temps que le processeur consacre à l'exécution du code invité et au nom du code invité. | marche, arrêt |
spinlocks |
| marche, arrêt |
stimer | Active les temporisateurs synthétiques pour les processeurs virtuels. Notez que certaines versions de Windows reviennent à l'utilisation de HPET (ou même de RTC lorsque HPET n'est pas disponible) lorsque cet éclaircissement n'est pas fourni, ce qui peut entraîner une consommation importante du CPU, même lorsque le CPU virtuel est inactif. | marche, arrêt |
stimer-direct | Active les temporisateurs synthétiques lorsqu'un événement d'expiration est délivré par une interruption normale. | on, off. |
synique | Avec stimer, active la minuterie synthétique. Windows 8 utilise cette fonction en mode périodique. | marche, arrêt |
temps | Active les sources d'horloge suivantes, spécifiques à Hyper-V, disponibles pour la VM,
| marche, arrêt |
tlbflush | Vide la TLB des processeurs virtuels. | marche, arrêt |
vapic | Active l'APIC virtuel, qui fournit un accès MSR accéléré aux registres du contrôleur d'interruption programmable avancé (APIC) à forte utilisation et à mémoire mappée. | marche, arrêt |
iD_vendeur | Définit l'identifiant du fournisseur Hyper-V. |
|
vpindex | Active l'index des processeurs virtuels. | marche, arrêt |
21.2.3. Configuration des paramètres du pilote NetKVM Copier lienLien copié sur presse-papiers!
Une fois le pilote NetKVM installé, vous pouvez le configurer pour mieux l'adapter à votre environnement. Les paramètres énumérés dans la procédure suivante peuvent être configurés à l'aide du gestionnaire de périphériques de Windows (devmgmt.msc
).
La modification des paramètres du pilote oblige Windows à recharger ce pilote. Cela interrompt l'activité du réseau en cours.
Conditions préalables
Le pilote NetKVM est installé sur la machine virtuelle.
Pour plus d'informations, voir Installation des pilotes KVM paravirtualisés pour les machines virtuelles Windows.
Procédure
Ouvrez le gestionnaire de périphériques de Windows.
Pour plus d'informations sur l'ouverture du Gestionnaire de périphériques, reportez-vous à la documentation de Windows.
Localisez le site Red Hat VirtIO Ethernet Adapter.
- Dans la fenêtre Gestionnaire de périphériques, cliquez sur en regard de Adaptateurs réseau.
Sous la liste des adaptateurs réseau, double-cliquez sur Red Hat VirtIO Ethernet Adapter.
La fenêtre Properties de l'appareil s'ouvre.
Visualiser les paramètres de l'appareil.
Dans la fenêtre Properties, cliquez sur l'onglet Advanced.
Modifier les paramètres de l'appareil.
Cliquez sur le paramètre que vous souhaitez modifier.
Les options relatives à ce paramètre s'affichent.
Modifiez les options si nécessaire.
Pour plus d'informations sur les options des paramètres NetKVM, reportez-vous à la section Paramètres du pilote NetKVM.
- Cliquez sur pour enregistrer les modifications.
21.2.4. Paramètres du pilote NetKVM Copier lienLien copié sur presse-papiers!
Le tableau suivant fournit des informations sur les paramètres de journalisation configurables du pilote NetKVM.
Paramètres | Description 2 |
---|---|
Logging.Enable | Valeur booléenne qui détermine si la journalisation est activée. La valeur par défaut est Enabled. |
Niveau de journalisation | Un nombre entier qui définit le niveau de journalisation. Plus l'entier augmente, plus la verbosité du journal augmente.
Note Des niveaux de journalisation élevés ralentiront votre machine virtuelle. |
Le tableau suivant fournit des informations sur les paramètres initiaux configurables du pilote NetKVM.
Paramètres | Description |
---|---|
Attribuer un MAC | Chaîne définissant l'adresse MAC administrée localement pour le NIC paravirtualisé. Cette adresse n'est pas définie par défaut. |
Init.Do802.1PQ | Valeur booléenne qui active la prise en charge de la population et de la suppression des balises Priority/VLAN. La valeur par défaut est Enabled. |
Init.MaxTxBuffers | Un entier qui représente le nombre de descripteurs d'anneau TX qui seront alloués. La valeur est limitée par la taille de la file d'attente Tx de QEMU. La valeur par défaut est 1024. Les valeurs valides sont : 16, 32, 64, 128, 256, 512 et 1024. |
Init.MaxRxBuffers | Un entier qui représente le nombre de descripteurs d'anneaux RX qui seront alloués. La valeur est limitée par la taille de la file d'attente Tx de QEMU. La valeur par défaut est 1024. Les valeurs valides sont : 16, 32, 64, 128, 256, 512, 1024, 2048 et 4096. |
Somme de contrôle offload.Tx.Tx | Spécifie la capacité de délestage de la somme de contrôle TX. Dans Red Hat Enterprise Linux 9, les valeurs valides pour ce paramètre sont les suivantes :
|
Somme de contrôle Offload.Rx | Spécifie la capacité de délestage de la somme de contrôle RX. Dans Red Hat Enterprise Linux 9, les valeurs valides pour ce paramètre sont les suivantes :
|
Offload.Tx.LSO | Spécifie la capacité de délestage des grands segments (LSO) du TX. Dans Red Hat Enterprise Linux 9, les valeurs valides pour ce paramètre sont les suivantes :
|
MinRxBufferPercent | Spécifie la quantité minimale de tampons disponibles dans la file d'attente RX en pourcentage de la quantité totale de tampons RX. Si le nombre réel de tampons disponibles est inférieur à cette valeur, le pilote NetKVM indique au système d'exploitation que les ressources sont faibles (en lui demandant de renvoyer les tampons RX dès que possible)
Valeur minimale (par défaut) -
Valeur maximale - |
21.2.5. Optimisation des processus d'arrière-plan sur les machines virtuelles Windows Copier lienLien copié sur presse-papiers!
Pour optimiser les performances d'une machine virtuelle (VM) exécutant un système d'exploitation Windows, vous pouvez configurer ou désactiver divers processus Windows.
Certains processus peuvent ne pas fonctionner comme prévu si vous modifiez leur configuration.
Procédure
Vous pouvez optimiser vos machines virtuelles Windows en effectuant une combinaison des opérations suivantes :
- Retirez les périphériques inutilisés, tels que les USB ou les CD-ROM, et désactivez les ports.
- Désactiver les services d'arrière-plan, tels que SuperFetch et Windows Search. Pour plus d'informations sur l'arrêt des services, voir Désactivation des services système ou Stop-Service.
Désactiver
useplatformclock
. Pour ce faire, exécutez la commande suivante,bcdedit /set useplatformclock No
# bcdedit /set useplatformclock No
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Examinez et désactivez les tâches planifiées inutiles, telles que la défragmentation planifiée du disque. Pour plus d'informations sur la procédure à suivre, voir Désactiver les tâches planifiées.
- Assurez-vous que les disques ne sont pas cryptés.
- Réduire l'activité périodique des applications serveur. Vous pouvez le faire en modifiant les minuteries correspondantes. Pour plus d'informations, voir Minuteries multimédias.
- Fermez l'application Gestionnaire de serveur sur la VM.
- Désactivez le logiciel antivirus. Notez que la désactivation de l'antivirus peut compromettre la sécurité de la VM.
- Désactive l'économiseur d'écran.
- Laissez le système d'exploitation Windows sur l'écran d'ouverture de session lorsqu'il n'est pas utilisé.
21.3. Activation de la sécurité matérielle standard sur les machines virtuelles Windows Copier lienLien copié sur presse-papiers!
Pour sécuriser les machines virtuelles (VM) Windows, vous pouvez activer une sécurité de base en utilisant les capacités matérielles standard de l'appareil Windows.
Conditions préalables
- Assurez-vous d'avoir installé les derniers pilotes VirtIO certifiés WHQL.
- Assurez-vous que le firmware de la VM prend en charge le démarrage UEFI.
Installez le paquetage
edk2-OVMF
sur votre machine hôte.{PackageManagerCommand} install edk2-ovmf
# {PackageManagerCommand} install edk2-ovmf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Installez les paquets
vTPM
sur votre machine hôte.{PackageManagerCommand} install swtpm libtpms
# {PackageManagerCommand} install swtpm libtpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Assurez-vous que la VM utilise l'architecture de machine Q35.
- Assurez-vous que vous disposez du support d'installation de Windows.
Procédure
Activez TPM 2.0 en ajoutant les paramètres suivants à la section
<devices>
de la configuration XML de la VM.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Installez Windows en mode UEFI. Pour plus d'informations sur la procédure à suivre, voir Création d'une machine virtuelle SecureBoot.
- Installer les pilotes VirtIO sur la VM Windows. Pour plus d'informations sur la procédure à suivre, voir Installation des pilotes VirtIO sur un invité Windows.
- Dans l'UEFI, activez le démarrage sécurisé. Pour plus d'informations sur la procédure à suivre, voir Secure Boot.
Vérification
Assurez-vous que la page Device Security de votre machine Windows affiche le message suivant :
Settings > Update & Security > Windows Security > Device Security
Your device meets the requirements for standard hardware security.
Your device meets the requirements for standard hardware security.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
21.4. Activation d'une sécurité matérielle renforcée sur les machines virtuelles Windows Copier lienLien copié sur presse-papiers!
Pour sécuriser davantage les machines virtuelles Windows (VM), vous pouvez activer la protection de l'intégrité du code basée sur la virtualisation, également connue sous le nom d'intégrité du code protégée par l'hyperviseur (HVCI).
Conditions préalables
- Assurez-vous que la sécurité matérielle standard est activée. Pour plus d'informations, voir Activation de la sécurité matérielle standard sur les machines virtuelles Windows.
- Assurez-vous d'avoir activé les extensions Hyper-V. Pour plus d'informations, voir Activation des améliorations Hyper-V.
Procédure
Ouvrez la configuration XML de la VM Windows. L'exemple suivant ouvre la configuration de la VM Example-L1:
virsh edit Example-L1
# virsh edit Example-L1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans la section
<cpu>
, spécifiez le mode CPU et ajoutez l'indicateur de politique.Important-
Pour les processeurs Intel, activez l'indicateur de politique
vmx
. -
Pour les processeurs AMD, activez l'indicateur de politique
svm
. -
Si vous ne souhaitez pas spécifier une unité centrale personnalisée, vous pouvez définir l'adresse
<cpu mode>
commehost-passthrough
.
<cpu mode='custom' match='exact' check='partial'> <model fallback='allow'>Skylake-Client-IBRS</model> <topology sockets='1' dies='1' cores='4' threads='1'/> <feature policy='require' name='vmx'/> </cpu>
<cpu mode='custom' match='exact' check='partial'> <model fallback='allow'>Skylake-Client-IBRS</model> <topology sockets='1' dies='1' cores='4' threads='1'/> <feature policy='require' name='vmx'/> </cpu>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Pour les processeurs Intel, activez l'indicateur de politique
- Enregistrez la configuration XML et redémarrez la VM.
Sur le système d'exploitation des VM, accédez à la page Core isolation details:
Settings > Update & Security > Windows Security > Device Security > Core isolation details
- Basculer l'interrupteur pour activer Memory Integrity.
- Redémarrez la VM.
Pour d'autres méthodes d'activation de HVCI, voir la documentation Microsoft correspondante.
Vérification
Assurez-vous que la page Device Security de votre VM Windows affiche le message suivant :
Settings > Update & Security > Windows Security > Device Security
Your device meets the requirements for enhanced hardware security.
Your device meets the requirements for enhanced hardware security.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez également consulter les informations système relatives à la VM Windows :
-
Exécutez
msinfo32.exe
dans une invite de commande. - Vérifiez si Credential Guard, Hypervisor enforced Code Integrity figure sous Virtualization-based security Services Running.
-
Exécutez
21.5. Prochaines étapes Copier lienLien copié sur presse-papiers!
Pour utiliser les utilitaires permettant d'accéder, de modifier et de créer des disques de machines virtuelles ou d'autres images de disque pour une VM Windows, installez les paquets
libguestfs-tools
etlibguestfs-winsupport
sur la machine hôte :sudo dnf install libguestfs-tools libguestfs-winsupport
$ sudo dnf install libguestfs-tools libguestfs-winsupport
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour utiliser les utilitaires permettant d'accéder, de modifier et de créer des disques de machines virtuelles ou d'autres images de disque pour une VM Windows, installez les paquets
guestfs-tools
etguestfs-winsupport
sur la machine hôte :sudo dnf install guestfs-tools guestfs-winsupport
$ sudo dnf install guestfs-tools guestfs-winsupport
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Pour partager des fichiers entre votre hôte RHEL 9 et ses machines virtuelles Windows, vous pouvez utiliser virtiofs ou NFS.
Chapitre 22. Création de machines virtuelles imbriquées Copier lienLien copié sur presse-papiers!
Vous pouvez utiliser des machines virtuelles imbriquées (VM) si vous avez besoin d'un système d'exploitation différent de celui de votre hôte local. Il n'est alors plus nécessaire d'utiliser du matériel physique supplémentaire.
Dans la majorité des environnements, la virtualisation imbriquée n'est disponible qu'en tant qu'aperçu technologique dans RHEL 9.
Pour une description détaillée des environnements pris en charge et non pris en charge, voir Limitations de la prise en charge de la virtualisation imbriquée.
22.1. Qu'est-ce que la virtualisation imbriquée ? Copier lienLien copié sur presse-papiers!
La virtualisation imbriquée permet d'exécuter des machines virtuelles (VM) à l'intérieur d'autres VM. Une VM standard qui s'exécute sur un hôte physique peut également agir comme un second hyperviseur et créer ses propres VM.
Terminologie de la virtualisation imbriquée
- Niveau 0 (
L0
) - Un hôte physique, une machine nue.
- Niveau 1 (
L1
) -
Une VM standard, fonctionnant sur un hôte physique
L0
, qui peut agir en tant qu'hôte virtuel supplémentaire. - Niveau 2 (
L2
) Une VM imbriquée s'exécutant sur un hôte virtuel
L1
.Important: Le deuxième niveau de virtualisation limite considérablement les performances d'une VM
L2
. C'est pourquoi la virtualisation imbriquée est principalement destinée aux scénarios de développement et de test, tels que :- Débogage des hyperviseurs dans un environnement contraint
- Tester des déploiements virtuels plus importants sur un nombre limité de ressources physiques
Dans la majorité des environnements, la virtualisation imbriquée n'est disponible qu'en tant qu'aperçu technologique dans RHEL 9.
Pour une description détaillée des environnements pris en charge et non pris en charge, voir Limitations de la prise en charge de la virtualisation imbriquée.
22.2. Limites de la prise en charge de la virtualisation imbriquée Copier lienLien copié sur presse-papiers!
Dans la plupart des environnements, la virtualisation imbriquée n'est disponible qu'en tant qu'aperçu technologique dans RHEL 9.
Cependant, vous pouvez utiliser une machine virtuelle (VM) Windows avec le sous-système Windows pour Linux (WSL2) pour créer un environnement Linux virtuel dans la VM Windows. Ce cas d'utilisation est entièrement pris en charge sur RHEL 9 dans des conditions spécifiques.
Pour en savoir plus sur la terminologie relative à la virtualisation imbriquée, voir Qu'est-ce que la virtualisation imbriquée ?
Environnements pris en charge
Pour créer un déploiement pris en charge de la virtualisation imbriquée, créez une VM Windows L1
sur un hôte RHEL 9 L0
et utilisez WSL2 pour créer un environnement Linux virtuel à l'intérieur de la VM Windows L1
. Actuellement, il s'agit du seul environnement imbriqué pris en charge.
L'hôte L0
doit être un système Intel ou AMD. D'autres architectures, telles que ARM ou IBM Z, ne sont actuellement pas prises en charge.
Vous ne devez utiliser que les versions suivantes du système d'exploitation :
On the L0 host: | On the L1 VMs: |
---|---|
RHEL 9.2 et versions ultérieures | Windows Server 2019 avec WSL2 |
Windows Server 2022 avec WSL2 | |
Windows 10 avec WSL2 | |
Windows 11 avec WSL2 |
Voir la documentation Microsoft pour des instructions sur l'installation de WSL2 et le choix des distributions Linux prises en charge.
Pour créer un environnement imbriqué pris en charge, utilisez l'une des procédures suivantes :
Technologie Environnements de prévisualisation
Ces environnements imbriqués ne sont disponibles qu'en tant qu'aperçu technologique et ne sont pas pris en charge.
L'hôte L0
doit être un système Intel, AMD ou IBM Z. La virtualisation imbriquée ne fonctionne pas actuellement sur d'autres architectures, telles que ARM.
Vous ne devez utiliser que les versions suivantes du système d'exploitation :
On the L0 host: | On the L1 VMs: | On the L2 VMs: |
---|---|---|
RHEL 9.2 et versions ultérieures | RHEL 8.8 et versions ultérieures | RHEL 8.8 et versions ultérieures |
RHEL 9.2 et versions ultérieures | RHEL 9.2 et versions ultérieures | |
Windows Server 2016 avec Hyper-V | Windows Server 2019 | |
Windows Server 2019 avec Hyper-V | Serveur Windows 2022 | |
Windows Server 2022 avec Hyper-V | ||
Windows 10 avec Hyper-V | ||
Windows 11 avec Hyper-V |
La création de VM RHEL L1
n'est pas testée lorsqu'elle est utilisée dans d'autres offres de virtualisation Red Hat. Il s'agit notamment de
- Red Hat Virtualisation
- Plateforme Red Hat OpenStack
- Virtualisation OpenShift
Pour créer un environnement imbriqué d'aperçu technologique, utilisez l'une des procédures suivantes :
Hypervisor limitations
-
Actuellement, Red Hat teste l'imbrication uniquement sur RHEL-KVM. Lorsque RHEL est utilisé comme hyperviseur
L0
, vous pouvez utiliser RHEL ou Windows comme hyperviseurL1
. -
Lors de l'utilisation d'une VM RHEL
L1
sur un hyperviseurL0
non KVM, tel que VMware ESXi ou Amazon Web Services (AWS), la création de VML2
dans le système d'exploitation invité RHEL n'a pas été testée et pourrait ne pas fonctionner.
Feature limitations
-
L'utilisation des VM
L2
comme hyperviseurs et la création d'invitésL3
n'ont pas été correctement testées et ne devraient pas fonctionner. -
La migration des VM ne fonctionne actuellement pas sur les systèmes AMD si la virtualisation imbriquée a été activée sur l'hôte
L0
. Sur un système IBM Z, il n'est pas possible d'utiliser en même temps le stockage de sauvegarde à grande pagination et la virtualisation imbriquée.
modprobe kvm hpage=1 nested=1 dmesg |tail -1
# modprobe kvm hpage=1 nested=1 modprobe: ERROR: could not insert 'kvm': Invalid argument # dmesg |tail -1 [90226.508366] kvm-s390: A KVM host that supports nesting cannot back its KVM guests with huge pages
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Certaines fonctionnalités disponibles sur l'hôte
L0
peuvent ne pas être disponibles pour l'hyperviseurL1
.
22.3. Création d'une machine virtuelle imbriquée sur Intel Copier lienLien copié sur presse-papiers!
Suivez les étapes ci-dessous pour activer et configurer la virtualisation imbriquée sur un hôte Intel.
Dans la majorité des environnements, la virtualisation imbriquée n'est disponible qu'en tant qu'aperçu technologique dans RHEL 9.
Pour une description détaillée des environnements pris en charge et non pris en charge, voir Limitations de la prise en charge de la virtualisation imbriquée.
Conditions préalables
- Un hôte RHEL 9 L0 exécutant une machine virtuelle (VM) L1.
-
Le processeur de l'hyperviseur doit prendre en charge la virtualisation imbriquée. Pour le vérifier, utilisez la commande
cat /proc/cpuinfo
sur l'hyperviseur L0. Si la sortie de la commande inclut les drapeauxvmx
etept
, la création de VM L2 est possible. C'est généralement le cas sur les processeurs Intel Xeon v3 et ultérieurs. Assurez-vous que la virtualisation imbriquée est activée sur l'hôte L0 :
cat /sys/module/kvm_intel/parameters/nested
# cat /sys/module/kvm_intel/parameters/nested
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Si la commande renvoie 1 ou Y, la fonctionnalité est activée. Sautez les autres étapes préalables et passez à la section Procédure.
Si la commande renvoie 0 ou N mais que votre système prend en charge la virtualisation imbriquée, procédez comme suit pour activer la fonctionnalité.
Déchargez le module
kvm_intel
:modprobe -r kvm_intel
# modprobe -r kvm_intel
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Activer la fonction d'imbrication :
modprobe kvm_intel nested=1
# modprobe kvm_intel nested=1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La fonction d'imbrication est maintenant activée, mais seulement jusqu'au prochain redémarrage de l'hôte L0. Pour l'activer de façon permanente, ajoutez la ligne suivante au fichier
/etc/modprobe.d/kvm.conf
:options kvm_intel nested=1
options kvm_intel nested=1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Configurez votre VM L1 pour la virtualisation imbriquée.
Ouvrez la configuration XML de la VM. L'exemple suivant ouvre la configuration de la VM Intel-L1:
virsh edit Intel-L1
# virsh edit Intel-L1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configurez la VM pour qu'elle utilise le mode CPU
host-passthrough
en modifiant l'élément<cpu>
:<cpu mode='host-passthrough'/>
<cpu mode='host-passthrough'/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous souhaitez que la VM utilise un modèle de processeur spécifique, configurez-la pour qu'elle utilise le mode de processeur
custom
. À l'intérieur de l'élément<cpu>
, ajoutez un élément<feature policy='require' name='vmx'/>
et un élément<model>
avec le modèle de CPU spécifié à l'intérieur. Par exemple :<cpu mode ='custom' match ='exact' check='partial'> <model fallback='allow'>Haswell-noTSX</model> <feature policy='require' name='vmx'/> ... </cpu>
<cpu mode ='custom' match ='exact' check='partial'> <model fallback='allow'>Haswell-noTSX</model> <feature policy='require' name='vmx'/> ... </cpu>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Créez une VM L2 à l'intérieur de la VM L1. Pour ce faire, suivez la même procédure que pour la création de la L1 VM.
22.4. Création d'une machine virtuelle imbriquée sur AMD Copier lienLien copié sur presse-papiers!
Suivez les étapes ci-dessous pour activer et configurer la virtualisation imbriquée sur un hôte AMD.
Dans la majorité des environnements, la virtualisation imbriquée n'est disponible qu'en tant qu'aperçu technologique dans RHEL 9.
Pour une description détaillée des environnements pris en charge et non pris en charge, voir Limitations de la prise en charge de la virtualisation imbriquée.
Conditions préalables
- Un hôte RHEL 9 L0 exécutant une machine virtuelle (VM) L1.
-
Le processeur de l'hyperviseur doit prendre en charge la virtualisation imbriquée. Pour le vérifier, utilisez la commande
cat /proc/cpuinfo
sur l'hyperviseur L0. Si la sortie de la commande inclut les drapeauxsvm
etnpt
, la création de VM L2 est possible. C'est généralement le cas sur les cœurs AMD EPYC et les versions ultérieures. Assurez-vous que la virtualisation imbriquée est activée sur l'hôte L0 :
cat /sys/module/kvm_amd/parameters/nested
# cat /sys/module/kvm_amd/parameters/nested
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Si la commande renvoie 1 ou Y, la fonctionnalité est activée. Sautez les autres étapes préalables et passez à la section Procédure.
Si la commande renvoie 0 ou N, procédez comme suit pour activer la fonction.
- Arrêtez toutes les machines virtuelles en cours d'exécution sur l'hôte L0.
Déchargez le module
kvm_amd
:modprobe -r kvm_amd
# modprobe -r kvm_amd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Activer la fonction d'imbrication :
modprobe kvm_amd nested=1
# modprobe kvm_amd nested=1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La fonction d'imbrication est maintenant activée, mais seulement jusqu'au prochain redémarrage de l'hôte L0. Pour l'activer de façon permanente, ajoutez ce qui suit au fichier
/etc/modprobe.d/kvm.conf
:options kvm_amd nested=1
options kvm_amd nested=1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Configurez votre VM L1 pour la virtualisation imbriquée.
Ouvrez la configuration XML de la VM. L'exemple suivant ouvre la configuration de la VM AMD-L1:
virsh edit AMD-L1
# virsh edit AMD-L1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configurez la VM pour qu'elle utilise le mode CPU
host-passthrough
en modifiant l'élément<cpu>
:<cpu mode='host-passthrough'/>
<cpu mode='host-passthrough'/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous souhaitez que la VM utilise un modèle de CPU spécifique, configurez-la pour qu'elle utilise le mode CPU
custom
. À l'intérieur de l'élément<cpu>
, ajoutez un élément<feature policy='require' name='svm'/>
et un élément<model>
avec le modèle de CPU spécifié à l'intérieur. Par exemple :<cpu mode="custom" match="exact" check="none"> <model fallback="allow">EPYC-IBPB</model> <feature policy="require" name="svm"/> ... </cpu>
<cpu mode="custom" match="exact" check="none"> <model fallback="allow">EPYC-IBPB</model> <feature policy="require" name="svm"/> ... </cpu>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Créez une VM L2 à l'intérieur de la VM L1. Pour ce faire, suivez la même procédure que pour la création de la L1 VM.
22.5. Création d'une machine virtuelle imbriquée sur IBM Z Copier lienLien copié sur presse-papiers!
Suivez les étapes ci-dessous pour activer et configurer la virtualisation imbriquée sur un hôte IBM Z.
IBM Z ne fournit pas vraiment d'hôte L0
à l'état brut. Au lieu de cela, les systèmes utilisateurs sont configurés sur une partition logique (LPAR), qui est déjà un système virtualisé, c'est pourquoi elle est souvent appelée L1
. Cependant, pour un meilleur alignement avec les autres architectures de ce guide, les étapes suivantes se réfèrent à IBM Z comme s'il fournissait un hôte L0
.
Pour en savoir plus sur la virtualisation imbriquée, voir : Qu'est-ce que la virtualisation imbriquée ?
Dans la majorité des environnements, la virtualisation imbriquée n'est disponible qu'en tant qu'aperçu technologique dans RHEL 9.
Pour une description détaillée des environnements pris en charge et non pris en charge, voir Limitations de la prise en charge de la virtualisation imbriquée.
Conditions préalables
- Un hôte RHEL 9 L0 exécutant une machine virtuelle (VM) L1.
-
Le processeur de l'hyperviseur doit prendre en charge la virtualisation imbriquée. Pour vérifier que c'est le cas, utilisez la commande
cat /proc/cpuinfo
sur l'hyperviseur L0. Si la sortie de la commande inclut le drapeausie
, la création de VM L2 est possible. Assurez-vous que la virtualisation imbriquée est activée sur l'hôte L0 :
cat /sys/module/kvm/parameters/nested
# cat /sys/module/kvm/parameters/nested
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Si la commande renvoie 1 ou Y, la fonctionnalité est activée. Sautez les autres étapes préalables et passez à la section Procédure.
Si la commande renvoie 0 ou N, procédez comme suit pour activer la fonction.
- Arrêtez toutes les machines virtuelles en cours d'exécution sur l'hôte L0.
Déchargez le module
kvm
:modprobe -r kvm
# modprobe -r kvm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Activer la fonction d'imbrication :
modprobe kvm nested=1
# modprobe kvm nested=1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La fonction d'imbrication est maintenant activée, mais seulement jusqu'au prochain redémarrage de l'hôte L0. Pour l'activer de façon permanente, ajoutez la ligne suivante au fichier
/etc/modprobe.d/kvm.conf
:options kvm nested=1
options kvm nested=1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
- Créez une VM L2 à l'intérieur de la VM L1. Pour ce faire, suivez la même procédure que pour la création de la L1 VM.
Chapitre 23. Diagnostiquer les problèmes des machines virtuelles Copier lienLien copié sur presse-papiers!
Lorsque vous travaillez avec des machines virtuelles (VM), vous pouvez rencontrer des problèmes plus ou moins graves. Certains problèmes peuvent être résolus rapidement et facilement, tandis que pour d'autres, vous devrez peut-être capturer des données et des journaux liés aux machines virtuelles afin de signaler ou de diagnostiquer les problèmes.
Les sections suivantes fournissent des informations détaillées sur la génération de journaux et le diagnostic de certains problèmes courants liés aux machines virtuelles, ainsi que sur le signalement de ces problèmes.
23.1. Générer les journaux de débogage de libvirt Copier lienLien copié sur presse-papiers!
Pour diagnostiquer les problèmes des machines virtuelles (VM), il est utile de générer et d'examiner les journaux de débogage de libvirt. Il est également utile de joindre les journaux de débogage lorsque vous demandez de l'aide pour résoudre des problèmes liés aux machines virtuelles.
Les sections suivantes expliquent ce que sont les journaux de débogage, comment les rendre persistants, les activer pendant l'exécution et les joindre lorsque vous signalez des problèmes.
23.1.1. Comprendre les journaux de débogage de libvirt Copier lienLien copié sur presse-papiers!
Les journaux de débogage sont des fichiers texte qui contiennent des données sur les événements qui se produisent pendant l'exécution de la machine virtuelle (VM). Les journaux fournissent des informations sur les fonctionnalités fondamentales côté serveur, telles que les bibliothèques hôtes et le démon libvirt. Les fichiers journaux contiennent également la sortie d'erreur standard (stderr
) de toutes les machines virtuelles en cours d'exécution.
La journalisation de débogage n'est pas activée par défaut et doit l'être au démarrage de libvirt. Vous pouvez activer la journalisation pour une session unique ou de manière persistante. Vous pouvez également activer la journalisation lorsqu'une session du démon libvirt est déjà en cours d'exécution en modifiant les paramètres d'exécution du démon.
Il est également utile de joindre les journaux de débogage de libvirt lorsque l'on demande de l'aide pour un problème de VM.
23.1.2. Activation des paramètres persistants pour les journaux de débogage de libvirt Copier lienLien copié sur presse-papiers!
Vous pouvez configurer la journalisation de débogage de libvirt pour qu'elle soit automatiquement activée à chaque démarrage de libvirt. Par défaut, virtqemud
est le démon principal de libvirt dans RHEL 9. Pour apporter des modifications persistantes à la configuration de libvirt, vous devez éditer le fichier virtqemud.conf
, situé dans le répertoire /etc/libvirt
.
Dans certains cas, par exemple lors d'une mise à niveau à partir de RHEL 8, libvirtd
peut encore être le démon libvirt activé. Dans ce cas, vous devez éditer le fichier libvirtd.conf
à la place.
Procédure
-
Ouvrez le fichier
virtqemud.conf
dans un éditeur. Remplacez ou réglez les filtres en fonction de vos besoins.
Expand Tableau 23.1. Débogage des valeurs des filtres 1
enregistre tous les messages générés par libvirt.
2
enregistre toutes les informations non déboguées.
3
enregistre tous les messages d'avertissement et d'erreur. Il s'agit de la valeur par défaut.
4
n'enregistre que les messages d'erreur.
Exemple 23.1. Exemple de paramètres de démon pour les filtres de journalisation
Les paramètres suivants :
-
Enregistrer tous les messages d'erreur et d'avertissement provenant des couches
remote
,util.json
etrpc
-
Ne consigner que les messages d'erreur provenant de la couche
event
. -
Enregistrer les journaux filtrés dans
/var/log/libvirt/libvirt.log
log_filters="3:remote 4:event 3:util.json 3:rpc" log_outputs="1:file:/var/log/libvirt/libvirt.log"
log_filters="3:remote 4:event 3:util.json 3:rpc" log_outputs="1:file:/var/log/libvirt/libvirt.log"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Enregistrer tous les messages d'erreur et d'avertissement provenant des couches
- Sauvegarder et quitter.
Redémarrer le démon libvirt.
systemctl restart virtqemud.service
$ systemctl restart virtqemud.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
23.1.3. Activation des journaux de débogage de libvirt pendant l'exécution Copier lienLien copié sur presse-papiers!
Vous pouvez modifier les paramètres d'exécution du démon libvirt pour activer les journaux de débogage et les enregistrer dans un fichier de sortie.
Ceci est utile lorsque le redémarrage du démon libvirt n'est pas possible parce que le redémarrage résout le problème, ou parce qu'un autre processus, tel que la migration ou la sauvegarde, s'exécute en même temps. La modification des paramètres d'exécution est également utile si vous souhaitez essayer une commande sans éditer les fichiers de configuration ou redémarrer le démon.
Conditions préalables
-
Assurez-vous que le paquet
libvirt-admin
est installé.
Procédure
Optional: Sauvegarder l'ensemble actif des filtres de journalisation.
virt-admin -c virtqemud:///system daemon-log-filters >> virt-filters-backup
# virt-admin -c virtqemud:///system daemon-log-filters >> virt-filters-backup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteIl est recommandé de sauvegarder l'ensemble des filtres actifs afin de pouvoir les restaurer après la génération des journaux. Si vous ne restaurez pas les filtres, les messages continueront à être enregistrés, ce qui peut affecter les performances du système.
Utilisez l'utilitaire
virt-admin
pour activer le débogage et définir les filtres en fonction de vos besoins.Expand Tableau 23.2. Débogage des valeurs des filtres 1
enregistre tous les messages générés par libvirt.
2
enregistre toutes les informations non déboguées.
3
enregistre tous les messages d'avertissement et d'erreur. Il s'agit de la valeur par défaut.
4
n'enregistre que les messages d'erreur.
Exemple 23.2. Exemple de paramètres virt-admin pour les filtres de journalisation
La commande suivante :
-
Enregistre tous les messages d'erreur et d'avertissement provenant des couches
remote
,util.json
etrpc
-
Ne consigne que les messages d'erreur provenant de la couche
event
.
virt-admin -c virtqemud:///system daemon-log-filters "3:remote 4:event 3:util.json 3:rpc"
# virt-admin -c virtqemud:///system daemon-log-filters "3:remote 4:event 3:util.json 3:rpc"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Enregistre tous les messages d'erreur et d'avertissement provenant des couches
Utilisez l'utilitaire
virt-admin
pour enregistrer les journaux dans un fichier ou un répertoire spécifique.Par exemple, la commande suivante enregistre la sortie du journal dans le fichier
libvirt.log
du répertoire/var/log/libvirt/
.virt-admin -c virtqemud:///system daemon-log-outputs "1:file:/var/log/libvirt/libvirt.log"
# virt-admin -c virtqemud:///system daemon-log-outputs "1:file:/var/log/libvirt/libvirt.log"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Vous pouvez également supprimer les filtres pour générer un fichier journal contenant toutes les informations relatives aux machines virtuelles. Cependant, cela n'est pas recommandé car ce fichier peut contenir une grande quantité d'informations redondantes produites par les modules de libvirt.
Utilisez l'utilitaire
virt-admin
pour spécifier un ensemble vide de filtres.virt-admin -c virtqemud:///system daemon-log-filters
# virt-admin -c virtqemud:///system daemon-log-filters Logging filters:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Optional: Restaurer les filtres dans leur état d'origine à l'aide du fichier de sauvegarde.
Effectuez la deuxième étape avec les valeurs sauvegardées pour restaurer les filtres.
23.1.4. Attacher les logs de débogage de libvirt aux demandes de support Copier lienLien copié sur presse-papiers!
Il se peut que vous deviez demander une assistance supplémentaire pour diagnostiquer et résoudre les problèmes liés aux machines virtuelles (VM). Il est fortement recommandé de joindre les journaux de débogage à la demande d'assistance afin que l'équipe d'assistance ait accès à toutes les informations dont elle a besoin pour résoudre rapidement le problème lié à la machine virtuelle.
Procédure
- Pour signaler un problème et demander de l'aide, ouvrez un dossier d'assistance.
En fonction des problèmes rencontrés, joignez les journaux suivants à votre rapport :
-
En cas de problème avec le service libvirt, joignez le fichier
/var/log/libvirt/libvirt.log
de l'hôte. Pour les problèmes liés à une VM spécifique, joignez le fichier journal correspondant.
Par exemple, pour la VM testguest1, joignez le fichier
testguest1.log
, qui se trouve à l'adresse/var/log/libvirt/qemu/testguest1.log
.
-
En cas de problème avec le service libvirt, joignez le fichier
23.2. Vider le cœur d'une machine virtuelle Copier lienLien copié sur presse-papiers!
Pour analyser les raisons d'un crash ou d'un dysfonctionnement d'une machine virtuelle (VM), vous pouvez enregistrer le noyau de la VM dans un fichier sur le disque pour une analyse et un diagnostic ultérieurs.
Cette section présente brièvement le core dumping et explique comment vous pouvez effectuer le dumping d'un core de VM dans un fichier spécifique.
23.2.1. Comment fonctionne le vidage du cœur d'une machine virtuelle Copier lienLien copié sur presse-papiers!
Une machine virtuelle (VM) nécessite de nombreux processus en cours d'exécution pour fonctionner de manière précise et efficace. Dans certains cas, une VM en cours d'exécution peut s'arrêter de manière inattendue ou présenter des dysfonctionnements pendant que vous l'utilisez. Le redémarrage de la VM peut entraîner la réinitialisation ou la perte des données, ce qui complique le diagnostic du problème exact à l'origine de la panne de la VM.
Dans ce cas, vous pouvez utiliser l'utilitaire virsh dump
pour enregistrer (ou dump) le noyau d'une VM dans un fichier avant de redémarrer la VM. Le fichier core dump contient une image brute de la mémoire physique de la VM qui contient des informations détaillées sur la VM. Ces informations peuvent être utilisées pour diagnostiquer les problèmes de la VM, soit manuellement, soit à l'aide d'un outil tel que l'utilitaire crash
.
23.2.2. Création d'un fichier de vidage du cœur de la machine virtuelle Copier lienLien copié sur presse-papiers!
Le core dump d'une machine virtuelle (VM) contient des informations détaillées sur l'état d'une VM à un moment donné. Ces informations, qui s'apparentent à un instantané de la VM, peuvent vous aider à détecter des problèmes en cas de dysfonctionnement ou d'arrêt soudain d'une VM.
Conditions préalables
- Assurez-vous que vous disposez d'un espace disque suffisant pour enregistrer le fichier. Notez que l'espace occupé par la VM dépend de la quantité de RAM allouée à la VM.
Procédure
Utilisez l'utilitaire
virsh dump
.Par exemple, la commande suivante extrait les cœurs de la VM
lander1
, sa mémoire et le fichier de registre commun du processeur versgargantua.file
dans le répertoire/core/file
.virsh dump lander1 /core/file/gargantua.file --memory-only
# virsh dump lander1 /core/file/gargantua.file --memory-only Domain 'lander1' dumped to /core/file/gargantua.file
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
L'utilitaire crash
ne prend plus en charge le format de fichier par défaut de la commande virsh dump. Pour analyser un fichier core dump à l'aide de crash
, vous devez créer le fichier avec l'option --memory-only
.
De plus, vous devez utiliser l'option --memory-only
lors de la création d'un fichier core dump à joindre à un cas d'assistance Red Hat.
Résolution de problèmes
Si la commande virsh dump
échoue avec une erreur System is deadlocked on memory
, assurez-vous que vous attribuez suffisamment de mémoire au fichier core dump. Pour ce faire, utilisez la valeur de l'option crashkernel
suivante. Sinon, n'utilisez pas du tout la commande crashkernel
, qui attribue automatiquement de la mémoire au fichier core dump.
crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M
crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M
23.3. Retracer les processus des machines virtuelles Copier lienLien copié sur presse-papiers!
Lorsqu'un processus lié à une machine virtuelle (VM) fonctionne mal, vous pouvez utiliser la commande gstack
avec l'identifiant du processus (PID) pour générer une trace de la pile d'exécution du processus défaillant. Si le processus fait partie d'un groupe de threads, tous les threads sont également tracés.
Conditions préalables
Assurez-vous que le paquetage
GDB
est installé.Pour plus de détails sur l'installation de
GDB
et des composants disponibles, voir Installation du débogueur GNU.Assurez-vous de connaître le PID des processus que vous souhaitez retracer.
Vous pouvez trouver le PID en utilisant la commande
pgrep
suivie du nom du processus. Par exemple :pgrep libvirt
# pgrep libvirt 22014 22025
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procédure
Utilisez l'utilitaire
gstack
suivi du PID du processus que vous souhaitez retracer.Par exemple, la commande suivante retrace le processus libvirt avec le PID 22014.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Ressources supplémentaires pour signaler les problèmes des machines virtuelles et fournir des journaux
Vous pouvez demander une aide et un soutien supplémentaires :
Lancez une demande de service en utilisant l'option de ligne de commande redhat-support-tool, l'interface utilisateur du Portail Red Hat ou plusieurs méthodes FTP.
- Pour signaler des problèmes et demander de l'aide, voir Ouvrir un dossier d'assistance.
Téléchargez le rapport SOS et les fichiers journaux lorsque vous soumettez une demande de service.
Cela permet de s'assurer que l'ingénieur d'assistance de Red Hat dispose de toutes les informations de diagnostic nécessaires à titre de référence.
- Pour plus d'informations sur les rapports SOS, voir Qu'est-ce qu'un rapport SOS et comment en créer un dans Red Hat Enterprise Linux ?
- Pour plus d'informations sur l'attachement des fichiers journaux, voir Comment fournir des fichiers à l'assistance de Red Hat ?
Chapitre 24. Fonctionnalités et limites de la virtualisation RHEL 9 Copier lienLien copié sur presse-papiers!
Ce document fournit des informations sur la prise en charge des fonctionnalités et les restrictions dans la virtualisation de Red Hat Enterprise Linux 9 (RHEL 9).
24.1. Comment fonctionne la prise en charge de la virtualisation par RHEL Copier lienLien copié sur presse-papiers!
Un ensemble de limitations de support s'applique à la virtualisation dans Red Hat Enterprise Linux 9 (RHEL 9). Cela signifie que lorsque vous utilisez certaines fonctionnalités ou que vous dépassez une certaine quantité de ressources allouées lors de l'utilisation de machines virtuelles dans RHEL 9, Red Hat ne prendra pas en charge ces invités à moins que vous ne disposiez d'un plan d'abonnement spécifique.
Les fonctionnalités listées dans Fonctionnalités recommandées dans la virtualisation RHEL 9 ont été testées et certifiées par Red Hat pour fonctionner avec l'hyperviseur KVM sur un système RHEL 9. Par conséquent, elles sont entièrement prises en charge et recommandées pour une utilisation dans la virtualisation sous RHEL 9.
Les fonctionnalités listées dans Fonctionnalités non prises en charge dans la virtualisation RHEL 9 peuvent fonctionner, mais ne sont pas prises en charge et ne sont pas destinées à être utilisées dans RHEL 9. Par conséquent, Red Hat recommande fortement de ne pas utiliser ces fonctionnalités dans RHEL 9 avec KVM.
Les limites d'allocation de ressources dans la virtualisation RHEL 9 listent la quantité maximale de ressources spécifiques prises en charge sur un invité KVM dans RHEL 9. Les invités qui dépassent ces limites ne sont pas pris en charge par Red Hat.
En outre, sauf indication contraire, toutes les fonctionnalités et solutions utilisées dans la documentation pour la virtualisation de RHEL 9 sont prises en charge. Toutefois, certaines d'entre elles n'ont pas été entièrement testées et peuvent donc ne pas être totalement optimisées.
Nombre de ces limitations ne s'appliquent pas à d'autres solutions de virtualisation fournies par Red Hat, telles que OpenShift Virtualization ou Red Hat OpenStack Platform (RHOSP).
24.2. Fonctionnalités recommandées dans la virtualisation RHEL 9 Copier lienLien copié sur presse-papiers!
Les fonctionnalités suivantes sont recommandées pour l'utilisation de l'hyperviseur KVM inclus dans Red Hat Enterprise Linux 9 (RHEL 9) :
Architectures des systèmes hôtes
RHEL 9 avec KVM n'est pris en charge que sur les architectures hôtes suivantes :
- AMD64 et Intel 64
- IBM Z - Systèmes IBM z13 et ultérieurs
- ARM 64
Toute autre architecture matérielle n'est pas prise en charge pour l'utilisation de RHEL 9 en tant qu'hôte de virtualisation KVM, et Red Hat déconseille vivement de le faire.
Systèmes d'exploitation invités
Red Hat fournit une assistance aux machines virtuelles KVM qui utilisent des systèmes d'exploitation invités (OS) spécifiques. Pour une liste détaillée des systèmes d'exploitation invités pris en charge, consultez les Systèmes d'exploitation invités certifiés dans la base de connaissances Red Hat.
Notez toutefois que, par défaut, votre système d'exploitation invité n'utilise pas le même abonnement que votre système hôte. Vous devez donc activer une licence ou un abonnement distinct pour que le système d'exploitation invité fonctionne correctement.
En outre, les périphériques de passage que vous attachez à la VM doivent être pris en charge à la fois par le système d'exploitation hôte et le système d'exploitation invité.
De même, pour un fonctionnement optimal de votre déploiement, Red Hat recommande que le modèle de CPU et les fonctionnalités que vous définissez dans la configuration XML d'une VM soient pris en charge à la fois par le système d'exploitation hôte et le système d'exploitation invité.
Pour consulter les processeurs et autres matériels certifiés pour les différentes versions de RHEL, voir le catalogue de l'écosystème Red Hat.
Machine types
Pour que votre VM soit compatible avec l'architecture de votre hôte et que le système d'exploitation invité fonctionne de manière optimale, la VM doit utiliser un type de machine approprié.
Dans RHEL 9, les types de machine pc-i440fx-rhel7.5.0
et antérieurs, qui étaient par défaut dans les versions majeures précédentes de RHEL, ne sont plus pris en charge. Par conséquent, la tentative de démarrage d'une VM avec de tels types de machines sur un hôte RHEL 9 échoue avec une erreur unsupported configuration
. Si vous rencontrez ce problème après avoir mis à niveau votre hôte vers RHEL 9, consultez la base de connaissances de Red Hat.
Lors de la création d'une VM à l'aide de la ligne de commande, l'utilitaire virt-install
propose plusieurs méthodes pour définir le type de machine.
-
Lorsque vous utilisez l'option
--os-variant
,virt-install
sélectionne automatiquement le type de machine recommandé pour votre processeur hôte et pris en charge par le système d'exploitation invité. -
Si vous n'utilisez pas
--os-variant
ou si vous avez besoin d'un autre type de machine, utilisez l'option--machine
pour spécifier explicitement le type de machine. -
Si vous spécifiez une valeur
--machine
qui n'est pas prise en charge ou qui n'est pas compatible avec votre hôte,virt-install
échoue et affiche un message d'erreur.
Les types de machines recommandés pour les machines virtuelles KVM sur les architectures prises en charge, et les valeurs correspondantes pour l'option --machine
, sont les suivants. Y correspond à la dernière version mineure de RHEL 9.
-
Sur Intel 64 and AMD64 (x86_64) :
pc-q35-rhel9.Y.0
→--machine=q35
-
Sur IBM Z (s390x) :
s390-ccw-virtio-rhel9.Y.0
→--machine=s390-ccw-virtio
-
Sur ARM 64: virt-rhel9.Y.0 →
--machine=virt
Pour obtenir le type de machine d'une VM existante :
virsh dumpxml VM-name | grep machine=
# virsh dumpxml VM-name | grep machine=
Pour afficher la liste complète des types de machines prises en charge par votre hôte :
/usr/libexec/qemu-kvm -M help
# /usr/libexec/qemu-kvm -M help
24.3. Fonctionnalités non prises en charge dans la virtualisation RHEL 9 Copier lienLien copié sur presse-papiers!
Les fonctionnalités suivantes ne sont pas prises en charge par l'hyperviseur KVM inclus dans Red Hat Enterprise Linux 9 (RHEL 9) :
Nombre de ces limitations peuvent ne pas s'appliquer à d'autres solutions de virtualisation fournies par Red Hat, telles que OpenShift Virtualization ou Red Hat OpenStack Platform (RHOSP).
Les fonctionnalités prises en charge par d'autres solutions de virtualisation sont décrites comme telles dans les paragraphes suivants.
Architectures des systèmes hôtes
RHEL 9 avec KVM n'est pas pris en charge sur les architectures hôtes qui ne figurent pas dans la liste des fonctionnalités recommandées pour la virtualisation de RHEL 9.
Systèmes d'exploitation invités
Les machines virtuelles KVM qui utilisent les systèmes d'exploitation invités suivants ne sont pas prises en charge sur un hôte RHEL 9 :
- Windows 8.1 et versions antérieures
- Windows Server 2012 R2 et versions antérieures
- macOS
- Solaris pour les systèmes x86
- Tout système d'exploitation publié avant 2009
Pour obtenir une liste des systèmes d'exploitation invités pris en charge sur les hôtes RHEL et d'autres solutions de virtualisation, voir Systèmes d'exploitation invités certifiés dans Red Hat OpenStack Platform, Red Hat Virtualization, OpenShift Virtualization et Red Hat Enterprise Linux avec KVM.
Création de machines virtuelles dans des conteneurs
Red Hat ne prend pas en charge la création de machines virtuelles KVM dans tout type de conteneur qui inclut les éléments de l'hyperviseur RHEL 9 (tels que l'émulateur QEMU
ou le paquetage libvirt
).
Pour créer des VM dans des conteneurs, Red Hat recommande d'utiliser l'offre de virtualisation OpenShift.
Commandes et options virsh spécifiques
Tous les paramètres que vous pouvez utiliser avec l'utilitaire virsh
n'ont pas été testés et certifiés comme étant prêts pour la production par Red Hat. Par conséquent, toutes les commandes et options de virsh
qui ne sont pas explicitement recommandées par la documentation de Red Hat peuvent ne pas fonctionner correctement et Red Hat recommande de ne pas les utiliser dans votre environnement de production.
Les commandes virsh
non prises en charge sont notamment les suivantes :
-
virsh iface-*
les commandes telles quevirsh iface-start
etvirsh iface-destroy
-
virsh blkdeviotune
-
virsh snapshot-*
les commandes telles quevirsh snapshot-create
etvirsh snapshot-revert
La ligne de commande QEMU
QEMU est un composant essentiel de l'architecture de virtualisation dans RHEL 9, mais il est difficile à gérer manuellement, et des configurations QEMU incorrectes peuvent entraîner des vulnérabilités de sécurité. Par conséquent, l'utilisation des utilitaires de ligne de commande qemu-*
, tels que qemu-kvm
, n'est pas prise en charge par Red Hat. Utilisez plutôt les utilitaires libvirt, tels que virt-install
, virt-xml
, et les commandes virsh
prises en charge, car ils orchestrent QEMU conformément aux meilleures pratiques. Cependant, l'utilitaire qemu-img
est pris en charge pour la gestion des images de disques virtuels.
débranchement à chaud du vCPU
La suppression d'un processeur virtuel (vCPU) d'une VM en cours d'exécution, également appelée débranchement à chaud d'un vCPU, n'est pas prise en charge dans RHEL 9.
Débranchement à chaud de la mémoire
La suppression d'un périphérique de mémoire attaché à une VM en cours d'exécution, également appelée débranchement à chaud de la mémoire, n'est pas prise en charge dans RHEL 9.
Restriction des entrées/sorties du côté de QEMU
L'utilisation de l'utilitaire virsh blkdeviotune
pour configurer les niveaux d'entrée et de sortie maximaux pour les opérations sur les disques virtuels, également connu sous le nom de QEMU-side I/O throttling, n'est pas pris en charge dans RHEL 9.
Pour configurer l'étranglement des E/S dans RHEL 9, utilisez virsh blkiotune
. Ce système est également connu sous le nom de "libvirt-side I/O throttling" (étranglement des E/S côté libvirt). Pour plus d'informations, consultez la section Limitation des E/S sur disque dans les machines virtuelles.
Autres solutions :
- La limitation des E/S côté QEMU est également prise en charge dans RHOSP. Pour plus de détails, voir la section Setting Resource Limitation on Disk et la section Use Quality-of-Service Specifications dans le Guide de stockage RHOSP.
- En outre, OpenShift Virtualizaton prend également en charge l'étranglement des E/S côté QEMU.
Migration en direct du stockage
La migration d'une image disque d'une VM en cours d'exécution entre des hôtes n'est pas prise en charge dans RHEL 9.
Autres solutions :
- La migration en direct du stockage est prise en charge dans RHOSP, mais avec certaines limitations. Pour plus de détails, voir Migrer un volume.
Instantanés internes
La création et l'utilisation d'instantanés internes pour les machines virtuelles sont obsolètes dans RHEL 9 et fortement déconseillées dans un environnement de production. Utilisez plutôt des instantanés externes. Pour plus d'informations, voir Support-limitations-for-virtual-machine-snapshots_creating-virtual-machine-snapshots.
Autres solutions :
- RHOSP prend en charge les instantanés en direct. Pour plus de détails, voir Importer des machines virtuelles dans l'overcloud.
- Les instantanés en direct sont également pris en charge sur OpenShift Virtualization.
accélération du chemin de données vHost
Sur les hôtes RHEL 9, il est possible de configurer vHost Data Path Acceleration (vDPA) pour les périphériques virtio, mais Red Hat ne prend actuellement pas en charge cette fonctionnalité et déconseille fortement son utilisation dans les environnements de production.
vhost-user
RHEL 9 ne prend pas en charge la mise en œuvre d'une interface vHost en espace utilisateur.
Autres solutions :
-
vhost-user
est supporté dans RHOSP, mais seulement pour les interfacesvirtio-net
. Pour plus de détails, voir l'implémentation de virtio-net et les ports utilisateurs vhost. -
OpenShift Virtualization prend également en charge
vhost-user
.
États d'alimentation des systèmes S3 et S4
La suspension d'une VM aux états d'alimentation du système Suspend to RAM (S3) ou Suspend to disk (S4) n'est pas prise en charge. Notez que ces fonctionnalités sont désactivées par défaut et que leur activation rendra votre VM non supportable par Red Hat.
Notez que les états S3 et S4 ne sont actuellement pris en charge par aucune autre solution de virtualisation fournie par Red Hat.
S3-PR sur un vDisk multipatched
La réservation persistante SCSI3 (S3-PR) sur un vDisk multipatché n'est pas prise en charge dans RHEL 9. Par conséquent, Windows Cluster n'est pas pris en charge dans RHEL 9.
virtio-crypto
L'utilisation du périphérique virtio-crypto dans RHEL 9 n'est pas prise en charge et RHEL déconseille fortement son utilisation.
Notez que les périphériques virtio-crypto ne sont pris en charge dans aucune autre solution de virtualisation fournie par Red Hat.
virtio-multitouch-device, virtio-multitouch-pci
L'utilisation des périphériques virtio-multitouch-device et virtio-multitouch-pci dans RHEL 9 n'est pas prise en charge et RHEL déconseille fortement leur utilisation.
Sauvegarde incrémentale en direct
La configuration d'une sauvegarde de VM qui n'enregistre que les modifications apportées à la VM depuis la dernière sauvegarde, également connue sous le nom de sauvegarde incrémentielle en direct, n'est pas prise en charge dans RHEL 9, et Red Hat en déconseille fortement l'utilisation.
net_failover
L'utilisation du pilote net_failover
pour mettre en place un mécanisme de basculement automatique des périphériques réseau n'est pas prise en charge dans RHEL 9.
Notez que net_failover
n'est actuellement pris en charge par aucune autre solution de virtualisation fournie par Red Hat.
TCG
QEMU et libvirt incluent un mode de traduction dynamique utilisant le Tiny Code Generator (TCG) de QEMU. Ce mode ne nécessite pas la prise en charge de la virtualisation matérielle. Cependant, TCG n'est pas pris en charge par Red Hat.
Les hôtes basés sur le TCG peuvent être reconnus en examinant leur configuration XML, par exemple à l'aide de la commande virsh dumpxml
.
Le fichier de configuration d'un invité TCG contient la ligne suivante :
<domain type='qemu'>
<domain type='qemu'>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Le fichier de configuration d'un invité KVM contient la ligne suivante :
<domain type='kvm'>
<domain type='kvm'>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
SR-IOV Dispositifs de mise en réseau InfiniBand
L'attachement de périphériques réseau InfiniBand à des machines virtuelles utilisant la virtualisation d'E/S à racine unique (SR-IOV) n'est pas pris en charge.
24.4. Limites d'allocation de ressources dans la virtualisation RHEL 9 Copier lienLien copié sur presse-papiers!
Les limites suivantes s'appliquent aux ressources virtualisées qui peuvent être allouées à une seule machine virtuelle KVM (VM) sur un hôte Red Hat Enterprise Linux 9 (RHEL 9).
Nombre de ces limitations ne s'appliquent pas à d'autres solutions de virtualisation fournies par Red Hat, telles que OpenShift Virtualization ou Red Hat OpenStack Platform (RHOSP).
Nombre maximal de vCPU par VM
Pour connaître le nombre maximum de vCPUs et de mémoire pris en charge par une seule VM s'exécutant sur un hôte RHEL 9, voir : Limites de virtualisation pour Red Hat Enterprise Linux avec KVM
Périphériques PCI par VM
RHEL 9 prend en charge 32 emplacements de périphériques PCI par bus VM et 8 fonctions PCI par emplacement de périphérique. Cela donne un maximum théorique de 256 fonctions PCI par bus lorsque les capacités multifonctions sont activées dans la VM et qu'aucun pont PCI n'est utilisé.
Chaque pont PCI ajoute un nouveau bus, permettant potentiellement 256 adresses de périphériques supplémentaires. Toutefois, certains bus ne mettent pas les 256 adresses de périphériques à la disposition de l'utilisateur ; par exemple, le bus racine a plusieurs périphériques intégrés qui occupent des emplacements.
Périphériques IDE virtualisés
KVM est limité à un maximum de 4 périphériques IDE virtualisés par VM.
24.5. Comment la virtualisation sur IBM Z diffère de celle sur AMD64 et Intel 64 Copier lienLien copié sur presse-papiers!
La virtualisation KVM dans RHEL 9 sur les systèmes IBM Z diffère de KVM sur les systèmes AMD64 et Intel 64 pour les raisons suivantes :
- Dispositifs PCI et USB
Les périphériques virtuels PCI et USB ne sont pas pris en charge sur IBM Z. Cela signifie également que les périphériques PCI et USB ne sont pas pris en charge et que les périphériques USB ne sont pas pris en charge
virtio-*-pci
ne sont pas pris en charge et que les périphériquesvirtio-*-ccw
doivent être utilisés à la place. Par exemple, utilisezvirtio-net-ccw
au lieu devirtio-net-pci
.Notez que la connexion directe de périphériques PCI, également connue sous le nom de PCI passthrough, est prise en charge.
- Système d'exploitation invité pris en charge
- Red Hat ne prend en charge les VM hébergées sur IBM Z que si elles utilisent RHEL 7, 8 ou 9 comme système d'exploitation invité.
- Ordre de démarrage du dispositif
IBM Z ne prend pas en charge l'élément de configuration
<boot dev='device'>
XML. Pour définir l'ordre de démarrage du périphérique, utilisez l'élément<boot order='number'>
dans la section<devices>
du XML.En outre, vous pouvez sélectionner l'entrée d'amorçage requise en utilisant l'attribut
loadparm
spécifique à l'architecture dans l'élément<boot>
. Par exemple, l'exemple suivant détermine que le disque doit être utilisé en premier dans la séquence de démarrage et que si une distribution Linux est disponible sur ce disque, il sélectionnera la deuxième entrée de démarrage :Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteL'utilisation de
<boot order='number'>
pour la gestion de l'ordre de démarrage est également préférable sur les hôtes AMD64 et Intel 64.- Mémoire hot plug
- L'ajout de mémoire à une VM en cours d'exécution n'est pas possible sur IBM Z. Notez que la suppression de la mémoire d'une VM en cours d'exécution (memory hot unplug) n'est pas non plus possible sur IBM Z, ainsi que sur AMD64 et Intel 64.
- Topologie NUMA
-
La topologie NUMA (Non-Uniform Memory Access) pour les CPU n'est pas prise en charge par
libvirt
sur IBM Z. Par conséquent, il n'est pas possible de régler les performances des vCPU en utilisant NUMA sur ces systèmes. - Dispositifs GPU
- L'attribution de périphériques GPU n'est pas prise en charge sur les systèmes IBM Z.
- vfio-ap
- Les machines virtuelles sur un hôte IBM Z peuvent utiliser le dispositif cryptographique vfio-ap, qui n'est pris en charge sur aucune autre architecture.
- vfio-ccw
- Les machines virtuelles sur un hôte IBM Z peuvent utiliser le périphérique de disque vfio-ccw, qui n'est pris en charge sur aucune autre architecture.
- SMBIOS
- La configuration SMBIOS n'est pas disponible sur IBM Z.
- Dispositifs de surveillance
Si vous utilisez des périphériques de surveillance dans votre VM sur un hôte IBM Z, utilisez le modèle
diag288
. Par exemple :<devices> <watchdog model='diag288' action='poweroff'/> </devices>
<devices> <watchdog model='diag288' action='poweroff'/> </devices>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - horloge kvm
-
Le service
kvm-clock
est spécifique aux systèmes AMD64 et Intel 64, et ne doit pas être configuré pour la gestion du temps des VM sur IBM Z. - v2v et p2v
-
Les utilitaires
virt-v2v
etvirt-p2v
ne sont pris en charge que sur les architectures AMD64 et Intel 64, et ne sont pas fournis sur IBM Z. - Migrations
Pour migrer avec succès vers un modèle d'hôte plus récent (par exemple d'IBM z14 à z15) ou pour mettre à jour l'hyperviseur, utilisez le mode d'unité centrale
host-model
. Les modes CPUhost-passthrough
etmaximum
ne sont pas recommandés, car ils ne sont généralement pas sûrs pour la migration.Si vous souhaitez spécifier un modèle de CPU explicite dans le mode CPU
custom
, suivez les instructions suivantes :-
N'utilisez pas les modèles de CPU qui se terminent par
-base
. -
Ne pas utiliser le modèle de CPU
qemu
,max
ouhost
.
Pour migrer avec succès vers un modèle d'hôte plus ancien (par exemple de z15 à z14), ou vers une version antérieure de QEMU, KVM ou du noyau RHEL, utilisez le type de CPU du plus ancien modèle d'hôte disponible sans
-base
à la fin.-
Si l'hôte source et l'hôte de destination sont tous deux en cours d'exécution, vous pouvez utiliser la commande
virsh hypervisor-cpu-baseline
sur l'hôte de destination pour obtenir un modèle de CPU approprié. Pour plus d'informations, voir Vérifier la compatibilité du CPU de l'hôte pour la migration de la machine virtuelle. - Pour plus d'informations sur les types de machines pris en charge dans RHEL 9, voir Fonctionnalités recommandées dans la virtualisation RHEL 9.
-
N'utilisez pas les modèles de CPU qui se terminent par
- Installation et démarrage PXE
Lorsque vous utilisez PXE pour exécuter une VM sur IBM Z, une configuration spécifique est requise pour le fichier
pxelinux.cfg/default
. Par exemple :Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Exécution sécurisée
-
Vous pouvez démarrer une VM avec une image d'invité sécurisée préparée en définissant
<launchSecurity type="s390-pv"/>
dans la configuration XML de la VM. Cela permet de crypter la mémoire de la VM afin de la protéger contre tout accès indésirable de l'hyperviseur.
Notez que les fonctionnalités suivantes ne sont pas prises en charge lors de l'exécution d'une VM en mode sécurisé :
-
Passage d'un dispositif à l'autre en utilisant
vfio
-
Obtenir des informations sur la mémoire en utilisant
virsh domstats
etvirsh memstat
-
Les dispositifs virtuels
memballoon
etvirtio-rng
- Sauvegarde de la mémoire par l'utilisation de grandes pages
- Migrations de machines virtuelles en direct et en différé
- Sauvegarde et restauration des machines virtuelles
-
Les instantanés de VM, y compris les instantanés de mémoire (à l'aide de l'option
--memspec
) -
Vidages complets de la mémoire. Au lieu de cela, spécifiez l'option
--memory-only
pour la commandevirsh dump
. - 248 vCPUs ou plus. La limite de vCPU pour les invités sécurisés est de 247.
24.6. En quoi la virtualisation sur ARM 64 diffère-t-elle de AMD64 et Intel 64 ? Copier lienLien copié sur presse-papiers!
La virtualisation KVM dans RHEL 9 sur les systèmes ARM 64 (également appelée AArch64) est différente de KVM sur les systèmes AMD64 et Intel 64 sur un certain nombre d'aspects. Il s'agit notamment des aspects suivants :
- Systèmes d'exploitation invités
- Le seul système d'exploitation invité actuellement pris en charge sur les machines virtuelles (VM) ARM 64 est RHEL 9.
- Gestion de la console web
- Certaines fonctionnalités de gestion des machines virtuelles dans la console web RHEL 9 peuvent ne pas fonctionner correctement sur du matériel ARM 64.
- vCPU hot plug et hot unplug
- L'attachement d'un processeur virtuel (vCPU) à une VM en cours d'exécution, également appelé hot plug vCPU, n'est pas pris en charge sur les hôtes ARM 64. En outre, comme pour les hôtes AMD64 et Intel 64, la suppression d'un vCPU d'une VM en cours d'exécution (vCPU hot unplug) n'est pas prise en charge sur ARM 64.
- SecureBoot
- La fonction SecureBoot n'est pas disponible sur les systèmes ARM 64.
- Migration
- La migration des machines virtuelles entre des hôtes ARM 64 n'est actuellement pas prise en charge.
- Taille des pages de mémoire
ARM 64 ne prend actuellement en charge l'exécution de VM qu'avec une taille de page mémoire de 64 Ko et uniquement sur des hôtes avec une taille de page mémoire de 64 Ko. les pages de 4 Ko dans l'hôte ou dans l'invité ne sont actuellement pas prises en charge.
Pour créer avec succès des VM sur ARM 64, votre hôte doit utiliser un noyau avec une taille de page mémoire de 64 Ko et, lors de la création de la VM, vous devez l'installer avec
kernel-64k package
, par exemple en incluant le paramètre suivant dans le fichier kickstart :%packages -kernel kernel-64k %end
%packages -kernel kernel-64k %end
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Grandes pages
Les hôtes ARM 64 avec une taille de page mémoire de 64 Ko prennent en charge des pages mémoire de grande taille avec les tailles suivantes :
- 2 MB
- 512 MO
16 GB
Lorsque vous utilisez le système de fichiers THP (transparent huge pages) sur un hôte ARM 64, il ne prend en charge que des pages de 512 Mo.
- SVE
L'architecture ARM 64 offre la fonction Scalable Vector Expansion (SVE). Si l'hôte prend en charge cette fonctionnalité, l'utilisation de SVE dans vos machines virtuelles améliore la vitesse des calculs mathématiques vectoriels et des opérations sur les chaînes de caractères dans ces machines virtuelles.
Le niveau de base de SVE est activé par défaut sur les processeurs hôtes qui le prennent en charge. Cependant, Red Hat recommande de configurer explicitement chaque longueur de vecteur. Cela garantit que la VM ne peut être lancée que sur des hôtes compatibles. Pour ce faire, procédez comme suit
Vérifiez que votre unité centrale dispose de la fonction SVE :
grep -m 1 Features /proc/cpuinfo | grep -w sve
# grep -m 1 Features /proc/cpuinfo | grep -w sve Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm fcma dcpop sve
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si la sortie de cette commande comprend
sve
ou si son code de sortie est 0, votre CPU supporte SVE.Ouvrez la configuration XML de la VM que vous souhaitez modifier :
virsh edit vm-name
# virsh edit vm-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Modifiez l'élément
<cpu>
de la manière suivante :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cet exemple active explicitement les vecteurs SVE de longueur 128, 256 et 512, et désactive explicitement le vecteur de longueur 384.
- Modèles de CPU
-
Les VM sur ARM 64 ne prennent actuellement en charge que le modèle de CPU
host
. - Sauvegarde et restauration des machines virtuelles
- L'enregistrement et la restauration d' une VM ne sont actuellement pas pris en charge sur un hôte ARM 64.
- PXE
Démarrage dans l'environnement d'exécution avant le démarrage (PXE) fonctionnel mais non pris en charge, Red Hat déconseille fortement son utilisation dans les environnements de production.
Si vous avez besoin d'un démarrage PXE, il n'est possible qu'avec le contrôleur d'interface réseau (NIC)
virtio-net-pci
. En outre, le piloteVirtioNetDxe
intégré au microprogramme UEFI de la machine virtuelle (installé avec le paquetedk2-aarch64
) doit être utilisé pour le démarrage PXE. Notez que les ROMs d'option iPXE ne sont pas prises en charge.- Mémoire des appareils
- Les fonctions de mémoire des périphériques, telles que le module de mémoire double en ligne (DIMM) et le module DIMM non volatil (NVDIMM), ne fonctionnent pas sur ARM 64.
- pvpanic
-
Le périphérique pvpanic n'est actuellement pas pris en charge sur ARM 64. Veillez à supprimer l'élément
<panic>
de la section<devices>
de la configuration XML de l'invité sur ARM 64, car sa présence peut entraîner un échec du démarrage de la VM. - OVMF
Les VM sur un hôte ARM 64 ne peuvent pas utiliser le micrologiciel OVMF UEFI utilisé sur AMD64 et Intel 64, inclus dans le paquetage
edk2-ovmf
. À la place, ces machines virtuelles utilisent le micrologiciel UEFI inclus dans le paquetageedk2-aarch64
, qui fournit une interface similaire et met en œuvre un ensemble de fonctionnalités similaires.Plus précisément,
edk2-aarch64
fournit un shell UEFI intégré, mais ne prend pas en charge les fonctionnalités suivantes :- SecureBoot
- Mode de gestion
- horloge kvm
-
Le service
kvm-clock
ne doit pas être configuré pour la gestion du temps dans les VM sur ARM 64. - Dispositifs périphériques
Les systèmes ARM 64 prennent en charge un ensemble de périphériques partiellement différent de celui des systèmes AMD64 et Intel 64.
- Seules les topologies PCIe sont prises en charge.
-
Les systèmes ARM 64 prennent en charge les dispositifs
virtio
en utilisant les pilotesvirtio-*-pci
. En outre, les périphériquesvirtio-iommu
etvirtio-input
ne sont pas pris en charge. -
Cette fonction n'est fournie qu'à titre d'aperçu technologique et n'est donc pas supportée
virtiofs
n'est fournie qu'à titre d'aperçu technologique et n'est donc pas prise en charge. -
Le pilote
virtio-gpu
n'est pris en charge que pour les installations graphiques. -
Les systèmes ARM 64 prennent en charge les périphériques
usb-mouse
etusb-tablet
pour les installations graphiques uniquement. Les autres périphériques USB, USB passthrough ou USB redirect ne sont pas pris en charge. - L'attribution de périphériques utilisant des E/S de fonctions virtuelles (VFIO) n'est prise en charge que pour les cartes d'interface réseau (fonctions physiques et virtuelles).
- Dispositifs émulés
Les dispositifs suivants ne sont pas pris en charge sur ARM 64 :
- Dispositifs sonores émulés, tels que ICH9, ICH6 ou AC97.
- Cartes graphiques émulées, telles que les cartes VGA.
-
Périphériques de réseau émulés, tels que
rtl8139
.
- Dispositifs GPU
- L'attribution de périphériques GPU n'est pas prise en charge sur les systèmes ARM 64.
- Configuration de la console série
-
Lors de la configuration d'une console série sur une VM, utilisez l'option de noyau
console=ttyAMA0
au lieu deconsole=ttyS0
avec l'utilitairegrubby
. - Interruptions non masquables
- L'envoi d'interruptions non masquables (NMI) à une VM ARM 64 n'est actuellement pas possible.
- Virtualisation imbriquée
- La création de VM imbriquées n'est actuellement pas possible sur les hôtes ARM 64.
- v2v et p2v
-
Les utilitaires
virt-v2v
etvirt-p2v
ne sont pris en charge que sur les architectures AMD64 et Intel 64 et ne sont donc pas fournis sur ARM 64.
24.7. Vue d'ensemble des fonctions de virtualisation prises en charge par RHEL 9 Copier lienLien copié sur presse-papiers!
Les tableaux suivants fournissent des informations comparatives sur l'état de la prise en charge de certaines fonctionnalités de virtualisation dans RHEL 9 sur les architectures système disponibles.
Intel 64 et AMD64 | IBM Z | ARM 64 |
---|---|---|
Soutenu | Soutenu | Soutenu |
Intel 64 et AMD64 | IBM Z | ARM 64 | |
---|---|---|---|
CPU hot plug | Soutenu | Soutenu | UNSUPPORTED |
CPU hot unplug | UNSUPPORTED | UNSUPPORTED | UNSUPPORTED |
Memory hot plug | Soutenu | UNSUPPORTED | UNSUPPORTED |
Memory hot unplug | UNSUPPORTED | UNSUPPORTED | UNSUPPORTED |
Peripheral device hot plug | Soutenu | Pris en charge [a] | Soutenu |
Peripheral device hot unplug | Soutenu | Pris en charge [b] | Soutenu |
Intel 64 et AMD64 | IBM Z | ARM 64 | |
---|---|---|---|
NUMA tuning | Soutenu | UNSUPPORTED | Soutenu |
SR-IOV devices | Soutenu | UNSUPPORTED | Soutenu |
virt-v2v and p2v | Soutenu | UNSUPPORTED | UNAVAILABLE |
Notez que certaines des fonctionnalités non prises en charge sont prises en charge par d'autres produits Red Hat, tels que Red Hat Virtualization et la plate-forme Red Hat OpenStack. Pour plus d'informations, voir Fonctionnalités non prises en charge dans la virtualisation RHEL 9.