各种VM软件之间有什么区别?

tsh*_*ang 9 virtual-machine

我只使用过 VirtualBox,我想知道,例如,我可能会从其他产品中遗漏什么。我听说过 KVM 和 VMWare,我相信还有其他的。没有阅读维基百科上的文章(呸!),它们有什么不同?

Gil*_*il' 11

我将虚拟机技术分为三类(并非所有产品都明确归为一类):

  • 全虚拟化,即完整的硬件仿真。示例:QemuDosbox。优点:您可以在任何硬件上模拟任何架构。缺点:这是最慢的方法。
  • 硬件辅助虚拟化,您可以在机器 X 上模拟机器 X。这可以比完全虚拟化快很多,因为大多数指令是本地执行的,但您失去了运行外部架构的能力。有两个子类别:
    • 基于管理程序的虚拟机:您可以同时运行多个操作系统。底层,称为管理程序,是一个特殊用途的操作系统,它运行虚拟机而不是其他任何东西。示例:XenVMware ESX
    • 托管虚拟机:有一个主操作系统,虚拟机是这个主操作系统上的一个应用程序。示例:VirtualBoxKVM
  • 操作系统级虚拟化:您运行同一操作系统的多个实例。反过来,这可以比硬件虚拟化轻得多,但是你失去了一些隔离性,当然也失去了运行不同操作系统的能力。示例:OpenVZFreeBSD jails

首先确定与您的需求相对应的类别。


ewi*_*sch 7

VirtualBox 是一个运行在您的操作系统之上的软件应用程序。它可以使用您的操作系统和硬件的功能来加速虚拟化。VirtualBox 软件必须保持运行,虚拟化系统才能保持运行。

Xen 是操作系统的一个子类,称为管理程序,它是一种仅提供虚拟化的操作系统。它将管理功能卸载到一个单独的管理操作系统,它称为“dom0”,通常是 Linux。管理操作系统为物理硬件提供驱动程序。

VMWare 有多种产品。VMWare Workstation 的工作方式类似于 VirtualBox,而 VMWare ESX 是一个类似于 Xen 的管理程序。与 Xen 的主要区别在于 ESX 提供自己的硬件驱动程序,因此硬件支持有限。

KVM 是一个将管理程序添加到 Linux 内核中的项目。因为 KVM 使用虚拟机管理程序,所以它不需要以与 VirtualBox 相同的方式保持运行。虽然 KVM 是 Xen 和 ESX 等管理程序,但它同时也是 Linux 内核和操作系统。

应该注意的是,KVM 被纳入 Linux 经常被误解为被普遍接受为“前进的道路”。Linux 正式支持 KVM 项目,因为它是 Linux 内核修改,而 Xen 和 ESX 是完全独立的操作系统。