虚拟化对比评测:VMware Server vs. VirtualBox vs. KVM

作者:Bill Childers

虚拟化是一个流行词,已经在企业 IT 圈子里流传了好几年。从理论上讲,虚拟化听起来很棒——您可以充分利用那些未使用的 CPU 周期,最大限度地发挥特定机器的潜力,同时节省电力和空间。许多人认为虚拟化只在企业数据中心中才有用;然而,一些软件包在桌面和笔记本电脑级别的 Linux 机器以及服务器上也能很好地运行。在本文中,我将对其中三个进行评测:VMware Server、VirtualBox 和 KVM。

“但是等等!”您可能会惊呼,“为什么您没有评估 Xen 呢?” 答案很简单。Xen 虽然非常强大,但更像是一种企业级的虚拟化解决方案,对于普通的 Linux 用户来说可能有点过分。如果您要构建一个数据中心或一项将向互联网上的客户公开的服务,那么您应该考虑 Xen。这就是 Ubuntu 官方支持 KVM 而不是 Xen 作为其开源虚拟化解决方案的原因之一,我在这里也遵循这个道理。

首先,为了本文的目的,我应该定义几个术语。“宿主机”是运行虚拟化解决方案的物理机器。“客户机”、“虚拟机”或“VM”是在宿主机提供的虚拟化容器内运行的虚拟机。

因为这是一次对比评测,我为各个类别分配了分值,得分最高的产品赢得本次评测。分值范围为 1 到 3,其中 1 为差,2 为一般,3 为优秀。所有虚拟化软件包都安装在 Ubuntu 9.04 宿主机上。类别如下:

  • 安装的简易程度。

  • 管理工具。

  • 功能。

  • 许可。

VMware Server

VMware 已经提供虚拟化解决方案十年了,因此,它是市场上虚拟的 800 磅大猩猩。VMware 至少有六款虚拟化产品跨越桌面和服务器市场,总有一款软件包适合您的需求。我在这里评测的产品是 VMware Server 2.0。它是免费的(免费如啤酒),并且功能非常丰富。

安装的简易程度

VMware Server 以 507MB 的 Windows 可执行文件、465MB 的 RPM 或 466MB 的 tarball 形式发布。因为我是在 Ubuntu 机器上安装,所以我使用 tarball。在 Ubuntu 上启动安装相当简单。只需确保您已安装了 build-essential 软件包,以及您正在运行的任何内核的头文件。然后,解压 tarball 并运行./vmware-install作为 root 用户,并按照提示操作。安装程序将提示您输入要安装各种内容的路径。选择默认值是可以接受的,因为安装程序选择的位置相当合理。

需要注意的一点是,由于 VMware 的“免费如啤酒”许可,您必须从 VMware 站点获取序列号才能运行它。请确保您已在 VMware 站点上注册并准备好您的序列号,因为安装程序会在安装过程快结束时向您索要它。

安装简易程度得分:2。这主要是因为 VMware 需要一些软件包并在安装程序中询问了很多问题。一旦安装完成,它就能很好地工作,您可以在几乎每个问题上都采用默认值,但这有点乏味。

管理工具

如果您使用过 VMware Server 1.0 并且还没有看过 2.0,您会感到惊喜。与 1.0 产品使用的“胖客户端”方法相比,2.0 版本的产品使用了基于 Web 的管理面板(图 1)。

Virtualization Shootout: VMware Server vs. VirtualBox vs. KVM

图 1. VMware Server 管理控制台

管理控制台中的所有内容都很容易使用。借助 VMware 出色的基于表单的向导,创建虚拟机非常简单。只需填写空白,VMware 就会创建一个合适的 VM 并使其准备好进行首次启动。VMware Server 还通过其 Web 界面为虚拟机提供虚拟控制台(图 2)。它需要安装一个 Firefox 插件,但控制台工作良好,不需要胖客户端。不幸的是,该插件在 Mac 版本的 Firefox 上不起作用。

Virtualization Shootout: VMware Server vs. VirtualBox vs. KVM

图 2. 通过 VMware 虚拟控制台的 PXE 菜单

