Thursday, June 4, 2009

Why Use Virtualization

Virtualization is unquestionably one of the hottest trends in information technology today. This is no accident. While a variety of technologies fall under the virtualization umbrella, all of them are changing the IT world in significant ways.

In layman terms means to make one physical server do the work of many. If you have four servers installed that are only 20% laden and you remove three of them and assign all the work to one, it means Virtualization.

Most organizations explore virtualization for one of the following reasons:

1. Server consolidation: By consolidating multiple server instances on one set of hardware, efficiency is gained by more fully using the hardware. This also results in power saving costs.

2. Application Migration: Some applications do not run on newer server operating systems, creating a need for the ability to host virtual instances of legacy operating systems to run these applications.

3. Increase IT Agility: Provide the ability to rapidly add and move servers to respond to changing business needs.

4. Software Development: By saving and restoring a set of template virtual hard drives (VHD), developers can rapidly cycle through test scenarios during software development processes

Benefits of Virtualization

1. Lower number of physical servers - you can reduce hardware maintenance costs because of a lower number of physical servers.

2. By implementing a server consolidation strategy, you can increase the space utilization and power efficiency in your data center. The bottom-line is savings resulting from power consumption and cooling by as much as 80%. Fewer physical servers are significant for most organizations but is particularly important to those with big server farms, tight IT budgets, limited power supplies, or any combination of the above

3. By having each application within its own "virtual server" you can prevent one application from impacting another application when upgrades or changes are made.

4. You can develop a standard virtual server build that can be easily duplicated which will speed up server deployment.

5. You can deploy multiple operating system technologies on a single hardware platform (i.e. Windows Server 2003, 2008, Linux, Windows 2000, etc).

6. By taking advantage of server virtualization you can easily improve the efficiency of your Data Center, as well as lower your cost of ownership

Wednesday, June 3, 2009

Understanding Virtualization Technology

Although you may consider a computer as just one of
those boring pizza boxes (the term stems from the
resemblance that 1U rack-mount servers have to the box that
pizzas are delivered in, although we tend to believe that it’s
more reflective of the fact that pizza and technology are inextricably
intertwined in the lives of true geeks), in fact a computer
combines a number of different resources to enable the
automated processing of data.
Four of these resources are crucial to virtualization:


Processor: The central processing unit (CPU) is what
turns random information into organized data. CPUs
manipulate strings of characters, add and subtract numbers,
and arrange for information to flow in and out of
the system. As you’ll remember, virtualization enables a single physical computer to
support multiple virtual guest systems. The ability to
coordinate processor access by the separate guest systems
is one of the main challenges of virtualization, particularly
since the x86 processor was never really
designed to support multiple guests.


Memory: A computer contains physical memory to store
the data that the processor manipulates. Similar to the
processor, memory must be carefully managed to enable
multiple guests to share a single set of physical memory
without allowing separate guest systems to overwrite
one another’s data. And, as you might have guessed, x86
memory was not designed with multiple guest access in
mind.


Network: Today’s computers are, by default, social; they
communicate with one another as well as sending and
receiving data from the great cloud that is the Internet.
While data flows back and forth on the physical network
card within a virtualized system, it’s critical to ensure
that each virtual system receives the appropriate network
traffic.


Storage: The fourth critical resource that is affected by
virtualization is storage — data residing in a place that it
can be retrieved from. If you’ve ever installed a hard
drive in your own computer, you’ve managed storage! To
repeat the refrain, each virtual guest system must have
its own data storage and the virtualization software must
keep each guest system’s storage isolated.

Virtualization Makes Hardware More Important


Even though virtualization is a software technology, it has the
effect of making hardware more important. This is because
removing lots of servers and migrating their operating systems
to virtual machines makes the remaining servers that
support all those virtual machines even more important.


Although IT organizations could allow individual servers to go
down in a “one application, one server” environment because
each system failure would inconvenience a single user population,
virtualization is very different. Each server supports
multiple virtual machines and multiple user populations. If a
virtualization host goes down, it may affect many applications
and all of those applications’ users.


