Update: This whitepaper is now available on Microsot.com at http://download.microsoft.com/download/1/4/d/14d17804-1659-435d-bc11-657a6da308c0/VSvsVPC.doc. Thanks to those of you who gave me comments on the draft.
Here's a draft of a whitepaper I'm working on that will ultimately be posted on Microsoft.com. Comments and suggestions would be appreciated. Thanks!
** This information is provided as-is with no warranties. **
This whitepaper explains the difference between Virtual PC and Virtual Server, and discusses when you would use one versus the other. Virtual PC is Microsoft's virtual machine solution for desktop applications, and Virtual Server is its solution for server applications. While they share many features in common, because of their different usage scenarios, a number of their features are different.
Virtual PC provides an optimal experience for a desktop user who wants to run one or more additional desktop operating systems on his or her PC. The user interface is fairly simple and there is extensive integration between the host operating system running on the physical computer and the guest operating systems running in virtual machines. For example, users can easily drag and drop data between virtual machines and their host. In addition, the sound and display features of virtual machines are much the same as physical computers.
On the other hand, Virtual Server provides features to support the requirements of enterprise server applications and administration. For example, due to more stringent security requirements, there is less integration between the host and guest operating systems. Virtual Server also provides a number of features to support greater manageability, scalability, and extensibility.
Virtual Server versus Virtual PC
The fundamental difference between Virtual PC and Virtual Server is that Virtual PC is designed for desktop (or "client" or "PC") operating systems and Virtual Server is designed for server operating systems.
While the two products have many features in common, they serve different needs, so there are crucial differences between them as well. For example, because it supports desktop applications, the Virtual PC user interface is designed with the typical desktop user in mind. The configuration options are relatively simple and easy for the average computer user to understand and use. On the other hand, Virtual Server is designed for running enterprise server operating systems and applications. It provides the configuration and management options that are required for server management, and these necessarily make the user interface more complex. As a result, making effective use of Virtual Server requires some degree of knowledge of server technologies.
Usage scenarios for Virtual PC
As already mentioned, Virtual PC is designed for running desktop operating systems and applications. Some primary usage scenarios for Virtual PC are:
- Support for legacy desktop applications. For example if you have applications that were designed to run on Windows 98 that won’t run on your new Windows XP computer, you can run Windows 98 and your application in a virtual machine.
- Help desk. If you're a help desk technician, you could set up a variety of desktop environments inside virtual machines to duplicate those of your clients, so you could reproduce problems when clients call in.
- Desktop application testing. If you're a developer, you can use virtual machines to test desktop applications in a variety of operating system environnments.
- Training. If you're a trainer, you can set up your training programs to run inside virtual machines. This way you can offer more types of classes. In addition, you can set up the virtual machines to discard changes that were made during the class. This dramatically reduces setup time.
These scenarios are described in detail in the Microsoft Virtual PC 2004 Technical Overview white paper, available the Microsoft Web site at http://go.microsoft.com/fwlink/?LinkId=45404. The uses that you can find for Virtual PC are limited only by your resourcefulness, though. For example, you might set up Virtual PC for your family to use for browsing the Internet. That way you don’t have to worry about anything they download because it won’t affect the host operating system. If the virtual machine becomes corrupted or infected with a virus, you can simply delete it and start over.
Usage scenarios for Virtual Server
Virtual Server is designed for running enterprise server operating systems and applications. Some primary usage scenarios for Virtual Server are:
- Test and development for server applications. You can use Virtual Server in situations that require rapid and frequent server reconfiguration, as required with development and testing, product demonstrations, and training. You can create a library of virtual machines in different server configurations without needing to dedicate a physical computer to each configuration. Your virtual machines then can be deployed from this library with a few mouse clicks. You can also set up the virtual machines to use Undo disks so that changes can be discarded, or you can use differencing disks to create a variety of configurations from one base disk. This is useful for many testing scenarios, such as software patch testing.
- Server consolidation. Many companies have departmental and branch office servers that are underutilized. This is often because different departmental or branch office applications were written for different operating systems or different versions of the same operating system. To reduce the number of physical servers you must maintain, you can migrate these applications and operating systems into virtual machines running under Virtual Server on a single physical server.
- Application migration. Many companies have server applications that require an older operating system, such as Microsoft Windows NT® Server 4.0. To upgrade to a newer, more resiliant system would require rewriting the applications, but doing this is often prohibitively costly. Instead of rewriting the applications though, you can move older operating systems and server applications into virtual machines running under Virtual Server and Microsoft Windows Server 2003.
Virtual Server and Virtual PC have a number of features in common, such as:
- Basic file architecture. Both Virtual Server and Virtual PC use the same file types for configuration and resource files. For example, virtual machine configuration files are .vmc files, virtual hard disk files are .vhd files, and saved state files are .vsv files. This common file architecture allows files (within certain limitations) to be shared between Virtual Server and Virtual PC.
- Networking. Both Virtual Server and Virtual PC allow networking between virtual machines and physical machines. Virtual Server allows you to create and configure virtual networks, however.
- Virtual machine control options. Options for controlling virtual machines, such as starting, stopping, shutting down, saving state are the same for Virtual Server and Virtual PC.
- Disk features. Undo and differencing disks are available in both Virtual Server and Virtual PC.
While they share many features in common, due to the different usage scenarios there are also a number of differences between Virtual Server and Virtual PC, which are described in this topic.
Unique features of Virtual PC
To support the requirements of desktop users, Virtual PC provides the following features that are not available in Virtual Server:
- Supported operating systems. For Virtual PC, both the host operating system (the one you install Virtual PC itself on) and the guest operating systems (the ones running inside virtual machines) must be desktop operating systems for Microsoft to support them. Supported host operating systems include Windows XP Professional, Windows 2000 Professional, or Windows XP Tablet PC Edition. Supported guest operating systems include these plus a number of others, such as Windows 98 and MS-DOS 6.22. See the Virtual PC documentation for a complete list.
- Emulated sound card. Both Virtual Server and Virtual PC provide integration with the physical computer's mouse and keyboard. Only Virtual PC, however, provides an emulated sound card to support the needs and expectations of desktop users.
- Extensive host-guest integration. One of the key goals in the design of Virtual PC was user convenience in a desktop environment. Users can switch between operating systems as easily as they switch between applications by simply clicking on the window containing the virtual machine. Users can copy, paste, drag and drop between the guest and host operating systems. They also can dynamically resize the guest operating system’s desktop when resizing the virtual machine window and share folders between operating systems
- Shared networking. So that users can easily configure a connection to an external network that uses the host computer's network adapter, Virtual PC offers shared networking through network address translation (NAT).
Unique features of Virtual Server
To support the requirements of an enterprise environment, Virtual Server provides the following features that are not available (or needed) in Virtual PC:
Supported operating systems
For Virtual Server, supported host and guest operating systems are server operating systems, except for Windows XP Professional, which is supported as a host operating system. Supported host operating systems are Windows Server 2003 (Standard, Enterprise, and Datacenter Editions), Windows Small Business Server (Standard and Premium Editions), and Windows XP Professional. Supported guest operating systems include these plus Windows 2000 Server, all editions except Enterprise as well as Windows NT Server 4.0 Enterprise Edition SP6a. See the Virtual Server documentation for more information.
- Remote management. You can administer Virtual Server remotely by using the Web-based Administration Web site. You can also access and administer virtual machines remotely by using Virtual Machine Remote Control (VMRC).
- Scripted management. You can manage Virtual Server and its virtual machines by using the COM API. For more information, see the Virtual Server Programmer’s Guide included with the product.
- WMI integration. Virtual Server provides WMI counters to the host operating system, which can be integrated into a non-Microsoft management solution or passed to Microsoft Operations Manager for monitoring and alerting.
- Compatibility with Windows Server System management products. To deploy and manage virtual machines, you can use products such as Automated Deployment Services, Systems Management Server 2003 SP1, and Microsoft Operations Manager (MOM) 2005. There is a MOM management pack available for Virtual Server 2005.
- Delegated administration. You can delegate administration and provide secure, authenticated guest access.
- System event logging. Virtual Server logs events on the host operating system event log, which can be integrated into a non-Microsoft management solution, or passed to Microsoft Operations Manager for alerting. Virtual Server can send event notices—such as when a virtual machine session has stopped functioning—to external scripts.
- SCSI support. Virtual Server supports virtual SCSI disks up to 2 TB in size.
- Host multi-processor support. Virtual Server scales across multiple processors on the host computer - up to 32. Each running virtual machine can take advantage of up to one CPU. For example, on a 32-processor host computer, you could allocate your CPU capacity so that 31 simultaneously running virtual machines would each use up to one CPU, leaving a CPU free for the host operating system.
- Multithreading. Virtual Server 2005 is a multithreaded application that runs as a system service, with each virtual machine running in its own thread of execution. In contrast, Virtual PC is a single-threaded application, and all simultaneously running virtual machines run on the same processor.
RAM. Support for up to 3.6 GB RAM per virtual machine.
- Support for Secure Sockets Layer (SSL) security. For access to the Administration Website and the Virtual Machine Remote Control (VMRC) client, Virtual Server supports SSL security, as well as NTLM and Kerberos V5 authentication.
- Configurable user context for virtual machines. By default, a virtual machine runs under the account of the user who turned it on. For added security, you can configure each virtual machine to run under a specified user account. Virtual machine scripts also run under this account, and it must be configured before virtual machine scripts can run.
- Flexible memory and CPU allocation. Virtual Server supports flexible memory configuration and dynamic CPU resource allocation for each virtual machine.
Other enterprise features
- Virtual networking. Virtual Server allows you to create an unlimited number of virtual networks, each with its own virtual DHCP server. It also allows you to configure DNS and WINS servers, IP addresses and IP address lease time.
Two-node clustering. Virtual Server provides simple two-node failover from one virtual machine to another for testing and development.
The following are references to additional information and resources for using Virtual PC and Virtual Server.
- Virtual Server 2005 Administrator's Guide, available at the Microsoft Web site at http://go.microsoft.com/fwlink/?LinkId=27540.
- Virtual Server 2005 Web site, available at the Microsoft Web site at http://go.microsoft.com/fwlink/?LinkId=21347.
- Virtual PC 2004 Web site, available at the Microsoft Web site at http://go.microsoft.com/fwlink/?LinkID=19177.
- Virtual Server 2005 Migration Toolkit (VSMT), available for download at the Microsoft Web site at http://www.microsoft.com/windowsserversystem/virtualserver/evaluation/vsmt.mspx. VSMT is a free tool that helps you automate the migration of physical computers to virtual machines.