VMware 还允许您通过 VNC 远程连接到机器的控制台。这需要添加以下行RemoteDisplay.vnc.enabled = "TRUE"RemoteDisplay.vnc.port = 5900到虚拟机的配置文件(在虚拟机存储目录中命名为 <hostname>.vmx)。

简而言之,VMware 管理控制台非常出色。基于 Web 的 GUI 易于导航,并且这些工具在 Linux 或 Windows 上都能很好地工作。在某些管理情况下,无需使用 Web GUI 即可启用对虚拟机控制台的 VNC 访问的能力可能被证明是无价的。

管理工具得分:3。VMware 在该领域的经验在此显现,VMware Server 与 GSX 商业产品的历史联系意味着这些工具是同类最佳的。

功能

VMware Server 是一个功能极其强大的虚拟化平台。它的前身是 VMware 的第一代商业服务器产品 VMware GSX,因此它具有出色的血统。VMware Server 的主要功能包括:

  • 能够在标准 x86 硬件上运行,无论是否具有硬件虚拟化扩展。

  • 双处理器虚拟 SMP,允许单个虚拟机跨越两个处理器。

  • 快照功能,允许您捕获 VM 的状态,然后将其回滚到该状态。

  • 在宿主机和客户机操作系统上均支持 64 位。

  • 支持桥接、NAT 和仅主机网络接口。

  • 支持 USB 设备和控制器。

所有这些功能意味着 VMware Server 是个人实验或轻型商业用途的绝佳平台。我个人从 2007 年开始就有一个 VMware Server 宿主机,上面有几台客户机持续运行。

功能得分:3。VMware 多年来一直在构建其功能集,这在此得以体现。

许可

VMware Server 具有专有许可,并附带适用于此软件的 EULA。虽然它在技术上是免费的,但它是“免费如啤酒”,这意味着虽然它不花钱,但您实际上无法修改它。VMware 确实提供了一些源代码,但它不是整个源代码树,只是 VMware 修改的 GPL 部分。为了使用该软件,您需要在 VMware 网站上注册并以您的名义获得序列号。虽然这是免费提供的,但在开源意义上它不是“免费的”。

许可得分:1。VMware 的专有许可和 EULA 意味着您无法打开引擎盖并根据自己的意愿进行调整,也无法分析代码中的漏洞。您只能任由 VMware 摆布。如果自由软件对您很重要,那么此许可会让您感到不适。

VMware Server 总分:9。

VirtualBox

VirtualBox 是虚拟化市场上的一个相对较新的来者,其最初版本于 2007 年初发布。VirtualBox 最初由 Innotek 创建,但后来已被 Sun Microsystems 收购。该软件的 3.0 版本最近发布,其中包含许多新功能。

安装的简易程度

VirtualBox 以适用于大多数发行版的本机软件包形式发布,供 Linux 宿主机使用。有适用于 Ubuntu、Debian、OpenSUSE、Fedora、Mandriva、Red Hat、Turbolinux 和 PCLinuxOS 2007 的软件包。安装该软件就像下载适用于您的操作系统的软件包一样简单,然后使用您的本机软件包管理器来安装该软件包。在 Ubuntu 9.04 上,二进制软件包为 43MB,安装需要额外的软件包 libcurl3、libqt4-network、libqtcore4、libqtgui4 和 python2.5,所有这些都可以通过 apt-get 轻松获取。在 Nautilus 中双击软件包会启动 Ubuntu 软件包安装程序,该程序会自动拉取依赖项。总而言之,安装简单、快速且容易。VirtualBox 还维护一个用于基于 Debian 的发行版的存储库,您可以将其添加到您的 apt 源中。然后您可以简单地apt-get软件包 (virtualbox-3.0) 及其依赖项。

安装简易程度得分:3。VirtualBox 安装起来唯一可能更简单的方式是,如果它开箱即用地包含在 Ubuntu apt 源中。

管理工具

VirtualBox 包含一个用于您的宿主机操作系统的本机“胖客户端”,允许您管理您的虚拟机(图 3)。该客户端易于使用,并且是基于向导的——很像 VMware 管理控制台。创建虚拟机非常容易,VirtualBox 因使其像 VMware 一样容易启动新的虚拟机而受到赞誉。

