The Great Virtualisation Secret

Following the releases of Microsoft Windows 2008 Hyper-V and VMWare there has been a lot of discussion as to who will win the virtualisation war.

Both these offerings have taken virtualisation to a new level by offering systems that integrate virtualisation directly into the operating system or do they....

Over the last few years, we’ve seen innovative developments in virtualisation such as the implementation of virtualisation technology within the CPU (Central Processing Unit).

For example, many modern processors now have additional registers that are accelerating memory management between the physical hosts and the virtual guest operating systems.

Benefits of Paravirtualisation

The logical next step was to have operating systems include virtualisation as part of their core functionality to take advantage of a technique known as paravirtualisation.

Having a parvirtualised environment means substantial savings in memory and processing costs due to the increase of up to 50% in performance achieved compared to 'classic' virtualisation.

This may not seem like much if you only have a few servers but adds up to a significant amount if you have a hundred plus file servers.

In addition, performance increases of up to 50%, makes virtualisation of some applications such as databases a greater viability than before which can result in substantial cost savings from consolidation and management of database applications into a virtual environment.

Paravirtualisation is not theory, it’s been around and used now for well over a year but not many people know about it or even understand it.

Before we go further let’s first explain what paravirtualisation really is so that you don’t get confused by some of the technobabble that is currently on the internet.

The Paravirtualisation Myth

Here’s the myth.

Paravirtualisation is virtualisation technology built into the operating system. Therefore any guest operating system running on the host OS will benefit from the massive performance gains.

In fact the above statement is very misleading. There are certainly performance gains from having virtualisation technology built into the operating system but not on the scale of paravirtualisation.

Diagram 1 is a simplified version of the difference between a system using 3rd party virtualisation software and one that doesn’t.

As you can see from diagram 1, by removing third party virtualisation software, you are effectively removing the middle man and there will be performance gains from a reduction in memory and processor overhead, however NEITHER of the above diagrams show paravirtulisation at work.

The Real Paravirtualisation

According to Wikipedia's Paravirtualisation page,

Paravirtualization may allow the virtual machine monitor (VMM) to be simpler or virtual machines that run on it to achieve performance closer to non-virtualized hardware. However, operating systems must be explicitly ported to run on top of a paravirtualized VMM. Owners of proprietary operating systems may decline to allow paravirtualization for strategic purposes.

The free dictionary puts it more simply:-

A virtual machine technique that requires the guest operating system to be modified in order to use it. Virtual machine monitors such as Xen and Hyper-V use this method. See Xen and Hyper-V.

In other words, true paravirtualisation is when:-

Virtualisation technology is built into the operating system and the virtual guest operating systems are aware that they are virtualised.

In order to gain the performance benefits of paravirtualisation:-

- The guest operating system must now be aware of its virtualisation state and is optimized for it.

- There is full OS integration and resource management (ie no binary patching required between the host OS and the virtual software in order to access the hardware)

In diagram 2, Virtual Aware O/S 1 is paravirtualised because it has been modified to be aware that it is virtualised and can talk directly to the underlying host o/s.

It should be emphasised that it is the modification of the guest OS that allows paravirtualisation to take place.

Diagram 2

Massive Performance Increase

By implementing virtualisation in the host operating system, you are effectively cutting out the middle man (i.e. a third party virtualisation software).

By implementing a virtualised aware OS, you have more direct access to core processes without the need for any emulation components due to the binary patching in the guest OS code.

One operating system that makes good use of paravirtualisation is the RHEL O/S – ie the Red Hat Enterprise Linux edition which has gains of between 20%-50% over other implementations of virtualisation.

If we were to take the minimum 20% increase – it is still a massive increase over third party virtual software.

Dynamic Resource Allocation

Paravirtualisation can also take advantage of the extra functionality provided by the CPU such as the dynamic allocation of memory resources between the host machine and the guest operating systems.

Dynamic allocation has been available previously but not at the speed given by paravirtualisation.

In other words, it is easier to dynamically allocate essential resources such as memory, hard disk size and processor time, when each virtual machine requires it either automatically via the host OS or via a script.

Say for example you have a pool of resources and two virtual machines VM1 and VM2. Several processes have just completed and terminated on VM1 thus freeing up memory that can be re-used in either VM1 or VM2.

This all sounds very technical but it essentially means that you are no longer locked into the resources that you would have had to allocate via software virtualisation.

Say for example you had 4GB of physical memory and allocated 2GB to VM1 and 2GB to VM2.

At night VM1 might no longer require as much memory due to less people using that virtual server.

This memory could then be dynamically allocated/requested by VM2 should you decide to run extra processes on VM2 at this time such as a network back up.

Live Migration

Live migration doesn’t seem like a major benefit to a corporation unless you understand that what we’re talking about is upgrading and moving critical physical and virtual servers to better hardware without any downtime.

In fact it’s actually between 45-300ms downtime depending on how complicated the actual migration is.

Again live migration is nothing new but the speed of the live migration gained by paravirtualisation is!

In fact, one of the negatives about classic virtualisation was how to upgrade the hardware of a server or set of servers required for 24x7 operation.

The traditional answer was that you would run off of a standby system whilst taking the virtual server down and copying its image files to the newer physical server.

This copying process could have involved at least an hour or more of downtime depending on the size of virtualised image files.

By combining paravirtualisation technology with clustering technology, live migrations can now be done with hardly any noticeable downtime to the user with the additional benefit that if any thing does go wrong with the migration, you have an instant fallback position due to the clustering technology involved.

On a side note….you do of course have all your virtualised servers clustered, don’t you!

Where Can I Get Paravirtualisation?

Now here’s the problem. Remember the definition on paravirtualisation that:-

Virtualisation technology is built into the operating system and the virtual guest operating systems are aware that they are virtualised.

In other words no emulation or third party software is involved in the virtualisation (on a side note if you do have emulation or third party software then it is known as full virtualisation which can be a bit misleading).

Well currently only two vendors support true paravirtualisation that is of any use - the aforementioned Red Hat with their RHEL OS and Microsoft with their Hyper-V.

Microsoft only support their latest Windows 2008 Server OS in paravirtualised mode plus SUSE Linux via a downloadable option whereas Red Hat support a number of versions of Linux. Any other virtual guest OS will be run in fully virtualised environment.

So what about VMWare…well VMware does have a number of benefits but paravirtualisation is not one of them unless you think of VMware as an operating system which has its own set of database and backoffice applications designed specifically to run on VMWare.

Having over a year’s lead in the marketplace, Red Hat Inc with their Red Hat Enterprise Linux (RHEL) operating system currently has a number of advantages over Microsoft’s Hyper-V in that they support both Windows and versions of Linux in either fully virtualised mode or paravirtualised depending on the guest OS running.

Subscription Based Support Model vs Licencing for Virtualisation

Even without their current lead in the marketplace, Red Hat still has the advantage of being based on the open source model.

I.e. you can have it for free and use it on as many servers as you like for free with no licence costs rather than the licensed model used by Microsoft for their virtualised operating systems.

However these companies still have to make some revenue in order to grow and develop their offerings.

One model that is used by some of the open source vendors is to have a support based subscription model.

So for example in the case of Red Hat’s RHEL O/S, if you wanted to have support, you would pay for a year’s subscription for each host version of the virtual OS installed.

So from a subscription based model perspective, you could simply purchase two support subscriptions for two physical servers running RHEL O/S and then run as many virtual servers as you like on top of these two physical boxes.

Remember when you virtualise a set of servers onto one host system you must must must always buy a backup host system or else you have a massive single point of failure.

Summary

There are major benefits that can be gained from paravirtualisation over a fully virtualised operating system. Paravirtualisation can enable smoother operation of virtual servers through dynamic resource allocation and enable further applications such as some intensive I/O databases to run in a virtualised.

If paravirtualisation technology is of interest to you then you should look at Microsoft Hyper-V (www.microsoft.com) for Microsoft Windows Server 2008 paravirtualisation and Red Hat (www.redhat.com) RHEL for Linux paravirtualisation.

RHEL also has the added benefit of supporting mixed Windows and Linux environments and can be run on legacy hardware (ie you don’t need to go and buy new hardware to run RHEL).

Ben Chai has been a writer and editor for several industry IT magazines and is currently the Content Director for Net Communities who own ITProportal.com. In addition he is an executive director for several companies in the IT industry such as Incomingthought.com.