Linux – What does Linux Server Virtualization mean

linuxvirtualization

Today, I went for an interview and I was told that for a few months, I will be doing Linux server virtualization. I kind of know what virtualization means since I use Virtualbox but I'm not entirely sure how it relates to servers or how it is usually used in a typical work scenario. Can I get some brief explanations on this? By all means please be technical.

Thanks!

Best Answer

What is Virtualization

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 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.