Now that we have Hyper-V available as a Server Role on Windows Server 2008 Server Core I feel it's time to explain why Server Core would be the ideal Windows Server 2008 Installation method to install Hyper-V on, instead of the Full Installation method.
In this post I use 'Root Partition', while others may prefer to use 'Parent Partition'. These are actually the same, although 'Parent Partition' is considered more of a Virtual Server (Hypervisor Type 2) phrase, whilst 'Root Partition' more accurately describes the Hyper-V (Hypervisor Type 1)implementation.
There are some things you need to know before I can start to explain why Server Core is the ideal Root Partition. I'll explain the Hyper-V Architecture here briefly, so you might have a better understanding of the internals of Hyper-V.
Hyper-V is a Server Role you can install 'on' Windows Server 2008. Actually, what this does is install Microsoft's HyperVisor layer (or ring -1) and Microsoft's VMBUS underneath the Microsoft Windows installation. This way the original Microsoft Windows Server 2008 becomes the Root Partition, (Mark Russinovich has a more in depth story) which can also be described as the Virtual Host.
From within the Root partition you can create new Partitions, called Child Partitions, in which your Virtual Machines run. These Virtual Guests use the VMBUS to communicate through the Root Partition, its Virtualization Stack, its device drivers and its Hardware Abstraction Layer (HAL) with the physical hardware.
I guess the picture below says more than a thousands words:
Advantages and disadvantages
The way Microsoft implemented its HyperVisor has a couple of big advantages and also some disadvantages.
The advantages of the Hyper-V implementation are you don't need to know Linux (in the case of VMWare ESX), you don't need difficult or hard to find device drivers (the Windows Server 2008 x64 ones will do nicely) to interact with the hardware (abstraction layer) and you can utilize your favorite management tools (RDP, MMC, WMI, PowerShell, etc.)
The disadvantage of Hyper-V is performance, because of the VMBUS. Every Virtual Guest communicates with the Virtual Host to get something done by the hardware.
Where Server Core comes into play
The latest Hyper-V build (known as Beta 1) which came with Windows Server 2008 Release Candidate 1 v.735 now supports Windows Server 2008 Server Core as its Root Partition.
Since the Root Partition might be a performance bottleneck you want the Operating System in the Root Partition to be efficient. Besides being efficient you also want it to be effectively manageable and deployable. Clustering could also be considered a requirement
Server Core Installations in Windows Server 2008 are meant to be more efficient than Full Installations, since they don't spend CPU Cycles on the shell. Furthermore Server Core installations have a smaller footprint (both disk and RAM) than Full Installations, which makes for more room for Virtual Guests on the same physical hardware.
Since Server Core can also be used in scenarios with other Server Roles (Active Directory Domain Controller, DNS Server, DHCP Server, WINS Server) another advantage might be you can use the Root Partition to deliver these infrastructure services to the Virtual Guests.
The big disadvantage of Server Core (which is manageability) isn't a big disadvantage in the Server Core scenario. Installing Server Core is as easy as installing a Full Installation and nearly everything action you want to perform on a Server Core installation can be done via the Windows Automated Installation Kit (WAIK), Group Policy or Windows Management Instrumentation. The Virtualization team is working hard to release the Hyper-V Management Console (MMC) as a package for Windows Vista, which will be a welcome addition to the Windows Management Instrumentation. System Center Virtual Machine Manager tops the management bill.
The Hypercall API's will also be licensed under the Open Specifications Promise (OSP) which might result in powerful (open source) Hyper-V management tools on top of Windows Server 2008 Server Core.
Installing Hyper-V on Server Core is now available and I personally believe Server Core will be the ideal Hyper-V Root Partition.
The big remaining question to me is what Microsoft's standalone Hyper-V product (named "Microsoft Hyper-V Server") will look like, on what it will be based (Windows PE rumors are wide spread) and what functionality will be available.
Channel 9 – Mark Russinovich on Working at Microsoft, Windows Server 2008 kernel…
Technical Question Regarding Hyper-V – Device Virtualization
Microsoft Announces Hypercall API will be licensed Under Open Specification Promise
Wikipedia on x86 virtualization, Ring -1 and Hypervisors
[PPT] Vir040_WH06 Device Virtualization Architecture
[PPT] Vir043_WH06 How to Use the WMI Interfaces with Windows Virtualization
[PPT] Vir046_WH06 HyperCall APIs Explained
[PPT] Vir047_WH06 Hypervisor, Virtualization Stack, and Device Virtualization …
Disclaimer Beta Software
The information on this webpage applies to software from Microsoft that was in testing phase but utilizable by experienced users by the time the webpage was written. This software has not been released for sale, distribution or usage for the general public. The information on this webpage and the beta software are provided "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.