在本指南中,我们将看到如何在 KVM 在 Linux 中。 嵌套虚拟化 是一项功能,允许您在另一个虚拟机中运行虚拟机,同时仍然使用来自主机系统的硬件加速。 换句话说,嵌套虚拟化是一种运行机制 虚拟机 (VM) 内的管理程序,它本身在管理程序上运行。
内容
在 Linux 中的 KVM 中启用嵌套虚拟化
在启用嵌套 VT 功能之前,请关闭所有正在运行的虚拟机。
接下来,卸载 KVM 模块。
卸载 KVM 模块 英特尔 系统,运行:
$ sudo modprobe -r kvm_intel
在 AMD 系统:
$ sudo modprobe -r kvm_amd
使用命令在 INTEL CPU 上启用嵌套功能重新加载 KVM 模块:
$ sudo modprobe kvm_intel nested=1
使用命令在 AMD CPU 上启用嵌套功能重新加载 KVM 模块:
$ sudo modprobe kvm_amd nested=1
永久启用嵌套虚拟化
请注意,嵌套 VT 功能仅在您重新启动 KVM 主机系统之前启用。 要永久启用嵌套功能,请编辑 /etc/modprobe.d/kvm.conf 文件:
$ sudo vi /etc/modprobe.d/kvm.conf
如果文件不存在,只需创建它。
添加以下行 英特尔 主持人:
options kvm_intel nested=1
添加以下行 AMD 主持人:
options kvm_amd nested=1
Save 和 close 文件。
完毕! 我们在 KVM 主机系统上启用了嵌套 VT。
验证是否在 KVM 主机中启用了嵌套虚拟化
如果您的处理器是 INTEL,请检查 “/sys/module/kvm_intel/parameters/nested” 使用“cat”命令的文件:
$ cat /sys/module/kvm_intel/parameters/nested
如果它返回 “是” 或者 “1”,这意味着您的系统支持嵌套虚拟化。 如果输出是 “N” 或者 “0”,您的系统将不支持嵌套虚拟化。
如果您的处理器是 AMD,请检查以下内容 “/sys/module/kvm_amd/parameters/nested” 文件。
或者,您可以使用以下命令来确保“kvm_intel”内核模块已启用嵌套:
$ modinfo kvm_intel | grep -i nested
示例输出:
parm: nested_early_check:bool parm: nested:bool
在 AMD CPU 上:
$ modinfo kvm_amd | grep -i nested
嗯,我的 KVM 主机支持嵌套虚拟化,并且已经启用。
在 KVM 来宾机器上启用嵌套虚拟化
我们可以从命令行或使用图形 KVM 管理应用程序在 KVM VM 上启用嵌套功能,例如 虚拟机管理器.
从命令行在 KVM 来宾中启用嵌套功能
登录到 virsh 控制台:
$ virsh
编辑要在其中启用嵌套功能的 VM:
virsh # edit centos
要查找所有可用的 VM,请在 virsh 控制台中运行以下命令:
virsh # list --all
找到“cpu mode”参数并将其值设置为“host-model”。
<cpu mode="host-model" check='partial'/>