Heim >System-Tutorial >LINUX >Aktivieren Sie die verschachtelte KVM-Virtualisierung auf RHEL 8/Rocky Linux 8
In diesem Artikel zeigen wir Ihnen, wie Sie verschachtelte Virtualisierung in KVM unter RHEL 8 / Rocky Linux 8 aktivieren.
Verschachtelte Virtualisierung in KVM (Kernel-basierte virtuelle Maschine) ist eine Funktion, die es Ihnen ermöglicht, virtuelle Maschinen innerhalb anderer virtueller Maschinen auszuführen. Das bedeutet, dass Sie eine virtuelle Umgebung innerhalb einer virtuellen Maschine erstellen und darin eine andere virtuelle Maschine ausführen können.
Verschachtelte Virtualisierung ist besonders nützlich für Test- und Entwicklungsszenarien, in denen Sie möglicherweise mehrere virtuelle Maschinen mit unterschiedlichen Konfigurationen oder Betriebssystemen erstellen möchten, ohne dass separate physische Hardware erforderlich ist. Mithilfe der verschachtelten Virtualisierung können Sie beispielsweise die Kompatibilität von Anwendungen testen, die auf mehreren Betriebssystemversionen ausgeführt werden.
Ich gehe davon aus, dass Sie bereits einen KVM-Virtualisierer konfiguriert haben. Wenn Sie nicht mit der Installation und Konfiguration des KVM-Virtualisierungsprogramms vertraut sind, lesen Sie bitte den folgenden Artikel:
Kommen wir ohne weitere Umschweife zu den praktischen Schritten.
Stellen Sie sicher, dass auf Ihrem KVM-Host die verschachtelte Virtualisierung aktiviert ist.
Für Maschinen mit Intel-Prozessoren führen Sie den folgenden cat
Befehl aus:
[root@kvm-hypervisor ~]# cat /sys/module/kvm_intel/parameters/nested N [root@kvm-hypervisor ~]#
Für Maschinen mit AMD-Prozessor führen Sie den folgenden Befehl aus:
[root@kvm-hypervisor ~]# cat /sys/module/kvm_amd/parameters/nested N [root@kvm-hypervisor ~]#
In der obigen Ausgabe bedeutet „N“, dass die verschachtelte Virtualisierung nicht aktiviert ist. Wenn die Ausgabe, die wir erhalten, „Y“ ist, bedeutet dies, dass die verschachtelte Virtualisierung auf Ihrem Host aktiviert ist.
Um nun die verschachtelte Virtualisierung zu aktivieren, erstellen Sie eine Datei namens „/etc/modprobe.d/kvm-nested.conf“ mit folgendem Inhalt:
[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
Speichern und beenden Sie die Datei.
Als nächstes löschen Sie bitte 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 ~]#
Um nun zu überprüfen, ob die verschachtelte Virtualisierungsfunktion aktiviert ist, führen Sie den folgenden Befehl aus:
[root@kvm-hypervisor ~]# cat /sys/module/kvm_intel/parameters/nested Y [root@kvm-hypervisor ~]#
Für AMD-basierte Systeme führen Sie den folgenden Befehl aus:
[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
Angenommen, wir haben eine virtuelle Maschine namens „Director“ im KVM-Virtualisierungsprogramm und ich habe darin die verschachtelte Virtualisierung aktiviert. Stellen Sie vor dem Test sicher, dass der CPU-Modus der virtuellen Maschine „Host-Modell“ oder „Host-Passthrough“ ist. Sie können den CPU-Modus der virtuellen Maschine mit der Virt-Manager-GUI oder dem Befehl „virsh edit“ überprüfen.
# virsh edit director
Für neue virtuelle Maschinen, die Sie verschachtelte Virtualisierung verwenden möchten, aktivieren Sie die Option „Host-CPU-Konfiguration kopieren“ unter CPU-Einstellungen im virt-manager.
Melden Sie sich nun bei der Director-VM an und führen Sie den Befehl lscpu
和 lsmod
aus.
[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
让我们尝试在 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 ………………………………………………
这证实了嵌套虚拟化已成功启用,因为我们能够在虚拟机中创建虚拟机。
Das obige ist der detaillierte Inhalt vonAktivieren Sie die verschachtelte KVM-Virtualisierung auf RHEL 8/Rocky Linux 8. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!