Ravello Revives Binary Translation for Cloud Hypervisor

The team that brought you KVM are back with a new product and new direction. Qumranet founders —Benny Schnaider and Rami Tamir, have lifted the covers off Ravello Systems announcing it nested hypervisor platform HXV and a bold goal to create a cloud spanning hypervisor that will allow workloads to be moved from platform to platform regardless of the underlying infrastructure.

Ravello was established by Benny Schnaider and Rami Tamir in early 2011, with each putting in $1 million from their own pockets from the sale of Qumranet to Red Hat which it used as the foundation for the Red Hat Enterprise Virtualization (RHEV) hypervisor.  Navin Thadani, who was formerly senior director of the virtualization business at Red Hat joined Ravello a year later to take on the role of SVP in charge of products.  At that time, all that was known about Ravello was that it was looking to provide an additional layer in the virtualization stack that would “facilitate communications between separate computers.” Leaving ample room for speculation as to its goals. Ravello has now revealed the first hints of an ambitious goal to up the ante in cloud system management.

Where current generation virtualization technologies separate workloads from the underlying physical infrastructure, allowing flexibility of workload placement to maximize server efficiency, Ravello’s goal is to establish an additional level of abstraction between workload and hypervisor allowing seamless transition of server workloads from data center to cloud and back again without needing to worry about current incompatibilities.  Where a hypervisor creates a virtual machine, fooling an operating system into believing it is running on physical hardware, Ravello is looking to insert an additional abstraction layer, that give us the virtual machine independence from the underlying hypervisor(s). This approach should allow a guest virtual machine to run on hypervisor’s that use paravirtualization (e.g., Xen, Hyper-V, etc.) or operating system-level virtualization (e.g., ESX, QEMU, etc.) without change.

The second key technology is Ravello’s management layer. Based on a set of user defined application-wide attributes and policies such as security and access control, cost, versioning, performance, and availability, that define an end-to-end hosted application that can consist on many separate guest VMs. Ravelo can size the required environment and provision it to the appropriate cloud hosting platform.  If Ravello can move enterprise workloads from data center to cloud, then it can also move workloads from cloud to cloud; from AWS, to Azure, to Rackspace, to whoever is offering the best spot prices of the day. Opening up the prospect of true flexibility, freedom from lock-in, and driving down the cost of cloud services.

To achieve hypervisor independence  Ravello has gone back to binary translation, a hardware emulation technique used by earlier hypervisors before Intel and AMD implemented hardware-based virtualization support in their processors. Apple Mac users might remember binary translation from the Rosetta component of OS X that Apple offered to ease the transition from its previous Power PC-based hardware to the current X86 platform allowing older applications and OS to run without being recompiled for the x86 architecture machines. The grey-bearded might even remember it being used for the same purpose when DEC migrated from its old VAX systems to the RISC architecture Alpha systems.

Hardware emulation has a reputation for being slow, especially when compared to current hardware-based virtualization systems.  However, as HVX is designed to support x86 guests on x86 hosts, rather than attempting cross-platform translation, the performance penalty is reduced. ‘Simple’ user space code (x86 Ring 3) can be passed unmodified to the underlying hypervisor with only the smallest performance penalty. Kernal-level and real-mode code is recompiled with  any privileged instructions replaced with simulation code that operates in a software CPU rather than on the real CPU. Previously recompiled code is also cached in memory for reuse reducing the amount of recompilation required. Not that there is anything new about this approach, VMware exploys the same techniques to maximise the performance of ESX on older processors that lack x86 virtualization extensions. HVX also takes advantage of implementation of paravirtualized devices for network and IO to reduce the performance penalty that binary translation imposes. Even so, the performance overhead of binary translation can still be significant. Something that Thadani acknowledged, saying that the overhead imposed by HVX can be as much as 30% under some conditions compared to the typical 4% or less that hardware-based virtualization imposes.

Ravello faces a significant challenge if it wants to significantly improve the performance of HVX. By eschewing x86 hardware virtualization extensions, HVX may offer greater hosting platform flexibility, but the performance penalty is significant. Nested virtualization is already available from most leading  x86 hypervisor vendors, and with only minimal performance overhead. It remains to be seen if Ravello and HVX will be able to sway cloud pricing or if the growing  performance benefits of hardware virtualization will outweigh the cost savings that a more competitive market might offer.

Ravello’s public beta is now open, but there is no public word on when the service will be released.