搜索
首页系统教程LINUX在 RHEL 8 / Rocky Linux 8 上启用 KVM Nested Virtualization

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

Feb 11, 2024 am 08:18 AM
linuxlinux教程linux系统linux命令外壳脚本系统版本嵌入式linuxlinux入门linux学习

在本文中,我们将向您展示如何在 RHEL 8 / Rocky Linux 8 上启用 KVM 中的嵌套虚拟化。

KVM(基于内核的虚拟机)中的嵌套虚拟化是一种功能,允许您在其他虚拟机中运行虚拟机。这意味着您可以在虚拟机内创建一个虚拟环境,并在其中运行另一个虚拟机。

嵌套虚拟化特别适用于测试和开发方案,其中您可能希望创建具有不同配置或操作系统的多个虚拟机,而无需单独的物理硬件。例如,您可以使用嵌套虚拟化来测试在多个操作系统版本上运行的应用程序的兼容性。

先决条件

  • 在 RHEL 8 / Rocky Linux 8 上预安装 KVM
  • 具有 Sudo 用户或 Root 用户访问权限

我假设您已经配置了 KVM 虚拟化程序。如果您不熟悉如何安装和配置 KVM 虚拟化程序,请参考以下文章:

  • 如何在 RHEL 8 / CentOS 8 上安装和配置 KVM

言归正传,让我们进入实际步骤。

启用 KVM 嵌套虚拟化

验证您的 KVM 宿主机是否启用了嵌套虚拟化。

对于基于 Intel 处理器的机器,请运行以下 cat 命令:

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

对于基于 AMD 处理器的机器,请运行以下命令:

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

在上面的输出中,“N” 表示未启用嵌套虚拟化。如果我们得到的输出是“Y”,则表示在您的主机上启用了嵌套虚拟化。

现在要启用嵌套虚拟化,请使用以下内容创建名为“/etc/modprobe.d/kvm-nested.conf”的文件:

[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

保存并退出文件。

接下来,请删除 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 ~]#

现在验证嵌套虚拟化特性是否已启用,请运行以下命令:

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

对于基于 AMD 的系统,请运行以下命令:

[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

测试 KVM 嵌套虚拟化

假设我们在 KVM 虚拟化程序中有一个名为 “director”的虚拟机,我已经在其中启用了嵌套虚拟化。在测试之前,请确保虚拟机的 CPU 模式为“host-model” 或 “host-passthrough”,可以使用 Virt-Manager GUI 或 virsh edit 命令来检查虚拟机的 CPU 模式。

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

对于您想要使用嵌套虚拟化的新虚拟机,请在 virt-manager 中的 CPU 设置下检查 “复制主机 CPU 配置” 选项。

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

现在登录到 director VM 并运行 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

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

以上是在 RHEL 8 / Rocky Linux 8 上启用 KVM Nested Virtualization的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:良许Linux教程网。如有侵权,请联系admin@php.cn删除
Linux软件的未来:Flatpak和Snap会替换本机桌面应用程序吗?Linux软件的未来:Flatpak和Snap会替换本机桌面应用程序吗?Apr 25, 2025 am 09:10 AM

多年来,Linux软件分布依赖于DEB和RPM等本地格式,并深深地根深蒂固。 但是,Flatpak和Snap已经出现,有望成为应用程序包装的通用方法。 本文考试

Linux和Windows处理设备驱动程序的区别有什么区别?Linux和Windows处理设备驱动程序的区别有什么区别?Apr 25, 2025 am 12:13 AM

Linux和Windows在处理设备驱动程序上的差异主要体现在驱动管理的灵活性和开发环境上。1.Linux采用模块化设计,驱动可以动态加载和卸载,开发者需深入理解内核机制。2.Windows依赖微软生态,驱动需通过WDK开发并签名认证,开发相对复杂但保证了系统的稳定性和安全性。

比较和对比Linux和Windows的安全模型。比较和对比Linux和Windows的安全模型。Apr 24, 2025 am 12:03 AM

Linux和Windows的安全模型各有优势。Linux提供灵活性和可定制性,通过用户权限、文件系统权限和SELinux/AppArmor实现安全。Windows则注重用户友好性,依赖WindowsDefender、UAC、防火墙和BitLocker保障安全。

Linux和Windows之间的硬件兼容性有何不同?Linux和Windows之间的硬件兼容性有何不同?Apr 23, 2025 am 12:15 AM

Linux和Windows在硬件兼容性上不同:Windows有广泛的驱动程序支持,Linux依赖社区和厂商。解决Linux兼容性问题可通过手动编译驱动,如克隆RTL8188EU驱动仓库、编译和安装;Windows用户需管理驱动程序以优化性能。

Linux和Windows之间虚拟化支持有哪些差异?Linux和Windows之间虚拟化支持有哪些差异?Apr 22, 2025 pm 06:09 PM

Linux和Windows在虚拟化支持上的主要区别在于:1)Linux提供KVM和Xen,性能和灵活性突出,适合高定制环境;2)Windows通过Hyper-V支持虚拟化,界面友好,与Microsoft生态系统紧密集成,适合依赖Microsoft软件的企业。

Linux系统管理员的主要任务是什么?Linux系统管理员的主要任务是什么?Apr 19, 2025 am 12:23 AM

Linux系统管理员的主要任务包括系统监控与性能调优、用户管理、软件包管理、安全管理与备份、故障排查与解决、性能优化与最佳实践。1.使用top、htop等工具监控系统性能,并进行调优。2.通过useradd等命令管理用户账户和权限。3.利用apt、yum管理软件包,确保系统更新和安全。4.配置防火墙、监控日志、进行数据备份以确保系统安全。5.通过日志分析和工具使用进行故障排查和解决。6.优化内核参数和应用配置,遵循最佳实践提升系统性能和稳定性。

很难学习Linux吗?很难学习Linux吗?Apr 18, 2025 am 12:23 AM

学习Linux并不难。1.Linux是一个开源操作系统,基于Unix,广泛应用于服务器、嵌入式系统和个人电脑。2.理解文件系统和权限管理是关键,文件系统是层次化的,权限包括读、写和执行。3.包管理系统如apt和dnf使得软件管理方便。4.进程管理通过ps和top命令实现。5.从基本命令如mkdir、cd、touch和nano开始学习,再尝试高级用法如shell脚本和文本处理。6.常见错误如权限问题可以通过sudo和chmod解决。7.性能优化建议包括使用htop监控资源、清理不必要文件和使用sy

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具