Server Virtualization and the x64 Platform

As servers become more and more powerful, the x64 platform is a great fit for server virtualization. The high performance of the x64 chips and increased memory capacity of the servers allow server virtualization to take advantage of the processing capacity. Server virtualization products such as VMware’s VMServer and ESX Server and Microsoft Virtual Server 2005, allow you to run an x64 OS such as Windows Server 2003 x64 as the host OS, and VMServer also supports x64 OSs as guest virtual servers. A match made in heaven? Maybe, but there are pitfalls that can ruin your plans to run an x64 OS, both for the host and guest OS.

The first problem you might encounter is running an x64 OS as the host OS. Make sure to check with your hardware server vendor to ensure that the particular model of server you select is supported on the x64 platform. Let’s assume you plan to use Windows 2003 x64, either Standard Edition or Enterprise Edition, as the host OS. You would think that any Intel Extended Memory 64 Technology (EM64T--Xeon or Pentium D) or AMD-64 (Althlon, Opteron, Turion)-based server would support the x64 version of Windows 2003, right? Well no. It’s not enough to have the correct processor; you must also have the corresponding x64-compatible chipset and BIOS. I’ve seen specific models of earlier HP servers that had Xeon processors that didn't support Windows 2003 x64. All of the major server virtualization products support the x64 platform including Microsoft’s Virtual Server 2005, VMware’s VMServer and ESX Server as the host OS. ESX Server has a custom-developed kernel that is used for the host OS, and you can download a compatibility guide from http://www.vmware.com/pdf/esx_system_guide.pdf to ensure ESX Server will work with your server. Bottom line--if you plan to use an x64 OS as the host OS, check with your hardware vendor to verify the planned host OS will work with your server.

If the following conditions are true of your environment:
1. You’re running an x64 host OS such as Windows 2003 x64.
2. You’re running VMserver as the server virtualization software.
3. You have an EM64T Intel processor.

then make sure to add the following line to the Guest Server’s Configuration (*.vmx) file:

sched.mem.pshare.enable=FALSE

This setting disables memory sharing between different virtual machines (VMs). If you fail to add this parameter to the guest server’s configuration file, the performance of the guest OS will be terrible. You'll experience extremely high processor utilization (80 percent or higher) when running two or more VMs even with no load on the virtual server.

The second pitfall is a common one, especially if you haven’t purchased your sever within the last quarter. To my knowledge, the only vendor that supports an x64 guest OS is VMserver. Virtual Server 2005 and ESX server support only 32-bit guest OSs. If you want to run an x64 guest OS, you must have a processor that’s one of the following types:
- AMD Athlon 64, revision D or later.
- AMD Opteron, revision E or later.
- AMD Turion 64, revision E or later.
- AMD Sempron 64-bit capable version, revision D or later (experimental support)
- Intel EM64T VT-capable processor (experimental support)

If you have a server that uses a 64-bit AMD processor, you have a better chance of running an x64 guest OS, than if you have a server running an Intel processor. In my experience, only the very latest dual-core Intel Xeon processors can run an x64 guest OS. I’ve seen earlier dual-core Xeon processors that didn't support x64 guest OSs. You can download a processor check utility that will tell you whether your server is capable of running an x64 guest OS at http://www.vmware.com/download/server/drivers_tools.html. If you haven’t purchased your server yet, make a call to pre-sales technical support and verify that your selected server can run an x64 guest OS if you want to support 64-bit applications running on a virtual server. Another problem you might encounter is that your processor might be virtualization technology-enabled, but virtualization technology might not be enabled in the BIOS. After you enable it in the BIOS, make sure to hard boot your server or the setting might not take effect.

The x64 platform is great for server virtualization, but you have to do your homework if you want to use an x64 OS as the host and guest OS. In my experience, the x64 OSs seem to run faster than a 32bit OS on the same hardware. I haven’t done any formal testing, but just navigating around, the OS is snappier. Another advantage of the new dual-core processors is that they're also hyperthreaded, so one socketed processor appears as four logical processors to Windows 2003. Even if the host server has multiple processors, I suggest allocating only one processor to any guest VM. Allocating more than one processor just seems to slow down all the VMs running on the host. Using the x64 platform for both the host and guest OS is relatively bleeding edge. Make sure you do your homework to avoid getting cut.

Tip

The production version of VMware Server was released on July 10. You can download it from http://www.vmware.com/download/server/. Be sure to complete the registration process to receive your free serial numbers.