In what circumstances would you choose each of the following deployment options:
- Hyper-V installed as the bare bones Windows Hyper-V Server 2008 R2
- Hyper-V role installed on a Windows Server 2008 R2 Server Core installation
- Hyper-V role installed on a Windows Server 2008 R2 Full Installation
For example, I know there are licensing considerations for each option:
- With Hyper-V on top of a full installation of Enterprise or Data Center edition, you can use Windows Server as a guest OS without needing additional licenses (4 for Enterprise, unlimited for Data Center)
- With "Windows Hyper-V Server" you have to obtain licenses for each guest OS.
But my real question is, are there technical considerations as well?
I understand that the Full Installation doesn't perform as well as the other two options, but is there a significant difference between Server Core and "Windows Hyper-V Server"? What are the pros and cons of Hyper-V on Server Core vs "Windows Hyper-V Server" and when would you choose each?
Off the top of my head, Hyper-V Server does not allow for high availability (so if you want to do clustering, you need the full version of Windows, either core or full install). It also does not do quick migration or support more than 4 processors and 32 GB of RAM.
Hyper-V Server and Server core have command-line GUIs, which can make administration of some tasks tricky, although you can do most of the administration through Hyper-V Manager or Virtual Machine Manager once the server is setup.
For reliability, you would want to use the Server Core installation instead of the full install in the parent partition. The fewer services there are running in the parent partition, the less components there are to patch or that could cause reliability issues (and the attack surface of the server is reduced as well).
As you note, there are also licencing benefits to using the full version of Windows Server... Enterprise Edition includes a license for 4 virtualized versions of Windows, and Datacenter provides licenses for unlimited virtualized guests.
There's a useful table here to help with the decision: http://www.microsoft.com/hyper-v-server/en/us/default.aspx
A couple thoughts before you write off using the Full version of R2. I was a die-hard fan of Server Core (Still am actually) but after a year of running Hyper-V cluster on Server Core, I have some new thoughts on Core vs Full.
With R2, we now have Cluster Shared Volumes and Live Migration so you can move VM's between nodes without any downtime. It's essentially the equivalent of V-Motion from VMWare. Now that I don't have to pause/resume VM's to fail them over, the patching of physical nodes is not such a big deal anymore.
Secondly, as much as I love command lines, half of my ops do not like them as much. I ended up being the top resource because of the steep learning curve when all you have to work with is the command line. So, depending on the skill of the group that will be managing the servers day to day, this might be a factor.
Also, for networking, if you ever get into teaming NIC's, good luck doing that in Server Core. To configure teaming on Intel and Broadcom, you'll need to use their software that only installs on Full.
Considering the HA you get with live migration and the ease of managemmet with the GUI for our operations team, I am encouraing our team to move to the Full version of Server 2008 R2.
Minor Update
After reading this whitepaper, it looks like CSV is recommended but not required for Live Migration. In my earlier post, I had inferred that you needed CSV for Live Migration. This is not necessarily the case.
In theory the full Server 2008 wouldn't give as good performance as Core or Hyper-V Server, but my experience is that I can't tell the difference. Full Server 2008 obviously uses more memory and disk space, but as long as you have enough of both there's no difference. I prefer to use full Server 2008 because you can run any app on it while lots of things won't work on Core. Also you run into lots of unexpectedly difficult tasks on Core and Hyper-V Server. For example modifying the local security policy means using secedit to export the policy, editting it in Notepad and importing it again (or using a group policy I suppose :-).
However we do use Hyper-V Server. It's great as a "utility" server because it takes less than two hours from putting in the DVD to having it up and running. We use it to provide backup servers and development servers, and as places to put VMs if any maintenance is needed on the main servers. We usually wouldn't backup the Hyper-V Server installs because if you lose a server it's as quick to put in the DVD and rebuild as it is to restore it. Because the driver support in 2k8 is pretty good, if you need a temporary Hyper-V server virtually any reasonably recent server can be pressed into service as a Hyper-V Server at short notice.
For me the odd man out is Server Core. I can't see why you'd pay use Server Core (for Hyper-V) when it has the same difficulties as Hyper-V Server and costs money. Obviously things are different if you're going to run other roles on the Server Core.
John Rennie
Quick note on newest Hyper-V Server 2008 R2 (to update information in previous posts): See http://www.microsoft.com/hyper-v-server/en/us/default.aspx for details
Can perform host clustering Can perform Live Migration Does support > 32GB memory on the host (up to 1TB) Does have support for > 4 Processors (up to 8)
John Rennie mentioned the question as to why you would run core for only the hyper-v role, rather than just the Hyper-V Server (for free). Hyper-V Server Server 2008 does not come with any licenses for guest servers. If you run 2008 R2 Standard Core you get one free guest license, and with Enterprise you get 4 free guest licenses, and with Datacenter, unlimited.
Michael Isaacs