The miracle of near-native virtualization technologies has saved professionals countless hours of OS thrashing. Excluding 3D graphics, systems administrators can accomplish nearly any task requiring a multitude of platforms within the comfort of the Linux workstation. As computer software abstracts the ones and zeros of bits and bytes into our user experiences, virtualization abstracts the operating system experience into a more dynamically usable context-independent tool. Thanks to the hard work of two virtualization technology companies, the world of virtualization has increasingly become more powerful, more transparent to the user, and more accessible.
Motivation and Use Cases
Who uses virtualization and what do they use it for? Virtualization is so empowering that it is difficult to imagine all of the potential use cases for the technology. For engineers, virtualization provides access to client/server and cross-platform development in a single workstation. Client/server development is trivialized by the accessibility of running your Windows client within a window, or for some by isolating the server container within a resource-limited virtual machine, allowing full access to the computational power of the workstation. For software quality assurance teams, virtualization offers the ability to switch operating system contexts with minimal effort, to instantiate an operating system at any stage of its life cycle, to take a snapshot of a use case, and to replicate that application ad infinitum. For systems administrators, virtualization enables multi-platform staging grounds for OS patch testing, agile server reconfiguration, sandboxes, containers for legacy applications, and self-contained extremely accessible technical assistance and training to end users.
Virtualization also enables service offerings for IT professionals and systems administrators, enabling users to access multiple operating systems while effectively managing the resources and preserving the security of the host. With the capabilities of virtual desktops and virtual machine full-screen, all of these use cases become transparent to the user, making operating system context switching available at the stroke of a key. Anyone can find a use for virtualization, so which one of these empowering technologies is right for you: Parallels Workstation, VMware Workstation, or VMware Server?
Parallels, the newer and lighter weight of the two products, is marketed primarily to end users and to service providers who need to enable users to quickly and easily utilize another operating system through virtualization. VMware with its multi-tiered product offerings addresses a much broader customer base, from end users to enterprise, with product stratification addressing a variety of use cases along the way. The two workstation offerings are alike in the product name, but what capabilities make them similar and what differences set them apart? Why should anyone pay for VMware Workstation when VMware Server and player are both free? Is the product quick, easy, and feature-limited or technically demanding, time-consuming, and bloated? In this article, I will describe the similarities and differences so you can choose which of these products fits best with your environment and the end users you support.
Virtualization technologies offer nearly immediate return on investment by eliminating hardware, space, infrastructure, and potentially OS licensing expenses. However, the critical factor determining which solution is right for your organization could be the cost of the solution itself. Parallels is unique in that it offers a Windows/Linux license together -- purchase one and you automatically get both. This package is currently offered for $49.99 on Parallels Web site. For VMware, users must pay $189.00 for the Windows version and an additional $189.00 for the Linux version (with packaged versions of the software for an additional $10.00, and occasional promotions with $50.00 rebates).
So, why would anyone pay almost four times as much for a package that will only run on half as many platforms? The answer lies in VMware's free product offering, VMware Server. Free with registration, VMware Server was released in July 2006 and is based on GSX Server. It provides roughly 90% of the features found in VMware Workstation at zero cost. VMware Server runs on Windows and Linux (RPM and source provided) and packs some serious usability potential with the hundreds of Virtual Appliances available for download from the Virtual Appliance Marketplace (most of which are also free). Even if the tool you are implementing via virtualization comes with a hefty price tag, VMware Server will help keep costs down.
Next, I'll examine how the Parallels and VMware Server products differ regarding the host and guest platforms and operating systems they support. Let's first look at the Host/Primary OS support that the products have in common:
* Red Hat Enterprise Linux AS, ES, WS 4.0
* SUSE 9.1 through 10.0
* Mandriva 10.0
To this list, Parallels adds:
* Fedora Core 4.0
* Debian 3.1
* Xandros 4.0
This makes sense given Parallels' consumer-oriented slant; they easily claim support for spin-offs like Fedora, while also ensuring the product will work with full-featured, Windows-friendly consumer Linux distributions like Xandros.
For the most part, one could argue that the supported Parallels host OSes are a subset of the offerings present in VMware. To the above list, VMware adds the following consumer- and enterprise-level distribution support:
* Mandriva Corporate Server 4, 2006, 2007 (32 bit and 64 bit)
* Mandrake Linux 9.0 and 10.1
* Red Hat Enterprise Linux 2.1-5.0, AS, ES, WS (experimental support; 32 and 64 bit)
* Red Hat Linux 7.0-9.0
* SUSE Linux Enterprise Server 8.2-10.0 (32 and 64 bit where applicable)
* Ubuntu Linux 5.04-6.10 (experimental support for 6.10; 32 and 64 bit)
As far as cutting edge platforms are concerned, Parallels has the advantage with full support for Intel's 32-bit virtualization extensions called Intel VT-x; while VMware boasts current support for some AMD64 chipsets (the popular vanilla Intel EM64T not being one of them):
* AMD Athlon 64, revision D or later
* AMD Opteron, revision E or later
* AMD Turion 64, revision E or later
* AMD Sempron, 64-bit-capable revision D or later (experimental support)
* Intel EM64T VT-capable processors (experimental support)
Both companies offer source and RPM packages for the platforms they support, while Parallels, in an effort to further reach out to consumers, also provides a Debian package. Keep in mind that these operating systems are not the only candidates for using either package. During my comparisons, I used Gentoo on a dual-processor AMD XP system (early XP chips were actually MP capable). Despite not being officially supported, both installations were simple and smooth with Gentoo. VMware was already contained in the package management system, and installation was completed with minimal tinkering. Parallels provides an ebuild, which can be downloaded from their Web site integrating it into the package management system as well.
Once the packages are installed, both products require you to configure the installation. For Parallels, this process is kept as simple as possible; after running the configuration command, simply accept the licensing agreement and you are ready to go. One shortcoming regarding Parallels and the unsupported Gentoo Linux is that the installation does not make mention of the requirement to manage the init scripts for the Parallels services manually. Users who reboot and try to run Parallels are met with an unintuitive message that Parallels has not been configured. Re-running the config script will fix the issue for the current session, but the same problem will reappear upon next reboot. The FAQ does address this issue, but a more meaningful message would make the product more user friendly.
For VMware, Gentoo users must add the VMware daemon services to the system init scripts as well (a task accomplished automatically for most other distributions by the "vmware-config.pl" script) and add any system users who will be using VMware to the "vmware" group. Once those steps are completed, users must configure the product with vmware-config.pl. After the license agreement is accepted, several questions are presented to the user to aid in networking configuration (the defaults are suitable for most use cases).
The most outstanding capability of the VMware offerings that I noticed after installation is the networking flexibility contained in the product. Users can install VMware on a machine with multiple NICs and subsequently bind VMs to unique NICs and IP addresses. All of this is made simple through the VMware config script and the networking interface present in the UI. Such a use case might be rare, but this feature, in addition to the other networking options (e.g., host-only networking, NAT, bridging), is more evidence that VMware caters to the power user, while Parallels favors getting users up and running as quickly and easily as possible.
Performing Windows XP guest installation is a pleasure with both products because of the ability to proceed with life on the desktop while watching the reboots and install rhetoric fly by in a window in the background. Formatting occurs nearly instantly because of the raw disk emulation layer present in both products. Both products also offer an ISO disk image mount for the install process, making the optical drive bottleneck a non-issue and speeding up the install process significantly.
Both Parallels and VMware claim that users can install any 32-bit x86 OS. The list includes Windows (3.1 through Vista), Linux, BSD, Solaris, OS/2, eComStation, Sun Java Desktop, and even DOS (just to name a few). VMware adds 64-bit platforms where available on the aforementioned operating systems, on select 64-bit chipsets. Be sure to run the X86 64 support check script provided by VMware before assuming your 64-bit machine will be capable of running guest OSes in 64-bit mode (see the supported processors above in the installation section).
Features and Usability
Once the products are up and running, how do they stack up as far as the user interfaces and features are concerned? At first glance, each has a very similar look and feel. One subtle difference is the placement of toolbar icons (Parallels' icons are on the right side while VMware's are on the top under the pull-down menu). The rest of the basic interfaces are fairly similar including pull-down menus and status icons for running VMs.
Some obvious UI differences are created out of the varied features offered by the products. VMware Workstation has extra pull-down menus to accommodate two of its key differentiating features, teams and tabs. Both Workstation products allow you to spawn multiple separate windows if you wish to utilize multiple virtual machines simultaneously. VMware lifts the concept of multi-machine multitasking into the single window user interface with tabs. The tabbing makes it very simple to track multiple virtual machines if you are restricted on screen real estate. Tabs can be reordered or added and removed from the "favorites" pane (quick launch area) as the user sees fit.
Teams are also managed in the favorites pane, which allows the user to dynamically configure a set of virtual machines into a group with its own shared networking infrastructure while maintaining individual settings and configurations. The favorites pane also allows users to tag virtual machines with a name that might not be associated with the original VM file name. This comes in very handy when replicating machines for different purposes, because you can add information to the name or change it all together.
Filesharing between the guest and host works very well in both products. Parallels makes this as easy as possible for end users, placing a shortcut on the desktop to access the host share folder. Installing the tools is a breeze with both products, but again Parallels comes to the user's rescue by making the installation process as unattended as possible. Parallels temporarily disables the "unsigned driver" notifications in Windows XP so that the installation doesn't prompt the user every time it installs a new driver.
Backing up virtual machines is relatively easy with both products. VMware Workstation offers a capability called snapshots, which allows users to freeze the virtual machine in a particular state, maintaining only the changes to the OS inside the image. A user can create a single base virtual machine and then customize several instances of it (settings and software) without having to store full images for each instance. The snapshot tool will only write to disk the base image and the necessary information added to each additional customized image.
The differences between VMware Workstation and Server are slight but worth mentioning; the Workstation version has a few key features making it a better product for software developers and testers. The aforementioned ability to manage multiple snapshots, along with a grouping mechanism called "teams", makes Workstation much more effective at managing multiple environments and repeating testing or development work on a machine in a known state. Workstation also enables users to clone virtual machines, replicating them to branch configurations or machines states. Additionally, the Workstation version also allows users to create shared folders between virtual machines and capture movies of running VMs. Several of these functionalities offer some crucial bonuses that merit paying for VMware Workstation if you work in software development or testing.
VMware Server has a few advantages over Workstation as well, especially within a production environment. The approach is a departure from the Workstation offering because it is based on a client/server architecture. This makes it especially useful in offloading resources to a remote machine, which can then be accessed remotely via the VMware Server Console. VMware Server will also launch VMs at boot time automatically, and it offers a feature rich programming interface for manipulating VMs with C, Perl, and COM.
Both products have some exciting features in the works. Parallels has developed a new piece of functionality, called coherence, which enables users to run a single application in a virtual machine, having that application essentially blend in with the windowing GUI on the host OS. This is more than just full-screening or maximizing a window in a VM; the user is even further detached from the OS underpinnings. Another very cool feature for individuals in an IT or support role is an installation assistant that prompts the user for all of the necessary installation information (Windows Activation Key, networking information, etc.) up front, and then automatically sets all of that information during an unattended installation. This can save users time during an installation and streamline the installation process for novice users. Also promised in the next version is full OpenGL and DirectX support, which is something I am going to have to see to believe, as this functionality has always been the holy grail of virtualization technologies.
VMware has a bevy of additional power user features including Vista support for the host, multiple monitor display (VMs spanning multiple monitors or multiple VMs displayed on separate monitors), support for up to 8GB of RAM, improved USB 2.0 support, and drag-and-drop between host and guest file systems. Additionally, VMware is enriching the development and testing capabilities of the product. Visual Studio and Eclipse integration are in the works, along with support for headless mode and automation API interfaces.
Most of the readers of this magazine will not feel encumbered by VMware's additional functionality and at times unnecessary user intervention for guest and tool installation. Those readers who are in an IT role might, however, and the novice end user will most likely find the Parallels experience much smoother from start to finish. If the final factor in your decision is not cost, and you are supporting few users who need to be able to create their own virtual machines, Parallels could be a better candidate. If cost is the largest issue, and you don't require the development capabilities present in VMware Workstation then VMware Server will most likely be sufficient. Here is a quick high-level rundown of the pros and cons of both products:
* Free server utility, many free appliances
* Robust and expressive networking capabilities
* Expanded architecture support
* Teams and tabs
* More expensive
* More difficult to use for some
* Windows and Linux versions licensed separately
* Growing drives is painful
* Cheap, Windows and Linux licenses combined
* Easier to use for novices
* Full VTx support
* Does not currently run with Vista as host (due in next version)
* No 64 bit host or guest os, (32-bit OS on 64-bit hardware OK)
* No SMP for guests (runs as a single process on SMP hardware)
With these assessments in mind, it is worth mentioning that all of these products do an exceptional job addressing their target markets. The most important factor to keep in mind when making your decision is which market you are most likely to support or be associated with. Both products offer an evaluation period for all platforms.
VMware -- http://www.vmware.com/
Parallels -- http://www.parallels.com/