Why use Virtual PC or Virtual Server?


One of the popular comparisons of Virtual Machine technologies is Virtual PC vs. Virtual Server (the other being Virtual Server vs. VMWare GSX/ESX). I decided to tackle the Virtual PC vs. Virtual Server comparison with a little brain dump.


This is purely my perspective as someone who extensively uses both Virtual PC and Virtual Server, and I do not work on the product team that produces either product.


Question:


Hi All,


I am new to this subject. Have started using Virtual PC a month back. I found it really amazing. I also tried Virtual Server, but it was a bit complicated to setup and use. Virtual PC is a breeze to setup and use. Why Virtual Server is needed, if Virtual PC is a so cool product?


Thanks,


Answer:


Good question.


When I think of different products using similar technology, there is usually some form of market segmentation based on user demographics.


For example, Toyota brands its vehicles under both an economy Toyota brand and the luxury Lexus brand. Same basic car – has four wheels, engine, steering column, enclosed climate-controlled passenger cabin, etc. But there are enough differences in each brand that satisfies the target user audience. Toyota is general more economically priced and may not have the latest in fancy gadgets, while Lexus targets the more leisure conscious and “latest and greatest” folks.


You can imagine the same sort of distinction between Virtual PC and Virtual Server given the same “Virtual Machine” technology. While I am glad that you think Virtual PC is cool and easy to setup and use (it obviously fits your demographic and needs), I can tell you that Virtual PC is completely useless for my business needs. For me, Virtual Server ends up being the best way to use Virtual Machine technology to do what I want. But, this should not affect either of our perceptions – we are just users with different needs satisfied by different segmentation of the same sort of “Virtualization” product.


For example, Virtual Server allows me to create and configure an entire Virtual Machine with a variety of options with one command line script and automate scripting these actions against an entire farm of Virtual Servers. Virtual PC cannot even come close to doing this. Meanwhile, Virtual PC has a really rich GUI and strong VM Additions support that improve interactive usability; something that Virtual Server cannot match.


This is how I tend to internalize and compare Virtual PC and Virtual Server.


Virtual PC



  • Rich GUI client for local interactive use.
  • Low security/High interactivity (Shared Folders, Drag/Drop, Cut/Paste).
  • No Automation/Scripting Interface.
  • Client-oriented features (Sound Card in VM).
  • All Guests use one CPU on the host.
  • As of Virtual PC 2004, x86 only

Virtual Server



  • Thin web-based admin and VMRC client for remote/headless administrative use.
  • High security/Low interactivity (nothing “shared” between Guests and Host).
  • Full Automation/Scripting Interface with COM.
  • Server-oriented features (Virtual SCSI emulation, per VM CPU throttling, VS Security model for delegation. But no Sound Card).
  • Guests use all CPUs on the host, but each Guest still sees and uses only one CPU.
  • As of Virtual Server 2005 R2, x86 and x64 supported

Conclusion


Virtual PC clearly targets the average interactive user with rich functionality and features. However, it trades off security for some functionality, cannot be scripted/automated, does not run as a service so requires a user login, and cannot utilize all CPUs on the host. On the other hand, these are all factors that Virtual Server perform well, but it also gives up on the rich, interactive user experience for a more headless, lightweight, remoteable, but limited interactive viewer.


Hopefully, this helps clarify why the two products exist, some of the users/market that each targets, and why one may like one, the other, or both, depending on needs.


//David

