Next gen virtualisation: about time

VMWare has just announced its new version of ESX server, 3i.  They only mention, in the info out to date, that the new hypervisor “..is an extension of the hardware.”  This is actually much more geeky cool than it seems and represents a large step forward in virtualisation.  They are not the only company to have this, Xen is one example of open source embedded hypervisors which appear to do similar things to ESX 3i.  My purpose is not to compare virtualisation technology though.

Intel released its VT processors (VT standing for Virtualisation Technology) extensions about 2 years ago (AMD has similar AMD-V), but applications are only just starting to become mainstram that support it.  The problem with virtualisation has always been with ring 0 access to the processor.  If you are not familiar with priveledge rings, you can find a basic primer on Wikipedia.  Traditionally the hypervisor takes ring 0, which is the only level that can directly access hardware, forcing guest operating systems to operate at less privelaged levels.  Virtualisation engines have used various methods to get around this like emultation or binary translators.

Intel VT and AMD-V chips have a ring -1 that allow the software that controls the virtualisation to run in a special privelage level. This means guest operating systems can now directly access hardware without needing weird translations.  This reduces the complexity of virtualisation and opens the market for more players and faster developement.  But the real cool thing is the future possibilities this opens up for clustering.

If you can picture that a clustered OS allows applications to grow across seperate machines.  The limitations on how that application can use the resources of that cluster is dependant on that application.  Because the level of clustering is at the OS, it is the next level that must know how to use it.  At the moment the ability to do cool things with clusters is often application specific.  If the clustering is moved down a level, to the hypervisor, then this gives greater scope for the OS to do cool things with clusters.  And the applications can transparently take advantage of them.  This wasn’t impossible with ‘old school’ virtualisation, but much harder.

While virtualisation to date has offered some benefits, the virtual machines have still been limited in size by the physical hardware.  The future of virtualisation is to expand beyond a single box.  Not only will it be possible to have many virtual servers on a single physical box, it will also be possible to have one virtual server on many phyical boxes, and anything in between.  In all these cases, once the resources are selected it is only a standard OS install that is required.  The new generation of hypervisors make this much easier to achieve.