(This answer is adapted from a Techscrawl.com blog entry “VMWare ESX / Microsoft Hyper-V Comparison” Posted on 14 Aug 2008 by Clay)

Microsoft Hyper-V and VMware ESX are hypervisor based solutions. They install directly on the hardware and require no lower level OS beneath them, however their architecture is quite different.

The hypervisor is a critical component of and foundation of virtual infrastructures. Fundamental characteristics of a hypervisor are:

  • Have a purpose-built, thin OS independent architecture for enhanced reliability and robustness
  • Make optimal use of available hardware resources
  • Deliver performance acceleration features that support mission critical applications
  • Enable advanced capabilities not previously possible on physical systems

ESX installs a hypervisor on the hardware. It acts as the intermediary between the hardware and any virtual machines running on the server. Hardware device drivers are included in the hypervisor. This is called a direct driver model.

Hyper-V also installs on bare metal. But all management functions and access to hardware is controlled via a “root partition” that runs the Windows Server (or Server Core) 2008 OS. This root partition is actually a special virtual machine, through which hardware I/O requests from child partitions travel via the VMBus architecture. This is called an indirect driver model. So basically before you enable the Hyper-V role, your server OS is of the typical architecture, after enabling the role, Hyper-V installs itself on top of the hardware, and places your original OS into this special virtual machine, the root partition.

A comparison of certain key features between platforms:

  • ESX supports both 32 & 64-bit hosts, Hyper-V requires a 64-bit host that supports hardware-assisted virtualization. All platforms support 32 or 64-bit guests.
  • Maximum Logical Host CPU’s: ESX = 32, Hyper-V = 16 (can do more, but not supported)
  • Maximum Supported Host Memory: ESX = 256 GB, Hyper-V = 2 TB (2008 Enterprise Ed.)
  • Maximum Memory per Guest OS (VM): ESX & Hyper-V = 64 GB
  • Maximum Supported Running VM’s: ESX = 128, Hyper-V = limited only by available resources
  • RAM Over-Commitment: Supported in ESX, not supported in Hyper-V. (This allows RAM allocated to VM’s to exceed actual available RAM in host).
  • NIC Teaming: Native support in ESX. Hyper-V only supports via 3rd party drivers.
  • Maximum # Virtual Switches: ESX = 248, Hyper-V = unlimited