Proxmox 是我部署各种容器和虚拟机的首选虚拟机管理程序。 有时,我想在另一个 VM 中创建一个 VM。 含义 – 我只想在我的物理 Proxmox 管理程序中托管一个来宾管理程序(即 VM)。 你有没有想过如何在主机管理程序中设置来宾管理程序? 在本指南中,我将向您展示如何 在 Proxmox 中启用嵌套虚拟化 VE 然后 在来宾中启用 VT-X 管理程序。
内容
什么是嵌套虚拟化?
嵌套虚拟化 是一项功能,允许您在另一个虚拟机中运行虚拟机,同时仍使用主机系统的硬件加速。
换句话说,嵌套虚拟化是一种在虚拟机 (VM) 内部运行管理程序的机制,该虚拟机本身在管理程序上运行。
在 Proxmox 中启用嵌套虚拟化
必须在物理 Proxmox 主机中执行以下步骤。
首先,让我们确保在物理 Proxmox 管理程序中启用了嵌套虚拟化功能。
如果您的 Proxmox 管理程序是 英特尔处理器,运行以下命令检查是否启用了嵌套虚拟化。
# cat /sys/module/kvm_intel/parameters/nested N
如果是 AMD CPU,运行:
# cat /sys/module/kvm_amd/parameters/nested N
你可能会得到 “N” 或者 “0” 和 “是” 或者 “1” 作为输出。 如果输出是 “N” 或者 “0”,这意味着嵌套虚拟化功能是 未启用. 如果输出是 “是” 或者 “1”,嵌套特征是 启用.
在我的 Proxmox 主机中,尚未启用嵌套虚拟化。 所以我将使用以下命令启用它 root
用户:
# echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf
在 AMD Proxmox 主机上,运行以下命令:
# echo "options kvm-amd nested=1" > /etc/modprobe.d/kvm-amd.conf
请注意 – 我们追加 是 为了 英特尔 CPU 和 1 为了 AMD CPU 启用嵌套功能。
现在,重新启动系统或重新加载内核模块以使更改生效:
# modprobe -r kvm_intel
# modprobe kvm_intel
在 AMD Proxmox 主机上,运行:
# modprobe -r kvm_amd
# modprobe kvm_amd
现在再次检查物理 Proxmox 主机中是否启用了嵌套虚拟化:
# cat /sys/module/kvm_intel/parameters/nested Y
如果是 AMD CPU,运行:
# cat /sys/module/kvm_amd/parameters/nested Y
正如您在上面的输出中看到的,在 Proxmox 主机中启用了嵌套虚拟化功能。
检查虚拟机中是否启用了 VT-X
您可能已经知道,为了在任何系统中托管客户机器,CPU 应该支持虚拟化技术(VT-X)并且应该启用 VT-X。
有几种方法可以检查 CPU 是否支持 VT-X。 以下教程列出了一些方法来查找系统中是否启用了 VT-X 功能。
如何确定 CPU 是否支持虚拟化技术 (VT)
出于本指南的目的,我将使用 Debian 11 桌面。 让我们检查是否在我们的一台虚拟机中启用了 VT-X。
# egrep --color -i "svm|vmx" /proc/cpuinfo
如果您没有看到任何输出,则表示 VT-X 尚未启用。 让我们现在启用它。
在虚拟机中启用 VT-X
在 Proxmox 主机中启用嵌套虚拟化功能后,您必须在虚拟(来宾)机器中启用虚拟化技术(VT-X)才能使其成为管理程序。
您可以从 CLI 或 Proxmox Web UI 启用 VT-x。
从命令行为 Proxmox 客户机启用 VT-X
关闭虚拟机 您要在其中启用嵌套虚拟化功能。
要在虚拟机中启用虚拟化技术,只需将 VM 的 CPU 类型设置为 “主持人” 使用命令:
# qm set <VMID> --cpu host
例子:
# qm set 105 --cpu host
将“105”替换为您的虚拟机 ID。 现在虚拟机已成为管理程序,因此您现在可以在此 VM 内创建容器和虚拟机。
从 Proxmox Web UI 为访客机器启用 VT-X
确保虚拟机已关闭。
通过访问打开您的 Proxmox 网络用户界面 https://proxmox-ip:8006. Enter 登录 Proxmox Web 仪表板的用户名和密码。
去 虚拟机(即 Debian 11)-> 硬件. 选择 “处理器” 并点击 编辑 或双击处理器选项。
选择 CPU 类型作为“主机”。
现在启动虚拟机。 启动 VM 后,再次检查虚拟机中是否启用了 VT-X。
$ egrep --color -i "svm|vmx" /proc/cpuinfo
如果你看到 “虚拟机” (英特尔-VT 技术)或 “svm” (AMD-V 支持)在输出中,恭喜! VT-X 功能已启用。
虚拟机现在已成为管理程序。 您可以在虚拟机中安装任何管理程序应用程序,例如 KVM、Proxmox、Quickemu、Virtualbox、VMware 等,并开始在其中托管容器和 VM。
结论
在本指南中,我们讨论了什么是嵌套虚拟化以及如何在 Proxmox 中启用嵌套虚拟化。 我们还学习了如何在 Proxmox 虚拟机中启用 VT-X 功能,以便在其中运行容器和虚拟机。
相关阅读:
- 如何在 Linux 中的 KVM 中启用嵌套虚拟化
- 如何启用嵌套虚拟化 VirtualBox
LinuxLinux管理嵌套虚拟化开源ProxmoxProxmox VEProxmox 虚拟化环境Sysadmin