Hyper-V versus Desktop Computing

Some of my colleagues were talking to me about this blog entry this morning where Emmanuel is commenting on the inability to run Hyper-V on a system with high end graphics (as discussed here).

Before I talk about my thoughts / reactions here – I want to be clear:  Yes, this is a short coming in Microsoft’s virtualization offerings today. 

Hyper-V has been developed to be a great solution as a dedicated virtualization server, not as a desktop computing environment.  Similarly, Windows Virtual PC has been developed as a great application compatibility solution.  This means that neither of these solutions are ideal for people who want to use server class virtual machines (64-bit, multiprocessor, etc…) on a system that they also want to get a high fidelity desktop experience on.

Here at Microsoft we are well aware of the pain / problems this causes.

Despite that, I still feel frustrated when I see someone stating that they / their company is going to go with VMware because of this issue.  There are the three big reasons why:

  • Of all the different user groups that use virtualization, this is closest to my usage of virtualization, and I have a great time using Microsoft virtualization technology.  I have three main environments where I use Microsoft virtualization:

    • At home:

      My main desktop computer, which I use to do everything (work, gaming, being a nerd), is a quad-core system with 4GB ram and a nice video card.  I have Windows 7 installed on it with Windows Virtual PC.  I then have a Hyper-V server in the mezzanine under my stairs.  It is a quad-core system with 8GB ram and an old PCI video card that I had laying around.

      I have Remote Desktop and remote Hyper-V management enabled on my Hyper-V server, and I do all my Hyper-V work from my desktop environment.  The experience is great – and I have never hit a situation where I would have preferred to have Hyper-V running locally.  I also often run Windows Virtual PC and Hyper-V virtual machine at the same time and interact with both on the same desktop.

    • At work:

      Once again, I have a desktop system running Windows 7 with Windows Virtual PC (but this time it is a quad-core hyperthreaded Nehalem with 6GB of ram).  This system is actually a quad-monitor system with two high-end graphics cards (this is where I do all of my writing and email at work).

      For my Hyper-V work I have three low-end servers in our lab (all dual core with 4GB ram) that are setup with KVM over IP.  I often rebuild these machines with new builds of Hyper-V as they come out internally – but most of the time they are setup as a cluster (the third server acts as a software iSCSI provider).  And as with at home, I use the Hyper-V remote management tools to be able to do everything from my desktop.

    • On the road:

      I have been very picky building my laptop, as I demonstrate Microsoft virtualization technology with it a lot.  I usually have my laptop configured with 2 + N operating systems.  The “N” figure varies on how many demos I have coming up (I never do public demonstrations from the operating systems that I use for day to day work – as I have a high tendency to mess them up in interesting ways). The base 2 operating systems, however, are Windows 7 with Windows Virtual PC and Windows Server 2008 R2 with Hyper-V.  I boot into which ever operating system is appropriate given what I need to be doing at the time – and have not really found this to be much of an issue.

  • Setting up a dedicated Hyper-V server is really not an unreasonable proposition for most people in this situation. If you are in an environment like this – have you looked into what it would mean to have a dedicated Hyper-V server “under the stairs” / “in the lab”? 

    As I was writing this post, I went to newegg.com and built what I felt to be a good basic Hyper-V server.  The system I built ended up having a Intel Core2 Quad Q9400 2.66GHz processor, 8GB of DDR2 1066 memory, 2 Gigabit network adapters and 1 TB of storage – all for $606.91 (note, that I did not go for the cheapest components here either.  I went for cheaper components that were from manufacturers that I knew, or were components with good reviews.  You could probably knock another $100 off this by going for the cheapest possible components – but I really would not recommend doing that).

    To put that in perspective, if I were to upgrade my desktop video card to the latest available – I would be looking at spending $500 – $600.

  • Your decision may end up costing you more in the long term.

    Yes, VMware has free offerings (as does Microsoft).  But just as Microsoft is going to work to get you to pay for licenses of Windows to run on your free Hyper-V server, VMware is working hard to make sure that customers who start on their free offerings are enticed to “step up” to their paid offerings.

    Two years from now, when you have spent thousands (if not tens of thousands) of dollars for VMware technology (when you have already paid for the Windows licenses to run in the virtual machines) – will it really have been worth it to go with VMware instead of grabbing a dedicated entry level server to run Hyper-V?

This last point is really the one that chaffs me. 

If you tell me that you are going to use VMware workstation on your personal development system because we do not meet your needs – okay, I am bummed by that, but I can understand your reasoning.  If you tell me that your company is going to standardize on VMware because there is functionality / value that they provide in their server software that we do not – once again, bummer, and we will work hard to turn this around in the future – but I can understand that too.

But if you tell me that your company is going to standardize on VMware across the board because Hyper-V does not run well on your desktop environment, and you are not willing to get a dedicated entry level server to run Hyper-V, I cringe – because I do not believe you are heading in the right direction.

So where do we go from here?  Well, I am planning to do some posts in the near future where I am going to dig into the issue of high-end graphics + Hyper-V so that you can have a better idea of what is happening there – and what you can do to avoid it (yes, there are options available).

If there is anything else I can do to help here, please let me know (and before you say it “fix Hyper-V to run well on my desktop environment” is a bit out of scope for me personally :-)).