Virtualization Basics

Virtualization is not a new concept, but its complexity has been growing, and a number of new paradigms are rising. I will try to demystify some of the concepts behind virtualization, briefly explain some of its basics, and finally look at some of the products and solutions out there.

To begin, let me introduce three very simple concepts regarding virtualization: the host operating system, the hypervisor, and the guest operating system.

Virtualization Components

The host operating system provides a host to one or more virtual machines (or partitions) and shares physical resources with them. It’s where the virtualization product or the partitioning product is installed.

The guest operating system is the operating system installed inside a virtual machine (or a partition). In a virtualization solution the guest OS can be completely different from the host OS. In a partitioning solution the guest OS must be identical to the host OS.

A hypervisor, also called a virtual machine manager (VMM), is a program that allows multiple operating systems to share a single hardware host. Each operating system appears to have the host’s processor, memory, and other resources all to itself. The task of this hypervisor is to handle resource and memory allocation for the virtual machines, ensuring they cannot disrupt each other, in addition to providing interfaces for higher level administration and monitoring tools.

The Hypervisor

There are two types of hypervisors as depicted below:

vBasics2

Note: Xen is an open-source virtualization software used by several companies to implement their virtualization solution; companies like, ORACLE, Citrix, Sun, and Virtual Iron, to name a few.

Type 1 hypervisors, also known as bare-metal, are software systems that run directly on the host’s hardware as a hardware control and guest operating system monitor. Bare-metal virtualization is the current enterprise data center leader. VMware ESX is easily the market leader in enterprise virtualization at the moment, and it utilizes bare-metal virtualization architecture. What is immediately apparent about this architecture, is the lack of an existing OS; the hypervisor sits directly on top of the hardware, hence the term “bare-metal virtualization”. The reason so many data centers implement bare-metal products, such as ESX, Xen, and Hyper-V, is because of the speed it provides due to the decreased overhead from the OS that hosted virtualization uses.

vBasics3

Type 2 hypervisors, also known as hosted, are software applications running within a conventional operating system environment. This type of hypervisor is typically used in client side virtualization solutions such as Microsoft´s Virtual PC, and VMWare´s Workstation.

vBasics4

The Protection Rings

Another important concept is the protection rings. x86 CPUs provide a range of protection levels, also known as rings, in which code can execute. Ring 0 has the highest level privilege and is where the operating system kernel normally runs. Code executing in Ring 0 is said to be running in system space, kernel mode or supervisor mode. All other code, such as applications running on the operating system, operate in less privileged rings, typically Ring 3.

vBasics5

The hypervisor runs directly on the hardware of the host system in ring 0. Clearly, with the hypervisor occupying ring 0 of the CPU, the kernels for any guest operating systems running on the system must run in less privileged CPU rings. Unfortunately, most operating system kernels are written explicitly to run in ring 0, for the simple reason that they need to perform tasks that are only available in that ring, such as the ability to execute privileged CPU instructions and directly manipulate memory.

The AMD-V and Intel-VT CPUs use a new privilege level called Ring -1 for the VMM to reside, allowing for better performance as the VMM no longer needs to fool the Guest OS that it is running in Ring 0. Solutions like VMWare ESX, Xen (Citrix, ORACLE, IBM, etc.), and Microsoft Hyper-V take advantage of the hardware virtualization capabilities inherent to the new Intel and AMD CPUs.

Virtualization Landscape

After this brief introduction, let´s now take a look at the global virtualization landscape available out there. The following diagram shows how virtualization architectures are organized, as well as some of the solutions that implement them.

vBasics6

The following sections will briefly introduce some of the most important types of virtualization.

Traditional

This is not a virtualization scenario; it´s here solely for comparison purposes. Here we see that the OS sits directly above the hardware executing in the ring 0.

vBasics7

Paravirtualization

Under paravirtualization, the kernel of the guest operating system is modified specifically to run on the hypervisor. This typically involves replacing any privileged operations that will only run in ring 0 of the CPU with calls to the hypervisor (known as hypercalls). The hypervisor in turn performs the task on behalf of the guest kernel.

This typically limits support to open source operating systems, such as Linux, which may be freely altered, and proprietary operating systems where the owners have agreed to make the necessary code modifications to target a specific hypervisor. This results in the ability of the guest kernel to communicate directly with the hypervisor, resulting in greater performance levels than other virtualization approaches.

vBasics8

Full Virtualization without Hardware Assist

Full virtualization provides support for unmodified guest operating systems. The term unmodified refers to operating system kernels which have not been altered to run on a hypervisor and, therefore, still execute privileged operations as though running in ring 0 of the CPU.

In this scenario, the hypervisor provides CPU emulation to handle and modify privileged and protected CPU operations made by unmodified guest operating system kernels. Unfortunately, this emulation process requires both time and system resources to operate, resulting in inferior performance levels when compared to those provided by paravirtualization.

vBasics9

Full Virtualization with Hardware Assist

Hardware virtualization leverages virtualization features built into the latest generations of CPUs from both Intel and AMD. These technologies, known as Intel VT and AMD-V, respectively, provide extensions necessary to run unmodified guest virtual machines without the overheads inherent in full virtualization CPU emulation.

In very simplistic terms, these new processors provide an additional privilege mode below ring 0 in which the hypervisor can operate essentially, leaving ring 0 available for unmodified guest operating systems.

vBasics10

OS virtualization

Compared with hypervisor based virtualization, container based virtualization offers a completely different approach to virtualization. Instead of virtualizing with a system in which there is a complete operating system installation, container based virtualization isolates containers work from within a single OS. In cases where only one operating system is needed, the main benefits of container based virtualization are that it doesn’t duplicate functionality and improves performance.

