IT budgets are still strained, and the need to consolidate servers is more essential than ever. Because of the budget crunch, scaling up to mainframe-class systems is no longer a viable option for most enterprises, and so "scaling out" or using more small servers has become the trend in many IT departments. Even leading server vendor Dell has recently abandoned support for eight-processor servers in favor of smaller machines that can work together.
One of the fastest-growing trends in "scaling out" is server virtualization. This is the process of running an instance of a server operating system, such as Windows Server 2003, inside a software-based emulation system. Here is a closer look at server virtualization and how it can provide some great consolidation options for IT departments.
The two most popular players in this field are VMware, the current market leader, and Connectix, which recently became a part of Microsoft. Both vendors offer desktop and server versions of their emulation systems. Both focus their products to primarily run on top of Windows software, so I'll limit this discussion to that platform as the base OS.
The desktop versions of virtualization software can be used by developers to create instances of the OS for development testing, while IT administrators can use the same software to emulate server-class systems in a data center, which can be used for testing configuration changes and software upgrades. The server versions of the software can make a single server look like a group of servers by running multiple instances of server operating systems on the same hardware.
Both desktop and server flavors of both systems operate by creating virtual hardware, called a "virtual machine" (VM), which allows you to install the OS of your choice (with Windows, Linux, and Solaris on Intel commonly supported). This virtual hardware functions as if you were installing the software on physical equipment. Other software and processes may be running on what is known as the "host OS" (the OS that you install the emulation system on), with the exception of the ESX version of the VMware product (which I'll cover later in this article).
Both vendors have tools that create virtual network adapters to allow the VM sessions to communicate both with each other and with the outside world, depending on how you set up the network properties. Both solutions also offer integration software that can be installed on many "guest operating systems" (the ones you install inside virtual machines) that allows for better control of the mouse and smoother performance overall. Finally, both use virtual hard disks to create disk resources within the VMs. Virtual hard disks can be sized to meet your requirements or made "dynamic" so that they will grow as needed. These virtual disks are flat files that reside on physical disk systems, and you can assign an entire physical disk or logical volume to act as a virtual hard disk, if desired.
While the VMware Workstation product appears to have a severe impact on CPU and memory utilization when trying to run more than one VM at a time (especially on machines without lots of processor power and RAM), you can easily create multiple VMs on a single physical machine and simply run each one as needed to perform testing.
Microsoft's Virtual PC desktop system (formerly Connectix Virtual PC for Windows) seems to have fewer issues running multiple VM sessions at once. Just keep in mind that each session still needs processor time, so you will need to size the test hardware accordingly. Since the VM session works as if it were physical hardware, most tools that would work for provisioning and setting up operating systems on regular hardware will also work for your staff to quickly set up test environments.
VMware offers two server products, GSX Server and ESX Server, while Microsoft Virtual Server currently comes in only one version.
GSX Server works almost identically to the VMware Workstation product. You install a host server operating system onto the physical hardware. (Many are supported, though Windows 2000 and 2003 seem to be the operating systems preferred by VMware at the current time.) Once the host OS is installed, you perform the installation of GSX Server itself. Once the drivers are installed and the services started, you can create VM sessions that will then allow you to begin installing guest operating systems. GSX Server sometimes suffers from problems with multiple VMs running at once, but to a much lesser extent than does its desktop counterpart. You will be able to run two or more VM sessions at once on the server version of the product—just be sure to test the configurations under a simulated load before putting them into production.
ESX Server installs directly on the hardware itself because it incorporates its own host OS. Once the product is up and running, you can immediately begin creating and installing guest operating systems supported by VMware (which includes nearly anything that runs on Intel architectures). ESX Server does not appear to suffer from the performance degradation with multiple VMs that the other versions exhibit, allowing for a much higher degree of flexibility. Just remember that each VM needs resources, so provision your servers accordingly to make sure you don't run out of processor power and/or RAM.
Microsoft's Virtual Server (VServer), which is in beta as this article is being published, takes the Virtual PC product and applies it to the server world. Much like the PC product, you first install a host OS (on Windows 2000 Server or Windows Server 2003) and then install the VServer product. This allows you to create your guest operating systems running any Windows product. While other software could conceivably be installed, it is likely that Microsoft will only be supporting the Windows line in the guest operating systems; however, Microsoft has not yet officially announced the full details on support for operating systems. As with the desktop product, VServer allows for multiple VMs to be run at once, provided the server is properly provisioned with adequate hardware resources.
Putting VMs to work
Applications for this technology—from either vendor—are many, but there are a few very popular implementations being performed in the field today:
- Server consolidation is a hot topic in the IT marketplace, where multiple smaller servers are being brought together on beefed-up hardware. Virtualization allows for the smaller servers to remain autonomous, while still consolidating hardware. Since each VM is independent of any other running on the same box, each smaller server can be ported into a VM on a larger machine and still maintain its own "hardware" setup. For applications that don't like to play together on the same box, this allows you to safely use one physical server to host both apps (on separate operating systems), without worrying about them conflicting with each other.
- Disaster recovery (DR) is also a prime example of the uses of virtual servers. Since you will probably want system partition information to be replicated to your DR servers—and since doing so violates the integrity of most operating systems—you can't properly protect that part of your servers seamlessly using most normal replication tools. Prior to this point, your data could be easily protected, but applications and system information need to be configured by hand at the DR site. By using virtual servers, you can replicate the entire virtual hard disk, meaning that the system state, system files, and other normally locked files can be replicated to a VM on the DR server hardware, and brought online with little or no additional recovery beyond simply starting up the VM session.
- Server provisioning becomes a breeze with virtual servers. A basic installation can be created, and that virtual hard disk can be copied and started up over and over again. Renaming the virtual server and installing specific software for whatever you want that server to do is all that's required from that point. This can quickly speed up the process of bringing multiple servers into production, and it also streamlines the process by ensuring that the base install is always the same.
Server virtualization is an emerging technology whose time has come. The software needed to make this happen has reached maturity, and even comes in multiple flavors to meet different needs. Emulation has moved into the data center, and the impact is going to make your job somewhat easier, and a lot more recoverable and repeatable.