我理解 qemu 使用二进制翻译来模拟机器,因此无论底层架构如何,它都可以提供模拟。
而且,KVM 使用硬件虚拟化技术来加快此过程。因此,KVM 需要底层架构的 VT 支持(x86 处理器提供)。
我已经使用 qemu 在 x86 架构上模拟了 powerpc 架构。我的问题是是否可以在此 powerpc 架构上运行 KVM。我们可以通过使用软件虚拟化而不是硬件虚拟化(qemu over kvm)来实现嵌套虚拟化,但对于相反的情况(kvm over qemu)也是如此吗?答案中的任何解释都会非常有帮助。
谢谢
答案1
KVM 使用最近的 x86 芯片中的硬件虚拟化指令。Qemu 在模拟 x86 CPU 时允许用户选择一些模拟芯片选项。因此,问题归结为“qemu 模拟的 x86 是否包含虚拟化指令?”。
KVM 小组正在进行一些(仍处于试验阶段的)工作来模拟虚拟化指令,以便您可以在 KVM 上运行 KVM。我不知道这项工作是否移植到了 qemu,或者是否有类似的工作。无论如何,它也可能是试验性的。
要了解你的特定 qemu 构建能够模拟哪些 CPU 功能,只需运行
qemu -cpu ?
答案2
KVM 允许虚拟化使用本机硬件指令集进行大部分模拟。这比 QEMU 提供的模拟处理器的处理速度快得多。
由于 KVM 使用本机硬件指令集,因此它只能模拟其所运行的处理器类型。这需要 CPU 本机指令集的支持。使用硬件指令集可获得比 QEMU 更好的性能。由于您没有运行 PowerPC,因此无法使用 KVM 来模拟它。
QEMU 的优势在于可以模拟运行 QEMU 的系统上不可用的处理器。这就是您在 X86 上模拟 PowerPC 处理器所做的事情。QEMU 也不需要虚拟化支持。缺点是 CPU 是在软件中模拟的,运行速度比实际速度慢。
QEMU 和 KVM 共享支持库。主要区别在于它们使用的虚拟化平台。
答案3
我没有用过这个,但是请看一下这里:
答案4
如果您使用 Qemu 之类的模拟器在 x86 主机上模拟 PowerPC 目标,则主机 KVM 就毫无意义了。
如果问题是您是否可以在模拟的 PowerPC 之上运行 PowerPC-KVM,那么这取决于模拟了多少 PowerPC 指令集和操作模式。以及是否有使用硬件虚拟化支持的目标 Linux 的 KVM 端口。
所有 IBM Power 系列服务器都具有完全虚拟化支持,最近的 Freescale SoC(如 QorIQ P4080/P4040/P3041/P20401/P5020)也具有完全虚拟化支持。因此,如果您有其中一个的模拟器(而 Qemu 没有),运行 Linux,您可以在 x86 主机上的 PowerPC 模拟器上的 Linux 上使用 KVM。
我所知道的唯一支持此级别仿真的系统是 Wind River Simics。