我们可以在由另一个管理程序创建的操作系统中安装管理程序吗?

问题描述

我知道标题听起来有点疯狂,但我想知道,如果我们在服务器上安装 KVM 并创建一个具有 Linux 操作系统的 VPS,那么我们可以在新创建的 VPS 中安装 KVM 模块并再次在 VPS 中创建一个 VPS 吗?

解决方法

嵌套虚拟化会产生各种问题。一些虚拟化专家,比如 vmware,已经弄清楚了;但基本上常见的问题是页表。

客户端有一组页表。通过这些生成的地址成为监视器页表的输入;这是由 cpu 强制执行的。这是一个重要的优化,即使一个简单的内存访问可能会导致大约 24 次翻译,从而导致潜在的内存访问。

然而,当您尝试嵌套监视器时,事情就会出错。您无法说服处理器调用无穷无尽的嵌套页表列表。嗯,你可以,有一天英特尔可能会,但他们以晶体管数量而不是设计而闻名。

为了解决这个问题,监视器必须使自己对客户端页表敏感。这可能看起来很困难,但类似于虚拟化设备。客户端为基页表提供一小组地址。作为监视器,您只需创建一个影子集,并验证每个页表条目,并使自己对集体页表的任何内部节点中的修改敏感。从那时起,同步就是陷阱 -> 更新。

对于其余部分,它是相同的,您必须(手动)虚拟化其他机制,从可怕的(英特尔)到有点可爱的(手臂)。

,

您要求的是“嵌套虚拟化”,答案是:这取决于:) 根据我的理解,这在英特尔上是可能的,但是,例如在 arm64 中,这仍在开发中。无论如何,我认为虽然从技术角度来看嵌套虚拟化很有趣,但它并没有被广泛使用。