虚拟化对比评测:VMware Server vs. VirtualBox vs. KVM
虚拟化是一个流行词,已经在企业 IT 圈子里流传了好几年。从理论上讲,虚拟化听起来很棒——您可以充分利用那些未使用的 CPU 周期,最大限度地发挥特定机器的潜力,同时节省电力和空间。许多人认为虚拟化只在企业数据中心中才有用;然而,一些软件包在桌面和笔记本电脑级别的 Linux 机器以及服务器上也能很好地运行。在本文中,我将对其中三个进行评测:VMware Server、VirtualBox 和 KVM。
“但是等等!”您可能会惊呼,“为什么您没有评估 Xen 呢?” 答案很简单。Xen 虽然非常强大,但更像是一种企业级的虚拟化解决方案,对于普通的 Linux 用户来说可能有点过分。如果您要构建一个数据中心或一项将向互联网上的客户公开的服务,那么您应该考虑 Xen。这就是 Ubuntu 官方支持 KVM 而不是 Xen 作为其开源虚拟化解决方案的原因之一,我在这里也遵循这个道理。
首先,为了本文的目的,我应该定义几个术语。“宿主机”是运行虚拟化解决方案的物理机器。“客户机”、“虚拟机”或“VM”是在宿主机提供的虚拟化容器内运行的虚拟机。
因为这是一次对比评测,我为各个类别分配了分值,得分最高的产品赢得本次评测。分值范围为 1 到 3,其中 1 为差,2 为一般,3 为优秀。所有虚拟化软件包都安装在 Ubuntu 9.04 宿主机上。类别如下:
安装的简易程度。
管理工具。
功能。
许可。
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)。
管理控制台中的所有内容都很容易使用。借助 VMware 出色的基于表单的向导,创建虚拟机非常简单。只需填写空白,VMware 就会创建一个合适的 VM 并使其准备好进行首次启动。VMware Server 还通过其 Web 界面为虚拟机提供虚拟控制台(图 2)。它需要安装一个 Firefox 插件,但控制台工作良好,不需要胖客户端。不幸的是,该插件在 Mac 版本的 Firefox 上不起作用。
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 是虚拟化市场上的一个相对较新的来者,其最初版本于 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 一样容易启动新的虚拟机而受到赞誉。
如果您想在无头模式下运行您的客户机,VirtualBox 也考虑到了这一点。有一个 VBoxHeadless 管理二进制文件,它将绕过管理 GUI 并为该特定 VM 启动一个 RDP 服务器。一旦您的 VM 在无头模式下运行,您就可以将 RDP 客户端指向您的物理宿主机的端口 3389(默认情况下,端口也是可配置的),您将看到虚拟机的控制台。如果您不在物理机器旁或无法轻松地隧道 X,这将非常方便。图 4 显示了在 VirtualBox 下运行的 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 是基于内核的虚拟机,它是一种完全开源且集成到 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 定义。
管理工具得分: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,并且可能应该时不时地晒晒太阳。在他的业余时间,他为吉尔罗伊大蒜节工作,但他身上没有大蒜味。