Server Virtualization:
Definitions, Pros and
Cons
With rising costs, budget
constraints, increasing costs for energy, floor space, etc.
virtualization for servers is making a big push. It has been
around for a while first with servers for Internet web sites
but now it is making the move into the enterprise, allowing
companies to do more with less hardware. But is the push to
virtualization all about money (not that money alone would
not be a major driving force) and what is the current state
of the art with virtualization?
Definition
Server virtualization is defined
as the pseudo-packaging of server resources from end users.
This includes the number and identity of individual physical
servers, processors, and operating systems. The IT
department (sorry, had to mention them) uses a software
application that allows them to divide one physical server,
usually beefed up with fast and multiple processors, lots of
disk space and boatloads of RAM into multiple isolated
virtual environments. These virtual environments, often
called virtual private servers, hold space on the system in
files that emulate a real piece of hardware running whatever
it is configured to run.
Approaches to Virtualization
There are three basic ways you can perform virtualization:
one at the operating system level, one being the paravirtual
model (PVM) and the most popular, the virtual machine model.
NOTE: When referencing guests in all three models, we are
referring to the Virtual Operating System that is running.
The
Virtual Machine model uses the host/guest paradigm. Each
guest or virtual machine runs on and in a virtual
imitation of the hardware layer. Software allows
configuration of these virtual machines with respect to
how much disk will be dedicated, how many processors,
how much RAM and even what flavor of operating system
from which vendor will be used. By using this approach,
the guest operating system can run without
modifications. Another advantage is that it allows
administrators to create guests that use different
operating systems. The guest operating system has no
knowledge of the host's operating system because it is
not aware that it's not running on real hardware. This
is handled by the virtual server application software
that hosts the virtual server. VMware and Microsoft
Virtual Server both use the virtual machine model and
handle all access to the real hardware for these guests
via a Hypervisor or virtual machine manager. The
Hypervisor is a program that allows multiple operating
systems to share a single hardware host, allowing each
guest operating system to have access to the host's
processor, memory, and other resources all to itself. In
reality, the hypervisor is actually controlling the host
processor and resources, allocating what is needed to
each operating system in turn and making sure that the
guest operating systems (called virtual machines) cannot
disrupt each other.
The
Paravirtual Machine model (PVM) is also based on the
host/guest paradigm just as the VMM did. And just as the
VMM did, it uses a virtual machine monitor too. The main
difference is that in the paravirtual machine model the
virtual machine monitor (VMM) actually modifies the
guest operating system's code. This modification process
is called porting. Porting allows the VMM to utilize
privileged systems calls sparingly and thus makes the
virtualization run more efficiently. Just as with
virtual machines, the paravirtual machines are capable
of running multiple operating systems. Xen and UML (User
Mode Linux) both use the paravirtual machine model to
accomplish virtualization.
The
third method, virtualization at the OS level, works a
little differently. OS Level virtualization isn't based
on the host/guest paradigm. The host runs as a single OS
kernel as its core in the OS level model. That OS kernel
exports operating system functionality to each of the
guests. A limitation of this implementation is that the
"guests" must use the same operating system as the host.
Even though they are all running the same operating
system, the distributed architecture eliminates system
calls between layers, which reduce CPU usage overhead.
OS level virtualization also requires that each
partition remain strictly isolated from its neighbors so
that a failure or security breach in one partition isn't
able to affect any of the other partitions. Examples of
this type of implementation are Virtuozzo and Solaris
Zones through opensolaris which both use OS-level
virtualization.
More Bang for the Buck
Server virtualization may not be for everyone. If you have
very high-end applications that consume lots of resources
and do lots of disk and memory access, you may not want
those server applications placed in a virtual environment.
Lesser-used or departmental server functions can be carried
out nicely in a virtual environment. This will allow the
purchase of a server loaded with disk and RAM, take only one
place in your rack of servers and carry out multiple server
functionality. In addition to the things already mentioned,
server virtualization can be used to more efficiently use
server resources, improve server availability, assist in
disaster recovery, testing and development and to centralize
server administration. It is well worth looking at this as
an option when you are looking at purchasing new hardware to
replace aging servers. Just make sure that what you want to
run will work in the virtual environment of your choice.
Check with the manufacturer of the software you intend to
run in that virtual environment and make sure they support
it and they license the software for use in a virtual
environment. Not having the vendors blessing can be a deal
breaker when it comes to support!
How can I get more information on this subject?
We strive to stay up to date and
provide you with the latest information available on
technical subjects that are gaining momentum. Technical
trade publications are a good place to start, but getting
information from a partner that uses and supports technology
is a great way to stay on the leading edge and away from the
bleeding edge of technology. If you have questions or
comments about this article or if there is anything new on
the subject, contact me. I would be happy to respond!
All product names / logos, company
names / logos are copyrights of their respective holders.
John Boline is an MCSE, CNE, USE and a member of the Network
Professional Association. The content herein is often
based on late-breaking events. Much of the material is based
on information from sources that are believed to be
reliable. Hagerman & Company, Inc. disclaims all warranties
as to the ultimate accuracy or completeness of the
information. Hagerman & Company, Inc. and its employees
shall have no liability for errors, omissions or
inadequacies in the information contained within this
article or for any interpretations thereof. The
recommendations, positions and best practice policies
outlined herein represent Hagerman & Company, Inc. initial
analysis and therefore are subject to change as further
information which may have bearing on these positions is
made available. The reader assumes sole responsibility for
the selection of these materials to achieve its intended
results. The opinions expressed herein are subject to change
without notice.
Hagerman & Company, Inc.
assumes no obligation to update the forward-looking
statements made in this newsletter to reflect any change in
circumstances, after the date of publication.
Entire contents 2009 Hagerman & Company, Inc. All
rights reserved. Reproduction of this publication in any
form without prior written permission is forbidden