Virtualization Shootout: VMware Server vs. VirtualBox vs. KVM

图 3. VirtualBox 管理控制台

如果您想在无头模式下运行您的客户机,VirtualBox 也考虑到了这一点。有一个 VBoxHeadless 管理二进制文件,它将绕过管理 GUI 并为该特定 VM 启动一个 RDP 服务器。一旦您的 VM 在无头模式下运行,您就可以将 RDP 客户端指向您的物理宿主机的端口 3389(默认情况下,端口也是可配置的),您将看到虚拟机的控制台。如果您不在物理机器旁或无法轻松地隧道 X,这将非常方便。图 4 显示了在 VirtualBox 下运行的 VM。

Virtualization Shootout: VMware Server vs. VirtualBox vs. KVM

图 4. 在 VirtualBox 下启动 Ubuntu VM

管理工具得分:3。VirtualBox 包含用于创建和管理虚拟机的出色工具。与 VMware 相比,它是本机“胖客户端”而不是 Web GUI 在多平台访问方面稍微不方便一些,但是所有功能都在那里并且易于使用。

功能

VirtualBox 可能是一个年轻的项目,但它肯定不缺少功能。它在许多方面与 VMware 不相上下,例如以下方面:

  • 支持桥接、NAT 和仅主机网络。

  • 双处理器虚拟化 SMP。

  • 对宿主机和客户机均支持 64 位。

  • 快照功能,便于捕获和回滚。

与 VMware 不同,VirtualBox 提供专有版和开源版。开源版在 GPL 下发布,但不包括以下仅在专有版中提供的功能:

  • 无头 RDP 服务器在开源版中不可用。

  • 开源版中没有虚拟化 USB 支持。

  • 由于不包含 USB 和 RDP 支持,因此专有版的 USB-over-RDP 功能不在开源版中。

  • 虚拟化串行 ATA 磁盘控制器不在开源版中。磁盘显示为 SCSI 或 IDE 设备。

功能得分:3。VirtualBox 在功能上几乎与 VMware Server 相匹配。

许可

如上所述,VirtualBox 发布了其产品的两个不同版本:专有版本和开源版本。专有版本在 VirtualBox 个人使用和评估许可 (PUEL) 下获得许可,虽然在首次启动软件时会要求您注册该软件,但这不是必需的。开源版本在 GPL 下涵盖,并且是真正的开源,尽管它确实省略了我之前提到的四个功能。如果您确实决定运行开源版本,请注意它不是以二进制软件包的形式提供的,而是仅以源代码形式提供的,因此您必须自己构建它。自己构建它并不可怕,因为 VirtualBox 的人们提供了相当好的说明。

许可得分:2。VirtualBox 更具功能的版本上的 PUEL 许可证不是开源的,但 VirtualBox 确实提供了大部分源代码,并提供了关于如果您不想屈服于专有许可的邪恶,如何构建代码的说明。

VirtualBox 总分:11。

KVM

KVM 是基于内核的虚拟机,它是一种完全开源且集成到 Linux 中的虚拟化技术。Ubuntu 发行版开箱即用即可使用 KVM,其他几个发行版也是如此。KVM 没有其他两个产品那么简单……但它功能非常强大。

安装的简易程度

KVM 不像 VirtualBox 或 VMware 那样容易安装。首先,您必须确保您的硬件与 KVM 兼容。虽然 VirtualBox 和 VMware 将安装在大多数带有 x86 处理器的机器上,但 KVM 要求处理器支持 Intel-VT 或 AMD-VT 扩展,并且这些扩展已在 BIOS 中启用。一旦确认了这一点,您需要安装一些软件包。因为我的宿主机是 Ubuntu 9.04,所以我只需运行 apt-get

$ sudo apt-get install kvm               \
                       libvirt-bin       \
                       ubuntu-vm-builder \
                       qemu              \
                       bridge-utils      \
                       virt-manager

接下来,您需要将您的用户添加到 libvirtd 组,然后注销并重新登录以使您的组成员身份生效

$ sudo adduser bill libvirtd

