Just because you can doesn’t mean you should, mixing Hyper-V and other applications in Windows Server

I have got the highest respect for Hyper-V. It’s simple to use I don’t need to learn any new interface (it’s just another mmc snap-in)  in which to mange the virtual world.  However when someone asks me if they can install other roles alongside hyper-V in production I say “Oi mate NO don’t do it”.

The problem here is that it is possible to do this with Hyper-V, for example to run SQL Server  alongside hyper-v  in the host operating system.   It’s not  a FAQ but do get asked about the advisability of this by customers and I have seen internal threads asking the same thing.  Rather than ask why this a bad idea let me debunk some “myths” about why people think it is a good idea:

  • You’ll get more performance from the system this way.  The theory runs that SQL will run only slightly slower on a virtual machine (vm) than it will on the same physical hardware.  However if you are after performance then SQL Server is now going to have to contend for resources the hosted virtual machines on the same server, the hypervisor expects to get the whole physical server and works underneath the host operating system anyway and so will still affect SQL server performance either way. In fact the host operating system is bottom of the list for memory resources the virtual machine get priority and you can’t reserve cpu for the physical machine either.
  • It’s cheaper from a licensing perspective. No it’s not. If you use the host operating system for anything other than hyper-v you must license that operating system.  You won’t be able to use any fewer licenses of any other application like SQL Server doing this either. Microsoft’s licensing as applied to virtualisation takes the decision to virtualise or not out of the equation.
  • It’s best practice. Really? send me a link to the site that says so and I’ll send you some swag.
  • I’ve been told to.  Please tell me who told you do this so I can enlighten them.

In fact the only reason I put applications alongside hyper-V is for ease of use and a better experience when I am showing how infrastructure stuff works in my demo environment.  So I have Office installed on the base OS along with on using hyper-V for demos.

If I was putting a virtual machine infrastructure into production, I would use the free Hyper-V Server in as the host operating system and remotely manage this with server manager or System Center on a client machine, as this is lightweight and secure and still easy to manage.