1. http://serverfault.com/questions/202794/what-does-linux-server-virtualization-mean
In short, Virtulization is the creation of something Virtual (rather than physical or
actual) such as an Operating System, a storage device, a server or even a network
device (such as a switch).
Since you are asking specifically regarding Linux Virtulization I will assume you
are referencing servers and desktops:
Server virtualization is the masking of server resources (including the # and
identity of individual physical servers, processors, and operating systems) from
server users.
Desktop virtualization i the masking of desktop resources (including the # and
identity of individual physical desktop machines, processors and operating
systems) from desktop users.
With each - The intention is to spare the user from having to understand and
manage complicated details of server/desktop resources while increasing resource
sharing and utilization and maintaining the capacity to expand later.
Approaches to Virtualization (linux)
There are many different approaches to virtualizing a system, each with their own
advantages and disadvantages.
1. Paravirtulization:
In a nutshell, In order to run more efficiently, the guest operating system's
kernel is changed out for a kernel that behaves well in a virtualized
environment.
Xen, lguest and User Mode Linux do paravirtualization on x86.
2. Hardware Virtualization
Intel VT and AMD-V CPUs have the ability to run all instructions in an
unprivileged virtual machine, and have them behave well. Most of the time
much of the resources are emulated (like the clock) However, it allows for
a much cleaner implementation of full virtualization.
Xen and KVM do hardware assisted full virtualization.
3. Operating-System level virtualization - (Containers)
Containers do not run virtual machines at all, but simply segregate multiple
user space environments from each other, while everything runs under one
2. kernel. (One major reason many system administrators lvoe this is because
they only ever need to patch or maintain 1 kernel vs many.) Container
systems tend to have low overhead and high density, but also lower
isolation between the different containers. This of course comes at a cost as container systems only allow 1 kernel running - however they do support
various Linux distributions in the different containers at the same time.
There are a number of different Container systems - such as Solaris Zones,
Linux-VServer and OpenVZ/Virtuozzo. OpenVZ has relatively complete
resource isolation between the different containers, the other two have a bit
less control. FreeBSD Jails can be seen as a precursor to containers however Jails of course or make that BSD is not Linux.
Hopefully this helps give you a simple breakdown of Linux virtualization.
I would suggest peeking at the Proxmox Project
http://www.proxmox.com/products/proxmox-ve It is opensource - and will allow
you to test not only KVM but also Container based virtualization on the same
system at the same time.
Be sure to comment on this writeup and vote.
answered Nov 17 '10 at 7:15
share|improve this answer
Glenn Kelley
1,02838
add
comment
Glen's given you a technical description of what virtualization is, but not a lot of
information on what the benefits are.
IME, the main points are:
up vote
2 down
vote
Availability - because its a virtual machine, all the configuration (well most
of it usually) is independent of the underlying hardware. So in the event of a
hardware failure its simple to start up the image somewhere else. This is
particularly relevant for Business Continuity Planning.
capacity management - e.g. you don't need a dedicated server just to run the
application which only gets used by payroll for 2 days each month - it can sit
on the same physical box as the intranet server
Development - you can build your server offline, apply patches, test it out
before you replace the existing server, without having to have a spare
3. physical machine of the same config
hardware consolidation - looking at the TCO, big iron may be cheaper than
smaller servers (particularly with rising power costs) - but for the reasons
given above, using virtual machines makes managing the application more
flexible
Support - continuing on the the Development theme, investigating outages,
performance and functional issues is a lot easier when you can get access to
the system causing the problems - being able to work on an exact copy has
the advantage that you don't need to take the live system offline.
share|improve this answer