The Virtual Reality

Original Article Date: 2008-09-10

It's likely that you've heard the word virtualization at some point, especially in the last few years, as Intel and AMD hype up their support of it, and Microsoft, Linux vendors and VMware expound on how great their virtual machines are in saving on hardware costs. But what is virtualization?

Essentially, virtualization is the simulation of one or more virtual machines on a single physical machine. An example is running both Windows Server and Redhat Linux on one server simultaneously. This is not like "dual-boot", but is actually the facility of booting up and running both operating systems in memory at the same time.

Virtualization has a surprisingly long history, and has featured in computing in one form or another since the 1960s.

Benefits of Virtualization

Why virtualize? Well, the basic reason is saving on hardware costs and space. With virtualization, you can run, for instance, a web server, a mail server and a database server all on the same machine, but with each virtual server thinking it is its own machine, with total separation of memory and object space and all the security benefits that come with having separate physical machines.

These advantages become especially prevalent with the plummeting cost of RAM and the advent of quad-core computing, in which low cost servers with oodles of computing power have become available. With virtualization you can leverage this huge increase in hardware power and capacity by stacking up virtual machines on them.

Workstation users can also find uses in virtual machines, as they enable different brands or versions of operating systems to run on a single physical machine. For instance, a developer may need to test their software on both 64 and 32 bit versions of Windows Server, or a certain application might only be available in Linux for a user running Windows Vista.

The uses of virtualization are limited only by human imagination. One of our customers, for instance, virtualized all their fail-over servers onto a single physical server. This was a great idea because it saved them having to invest in a dozen matching failover servers for each primary server in operation. The physical machine hosting all the failover servers would not be overtaxed, since only one of those virtual servers would likely be needed at any given time (i.e. when its primary partner failed).

How it Works

At its most basic, virtualization provides a software layer that abstracts the real hardware of the underlying physical machine to one or more instances of virtual machines running on top of it. Such a piece of software is traditionally called the Virtual Machine Monitor, but is more often referred to these days as the Hypervisor.

There are two main types of Hypervisor:

  • Hosted - in which the Hypervisor runs off a host operating system as a special program.
  • Native (or "Bare-Metal") - in which the Hypervisor is itself the base operating system on the physical machine.

Native Hypervisors, if coded well, provide performance advantages over Hosted solutions in that the guest operating system (the Virtual Machine), is only two layers above the physical hardware (i.e. Hardware -> Hypervisor -> Multiple VMs). Virtual Machines running on Hosted Hypervisors are three layers above the physical machine (Hardware -> Host OS -> Hypervisor -> Multiple VMs), and so will likely encounter reduced performance with the additional layer overhead.

In emulating hardware and providing a layer through which multiple VMs can access processor instructions, etc. virtualization has significant challenges. IA-32 (x86) architecture, for instance is not natively virtualization friendly, hence the need for modification of CPUs in the last few years. Intel's Vanderpool (Intel VT), AMD's Pacifica (AMD-V) enhancements to Xeon and Opteron processors greatly assist Hypervisors and VMs in terms of stability and performance, although even these solutions are not perfect and many tricks have to be employed by the Hypervisor which can cost valuable CPU resource.

Popular Commercial and Open-Source Solutions

Very many virtualization environments exist in the market today, both open-source and commercial. The choice is almost bewildering. When considering a virtualization solution, however, it helps to begin in deciding whether you want the performance advantages of a Native Hypervisor, or the ease of installation of one that is Hosted.

The most popular Native Hypervisor software today is VMWare ESX Server due to its high performance in server environments. This is likely to remain the Hypervisor of choice for Linux users.

Just in the last month or so, however, Microsoft finally released their own Native Hypervisor called Hyper-V which now ships with Windows Server 2008 for free. Hyper-V has significant economic benefits in that with Windows Server 2008, no additional software is required, and multiple instances of the OS can be installed on the same machine without additional licenses needing to be purchased.

Popular Hosted Hypervisors include the open source Xen, Microsoft's free Virtual PC, and VMWare Workstation & GSX Server.

Summary

Anyone running a small business server should be seriously considering virtualization at this moment. The advantages of leverage the enormous (and cheap) server power available today are not to be ignored. Where four separate servers were required in the past, perhaps one, loaded with dual quad-core processors and stacks of RAM, is only necessary today.

The great thing is that you can experiment with virtualization without spending a penny, as there are plenty of solutions out there which are either open-source or provided free with commercial operating systems. Once you feel that the advantages to your business are proven, you can then consider one of the commercial Native Hypervisor solutions that would provide the enterprise level stability and performance that you need.

Best regards,


Ben Ranson
Chief Systems Engineer
Electronics Nexus
http://elnexus.com
ben@elnexus.com
1-877-773-5366