The importance of hardware is only going to increase as new,
virtualization-ready hardware comes to market. There are
significant virtualization capabilities being cooked up by
hardware manufacturers, so don’t overlook the role of hardware
in your virtualization infrastructure.


Consequently, as you move forward with virtualization software,
the perhaps unexpected effect is that your hardware
environment becomes more important.


Storage virtualization


The amount of data organizations are creating and storing is
exploding. Due to the increasing shift of business processes to
Web-based digital applications, every company is being inundated
with data.


This explosion of data is causing problems for many of them.
First, from a sheer storage capacity, many applications generate
more data than can be stored physically on a single server.
Second, many applications, particularly Internet-based ones,
have multiple machines that need to access the same data.


Having all of the data sitting on one machine can create a bottleneck,
not to mention presenting risk from the situation
where many machines might be made inoperable if a single
machine containing all the application’s data crashes. Finally,
the explosion of machines mentioned earlier in the chapter
causes backup problems; in other words, trying to create safe
copies of data is a Herculean task when there are hundreds or
even thousands of machines that need data backup.


For these reasons, data has moved into virtualization as
well. Companies use centralized storage (virtualized storage)
as a way of avoiding data access problems. Furthermore,
moving to centralized data storage can help IT organizations
reduce costs and improve data management efficiency.


Server virtualization


There are three main types of server virtualization: operating
system virtualization; hardware emulation; and paravirtualization,
a relatively new concept designed to deliver a
lighter weight (in terms of application size), higher performance
approach to virtualization.



Operating system virtualization
Operating system (OS) virtualization (sometimes called containers)
runs on top of an existing host operating system and
provides a set of libraries that applications interact with,
giving an application the illusion that it is (or they are, if there
are multiple applications) running on a machine dedicated to
its use. The key thing to understand is that, from the application’s
execution perspective, it sees and interacts only with
those applications running within its virtual OS, and interacts
with its virtual OS as though it has sole control of the
resources of the virtual OS. Crucially, it can’t see the applications
or the OS resources located in another virtual OS.

This approach to virtualization is extremely useful if you want
to offer a similar set of operating system functionalities to a
number of different user populations while using only a single
machine. This is an ideal approach for Web hosting companies:
They use container virtualization to allow a hosted Web
site to “believe” it has complete control of a machine, while in
fact each hosted Web site shares the machine with many
other Web sites, each of which is provided its own container.
Operating system virtualization imposes little overhead for
the virtualization capability, thereby ensuring most of the
machine’s resources are available to the applications running
in the containers.

There are some limitations to operating system virtualization,
though. First and foremost, this approach typically limits operating
system choice. Containerization usually means that the
containers offer the same operating system as the host OS and
even be consistent in terms of version number and patch level.
As you can imagine, this can cause problems if you want to run
different applications in the containers, since applications are
often certified for only a certain OS version and patch level.
Consequently, operating system virtualization is best suited
for homogenous configurations — for those arrangements
operating system virtualization is an excellent choice.

Companies offering operating system virtualization include
Sun (as part of their Solaris! operating system) and SWSoft,
which offers the commercial product Virtuozzo as well as
sponsoring the open source operating system virtualization
project called OpenVZ.



Hardware emulation
In hardware emulation, the virtualization software (usually
referred to as a hypervisor) presents an emulated hardware
environment that guest operating systems operate upon. This
emulated hardware environment is typically referred to as a
virtual machine monitor or VMM.

The VMM provides a standardized hardware environment that
the guest OS resides on and interacts with. Because the guest
OS and the VMM form a consistent package, that package can
be migrated from one machine to another, even though the
physical machines the packages run upon may differ. The
hypervisor, which resides between the VMM and the physical
hardware, translates the calls from the VMM to the specific
resources of the physical machine.

This approach to virtualization means that applications run in
a truly isolated guest OS, with one or more guest OSs running,
one per VMM. The VMMs all reside on the virtualization hypervisor.
Not only does this approach support multiple OSs, it can
support dissimilar OSs, differing in minor ways (for example,
version and patch level) or in major ways (for example, completely
different OSs like Windows and Linux can be run simultaneously
in hardware emulation virtualization software).