要确认您的系统已准备就绪,请运行 virsh,这是一个用于管理虚拟机的 shell 界面。如果您收到连接错误,则您的系统尚未准备好运行 KVM

$ virsh -c qemu:///system list
Connecting to uri: qemu:///system
 Id Name                 State
----------------------------------

KVM 中的默认网络配置是 NAT。如果您想使用桥接接口,您需要执行额外的步骤,即在宿主机上手动设置 br0 设备。(有关如何在 Ubuntu 宿主机上执行此操作的链接,请参阅“资源”部分。)您可能需要执行更多步骤,具体取决于您要实现的目标。

安装简易程度得分:1。与 VMware 和 VirtualBox 相比,KVM 需要做太多的工作。设置桥接网络应该只是对话框中的一个下拉菜单,而不是需要它自己的 wiki 页面的一部分。

管理工具

Ubuntu 上 KVM 的管理工具称为 virt-manager(图 5)。为了使 virt-manager 正确处理诸如桥接接口之类的事情,应该以 root 用户身份运行它。virt-manager 相当不错且易于使用,它为您提供了一个基于向导的界面,用于创建虚拟机。不幸的是,虚拟机创建和配置仅支持基本功能。KVM 还允许您通过 virt-manager 工具获取虚拟机上的控制台,但它不像其他工具那样为您提供无头 RDP 或 VNC 功能。要启用客户机上的一些更高级的功能,您需要编辑这些 VM 的 XML 定义。

Virtualization Shootout: VMware Server vs. VirtualBox vs. KVM

图 5. 运行中的 virt-manager

管理工具得分:1。如果可以给出 1.75,我会给。这些工具对于该任务来说是足够的,但在我称它们为一般之前,仍然需要做一些工作。然而,KVM 是一个快速发展的目标,因此随着时间的推移,情况很可能会得到改善。

功能

KVM 的功能尚未达到本次对比评测中其他两个软件包的水平。功能的框架可能在某些情况下已经存在,但可能难以配置和使用。KVM 没有实现虚拟 USB 端口或 VMware 和 VirtualBox 所做的一些其他硬件。缺少无头功能也限制了其在某些情况下的实用性,例如在托管环境中的情况。

功能得分:2。KVM 对于大多数虚拟化任务来说是足够的,但由于目前对其可以虚拟化的内容的限制,它在任何任务中都没有特别出色。拥有虚拟化 USB 端口和无头连接选项将是有益的。

许可

KVM 的亮点是其许可模式。它是完全开源的——大部分部件都是 GPL 或 LGPL 许可证。这意味着它是真正免费的(如言论自由),并且您最喜欢的 Linux 发行版可以自由地打包它并将其作为现成的功能发布。

许可得分:3。开源是难以超越的。

KVM 总分:7。

结论

获胜者是……VirtualBox!安装的简易程度、出色的功能集、一流的管理工具和灵活的许可相结合,使这款竞争者领先于其他竞争者。当然,这三种工具中的任何一种都可能满足您的虚拟化需求,但如果您是新手,请尝试 VirtualBox。您会惊喜地发现,谁知道呢……您可能会开始虚拟化一切!

资源

VMware Server 主页:www.vmware.com/products/server

VMware Server 源代码(已修改):www.vmware.com/download/server/open_source.html

VirtualBox 主页:www.virtualbox.org

VirtualBox 源代码:www.virtualbox.org/wiki/Downloads

VirtualBox 版本:www.virtualbox.org/wiki/Editions

VirtualBox PUEL 许可证:www.virtualbox.org/wiki/VirtualBox_PUEL

KVM 主页:www.linux-kvm.org

在 Ubuntu 上运行 KVM:https://help.ubuntu.com/community/KVM

Ubuntu 上 KVM 的网络配置:https://help.ubuntu.com/community/KVM/Networking

虚拟机对比矩阵:en.wikipedia.org/wiki/Comparison_of_platform_virtual_machines

Bill Childers 是硅谷的一位 IT 经理,与他的妻子和两个孩子住在一起。他非常喜欢 Linux,并且可能应该时不时地晒晒太阳。在他的业余时间,他为吉尔罗伊大蒜节工作,但他身上没有大蒜味。

加载 Disqus 评论