Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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!

share|improve this question
    
add comment

2 Answers

up vote 6 down vote accepted

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.

share|improve this answer
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:

  • 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 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
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.