OS virtualization has been making waves lately because Microsoft is rumored to be in the market for an OS virtualization technology. The most well-known products that use OS virtualization are Parallels Virtuozzo and Solaris Containers. This virtualization architecture has many benefits, speedy performance being the foremost. Another benefit is reduced disk space requirements. Many containers can use the same files, resulting in lowered disk space requirements.

The big caveat with OS virtualization is the OS requirement. Container OSs must be the same OS as the host OS. This means that if you are utilizing Solaris containers then all containers must run Solaris. If you are implementing Virtuozzo containers on Windows 2003 Standard Edition, then all its containers must also be running Windows 2003 Standard Edition.

vBasics11

Hosted virtualization

This is the type of virtualization with which most users are familiar with. All of the desktop virtualization products, such as VMware Workstation, VMware Fusion, and Parallels Desktop for the Mac, and Microsoft Virtual PC implement hosted virtualization architecture. There are many benefits to this type of virtualization. Users can install a virtualization product onto their desktop just as any other application, and continue to use their desktop OS. Hosted virtualization products also take advantage of the host OS’s device drivers, resulting in the virtualization product supporting whatever hardware the host does.

vBasics12

Conclusion

As concepts evolve, it is often difficult to get a clear definition of the basics behind them, and virtualization is no exception to this rule. When I first started looking into virtualization a little more deeply (driven by my Cloud Computing crusade) I found it difficult to find clear information of all its fronts. I hope this blog entry helps the rest of you with the same problem. Furthermore, with the rise of Cloud Computing, new paradigms are emerging, forcing the virtualization solutions to adapt to a new reality; a subject that I will address shortly.

Advertisements

27 Responses to “Virtualization Basics”


  1. 1 Caster - X December 20, 2009 at 6:46 am

    Thanks, very helpful 🙂

  2. 2 mukesh December 30, 2009 at 11:01 am

    Its very great information for begineer like me

  3. 3 kingsley March 26, 2011 at 7:27 pm

    thanks a lot Miguel,
    this has been most helpful and has helped cleared the dilema i have been having with this topic virtualization. it really gets confusing when one starts looking at how different authors and websites define “types of virtualization”. this is the first write up that has helped me to really understand it
    thanks

  4. 4 seun kayode April 28, 2011 at 12:36 pm

    This was very useful.

  5. 5 Arthur Pradeep June 4, 2011 at 11:50 am

    Thank you so much, This article is very informative for the Beginners.

  6. 6 Omkar Patkar June 5, 2011 at 9:30 am

    Hi,

    That is an amazing article you have written. Simple and easy to understand, it helps a lot to beginners. Thanks a lot and keep posting such articles.

    Regards
    Omkar Patkar

  7. 7 Harsha July 19, 2011 at 9:50 am

    Nice and very helpful …:)

  8. 8 Priti September 15, 2011 at 9:42 am

    Goo onformation..found useful

  9. 9 hussein October 16, 2011 at 7:04 pm

    I just wanted to add my voice to the rest of complements: thanks indeed.

  10. 10 Nilesh November 10, 2011 at 6:44 pm

    Great stuff for the beginers …….,keep the good work going

  11. 11 Rockford February 10, 2012 at 10:34 pm

    Easy to understand – no tech-talk mumbo jumbo. Simple English, great diagrams! Thank you SO much! You did demystify it for me!

  12. 12 Rajesh kumar April 3, 2012 at 4:44 am

    Too much benificial because this topics always makes confusion for new learner. Reader will get easy concept
    Rajesh Kumar
    Cybotech,Patna

  13. 13 Abhishek April 25, 2012 at 9:52 am

    Its quite simple and easy to comprehend . Please update more articles on the topic .

  14. 14 JT May 2, 2012 at 3:36 pm

    Just started working at a Virtualization vendor company, and this was a great resource to give me some much-needed background! Thanks!

  15. 15 Nandika May 21, 2012 at 10:11 am

    This is a Sheer Article……and takes me Immense of Pleasure……As I am begineer……….It’s really helpful and understandable…….Thanks a lot….

  16. 16 Mansoor May 24, 2012 at 7:57 am

    Thank u so much.very useful info for the beginners.

  17. 17 Pratik May 31, 2012 at 1:30 pm

    Good article for the beginners,,

  18. 18 shri August 25, 2012 at 4:55 pm

    good nd easy………….

  19. 19 Merle November 6, 2012 at 12:06 pm

    I’m not sure where you are getting your info, but great topic. I needs to spend some time learning more or understanding more. Thanks for great info I was looking for this info for my mission.

  20. 20 kedar March 6, 2013 at 6:03 am

    Very Informative article. Explanation was very simple and uncluttered.

  21. 21 Mark March 9, 2013 at 11:10 am

    What’s up to all, how is all, I think every one is getting more from this web page, and your views are pleasant designed for new visitors.

  22. 22 más segura March 10, 2013 at 11:49 pm

    You ought to be a part of a contest for one of the highest quality blogs on the web.
    I’m going to recommend this web site!

  23. 23 Sandeep A March 23, 2013 at 3:09 am

    Superbly written !!! You should write a book on the subject… and lemme know when you do…

  24. 24 James April 2, 2013 at 4:59 pm

    amazin.. so simple to understand…

  25. 25 click here April 16, 2013 at 1:18 am

    Hurrah, that’s what I was looking for, what a information! present here at this weblog, thanks admin of this web site.

  26. 26 fun January 23, 2014 at 5:59 pm

    Its like you learn my mind! You seem to know a lot about this, such as you wrote the book in it or something.
    I feel that you just can do with some % to force the message house a bit, however instead of that, this is great blog.

    A fantastic read. I’ll certainly be back.


  1. 1   Virtualization and the technical communicator by Communications from DMN Trackback on January 28, 2010 at 3:52 pm

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s





%d bloggers like this: