![嵌套虚拟化](https://linux22.com/image/1404535/%E5%B5%8C%E5%A5%97%E8%99%9A%E6%8B%9F%E5%8C%96.png)
我做什么:我想编写一个内核模块来处理 KVM 数据结构。但我不想在真机上运行它,所以我运行一个客户机,在其中运行另外两个客户机,并想测试我的模块。
问题:VirtualBox(现在运行外部客户机)不支持嵌套虚拟化,并且当我cat /proc/cpuinfo | grep vmx
没有得到任何输出时。
我可以使用什么具有嵌套虚拟化的功能?
你可以看看我的其他问题了解我想要做什么。
答案1
据我所知,VirtualBox 是唯一不提供嵌套虚拟化的虚拟机管理程序:KVM、VMWare ESXi 和 Xen 使用 Intel 的 VT 扩展来实现嵌套虚拟化。(在 AMD 中,等效功能称为 SVM)。
这对于在安全受控的环境中研究虚拟机管理程序(您的、您的竞争对手的)的行为特别有用。
Xen 自 4.4 版起就具备此功能(这是我唯一直接体验过的功能)。您可以找到这里介绍该主题。永远有用的Arch Linux 维基提供了有关 KVM 功能的讨论。对于 VMWare ESXi,您可以在其网页上找到相关信息,这里。
答案2
VirtualBox 不提供嵌套 VM 的硬件虚拟化。但是,您仍然可以使用软件虚拟化运行 VM。例如,使用 Opennebula,将虚拟主机上的“VM MAD”标志设置为“qemu”。将设置添加到 oned.conf(本质上,复制 kvm 设置,并将名称更改为“qemu”)。