VMware Workstation 5.5 for Linux Hosts
很少有虚拟计算机环境能像 VMware 那样稳定、流行且功能丰富。自从 2.0 版本以来,我一直是 VMware Workstation 的粉丝和用户。我使用它来测试网络应用程序,在仅限 Windows 的环境中秘密运行 Linux,以及最近,用于测试我的书《Linux 服务器安全》第二版中的示例代码,跨不同的 Linux 发行版。(我还使用在虚拟 Windows XP 机器上运行的 MS Word 编写了该版本的大部分内容!)[你真的想承认这一点吗? —编者]
如今,VMware 在开源社区中面临着一些激烈的竞争。Xen、FAUmachine 和用户模式 Linux 是有前途且 100% 免费的 PC 虚拟化环境。尽管如此,面对所有这些竞争,VMware Workstation 5.5 仍然是一款引人注目的产品。
VMware Workstation 是一个用户空间应用程序(在几个专有内核模块的辅助下),它在您的物理 32 位或 64 位 x86 架构的“主机”计算机之上创建虚拟的基于 x86 架构的计算机。
术语
在 VMware 术语中,“host”指的是运行 VMware 软件的系统。“Guest”系统是在 VMware 主机上运行的虚拟机。在本评测的其余部分,我将交替使用术语“guest system”和“virtual machine”。
VMware Workstation 5.5 可以在以下主机操作系统上运行
Mandrake Linux 10 和 9.0。
Red Hat Enterprise Linux AS/ES/WS 4.0、3.0 和 2.1,32 位和 64 位。
Red Hat Linux 9.0、8.0、7.3 和 7.2。
SUSE Linux 10.0 和 9.3,32 位和 64 位。
SUSE Linux 9.2、9.1、9.0、8.2、8.1、8.0 和 7.3。
SUSE Linux Enterprise Server 9 SP3(beta,实验性支持)。
SUSE Linux Enterprise Server 9.0,32 位和 64 位。
SUSE Linux Enterprise Server 8。
Novell Linux Desktop 9 SP2 (beta)。
Ubuntu Linux 5.10 和 5.04,32 位和 64 位(实验性支持)。
Windows XP Professional 和 XP Home Edition。
Windows XP Professional x64 Edition。
Windows 2000 Professional。
Windows 2000 Server、Windows 2000 Advanced Server。
Windows Server 2003。
Windows Server 2003 x64 Edition。
实际上,任何相当现代的 x-86 兼容或 x-86-64 兼容的 PC 都可以作为主机平台。VMware 支持 Pentium II 以来的大多数 Intel 处理器和 AMD 处理器(Athlon 或更好),前提是它们的运行速度至少为 400MHz(建议 500MHz 或更快)。VMware 还支持多处理器系统。VMware Workstation 5.5 允许您创建使用双向虚拟对称多处理的虚拟机,这是一项实验性功能。
如果您需要具有两个以上虚拟处理器的虚拟机,VMware ESX Server 支持这一点,但是如果您创建一个虚拟机并将其复制到 VMware Workstation 5.5 主机,则除非您将其 CPU 数量设置更改为 2,否则它将无法运行。您也可以在单处理器主机系统上创建具有双向虚拟对称多处理功能的虚拟机,如果该系统具有双核 CPU 或启用了超线程。但是,根据 VMware Workstation 用户手册,虚拟机性能将低于标准。而且,当我还在 CPU 的主题上时,虽然您不能在虚拟(guest)机器中拥有超过两个 CPU,但底层主机可以拥有任意多个。
除了快速的 CPU(或多个 CPU)之外,您还需要大量的 RAM。这是一个非常简单的等式。您的主机操作系统、VMware 本身以及您打算同时运行的尽可能多的主机操作系统都需要足够的 RAM。例如,我的笔记本电脑有 1GB 的 RAM,其中运行 KDE 的 SUSE 9.3、几个 Konsole shell、通常的面板小程序以及 VMware 本身总共使用了大约 200MB。这为我留下了 800MB 用于虚拟机。我可以舒适地(也就是说,在不频繁使用交换空间的情况下)运行三个虚拟机,每个虚拟机都有 256MB 的 RAM,依此类推。
官方而言,VMware 要求您的主机系统至少具有 128MB 的 RAM(建议 256MB),本身没有最大值,但所有 guest 虚拟机之间总共只能使用 4GB。
您还需要足够的硬盘空间,既用于 VMware 本身,也用于您预计维护的尽可能多的虚拟机。底层主机操作系统和虚拟主机都支持 IDE 和 SCSI 磁盘。
与 RAM 一样,主机系统上的磁盘空间越多越好。作为一般的经验法则,您需要 172MB 用于 VMware,每个虚拟机至少需要 2GB。通过使用 VMware 共享卷(实际上是 Samba 共享),您可以在虚拟机之间共享数据卷。这使您可以为虚拟机的 guest 操作系统软件使用最少的必要磁盘空间,并为一个大的共享卷用于应用程序数据。这也是在虚拟机和底层主机操作系统之间共享数据的便捷方法。
VMware Workstation 5.5 支持用于 guest/虚拟机的长长的操作系统列表。这些包括
大多数版本的 MS Windows(完全支持),包括 Vista(实验性支持)。
Mandrake Linux,自 8.2 版本以来。
Red Hat Linux,自 7.0 版本以来。
SUSE Linux,自 7.3 版本以来。
Solaris x86(实验性支持),版本 9 和 10。
在实践中,非官方支持的 x86 操作系统通常可以作为 guest 操作系统正常工作。例如,在研究我的文章“Debian GNU/Linux 3.1 中的安全功能”(见第 36 页)时,我成功地在虚拟机上安装了 Debian 3.1,尽管它不是官方支持的(X Window System 无法工作,但我尝试的所有其他功能都可以,包括网络)。
在受支持的 Linux 系统上安装 VMware Workstation 非常轻松。您可以通过执行单个命令安装 RPM 版本,或者解压缩 .tgz 版本并手动运行安装程序脚本 vmware-install.pl(如果您安装 RPM,则会自动执行)。然后,运行配置脚本 vmware-config.pl。就是这样!安装程序脚本和配置脚本为您完成所有工作。
例如,要安装 VMware 的 RPM 版本,我执行了命令
rpm -Uvh ./VMware-workstation-5.5.1-19175.i386.rpm
和
vmware-config.pl
配置脚本会询问您一些问题,例如如何设置网络。对于大多数用户来说,默认值很好;否则,《Workstation 5 用户手册》提供了安装程序脚本提供的各种选项的清晰而全面的描述。
说到这里,我认为用户手册是有效技术写作的典范——您需要了解的关于 VMware 的一切都包含在内,用简洁的英语解释,并以逻辑方式组织。它可以从 VMware 的“帮助”菜单中以 HTML 格式访问,也可以从 vmware.com 下载为一个大的(490 页)PDF 文件。
安装和配置 VMware Workstation 后,您可以在 X Window System 中运行 vmware 可执行文件,开始创建和使用虚拟机。图 1 显示了“新建虚拟机向导”。
要使用此向导创建“典型”虚拟机(与“自定义”虚拟系统相对),您只需要做出四个决定
guest 机器将在哪个操作系统中运行?
虚拟机的文件将放在主机机器文件系统的哪个位置?
guest 机器将使用哪种 VMware 网络?
要使用哪种类型和大小的虚拟磁盘?
由于本文是一篇评测,而不是操作指南,因此我不再解释此时可用的所有不同选项。但是,关于虚拟机硬盘和网络选项的几句话可能有助于说明 VMware 的灵活性和强大功能。
虚拟机的硬盘通常是一个虚拟磁盘——也就是说,一个常规文件,它本质上是由 VMware 作为环回文件系统挂载的。这种方法的优点在于,虚拟磁盘文件不需要反映其容量;如果您仅在虚拟机上安装价值 300MB 的系统软件、应用程序和文件,则其磁盘文件将仅为 300MB 左右。因此,您在设置虚拟机时指定的大小将是其最大大小,而不是实际大小(除非您选中“立即分配所有磁盘空间”选项)。
如果在“自定义”而不是“典型”模式下运行“新建虚拟机向导”,您还可以选择是创建虚拟 SCSI 磁盘(默认)还是虚拟 IDE 磁盘。您还可以选择是否完全使用虚拟磁盘。如果您愿意,并且您的目标 guest 操作系统在此模式下受支持,则您可以选择主机系统上的物理磁盘分区作为虚拟机的根目录。如果您有一个双启动系统,您想同时运行两个(或更多)本地操作系统,这将非常方便,但是对此功能的支持是有限的,并且有一些注意事项。请谨慎使用此功能,并务必仔细阅读用户手册,然后再尝试使用它。
您可以使用三种方法对虚拟机进行联网。在桥接网络中(默认设置),您的虚拟机被赋予一个虚拟以太网接口,该接口连接到与主机机器的物理网卡(或无线网卡——在 VMware 5 中,您现在可以在 Linux 主机上桥接 WLAN 接口)相同的 LAN。换句话说,您的虚拟机在您的本地 LAN 上显示,就好像它与您的主机机器并排坐着一样。
通过网络地址转换 (NAT),您的主机系统充当 NAT 防火墙。您的虚拟机被赋予一个虚假的 IP 地址,当它连接到 LAN 或更远的其他资源时,VMware 会将其所有数据包上的源 IP 地址转换为主机系统的物理网络接口的 IP 地址。换句话说,您的虚拟机被主机系统隐藏在 LAN 的其余部分之外。这完全由 VMware 处理;您无需在主机操作系统上配置 iptables 即可实现此目的。
第三个选项是仅主机网络。这与 NAT 模式类似,因为您的虚拟机在与您的物理/实际 LAN 隔离的虚拟 LAN 上被分配了一个虚假的 IP 地址,通过您的 VMware 主机系统。不同之处在于,除非您显式配置底层主机操作系统来转发和路由这些数据包,否则您的仅主机(虚拟)LAN 上的任何虚拟机都将无法与真实 LAN 交互。换句话说,使用仅主机网络,您将需要配置您的主机操作系统来路由或桥接虚拟机的数据包。因此,当您不想连接您的虚拟 LAN 和物理 LAN 时,此模式最有用——例如,如果您正在虚拟 LAN 上测试潜在的危险网络应用程序。
除了虚拟 CPU、RAM、硬盘和网络接口之外,虚拟机还可以拥有虚拟软盘驱动器、CD-ROM/DVD-ROM 驱动器(仅限数据,非电影)、USB 控制器、SCSI 控制器、并行端口、串行端口、声卡和鼠标。软盘和 CD/DVD 驱动器都可以分别使用主机系统的实际硬件或磁盘映像或 ISO 文件。在所有情况下,VMware 都会为您挂载真实或虚拟介质;您无需单独运行 mount 命令。
VMware 的 SCSI 和 USB 支持同样是透明的。默认情况下,如果您在虚拟机在前台(具有焦点)运行时将 SCSI 或 USB 设备插入主机系统,则虚拟机的响应就好像您将设备插入了它一样。这在给定情况下是否真的有效取决于 VMware(虚拟 USB 控制器仅支持 USB 1.1)和 guest 系统的功能。(它是否支持 USB?您是否已将设备的正确驱动程序安装到虚拟机上?)
创建虚拟机并安装其操作系统后,实际使用虚拟机与真实机器非常非常相似。图 2 显示了在虚拟机上运行的 Debian 3.1 安装程序。
如果您愿意,您甚至可以在全屏模式下而不是在 VMware 窗口中运行虚拟机。在 guest 系统上安装 VMware Tools 软件包会添加其他功能,例如增强 guest 系统的虚拟显示适配器支持,以及在 VM 窗口内外移动鼠标指针的能力,而无需单击和退出。
许多 VMware 功能使虚拟机体验优于使用真实机器,尤其是在研究/测试场景中。其中之一是拍摄虚拟机快照的能力。快照捕获虚拟机在给定时刻的内存状态、磁盘状态和虚拟机设置,允许您稍后回滚到该点——例如,在失去对您在 guest 系统上检查的病毒的控制之后。
另一个功能是创建虚拟机团队的能力。团队是一组具有共享网络和启动特性的虚拟机。这使您可以创建例如数据库服务器场,所有服务器都连接到相同的虚拟 LAN,所有服务器都可以通过单击鼠标或命令同时启动(VMware 现在有一个命令行实用程序 vmrun,用于操作虚拟机和团队)。
您可能期望的那样,考虑到虚拟机只不过是目录中的文件,VMware 也使克隆虚拟机变得容易。完整克隆只是父 VM 的副本,除了具有新的 MAC 地址和 UUID 外,它与父 VM 完全相同。因此,完整克隆具有高度的可移植性,并且可以轻松复制到其他主机系统。
另一个选项是创建链接克隆,它实际上是从父级的快照创建的。对父级的更改不会影响克隆,反之亦然,但克隆必须始终可以访问父级的文件。
那么,VMware 的缺点是什么?老实说,多年来我一直是这款产品的非常满意的用户。除了在运行 Windows XP 的 ThinkPad T42 上使用 VMware 4.0 时遇到的一个特定于硬件的问题(我通过切换到 Linux 版本解决了这个问题)之外,我没有任何要与您分享的抱怨或错误列表。VMware Workstation 5.5 是一款稳定、文档完善且易于使用的产品,具有丰富的功能集,对于信息系统专业人员和研究人员尤其有用。
当然,这一切都不是免费的。可下载的 Linux 版 VMware Workstation 5.5 售价 189 美元,盒装版售价 199 美元。我认为您很难用这么少的钱组装一台非常好的物理计算机,更不用说整个 LAN 的价值了。如有疑问,您可以下载完整版本进行 30 天的评估(之后您必须购买并安装许可证才能继续使用 VMware)。
或者,您可以选择 VMware Server,它现在是完全免费的。VMware Server 以前称为 VMware GSX Server,在撰写本文时,当前版本的 VMware Server 仍处于 beta 阶段,但即使它达到生产状态,它仍将保持免费产品。据推测,VMware Server 缺少 VMware Workstation 的许多面向开发人员/研究人员的功能——VMware 的服务器版本更多地针对生产服务器应用程序。比较一下并自己决定。有关所有 VMware 产品的更多信息,请访问 www.vmware.com。
Mick Bauer (darth.elmo@wiremonkeys.org) 是美国最大的银行之一的网络安全架构师。他是 O'Reilly 图书《Linux 服务器安全》第二版(以前称为《使用 Linux 构建安全服务器》)的作者,信息安全会议的偶尔演讲者以及“网络工程波尔卡舞曲”的作曲家。