Chris Henley is a fun and energetic representative of Microsoft. He works on the Developer Platform Evangelist team at Microsoft as an IT Professional Evangelist in the western region and is the co-author of Microsoft Windows Server 2008 R2 Administration Instant Reference from Sybex press. Chris is a regular speaker and presenter at user groups, Technet events, and major conferences around the US.
He has extensive experience in the world of computer networks. He is passionate about the way that technology helps people. He has an entertaining and insightful style of communicating technical information and of making difficult concepts easy to understand. He is an expert in server architecture and network design. He loves to push the envelope of what we think about computers, and what software can do. Chris spends his spare time playing XBOX360 with his wife and kids, fly fishing, camping, hiking, and searching for the best chocolate cake on planet earth.
Type 2 Hypervisors (Virtual PC, VMware workstation, Virtual Server 2005R2 etc.) all have one thing in common. They all have 2 Hardware abstraction Layers (HALs,) which means in a nutshell that they are useless for any kind of infrastructure workload. When I say infrastructure workload what I mean is any server workload that has a database back end. Those 2 HALs are particularly ruthless at consuming the performance capacity of hardware when it is being used by a database. Microsoft has declared for years that infrastructure workloads like Exchange, SQL, Active Directory, and SharePoint are not supported in Type 2 hypervisor platforms. So what do we do if we want to run those servers in a virtual environment. The answer is pretty obvious; we can no longer use type 2 hypervisors in our attempts to host server infrastructure. The only other option is to move to a type 1 hypervisor environment.
With the release of Windows Server 2008 Microsoft introduced Hyper-V. Hyper-V is a type 1 hypervisor that runs natively on Intel or AMD processors that support Virtualization. Hyper-V represents a radical shift away from a multi-HAL hosted virtual environment to a single HAL native virtual environment. In real English what that means to you and I is that we can now host infrastructure workloads in a virtual environment. Awesome!
The architecture of Hyper-V is based on a design called MicroKernalized Hypervisor Design. This design implements a shared Virtualization stack and a distributed driver model that is incredibly flexible and incredibly secure. It allows each of the individual virtual machines to be isolated and durable. It makes partitioning a snap, and the drivers all run within the Virtual Machines so there is no fear of 3rd party code execution across virtual machines. Microsoft has differentiated itself with this design choice for Hyper-V. No one else uses it. Which means no one else can take advantage of its unique benefits. The competition uses Monolithic design which implements a shared driver model from the hypervisor itself. This model is still really complex but it does not offer the same benefits as the Microkernel approach.
Now the really cool thing about both designs is that they are true type 1 hypervisors. There is no host operating system! Instead the hypervisor is providing the operating platform for all operating systems that will run in the environment. When you think about this concept it changes your paradigm around what is a “virtual” machine and what is a “Physical” machine. The hardware is the physical machine and the operating systems are all virtual. The thing that is interesting about the operating systems is that they don’t know they are virtual. In the big picture all of the operating systems in a Hyper-V (or any type 1 hypervisor) are Guest operating systems. I know there are some of you out there scratching your heads saying “Hold on a minute! What about the operating system that I installed to install Hyper-V? Where does that fit in? Isn’t that a physical machine?”
The answer comes from the installation process for Hyper-V.
When we install Hyper-V the very first thing we do is go to the BIOS and enable hardware virtualization. If your hardware does not have hardware virtualization support then its game over.
Once we have enabled hardware virtualization then we install Hyper-V. Now Hyper-V has to come from somewhere. There are actually several somewhere’s we can choose from for the location of the source files for Hyper-V. We could install Hyper-V server which is a free download command line version of Windows Server with only the Hyper V role as an option for install. This is the lightest footprint option. We could install Windows Server 2008 R2 server core edition. This is also a light footprint option that is command line based but does come at a cost. We could install standard edition Windows Server 2008 R2. We could install Enterprise edition Windows Server 2008 R2. Finally, we could install Datacenter Edition of Windows Server 2008 R2. All of these options have the install files (called the Hyper-V role) to write Hyper-V to the underlying hardware.
Everyone asks me, “What’s the difference between Hyper-V in each of these editions of Windows Server 2008 R2 and Hyper-V server?” The answer is absolutely nothing. The hypervisor is the same regardless of the edition you install. The only difference comes from the hardware necessary to support the Parent operating system after Hyper-V is installed.
After the installation of Hyper-V the system will demand a reboot. When the machine reboots Hyper-V will now regulate the startup of all operating systems after Hyper-V is up and running, even the operating system the was used to write the hypervisor (Hyper-V) to the physical hardware. Now that original operating system has a special function being that it can actually write to the hypervisor so we don’t simply call it a guest operating system instead we call it the Parent operating system.
Homework: Download a copy of Hyper-V server and attempt your first install.