Maison >Tutoriel système >Linux >Activer la virtualisation imbriquée KVM sur RHEL 8 / Rocky Linux 8

Activer la virtualisation imbriquée KVM sur RHEL 8 / Rocky Linux 8

王林
王林avant
2024-02-11 08:18:261314parcourir

Dans cet article, nous allons vous montrer comment activer la virtualisation imbriquée dans KVM sur RHEL 8 / Rocky Linux 8.

La virtualisation imbriquée dans KVM (Kernel-based Virtual Machine) est une fonctionnalité qui vous permet d'exécuter des machines virtuelles au sein d'autres machines virtuelles. Cela signifie que vous pouvez créer un environnement virtuel au sein d'une machine virtuelle et y exécuter une autre machine virtuelle.

La virtualisation imbriquée est particulièrement utile pour les scénarios de test et de développement dans lesquels vous souhaiterez peut-être créer plusieurs machines virtuelles avec différentes configurations ou systèmes d'exploitation sans avoir besoin de matériel physique séparé. Par exemple, vous pouvez utiliser la virtualisation imbriquée pour tester la compatibilité des applications exécutées sur plusieurs versions du système d'exploitation.

Prérequis

  • Pré-installer KVM sur RHEL 8 / Rocky Linux 8
  • Avoir un accès Sudo ou Root

Je suppose que vous avez déjà configuré un virtualiseur KVM. Si vous ne savez pas comment installer et configurer le programme de virtualisation KVM, veuillez vous référer à l'article suivant :

  • Comment installer et configurer KVM sur RHEL 8 / CentOS 8

Sans plus attendre, passons aux étapes pratiques.

Activer la virtualisation imbriquée KVM

Vérifiez que la virtualisation imbriquée est activée sur votre hôte KVM.

Pour les machines équipées d'un processeur Intel, exécutez la commande cat suivante :

[root@kvm-hypervisor ~]# cat /sys/module/kvm_intel/parameters/nested
N
[root@kvm-hypervisor ~]#

Pour les machines basées sur un processeur AMD, exécutez la commande suivante :

[root@kvm-hypervisor ~]# cat /sys/module/kvm_amd/parameters/nested
N
[root@kvm-hypervisor ~]#

Dans le résultat ci-dessus, « N » signifie que la virtualisation imbriquée n'est pas activée. Si le résultat que nous obtenons est « Y », cela signifie que la virtualisation imbriquée est activée sur votre hôte.

Maintenant, pour activer la virtualisation imbriquée, créez un fichier appelé "/etc/modprobe.d/kvm-nested.conf" avec le contenu suivant :

[root@kvm-hypervisor ~]# vi /etc/modprobe.d/kvm-nested.conf
options kvm-intel nested=1
options kvm-intel enable_shadow_vmcs=1
options kvm-intel enable_apicv=1
options kvm-intel ept=1

Enregistrez et quittez le fichier.

Ensuite, veuillez supprimer kvm_intel 模块,然后使用 modprobe 命令添加相同的模块。在删除模块之前,请确保虚拟机已经关闭,否则我们将收到以下错误消息:“modprobe: FATAL: Module kvm_intel is in use”.

[root@kvm-hypervisor ~]# modprobe -r kvm_intel
[root@kvm-hypervisor ~]# modprobe -a kvm_intel
[root@kvm-hypervisor ~]#

Maintenant, pour vérifier que la fonctionnalité de virtualisation imbriquée est activée, exécutez la commande suivante :

[root@kvm-hypervisor ~]# cat /sys/module/kvm_intel/parameters/nested
Y
[root@kvm-hypervisor ~]#

Pour les systèmes basés sur AMD, exécutez la commande suivante :

[root@kvm-hypervisor ~]# rmmod kvm-amd
[root@kvm-hypervisor ~]# echo 'options kvm-amd nested=1'>>/etc/modprobe.d/dist.conf
[root@kvm-hypervisor ~]# modprobe kvm-amd

Test de la virtualisation imbriquée KVM

Supposons que nous ayons une machine virtuelle appelée "directeur" dans le virtualiseur KVM et que j'y ai activé la virtualisation imbriquée. Avant de tester, assurez-vous que le mode CPU de la machine virtuelle est « host-model » ou « host-passthrough ». Vous pouvez utiliser l'interface graphique Virt-Manager ou la commande virsh edit pour vérifier le mode CPU de la machine virtuelle.

# virsh edit director
在 RHEL 8 / Rocky Linux 8 上启用 KVM Nested Virtualization

Pour les nouvelles machines virtuelles que vous souhaitez utiliser la virtualisation imbriquée, cochez l'option "Copier la configuration du processeur hôte" sous les paramètres du processeur dans virt-manager.

在 RHEL 8 / Rocky Linux 8 上启用 KVM Nested Virtualization

Connectez-vous maintenant à la VM du directeur et exécutez la commande lscpulsmod.

[root@kvm-hypervisor ~]# ssh 192.168.126.1 -l root
root@192.168.126.1's password:
Last login: Sun Dec 10 07:05:59 2017 from 192.168.126.254
[root@director ~]# lsmod | grep kvm
kvm_intel             170200  0
kvm                   566604  1 kvm_intel
irqbypass              13503  1 kvm
[root@director ~]#
[root@director ~]# lscpu
在 RHEL 8 / Rocky Linux 8 上启用 KVM Nested Virtualization

让我们尝试在 director vm 中创建虚拟机,可以使用 virt-manager GUI 或 virt-install 命令。在我的测试中,我使用了 virt-install 命令。

[root@director ~]# virt-install  -n Nested-VM  --description "Test Nested VM" \
 --os-type=Linux  --os-variant=rhel7  --ram=2048  --vcpus=2 --disk \
 path=/var/lib/libvirt/images/nestedvm.img,bus=virtio,size=10 --graphics \
 none --location /var/lib/libvirt/images/CentOS-7-x86_64-DVD-1511.iso\
 --extra-args console=ttyS0
Starting install...
Retrieving file .treeinfo...                            | 1.1 kB  00:00:00
Retrieving file vmlinuz...                              | 4.9 MB  00:00:00
Retrieving file initrd.img...                           |  37 MB  00:00:00
Allocating 'nestedvm.img'                               |  10 GB  00:00:00
Connected to domain Nested-VM
Escape character is ^]
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.10.0-327.el7.x86_64 
………………………………………………
在 RHEL 8 / Rocky Linux 8 上启用 KVM Nested Virtualization

这证实了嵌套虚拟化已成功启用,因为我们能够在虚拟机中创建虚拟机。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer