A tale of two platforms
If you look at Microsoft's two virtualization options from marketing and technical standpoints, one conclusion seems consistent: Virtual PC has been designed to make virtual machines accessible to desktop users, whereas Virtual Server provides powerful enterprise-class features.
If you're squarely in one camp or the other, then the decision might be simple. The two products do have a lot in common, but there are some important differences. Let's take a look at the details.
Virtual PC: Easy does it
Virtual PC has been designed to be as simple to install and use as possible. That makes it a great solution for people who want to run one or two VMs (virtual machines) on the desktop with minimal setup hassles.
Perhaps the most noticeable feature is that Virtual PC comes with a standard Windows application for administration. The user interface is familiar and user-friendly (see Figure 1), and most users should be up and running in a matter of minutes (assuming they understand basic virtualization concepts).
A very handy feature is that virtual machine windows can be resized while they're running (just like you might resize a Word document or email message). As long as the guest OS is supported by the Virtual PC platform, its desktop resolution will scale automatically.
Do you need to transfer files between the host computer and the VM? Although you could certainly accomplish this through networking, Virtual PC allows you to drag and drop files between the host and guest OS through the use of Shared Folders. Also in the area of networking is the ability to configure network address translation (NAT) to share the host's network connection without worrying about network addresses.
Virtual PC does include an emulated virtual sound card. It may not rock your world, but it can be helpful for testing some applications.
Virtual Server: Power to the [IT] people
Virtual Server has been designed to host many virtual machines, efficiently and reliably. It runs as a service on Windows XP or Windows Server 2003 computers. Due to its multi-threaded architecture, it can simultaneously run many VMs (assuming you have enough CPU, disk and memory resources). Virtual Server also supports both 32-bit and 64-bit host operating systems.
The most noticeable difference between the two products is that Virtual Server is managed using an Administration Web site (see Figure 2). While this can be more accessible (all someone needs is a browser in order to manage it), the interface isn't nearly as user-friendly as a Windows application.
Other than performance, Virtual Server provides numerous additional benefits. One of my favorite features is scripting and automation support through the use of a Component Object Model (COM) interface. The API is well documented and you can use VBScript, Visual Basic.NET or C# to manage your VMs.
As you might expect from any Enterprise product, Virtual Server offers advanced networking and security features. It also provides support for SCSI-based hard disks (allowing terabytes of total storage), iSCSI network-based storage and clustering (both at the host and guest levels). You can manage Virtual Server using Microsoft Operations Manager (MOM) or third-party tools.
Nothing sums up features and differences like a good table. Table 1 provides just that.
|Feature / Component||Virtual PC||Virtual Server|
|Administration tools||Windows client application||Virtual Server Administration Web site|
|Application architecture||Windows executable||Windows service|
|Virtual sound card support||Yes||No|
|Scripting and automation support||No||Yes|
|SCSI virtual hard disk support||No||Yes|
|Clustering support||No||Yes (Guest- and host-level)|
|Virtual CD/DVD-ROM drives1||4|
|Dynamic memory and CPU
|Networking features||Simplified file sharing
Network Address Translation
Virtual DHCP Server
The best of both worlds?
For the most part, VMs are portable between the two platforms. You can create a VM in Virtual PC and then later run it within Virtual Server (or vice versa). This can be very handy in development, testing, support and other related situations.
But you need to keep several things in mind. First, the saved state file formats are not compatible between the two platforms. So, you'll need to completely shut down a VM before you move it between platforms. Virtual Server does not support virtual sound cards (most guest operating systems will automatically detect this), and Virtual PC does not support virtual SCSI hard disk controllers. The latter is mainly an issue for boot volumes, since you can always take a virtual hard disk file and move it between SCSI and IDE attachments.
If you don't mind a bit of a learning curve and you want to host multiple VMs as efficiently as possible, Virtual Server is probably the best bet. If, on the other hand, you just want to run one or two VMs as quickly as possible, then you should probably start with Virtual Server. You really can't go wrong with either one, since you can change your decision pretty easily and the cost of admission is free.
|Configuring virtual networks|
This was first published in October 2006