Hyper-V versus Desktop Computing

Hyper-V versus Desktop Computing

  • Comments 29

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 :-)).

Cheers,
Ben

Leave a Comment
  • Please add 1 and 4 and type the answer here:
  • Post
  • dnick -

    I hope we do too :-)

    Cheers,

    Ben

  • A. -

    Unfortunately we do not have a solution here, and you will have to use VMware or VirtualBox.

    Cheers,

    Ben

  • Hello,

    I also wanted to say vmware's thinapp is much smaller simpler and has only 1 file versus your appV

    Tyler

  • Hello,

    I'am a infrastructure consultant - I use a notebook for mobility reasons. When working on customer site it's important to me to be able to quickly start a VM to test some settings or to compare with the costomer environment. I also use VMs to test migration szenatiosm, scripts and configurations before documenting them. For me it's extremly painfull to loose the possibility to start a server OS in a VM - I have to reboot everytime I need a single scrrenshot .... Please add x64 support to WVPC.

    Andreas

  • I wonder if Mark Russinovich is still running VMware Workstation?  I had a chance to speak to him a couple years ago as he was transitioning to MSFT (this was at his final Windows Internals course with David Solomon).  I recall him saying he had an exemption to run VMware because of 64-bit guests. :-)

    One would have to assume this capability is coming soon for VPC.  But you know the old saying about "assume."

    Eric Gray

  • Hi there

    Sorry for my ignorance, but surely if Windows 7 and Windows 2008/R2 are built on the same core(big assumption?), how difficult would it be to just port hyper-V over to windows 7 and supply it as an unsupported, free download for developers?

    Ideally I would prefer if I could just continue using Virtual PC with x64 support without having to now consider porting them all across to VMware. I have always championed VPC in organisations because of the free VPC that MS delivered for testing and just preferred the way they work with ISO's and Shared folders but with the age of x64 approaching, without having to dual-boot my laptop, another virtualisation solution will have to be used by me and the rest of our development team. This also affects or current production use of hyper-v, as we can’t then use the same image easily across both environments.

    PLEASE PLEASE PLEASE speak to the powers that be and make something happen. Developers are Microsoft; help us get the tools we need to help Microsoft. You never going to drive large scale adoption of Hyper-v until developers are happy and able to work on the platform.

    Riccardo

  • There seems to be a fundamental misunderstanding, leading to questions about why Hyper-V can't run "on top of" Windows 7.  (Ken, and now Riccardo, both asked this question.)

    Hyper-V does not run "on top of" any OS.  It is a bare-metal hypervisor; it runs directly on top of the hardware.  All your OSes run on top of Hyper-V.  If you installed Hyper-V as part of Windows Server 2008 (R2), then even that copy of Windows Server 2008 runs on top of Hyper-V after the reboot.

    There is no technical reason that you cannot *TODAY* run Windows 7 on top of Hyper-V Server (the standalone Hyper-V, not the role bundled with Windows Server).  But it's so complicated that it's clearly better just to use Windows Server 2008 as a workstation.

    The main problem is how to install Windows 7 after Hyper-V has been installed.  The only way to administer a standalone Hyper-V Server is to do remote administration (see: Hyper-V Server FAQ).  Thus, you will temporarily need at least one other computer to administer the install from.  After the install, you can then administer Hyper-V "remotely" from within the Windows 7 VM, assuming that you've got the NAT/private network setup correctly.

    Needless to say, this is quite a complicated process for people who are used to hosted hypervisors, such as Virtual PC or VMWare Workstation.  It's a big change.  You need two computers.  You need to install remote admin tools on two PCs.  You need to understand the intricacies of VM networking.  And after it's all done, you still have the problems with high-end graphics cards.

  • On second thought, scratch that idea.

    There's no console access at all from Hyper-V standalone, right?  So even though you *could* run Windows 7 on top of Hyper-V, without Windows Server, it'd be more-or-less useless because you could never access the VM instance from the console.

  • Riccardo -

    If you beleive you would be happy with Hyper-V as it is today on Windows 7 - then use Windows Server 2008 R2 as your desktop operating environment.  Just be aware of the potential for performance issues as is outlined in this post.

    Cheers,

    Ben

  • Hi Ben,

    it would be really interesting if you can post some insights on your Laptop config and how you get along with this on the road.

    Cheers,

    Artur

  • Like others, I've run into several issues with Hyper-V as a desktop VM solution, but the one I see mentioned the most is the problem with modern graphics card performance.  Some have complained that this hasn't been fixed in R2.  However, that's not exactly true.  Windows Server 2008 R2 has support for Second Level Address Translation (SLAT), aka Extended Page Tables (EPT), aka Nested Page Tables (NPT), aka Rapid Virtualization Indexing (RVI).  On hardware that supports this, and with Server 2008 R2 Hyper-V for your VM solution, modern graphics cards (and their associated WDDM 1.1 drivers) work fine.  The catch is that you need an Intel i7 (Nehalem) processor or a recent AMD processor to have that support -- Intel Core 2 Duos and Quads don't support EPT.  This prompted me to switch from my C2D E8400 to an i7 920 for my desktop VM machine; with 2008 R2, Hyper-V no longer suffers from the horrible slowdown in the video drivers.

  • Hi Scott - really?! That's great news if so. I've got a Core i7 920 processor as well, and an NVidia graphics card... so if I were to upgrade to R2 I'd be able to use it properly with the regular drivers?

  • John, that is correct.  I'm using the latest 190.62 Win7 x64 drivers for my 9600GT on Win2K8 R2 with Hyper-V with no discernible slowness.  When I had a C2D E8400 for my desktop instead of an i7 920, with the same graphics card (but, granted, not the RTM of the OS yet, as it wasn't available), I experienced the same poor graphics performance noted in this blog and other places.  So, give it a shot -- you may be pleasantly surprised.

  • This developer says this really sucks... I'm stuck on R2 with no VM's... I'm 100% Microsoft and found myself installing VMware today... that Java/Wildcat/Crap didn't work in R2 either... but come on... get this fixed, obviously developers are going to be in this scenario -- high-end system, including video and running the latest OS.

Page 2 of 2 (29 items) 12