Common applications for hardware emulation are software
development and quality assurance, because it allows a
number of different OSs to be run simultaneously, thereby
facilitating parallel development or testing of software in a
number of different operating system environments. Hardware
emulation is also used in server consolidation, where a
number of operating system/application environments are
moved from separate physical servers to a single physical
server running virtualization software.

There are a couple of drawbacks to hardware emulation, however.
One is that the virtualization software hurts performance,
which is to say that applications often run somewhat
slower on virtualized systems than if they were run on unvirtualized
systems.

Another drawback to hardware emulation is that the virtualization
software presents a standardized hardware interface
(the VMM) to the guest operating system. The hypervisor provides
an interface to the VMM and then translates that into
calls to the actual physical resources on the machine. This
means that the hypervisor must contain the interfaces to the
resources of the machine; these resources are referred to as
device drivers. If you’ve ever installed new hardware in a PC,
you know that you often have to install a device driver into
the operating system so that the new hardware and the operating
system can communicate.

The device driver issue for hardware emulation is that the
hypervisor contains the device drivers and there is no way
for new device drivers to be installed by users (unlike on your
typical PC). Consequently, if a machine has hardware resources
the hypervisor has no driver for, the virtualization software
can’t be run on that machine. This can cause problems, especially
for organizations that want to take advantage of new
hardware developments.

Companies offering hardware emulation virtualization software
include VMware (in two versions, VMware Server and
ESX and ESXi Server) and Microsoft, which offers a product called
Microsoft Hyper-V Server 2008. Another possibility
is Xen, a hypervisor-based open source alternative.



Paravirtualization
Paravirtualization is the name for another approach to server
virtualization. In this approach, rather than emulate a complete
hardware environment, the virtualization software is a
thin layer that multiplexes access by guest operating systems
to the underlying physical machine resources.

There are two advantages to this approach. First, it imposes
less performance overhead because it is a very small amount
of code. Hardware emulation, you’ll recall, inserts an entire
hardware emulation layer between the guest operating system
and the physical hardware. By contrast, paravirtualization’s
thin software layer acts more like a traffic cop, allowing one
guest OS access to the physical resources of the hardware
while stopping all other guest OSs from accessing the same
resources at the same time.

The second advantage of the paravirtualization approach
compared to hardware emulation is that paravirtualization
does not limit you to the device drivers contained in the virtualization
software; in fact, paravirtualization does not include
any device drivers at all. Instead, it uses the device drivers
contained in one of the guest operating systems, referred to
as the privileged guest. Without going into too much detail
about this architecture here, suffice it to say that this is a benefit,
since it enables organizations to take advantage
of all the capabilities of the hardware in the server, rather
than being limited to hardware for which drivers are available
in the virtualization software as in hardware emulation
virtualization.

It might seem that paravirtualization would be the way to go.
However, there has been one significant drawback to this
approach to virtualization: Because it is lightweight and multiplexes
access to the underlying hardware, paravirtualization
requires that the guest operating systems be modified in
order to interact with the paravirtualization interfaces. This
can only be accomplished by having access to the source
code of the guest operating system. This access is possible
for open source operating systems like Solaris and Linux,
and is only possible for Microsoft operating systems with
Microsoft source code access. The good news is that Quad-
Core AMD Opteron! processors featured within Sun x64 systems
provide functionality that enables unmodified operating
systems to be hosted by a paravirtualized hypervisor.
Consequently, this drawback to paravirtualization will diminish
as servers with these new chips take their place in production
infrastructures.

One example of paravirtualization is a relatively new open
source product called Xen, which is sponsored by a commercial
company called XenSource. Xen is included in the recent
Linux distributions from Red Hat and Novell, as well
as being available for many community Linux distributions
like Debian and Ubuntu. XenSource itself sells Xen-based
products as well. Another possibility is Virtual Iron, a
Xen-based solution.

Sorting Out the Types of Virtualization


Now that you have a rough idea of virtualization and why it’s
an important development, what are your options regarding
it? In other words, what are some common applications of the
technology?
A number of common uses for virtualization exist, all centered
around the concept that virtualization represents an abstraction
from physical resources. In fact, there are enough kinds
of virtualization to make it a bit confusing to sort out how you
might apply it in your organization. The two most common
types of virtualization applied in the data center are server
virtualization and storage virtualization. Within each main
type there are different approaches or “flavors,” each of which
has its benefits and drawbacks. Which are explained in the next few chapters

