Software vs. Hardware Virtualization

Hyper-V provides the engine, or hypervisor, required to support the operation of multiple virtual machines on top of standard server hardware. Hyper-V is Microsoft’s first foray into hardware-accelerated hypervisors.

Hyper-V extends the reach of Microsoft’s initial guest operating system virtualization technologies—Virtual Server 2005 R2 and Virtual PC 2007—by providing a virtualization platform that is integrated into Windows Server 2008 as one of the 17 default server roles.

As such, Hyper-V is available in the Standard, Enterprise, and Datacenter editions of Windows Server 2008. Hyper-V is also available through the stand-alone Windows Hyper-V Server.

Hyper-V is a Type 1 hypervisor—that is, a hypervisor that is considered a bare-metal hypervisor and runs directly on top of hardware. Type 1 hypervisors are often referred to as hardware virtualization engines. Microsoft’s previous hypervisor offerings were Type 2—hypervisors that operated as applications on top of existing operating systems.

Microsoft Virtual Server and Microsoft Virtual PC are both Type 2 hypervisors. They provide software virtualization. Type 1 hypervisors provide better performance and greater flexibility because they operate as thin layers designed to expose hardware resources to virtual machines, reducing the overhead required to run the hypervisor itself.

Hypervisors are virtual machine monitors that are designed to keep track of all of the events that occur within a virtual machine and, when required, provide (or deny) access to appropriate resources to meet virtual machine operating requirements.

Ideally, the virtual machine monitor will perform its operations through the use of policies that contain all of the settings assigned to a particular VM.

Hypervisors in general provide several benefits:

  • System Consolidation Hypervisors support the operation of multiple systems on the same physical hardware, reducing costs and physical server footprint yet delivering similar and often improved services.
  • System Testing Hypervisors support the isolation of systems, letting you test new software and applications without affecting production. They also provide a very low-cost testing alternative to physical systems.
  • Heterogeneous System Operation Hypervisors support the simultaneous execution of multiple operating systems on the same physical hardware, letting organizations run heterogeneous systems on reduced hardware footprints.
  • Hardware Optimization Hypervisors increase hardware usage through the operation of multiple workloads on each physical host server. Server usage can increase from 5 to 10 percent to upward of 60 or 70 percent.
  • Application High Availability By sharing workloads through technologies such as failover clustering, servers running hypervisors can support application high availability, ensuring that services are always available when running inside virtual machines.
  • Resource Optimization By running different applications in different virtual machines, hypervisors can increase resource utilization because each application requires different resources at different times.
  • Service Flexibility Because hypervisors support the operation of systems through virtual machines, organizations gain flexibility because virtual machines are easier to clone and reproduce than physical machines.
  • Dynamic Resource Management Hypervisors support manual or automated resource allocation to virtual machine workloads as peak usage occurs. Because of this, hypervisors provide better support for dynamic resource allocation in datacenters.

Type 2 hypervisors run on top of existing operating systems and are nothing more than applications in their own right.

There are several examples of Type 2 hypervisors, or virtual machine monitors, and the ones that IT professionals are most commonly familiar with are the Java virtual machine and the .NET environment, both of which are engines that can be used to spawn virtual environments at a higher level in the application stack.

These two products are classic Type 2 virtual machine monitors because they control all access to the core resources of the operating system they rely on. Microsoft Virtual Server and Microsoft Virtual PC are considered hybrid Type 2 virtual machine monitors because of the way they operate.

Although they are used to spawn virtual environments higher in the application stack, they are also used to grant access to the operating system kernel or ring 0 to the virtual machines they support. This is done by putting the Windows operating system in stasis while the core CPU resources are assigned to the virtual machine.

However, Virtual Server and Virtual PC are still considered Type 2 hypervisors because all VM requests are still routed through the underlying Windows operating system. However, these two products are often referred to as hosted virtualization platforms because they rely on an existing operating system to operate.

The advantage of Type 2 hypervisors is that they make it very easy to access virtual machines under normal circumstances.

For example, you could easily run Virtual PC on your production desktop and gain access to all sorts of different operating systems and applications running inside virtual machines while continuing to have access to all of your productivity applications—given, of course, that your desktop has sufficient resources such as CPU, RAM, and disk space.

Because of this, Type 2 hypervisors have become part of the standard toolkit for most IT professionals.

Type 1 hypervisors run directly on the hardware with no underlying operating system. Because of this, they are a function in and of themselves. Servers that run Type 1 hypervisors are often single-purpose servers that offer no other function.

They become part of the resource pool and are designed specifically to support the operation of multiple applications within various virtual machines. Type 1 hypervisors are typically more efficient than Type 2 hypervisors, yet in many ways they both provide the same type of functionality.

In the case of Hyper-V, this hypervisor offers several improvements over Microsoft’s Type 2 hypervisors— notably, support for x64 as well as x86 virtual machines, support for symmetric multiprocessing (SMP) within virtual machines, and significant performance improvements.

Many IT professionals will become familiar with virtual machine technology through Type 2 hypervisors and then move on to Type 1 hypervisors when ready. Most organizations run Type 2 hypervisors in testing, development, and training environments because of the flexibility they provide.

They run Type 1 hypervisors in production because of the stability, robustness, and high availability they can provide.