The Soul of a Virtual Machine

Things to know about running a virtual machine under Virtual Server

Blogs

Virtual PC versus Virtual Server

  • Comments 16
  • Likes

Althea wants to know what the difference is between Virtual PC and Virtual Server, and when she would use one versus the other. 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. As a result, the usage scenarios for the two products are correspondingly different. There are a few feature differences as well. This article covers the major functional differences between the two products.

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) will be desktop operating systems. 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.

For Virtual Server, the host operating system and the guest operating systems will be server operating systems. Supported host operating systems are Windows Server 2003 (Standard, Enterprise, and Datacenter Editions) and Windows Small Business Server (Standard and Premium Editions). 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.

Usage scenarios for Virtual PC

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, but won’t run on your new Windows XP machine, you can run Windows 98 and your application in a virtual machine. Ben Armstrong uses Virtual PC to run his favorite DOS-based computer games. (For more info, see Ben's blog at http://blogs.msdn.com/Virtual_PC_Guy.)
  • 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 you client’s, 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 reduces setup time dramatically.

These scenarios are described in detail in the white paper at: http://www.microsoft.com/windows/virtualpc/evaluation/techoverview.mspx.

The uses that you can find for Virtual PC are limited only by your resourcefulness, though. For example, my co-worker Nehar has Virtual PC set up for his wife and kids to use for browsing the Internet. That way he doesn’t have to worry about anything they download because it won’t affect the host operating system. If the virtual machine get’s corrupted or infected, he can simply delete it and start over.

Usage scenarios for Virtual Server

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.
  • Application migration. You can move server applications running on older hardware and operating systems, such as Microsoft Windows NT® Server 4.0, onto virtual machines on newer, more resilient systems running Microsoft Windows Server 2003 operating systems, without rewriting the applications.
  • Server consolidation. Many companies have departmental and branch office servers that are underutilized. You can consolidate applications that require different server operating systems onto a single physical server to reduce the number of physical servers you need to maintain.

Other differences between Virtual PC and Virtual Server

Virtual Server provides a few features that aren’t available in Virtual PC:

  • Remote Management. You can administer Virtual Server remotely by using the Administration Web site.
  • Scalability.  Virtual Server scales across multiple processors (although in the current release each virtual machine can take advantage of only one CPU).
  • COM API.  You can manage Virtual Server and its virtual machines by using the COM API. For more information, see the Virtual Server SDK that ships with the product.
  • SCSI support. Virtual Server provides SCSI support.
  • Multiple CD-ROM drives: Although Virtual Server allows for virtual machines with multiple CD-ROM drives, Virtual PC supports virtual machines with only one CD-ROM drive.

On the Virtual PC side, Virtual Server does not include an emulated sound card in its virtual machines, while Virtual PC does.

That about sums it up as far as important functional differences. I hope this answered your question, Althea.

Comments
  • BTW you can run all the server OSs as guest in Virtual PC as well I do this all the time as a developer to test software built for the server. It's not only for desktop OSes

    Cheers,

    ET

  • You're mostly right, ET, but while its true that you can (at least attempt to) install and run any OS that you want on Virtual PC, running server OS's on it isn't supported. And being a good Microsoftie, I listed only supported guest OS's in my article.

  • If running Server OS's on Virtual PC isn't supported, why are Server OS options present in the New Virtual Machine Wizard in the Operating System selection step? It seems to me that this is a bit of a mixed signal - we don't support it, but here are the options we don't support...? Just a concern, Virtual PC is a great product, and I'm learning more about virtual server.

  • Good question, DG. I agree that this is a bit confusing. When the product team removed the server options from the wizard in the pre-release version of Virtual PC 2004, a lot of users thought that the ability to install server OSs had been removed as well. So to reduce confusion, the server options were put back into the wizard.

    Many developers like ET use Virtual PC for testing their software. A number of "unsupported" operating systems function perfectly fine in Virtual PC, including servers. Installing and running these operating systems in some situations -- such as for development, unit testing, or personal use -- can make sense (as long as you're willing to accept not having product support for the configuration). However, it isn't appropriate (or wise) to run servers on Virtual PC in a production environment. Virtual PC doesn't give you the resource management or scalability that you need to run production servers. You should use Virtual Server to run servers. If server OSs were supported on Virtual PC some people would inevitably try to use it to run production servers, and would end up having problems.

    So the upshot is that confusion was reduced for some, but created for others. It's likely that this issue will be reconsidered for the next release.

  • I think there is one other important difference that you neglected to mention. You probably didn't mention it because it's so obvious, but the Virtual Server runs as a service on the host system. Whereas; the Virtual PC runs as an application.

    The Virtual Server comes with a client application that can be run from a remote machine, to connect to the Virtual Servers. This is really cool for someone like me, who's desktop machine isn't powerful enough to be running a whole bunch of virtual machines. I put them all on the server, I have access to them, and can screw them up all I want.

  • TomB - you can use remote desktop to connect to a Virtual PC running on another machine, so if you've got RDP-enabled OSs running, you dont need virtual server for that either. i used to run 4 VPC sessions on one box, and then access all 4 of those VPCs *plus* the host box, all from one MMC console with RDP sessions set up.

  • I have successfully installed Windows server 2003 domain controller onto Virtual PC. My laptop OS is Windows XP Professional. How can I use my desktop OS (Windows XP) as a client for Virtual PC (Windows 2003 DC) ??
    The reason for this scenario is to enable me to study for MS 70-290 exam.
    Tried Virtual Switch and Shared Networking (NAT) but I seem to be going wrong somewhere. All requests to ping the server (192.168.131.1 / 24) from the client (192.168.131.2 /24) are failing.

    Somebody please help!!

  • Sam, here's what Ed Reed, a developer here at Microsoft says about your configuration:

    You won’t be able to use Shared Networking (NAT) as the host cannot talk to the guest and vice versa. If you need guest to host connectivity, you need to use Virtual Switch with either a physical network card or Loopback adapter.

    However, there is a bit of a chicken and egg problem with using a virtual machine for the DC. This is because the virtual machine will not be available during startup of the host OS. I don’t believe that this scenario will work. Your best bet is to create a fully virtual network topology for the domain; that is, in addition to the DC guest, create one or more domain member guests and connect them together via the Local Only network. You’ll need to use static IP addresses or setup the DHCP server on the DC, but this will work better than trying to use the host as the domain member.

  • A Virtual Day with Virtual PC 2004