Why Virtualization Is Hot, Hot, Hot

What’s all the shouting about? Why is virtualization the sensation
of the season? This section goes over four reasons virtualization
is so important



Trend #1: Underutilized hardware
Today, many data centers have machines running at only 10 or
15 percent of total processing capacity. In other words, 85 or
90 percent of the machine’s power is unused. However, a lightly
loaded machine still takes up room and draws electricity, so
the operating cost of today’s underutilized machine can be
nearly the same as if it were running flat-out.It doesn’t take a rocket scientist to recognize that this situation
is a waste of computing resources. And, guess what? With
the steady improvement in performance characteristics of
computer hardware, next year’s machine will have twice as
much spare capacity as this year’s (and so on, for the foreseeable
future). Obviously, there ought to be a better way to
match computing capacity with load. And that’s what virtualization
does — by enabling a single piece of hardware to
seamlessly support multiple systems. By applying virtualization,
organizations can raise their hardware utilization rates
dramatically, thereby making much more efficient use of corporate
capital.
So, the first trend that is causing virtualization to be a mainstream
concern is the unending growth of computing power
brought to us by the friendly folks of the chip industry



Trend #2: Data centers run out of space

The business world has undergone an enormous transformation
over the past 20 years. Business process after business
process has been captured in software and automated,
moving from paper to electrons.
The rise of the Internet has exponentially increased this transformation.
Companies want to communicate with customers
and partners in real-time, using the worldwide connectivity of
the Internet. Naturally, this has accelerated the move to computerized
business processes.
The net effect of all this is that huge numbers of servers have
been put into use over the past decade, which is causing a
real estate problem for companies: They’re running out of
space in their data centers. And, by the way, that explosion of
data calls for new methods of data storage. These methods go
by the common moniker of storage virtualization, which, as
you may guess, means making it possible for storage to be
handled independently of any particular piece of hardware.
Virtualization, by offering the ability to host multiple guest
systems on a single physical server, allows organizations to
reclaim data center territory, thereby avoiding the expense
of building out more data center space. This is an enormous
benefit of virtualization, because data centers can cost in the
tens of millions of dollars to construct.



Trend #3: Green initiatives demand better energy efficiency

Power costs used to rank somewhere below what brand of
soda to keep in the vending machines in most company’s
strategic thinking. Companies could assume that electrical
power was cheap and endlessly available.
The assumption regarding availability of reliable power was
challenged during the California power scares of a few years
ago. Although later evidence caused re-evaluation about
whether there was a true power shortage, the events caused
companies to consider whether they should look for ways to
be less power dependent.
Furthermore, the impact of the green revolution has meant
that companies are increasingly looking for ways to reduce
the amount of energy they consume — and one of the places
they look first is their data center.
The cost of running computers, coupled with the fact that
many of the machines filling up data centers are running at
low utilization rates, means that virtualization’s ability to
reduce the total number of physical servers can significantly
reduce the overall cost of energy for companies.



Trend #4: System administration costs mount

Computers don’t operate all on their own. Every server
requires care and feeding by system administrators. Common
system administration tasks include: monitoring hardware
status; replacing defective hardware components; installing
operating system (OS) and application software; installing OS
and application patches; monitoring critical server resources
like memory and disk use; and backing up server data to other
storage mediums for security and redundancy purposes.
As you can imagine, these tasks are pretty labor intensive.
System administrators — the people who keep the machines
humming — don’t come cheap. And, unlike programmers,
system administrators are usually co-located with the servers,
because they need to access the physical hardware.
As part of an effort to rein in operations cost increases, virtualization
offers the opportunity to reduce overall system
administration costs by reducing the overall number of
machines that need to be taken care of. Although many of the
tasks associated with system administration (OS and application
patching, doing backups) continue even in a virtualized
environment, some of them disappear as physical servers are
migrated to virtual instances. Overall, virtualization can
reduce system administration requirements drastically,
making virtualization an excellent option to address the
increasing cost of operations personnel.