Comments (25)

  1. todd brooks says:

    Can you elaborate a little further on how you use Virtual Server, ie., what specific tasks do you use it for?

    I ask because I’m currently using both, Virtual PC allows me to test my company’s client application on multiple client operating systems, such as backwards support for Windows 95B/98. I use Virtual Server as an installed base for my company’s server application. I install all our releases on Virtual Server and it allows me to regression test and update/patch test.

    I am currently evaluating VMWare Workstation 5 mainly for the snapshot technology. It seems so much farther advanced than the snapshot functionality in Virtual Server. Only downside is VMWare’s app is not as user friendly, imo. But I’ll take that tradeoff in order to have multiple snapshots of service packs, hotfixed OS images, etc. for testing purposes.

  2. David.Wang says:

    Actually, I use Virtual Server for many of the same tasks that you already described.

    1. Servicing applications on older platforms

    2. Regression test against older platforms

    3. Compatibility test of present against older platforms

    4. Functional/Stress test of current platform/applications

    I treat Virtual Machine as a quick way to get back to a certain OS or a certain saved state, which can be persisted/copied onto any other machine. Thus, my automation focuses on making save/restore of state as easy as possible.

    From what I understand of VMWare snapshot, I believe the only "issue" with what Virtual Server does is that the VM transitions into and out of a "Saved VM" state, and you cannot interact with the VM in the "saved" state. But this process is pretty quick and you can copy the state around, so I do not see any problems.

    Disk space is cheap, so I just keep multiple VHDs, each with a different OS and service pack level, and I have my own custom VHD save/restore mechanism so that users can quickly find, use, and also share their VHDs from a centralized bank of images.

    I definitely do not try to optimize storage/proliferation of the VHDs. Why bother with extra logic when Disk space is cheap?

    //David

  3. Mike Kelley says:

    Aack! Am I supposed to be able to read the green letters on your gray background.

  4. zzz says:

    Why use Virtual PC or Virtual Server?

    I can see 1 reason: Because MS stops publishing standard ISO images of their CTP’s and starts using only VPC images.

    Why not use Virtual PC or Virtual Server?

    Because I fail to see what really useful either gives that vmware 5 doesn’t give and do better and faster! vmware had best features from both of MS’s Virtual products.

  5. Jason says:

    zzz, I find Virtual PC to be overall better than VMware although some features are missing.

    How do know that Microsoft has stopped publishing ISO images?

  6. Emanuel says:

    Hi,

    I am curious about the performace comparsion between Virtual PC and Virtual Server. I have setup Biztalk 2004 under Virtual PC on my home computer and the same environment on server.

    My PC is Pentium Celeron 2,6 GHz, 512 MB RAM with WinXP. Virtual PC perfoms well, Biztalk runs fast even with 256 MB memory allocated to Virtual PC.

    Virtual Server is installed on server with 2x Pentium Xeon 2,8 GHz, 2 GB RAM with Win2003. To work with Biztalk under Virtual Server reminds me Pascal on 286’s. It is so much slower I wouldn’t believe if I didn’t have to work with. I tried to increase memory (up to 1 GB), reserve processor usage, expand and defragment HDD, nothing helped. When I look at Task Manager, I see 100% CPU usage even when listing through directories. About 95% is taken by kernel activities. I guess that’s something with disk management, but undo disk is not used. Anyone knows?

    Also, I’ve heard that Virtual PC’s hdd is compatible with Virtual Server. Does this apply vice versa?

  7. David Wang says:

    Virtual PC and Virtual Server have the same core and should perform similarly.

    A lot of people have reported a variety of ways in which VMs under Virtual Server perform poorly, most all of them correctable with some tweaking. Virtual Server is more tunable than Virtual PC and thus more finicky.

    I suggest browsing through:

    1. microsoft.public.virtualpc newsgroup

    2. microsoft.public.virtualserver newsgroup

    3. http://blogs.msdn.com/Virtual_PC_Guy Blog

    4. Follow all the "Virtual PC Links" on Blog in #3 – Steve Jain, Robert Moir, etc

    Several things that come to my mind given your description:

    1. did not install VM Additions

    2. you are using Windows Server 2003 SP1 as Guest OS, which requires the beta Virtual Server VM Additions to re-accelerate.

    3. your machine is a laptop. Disable PowerStep and other related power-saving CPU features because they drain CPU cycles away from Virtual Server for emulation

    4. your network card is "buffering" data, causing hiccups inside the Virtual Machine. Disable "jumbo packets", "TCP offloading", etc on your physical network card.

    5. Since Virtual Server allows CPU throttling of Guest VMs, make sure to give comparable min/max CPU to your Guest VM comparable to Virtual PC.

    The above are just some of the common issues that people run into with Virtual Server when it comes to performance, and Virtual PC does not have most of them. However, that does not mean that Virtual PC is better or performs better – you have to look at the target audience of each product and the adjust settings accordingly.

    In other words, Virtual PC is bad at running multiple VMs because it hogs the system for each VM, Virtual Server is good at running multiple VMs but you need to tweak it when running single VM to likewise "hog the system" and get more resources. Otherwise, you are never comparing similar behavior.

    //David

  8. emanuel says:

    Hi David,

    thank you for your suggestions. I will check the operating system and try to tune up Virtual Server.

  9. emanuel says:

    Installing Virtual Server 2005 SP1 Beta has solved performance problems. Thanks again.

  10. David Wang says:

    The following are some of the more frequently asked questions when it comes to deploying a group Virtual…

  11. Ed says:

    Hi,

    I mainly want to use Virtual PC and Virtual Server on one host laptop pc (running WinXP-SP2) for self-development purposes.

    More specifically I would like to get to the following configuration

      – Host laptop environment:

           – Connected to the network (DCHP ip address),

           – Used for day-to-day job like mail, chat, web, …

      – Virtual Server with one Virtual Machine running

           – Windows Server 2003 with one fixed ip address

           – Oracle 10g installation (needs fixed ip address).

           – Oracle database instance.

      – Virtual PC with one Virtual Machine

          – WinXP-SP2

          – Some client applications that need to access the Oracle

            running in the server vm.

    Is this a viable configuration ?

    Can I start both vms at the same time ?

    Will my client apps be able to connect to the Oracle database ?

    If yes, will this be possible in a local-only mode, so that both the environments do not need to connect to the host network adapter ?

    What would be your advice ?

  12. Samuel Gomes says:

    So, is there any way that i can make two computers, work as one?

  13. David.Wang says:

    Samuel – Virtual Machine allows you to run multiple computers on one physical computer. They "work together" but not "as one".

    //David

  14. David.Wang says:

    Ed – It is not clear to me why you need to run both Virtual PC and Virtual Server. I would just run both Virtual Machines on Virtual Server.

    It simplifies the "local-only" mode where both Virtual Machines do not need the host network adapter to see each other, which is by-design.

    //David

  15. Ukkuru says:

    If I install Windows XP on a Virtual Server how many users can use the instance at the same time. ?

  16. Bernardie says:

    Hi David

    I really appreciate your BLOG !

    I hope (and trust from what I can see – you’ll be able too) you can help me with this issue:  I’m trying to restore a SQL DB (5Gig) on to a Virtual PC running SQL 2005.  I was able to successfully restore a smaller (1Gig) DB, but the 5Gig one fails.

    What could be the problem ?

    Could Virtual Server possible be a better option to run SQL with this size DB ?  (This is where the comparison relates…)

    Thanks!

  17. David.Wang says:

    Bernardie – I assume you are trying to restore a SQL DB inside the VM run by Virtual PC.

    What is the File System used by the Guest OS ? FAT32 will only support up to 4GB. NTFS will allow the 5GB SQL DB.

    Virtual PC/Server does not (and cannot) differ in the supported file size because that is a function of the File System, which Virtual PC/Server knows nothing about. Virtual PC/Server only know about VHD, which affects the size of a virtual hard disk, which has no relation to the File System.

    //David

  18. Tom says:

    Hi David,

    I’m having the same problem Bernardie was having. I created an secondary VHD to contain my customer’s databases. I get the smaller 50 mb sql server database to restore, but the 18 gig database fails at the end with a consistency error. I’ve tried two separate db backup files of this larger database and I get the same results each time.

    NTFS is the drive format, so that isn’t the source of my trouble. It even creates the mdf file.

    VPC tells the XP environment in the image there is about 90 gigs of available space because I chose to maximize the space when I created the VHD.

    I even copied the resulting mdf file several times and then deleted the copies just to make sure the physical VHD file on the host would grow.

    I have 285 gigs of space on the host drive where the vhd resides.

    Any thoughts on this?

    Thanks.

    Tom

  19. John Strutt says:

    I have 3 frequency scanners which I wish to set up on 1 pc.  I am thinking of installing virtual PC. I then intend to install 2 virtual PC’s on the computer I wish to use.  My last stage is to install the scanner software on the laptop and then on each virtual PC.  The scanners are connected to the laptop by USB.  

    I am new to this and would value any advice or comments.  Thank you in advance.

    John

  20. David.Wang says:

    John – Virtual PC/Server do not support emulating USB.

    //David

  21. derek says:

    how can i open xp in vista i already installed the two os but i have to restart to run them

  22. derek says:

    how can i open xp in vista and dont have to restart i have  the tow  os  installe

  23. Ted Burrett says:

    The style of writing is very familiar  . Did you write guest posts for other blogs?

  24. Sunny J says:

    Just ran into an issue trying to copy a 14Gb file from a virtual PC 2007 SP1 running XP SP3 as a guest OS on a W2K8 host OS using the Virtual PC Shared Folders option. It seems that the Virtual PC presents the mapped drive to the guest XPSP3OS as having a "Host Filesystem" filesystem, rather than the correct NTFS filesystem that the hostOS really is using. This results in a 4Gb (4,194,304 KB) filesize limit (similar to the FAT32 4Gb limit I imagine) when using Shared Folders. After the 4Gb is copied across to the mapped drive (i.e. to the folder on the hostOS) you get persistent "Delayed Write Failed" errors.

    A workaround to this is to map a shared Network Drive via a UNC path within the guestOS to the hostOS, eg. \hostPCnamec$

    HTH

  25. Cole K says:

    Thanks for writing this. I’ve been digging and digging to see where I should start with this Virtualization. This helps a lot. 🙂