有没有办法可以在没有硬件虚拟化(amd-v,vt-x)的 64 位处理器上运行 64 位虚拟机?

有没有办法可以在没有硬件虚拟化(amd-v,vt-x)的 64 位处理器上运行 64 位虚拟机?

我们有一台 64 位虚拟机(CentOS),我们想在 64 位主机上运行它(可以在任何操作系统下运行),但是该主机不支持硬件虚拟化,您知道,这应该是用于在其中运行 64 位虚拟机。

我尝试了 VirtualBox 和 VMware Player,但它们都存在非硬件虚拟化处理器的问题。我想也许另一个虚拟化系统可能会有所帮助,比如 OpenVZ 或 XEN 或 KVM?您觉得呢?

在 Stackoverflow 上,有人建议我使用 Qemu。OpenVZ、XEN 或 KVM 不行吗?我们只是想试试这些软件,看看它们能否解决这个问题。

谢谢!

答案1

可能不是,或者至少没有简单的、得到良好支持的方法。

http://en.wikipedia.org/wiki/X86_virtualization#Software-based_virtualization意思是

x86-64 的初始版本 (AMD64) 不允许纯软件完全虚拟化,因为在长模式下缺乏分段支持,这使得无法保护虚拟机管理程序的内存,尤其是无法保护在客户机内核地址空间中运行的陷阱处理程序。[12][13]:11 和 20 修订版 D 以及更高版本的 64 位 AMD 处理器(根据经验,那些在 90 nm 或更低温度下制造的处理器)在长模式下添加了对分段的基本支持,从而可以通过二进制翻译在 64 位主机中运行 64 位客户机。英特尔没有为其 x86-64 实现(英特尔 64)添加分段支持,因此无法在英特尔 CPU 上实现 64 位纯软件虚拟化,

答案2

如果你愿意牺牲性能,你可以尝试使用完整的 CPU 模拟器,例如量子计算单元或者波克斯。使用 QEMU,您可以使用几乎任何类型的 CPU 作为客户机或主机。使用 Bochs,客户机可以是 x86 或 x86-64,主机可以是任何类型的 CPU。

答案3

看看 LXC 或 OpenVZ。

它提供基于容器的虚拟化,无需带有 VT 指令的处理器。这种虚拟化几乎不产生任何开销。

LXC 与 OpenVZ 非常相似,VM 与这两种技术兼容。LXC 是一个较新的项目。

http://en.wikipedia.org/wiki/Operating_system-level_virtualization

http://en.wikipedia.org/wiki/Comparison_of_platform_virtual_machines

相关内容