Virtualization is steadily making its way into the SQL Server world for use in server consolidation scenarios as well as for development and testing. VMware’s ESX Server 3.5 is the established leader in the server virtualization market. However, Windows Server 2008’s Hyper-V has an architecture that mounts a serious challenge to ESX Server 3.5.
In this article, I compare Hyper-V to ESX Server 3.5. I explore the architectural differences between the two products and compare the products’ overall feature sets. Next, I discuss my management and setup experiences. Then I compare the products’ performance. For Hyper-V, a newcomer to the virtualization market, performance is a real question mark, whereas ESX Server 3.5 has proven that it can deliver enterprise-class performance. Can Hyper-V meet the virtualization standards set by ESX Server 3.5? To find out, I ran basic performance tests on both platforms with some revealing results. All of the testing in this article was performed using the beta version of the Hyper-V code that was shipped with Server 2008.
Pros: Very good performance; great price
Cons: Bad remote management experience; needs a better management console
Recommendation: Because of its low cost andsupport, Hyper-V is great for midsized businesses planning to adopt Server 2008.
Contact: Microsoft • 800-426-9400 • www.microsoft.com
Thick vs. Thin Hypervisor
ESX Server 3.5 and Hyper-V both utilize hypervisor-based architectures. Hypervisor-based virtualization performs better than older, hosted virtualization technologies. Hosted virtualization products, such as Microsoft Virtual Server 2005 R2, run the virtualization software on top of the host OS, which adds significant overhead and a longer code execution path for the virtual machines (VMs) that run in the hosted virtualization environment. In contrast, hypervisor-based products, such as ESX Server 3.5 and Hyper-V, are designed to run the hypervisor directly on the system hardware. There’s no OS between the hypervisor and the system hardware. Although ESX Server 3.5 and Hyper-V both share a similar hypervisor-based architecture, there are significant differences in the way the products are designed, as you can see in Web Figure 1 (www.sqlmag.com, InstantDoc ID 99218).
One of the biggest differences between ESX Server 3.5’s hypervisor and Hyper-V’s hypervisor is the way they handle device drivers. With ESX Server 3.5, the hardware drivers are part of the hypervisor, which increases the size of the hypervisor and limits the hardware that ESX Server 3.5 can run on. That said, ESX Server 3.5 is supported on most of the server systems made by all the tier-one vendors such as HP, Dell, and IBM. These vendors also sell system configurations with ESX Server 3.5 preloaded. To see a list of ESX Server–compatible systems, go to www.vmware.com/pdf/vi35_systems_guide.pdf.
In contrast, Hyper-V uses a microkernel hypervisor that doesn’t contain any device drives. The hypervisor contains the minimum amount of code required to schedule and share hardware resources between the active VMs. This architecture ensures that the hypervisor has the best possible performance and reduces the potential attack surface of the hypervisor. Hyper-V leverages the native Windows device-driver model utilizing the device drivers in the guest VMs. Hyper-V also includes a new high-performance VM architecture that enables Server 2008, Windows Vista, Winders Server 2003, and Xen-enabled Linux to pass hardware requests along a new memory pipeline called the VMBus.
Both products are managed using the first VM partition. ESX Server 3.5’s VM partition is based on a Linux shell and is command-line oriented. In addition, ESX Server includes an easy-to-use Windows-based management console called the Virtual Infrastructure Client, which can be downloaded from ESX Server 3.5’s Web console. Likewise, Hyper-V is managed using the VM running in the first partition. For Hyper-V, this partition is called the parent partition. Other VMs run in child partitions. Hyper-V’s parent partition is also used to run VMs with legacy OSs, such as Windows 2000 and Windows NT, that can’t utilize Hyper-V’s VMBus architecture and must run using the older hardware model.
ESX Server 3.5
Pros: Excellent performance; easy installation; a polished management console
Cons: Somewhat limited hardware support
Recommendation: ESX Server 3.5 is great for large businesses looking for performance and manageability.
Contact: VMware • 877-486-9273 • www.vmware.com
Unlike Virtual Server 2005 R2, Hyper-V’s new architecture and 64-bit host system bring its feature set into parity with ESX Server 3.5. You can see a comparison of the products’ features in Web Table 1.
The primary differences between the products begin with the hypervisor itself. As I said earlier, ESX Server 3.5 includes a hypervisor that contains device drivers. In contrast, Hyper-V includes a hypervisor that contains no device drivers. Both products provide support for 32-bit x86 and 64-bit x64 guest OSs and large VMs with as much as 64GB of RAM per VM. Booting VMs from either an iSCSI or Fibre Channel SAN is also supported by both products. For Hyper-V, the physical host server supports only hardware-based virtualization (e.g., Intel-VT or AMD-V), and virtualization must be enabled in the BIOS.
One area in which ESX Server 3.5 excels is in support for Live Migration (i.e., moving running VMs from one host to another). However, this feature requires VMware’s VirtualCenter, which comes at an additional cost. VirtualCenter is included with the VMware Infrastructure Enterprise product. VMware’s Live Migration capability (called VMotion) also requires a SAN. Hyper-V doesn’t support Live Migration, but when combined with failover clustering Hyper-V does support what Microsoft calls Quick Migration (i.e., saving the state of a running VM and moving that VM to another host where it can be quickly restarted). ESX Server 3.5 is limited to 128 active VMs (which is probably more than enough for most people), and Hyper-V is limited only by the available system resources. Unlike desktop virtualization products, neither product provides support for guest audio or USB.
Overall, the feature set provided by each product is comparable. ESX Server 3.5, in combination with VirtualCenter, offers Live Migration, but Hyper-V supports larger host systems and more active VMs. Both products support 64-bit guests with large memory addressability.
Setup and Management
Setting up both systems was relatively easy. However, setting up ESX Server 3.5 was much faster and easier than the Hyper-V installation. Although the ESX Server 3.5 installation was character-based, the screens were easy to follow, and I had a functional server running in about 20 minutes. The setup itself prompted for all the necessary networking and configuration information and there was no need to reboot the server. In fact, I never needed to reboot the ESX Server system during the entire testing process, which is a statement I can’t make about Server 2008 and Hyper-V. Although ESX Server 3.5 is natively managed using a Linux-based command shell, I never really needed to deal with the command shell during my tests. The Virtual Infrastructure Client, which is shown in Figure 1, enabled me to create and manage all the VMs that were required.
I downloaded and installed the Virtual Infrastructure Client by pointing my browser to ESX Server 3.5’s IP address. The Virtual Infrastructure Client management console connected and worked right away with no hassles. I found its management layout to be very professional and usable. It provides both VM management and host performance information. Although the management console doesn’t let you perform many server reconfiguration functions, in my testing, no server reconfigurations were required.
I had a good deal of trouble getting Hyper-V set up and running. However, I’m sure that much of my trouble occurred because I was using a beta version of Hyper-V. To perform the SQL Server testing, I originally attempted to install Hyper-V using Server Core but found the process hamstrung by Hyper-V’s nonfunctional remote management. (Remote management is mandatory for Server Core, which doesn’t provide a graphical interface.) I then tried John Howard’s (a senior program manager for Hyper-V) 17-step process for getting Hyper-V remote management to work, which can be found at blogs.technet.com/jhoward/archive/2008/03/30/part-3-hyper-v-remote-management-you-do-not-have-the-requested-
permission-to-complete-this-task-contact-the-administrator-of-the-authorization-policy-for-the-computer-computername.aspx. However, this process didn’t work for me. This convoluted installation process could be a real showstopper for Hyper-V and will obviously have to be fixed before the final release of the feature. Running Hyper-V on Server Core would be advantageous because of its lower overhead and reduced attack surface. The fact that I couldn’t make Hyper-V work on Server Core really made me appreciate ESX Server 3.5’s simple and functional delivery of the management client.
Due to time constraints, I gave up on the Server Core installation and ran Hyper-V on a full Server 2008 installation using the local console for management. After installing Server 2008, I installed the Hyper-V role using Server 2008’s Server Manager. Not counting the failed Server Core installation attempt, it took three reboots before the server was fully set up.
Figure 2 shows Hyper-V’s management console. Theoretically, multiple Hyper-V server instances can be managed in the left pane of Hyper-V Manager, although I couldn’t connect to any remote servers. Selecting a server instance displays that server’s VMs in the Virtual Machines pane. You can then manage the VMs by right-clicking them and selecting options from the context menu. I found Hyper-V Manager to be less functional and less well thought out than ESX Server 3.5’s management console. I thought that the Snapshot pane in particular was poorly positioned, and it seemed that everything was forced to fit inside the generic Microsoft Management Console (MMC) 3.0 framework. Although Hyper-V Manager doesn’t show detailed server performance information, basic VM management using the management console was functional and easy.
SQL Server VM Performance
Performance is where the rubber meets the road. To compare the performance of ESX Server 3.5 and Hyper-V, I created four VMs, each of which was running Server 2008 Enterprise Edition configured with 512MB of RAM running SQL Server 2005 Enterprise Edition SP2. For each platform, I used the default virtual hard disk configuration options. Four Server 2008 instances can be simultaneously active as VM guests with no additional Server 2008 licensing costs. (I’ll discuss licensing in more detail later.)
All of my testing was conducted on an HP ProLiant ML370 G5, which is a rack-mounted 4U server. My test unit included two Quad-Core Intel Xeon processors running at 1.86 GHz on a 1066 MHz front-side bus. The ProLiant ML370 G5 came equipped with 8GB of RAM and eight 72GB 15,000 RPM drives configured as a RAID array.
For the test workload I used 27 different queries running against the sample AdventureWorks database. Although the bulk of the workload was data retrieval, the batch also contained a couple of computational loops and four SELECT INTO statements to add some computational and data modification operations. A think time of three seconds was inserted between each database interaction.
The workload was executed from four physical client machines, each of which used Microsoft’s sqlcmd utility to launch the workload against all four SQL Server systems running as VMs. Then the client paused for three seconds. This process was repeated 10 times, creating a total of 40 running jobs from each of the four clients where each client was running 10 separate connections per server. This test revealed how each of the virtualization platforms was able to respond to increasing workloads and to the total workload with all four virtualized SQL Servers actively servicing 40 queries. The final performance measurement that I used was the average time required to complete the measured workloads. The tests were run multiple times and the results were averaged. Web Figure 2 compares the overall performance of the two platforms.
As you can see in Web Figure 2, the results were surprisingly close, with ESX Server 3.5 providing better performance under the tested workload. Although ESX Server 3.5 edged out Hyper-V by 4 percent in the performance tests I ran, Hyper-V made a competitive showing in spite of the fact that it was prerelease code. I expect the final release will provide very similar performance results. I also expect that the glaring remote management problems will be corrected in the final release. However, I don’t expect Hyper-V’s management console to be improved to match ESX Server 3.5’s Virtual Infrastructure Client. You should bear in mind that although these results were representative of the test workload that I ran, it’s possible that different workloads and environments could produce varied results.
Virtualization and Licensing
Price is another area in which there’s a significant difference between ESX Server 3.5 and Hyper-V. ESX Server 3.5 has always been a chargeable product and is the staple of VMware’s product line. In my comparison of each of the product’s licensing and pricing structures, I used VMware Infrastructure Foundation 3, which includes the following components:
- ESX Server 3.5
- VMware Virtual Machine File system (VMFS)
- VMware SMP
- VirtualCenter Agent
- VMware Consolidated Backup
- VMware Update Manager
In contrast, Hyper-V is included in Server 2008, making it essentially free to organizations running Server 2008. Because Hyper-V is a 64-bit technology, you must have x64 hardware and use one of the x64 editions of Server 2008. Hyper-V is included in Server 2008 Standard Edition x64, Server 2008 Enterprise Edition x64, and Server 2008 Datacenter Edition x64.
Microsoft does make three versions of Server 2008 that don’t include Hyper-V (aptly named Server 2008 without Hyper-V), and the price difference is negligible at only $28. Hyper-V also isn’t included in Windows Web Server 2008, Windows HPC Server 2008, or Server 2008 for Itanium-based Systems.
The pricing for the two tested configurations is shown in Web Table 2. Note that this table uses retail pricing, whereas most businesses use Microsoft’s volume licensing.
One important point to be aware of is that Server 2008 Enterprise Edition and Windows 2003 R2 allow for as many as four active virtual Windows instances with no additional costs. This licensing is the same whether you use Microsoft or VMware virtualization products. In addition, Server 2008 Datacenter Edition and Windows 2003 R2 allow an unlimited number of virtual Windows instances no matter which virtualization platform you’re using. You can also run an unlimited number of SQL Server 2005 Enterprise Edition instances on VMs no matter which virtualization technology you’re using. The end result is that the inclusion of Hyper-V with Server 2008 makes Hyper-V a less expensive virtualization option than ESX Server 3.5.
The Bottom Line
My testing revealed that both Hyper-V and ESX Server 3.5 deliver excellent levels of performance. For midsized businesses, especially those organizations just getting into virtualization, I found Hyper-V to be compelling. Being bundled with Server 2008 makes the price point very attractive and the Windows-based management tools make it easy to use. However, ESX Server 3.5’s better performance, more mature management tools, and Virtual Infrastructure 3 management suite provide a more feature-rich platform for large organizations.