Dans ce guide, nous verrons comment activer la virtualisation imbriquée dans KVM sous Linux. Virtualisation imbriquée est une fonctionnalité qui vous permet d'exécuter une machine virtuelle à l'intérieur d'une autre machine virtuelle tout en utilisant l'accélération matérielle du système hôte. En d'autres termes, la virtualisation imbriquée est un mécanisme d'exécution d'un hyperviseur à l'intérieur d'une machine virtuelle (VM), qui elle-même s'exécute sur un hyperviseur.
Activer la virtualisation imbriquée dans KVM sous Linux
Avant d'activer la fonction VT imbriquée, éteignez toutes les machines virtuelles en cours d'exécution.
Ensuite, déchargez les modules KVM.
Pour décharger le module KVM sur INTEL systèmes, exécutez :
$ sudo modprobe -r kvm_intel
Sur AMD systèmes :
$ sudo modprobe -r kvm_amd
Rechargez le module KVM avec la fonctionnalité imbriquée activée sur les processeurs INTEL avec la commande :
$ sudo modprobe kvm_intel nested=1
Rechargez le module KVM avec la fonctionnalité imbriquée activée sur les processeurs AMD à l'aide de la commande :
$ sudo modprobe kvm_amd nested=1
Activer la virtualisation imbriquée de manière permanente
Veuillez noter que la fonction VT imbriquée n'est activée que jusqu'à ce que vous redémarriez le système hôte KVM. Pour activer de manière permanente la fonctionnalité imbriquée, modifiez /etc/modprobe.d/kvm.conf fichier :
$ sudo vi /etc/modprobe.d/kvm.conf
Si le fichier n'existe pas, créez-le simplement.
Ajoutez la ligne suivante sur INTEL hôtes :
options kvm_intel nested=1
Ajoutez la ligne suivante sur AMD hôtes :
options kvm_amd nested=1
Enregistrez et fermez le fichier.
Fait! Nous avons activé VT imbriqué sur le système hôte KVM.
Vérifiez si la virtualisation imbriquée est activée dans l'hôte KVM
Si votre processeur est INTEL, vérifiez le "/sys/module/kvm_intel/parameters/nested" fichier en utilisant la commande "cat":
$ cat /sys/module/kvm_intel/parameters/nested
Vérifiez si la virtualisation imbriquée est prise en charge sous Linux
S'il renvoie "Y" ou "1" , cela signifie que votre système prend en charge la virtualisation imbriquée. Si la sortie est "N" ou "0" , votre système ne prendra pas en charge la virtualisation imbriquée.
Si votre processeur est AMD, vérifiez le contenu de "/sys/module/kvm_amd/parameters/nested" fichier.
Vous pouvez également utiliser la commande suivante pour vous assurer que l'imbrication du module de noyau "kvm_intel" est activée :
$ modinfo kvm_intel | grep -i nested
Exemple de résultat :
parm: nested_early_check:bool parm: nested:bool
Sur processeur AMD :
$ modinfo kvm_amd | grep -i nested
Eh bien, mon hôte KVM prend en charge la virtualisation imbriquée et elle est déjà activée.
Activer la virtualisation imbriquée sur les machines invitées KVM
Nous pouvons activer la fonctionnalité imbriquée sur une machine virtuelle KVM soit à partir de la ligne de commande, soit à l'aide d'applications graphiques de gestion KVM telles que Virt-manager .
Activer la fonctionnalité imbriquée dans les invités KVM à partir de la ligne de commande
Connectez-vous à la console virsh :
$ virsh
Modifiez la VM dans laquelle vous souhaitez activer la fonctionnalité imbriquée :
virsh # edit centos
Pour trouver toutes les VM disponibles, exécutez cette commande dans la console virsh :
virsh # list --all
Trouvez le paramètre "cpu mode" et définissez sa valeur sur "host-model".
<cpu mode='host-model' check='partial'/>
Activer la fonctionnalité imbriquée dans les invités KVM à l'aide de la commande virsh
Enregistrez et fermez le fichier.
Démarrez la machine virtuelle :
virsh # start centos8
Vérifiez si la fonctionnalité imbriquée est activée pour la VM :
virsh # dumpxml centos8
Vous devriez voir que toutes les stratégies de fonctionnalité nécessaires sous la directive "mode processeur" sont maintenant mises à jour :
<cpu mode='custom' match='exact' check='full'> <model fallback='forbid'>SandyBridge-IBRS</model> <vendor>Intel</vendor> <feature policy='require' name='vme'/> <feature policy='require' name='vmx'/> <feature policy='require' name='pcid'/> <feature policy='require' name='hypervisor'/> <feature policy='require' name='arat'/> <feature policy='require' name='tsc_adjust'/> <feature policy='require' name='umip'/> <feature policy='require' name='md-clear'/> <feature policy='require' name='stibp'/> <feature policy='require' name='arch-capabilities'/> <feature policy='require' name='ssbd'/> <feature policy='require' name='xsaveopt'/> <feature policy='require' name='ibpb'/> <feature policy='require' name='amd-ssbd'/> <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='disable' name='aes'/> </cpu>
La fonctionnalité de virtualisation imbriquée a été activée pour la machine virtuelle CentOS 8.
Activer la fonctionnalité imbriquée dans les invités KVM à l'aide de Virt-manager
Ouvrez l'application GUI Virt-manager et double-cliquez sur l'invité KVM dans lequel vous souhaitez activer la fonction VT imbriquée. Cliquez sur le bouton "Afficher les détails du matériel virtuel" et accédez à la section "CPU" dans le menu de gauche.
Sélectionnez l'option "Copier la configuration du processeur hôte" cochez la case dans la fenêtre de configuration du processeur et cliquez sur Appliquer.
Configurer la virtualisation imbriquée dans VIrt-manager
Le modèle et la configuration du processeur de l'hôte physique seront désormais appliqués à la machine virtuelle.
Vérifiez si les invités KVM prennent en charge la virtualisation
Mettez sous tension et connectez-vous à la machine invitée KVM sur laquelle vous avez activé la fonctionnalité imbriquée.
Exécutez la commande suivante dans le terminal de l'invité KVM pour vérifier si la virtualisation est activée ou non :
# egrep --color -i "svm|vmx" /proc/cpuinfo
Exemple de résultat :
Vérifiez si les invités KVM prennent en charge la technologie de virtualisation sous Linux
Si vous voyez "vmx" (technologie Intel-VT) ou "svm" (prise en charge d'AMD-V) dans la sortie, la machine invitée KVM peut fonctionner comme un hyperviseur et héberger des machines virtuelles. Comme vous pouvez le voir dans la sortie ci-dessus, ma machine virtuelle KVM CentOS 8 prend en charge la virtualisation.
Consultez le guide suivant pour découvrir d'autres moyens de vérifier si un système Linux prend en charge VT ou non.
- Comment savoir si un processeur prend en charge la technologie de virtualisation (VT)
Lire connexe :
- Comment activer la virtualisation imbriquée dans VirtualBox