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