Can a Chameleon Change its Spots?

I had lunch today with veteran virtualization blogger Alessandro Perilli, who was in the Seattle area for the Microsoft MVP Summit. Alessandro has repeatedly been the first to spot key industry trends. He is truly plugged-in, and brings to his analysis a level of technical insight and honesty that I find refreshing, and he doesn’t sensationalize just to get clicks.

We discussed the recent flurry of reporting on the fact that Novell is also developing for KVM, and it was good to see that Alessandro found this as unsurprising as I do. Novell SUSE Linux is, after all an enterprise Linux distribution. And KVM is just a kernel.org driver that comes with mainline Linux. So it’s logical to expect Novell’s customers to be aware of KVM and to expect them to ship and support it – like any other mainline feature. Indeed Novell’s activity on KVM has never been a secret – they announced a preview of KVM support in SLE 11 and have a roadmap for offering full support in due course.

Novell is also behind an interesting open source project (that is not part of SLE), AlacrityVM, that aims to improve KVM performance and to feed back those changes to mainline Linux. It’s not another hypervisor, but a way to help improve KVM. Type-2 hypervisors such as KVM have to bear the cross of lugging all the baggage of the host as well as the guest OS stacks, making the overall system sub-optimal for some workloads like HPC or real-time media because the Linux kernel scheduler can’t help much. By contrast, the type-1 Xen hypervisor offers several schedulers, including a virtualization-tuned work-conserving earliest deadline first (EDF) scheduler specifically for a mix of soft-real time workloads with batch workloads. (As an aside, at XenSource we ran our Asterisk PBX as a VM on a Xen server that also ran our website and mail server, for a couple of years.)

Novell is one of the key contributors to Xen, and has a seat on the Xen project Advisory Board. But as important as their support for Xen, is their support for SLES on Xen. Yesterday Citrix and Novell announced a partnership in which Novell will offer full Support on XenServer for SLES and more than 4,500 enterprise applications certified as Novell Ready on SUSE Linux Enterprise Server. Importantly, SLES as a guest is hypervisor agnostic and Novell offers support for SLE also on Hyper-V and VMware. Citrix and its partners will gain access to the PlateSpin portfolio to help customers become more effective in their virtualization deployments.

Meanwhile Red Hat is forging down a KVM-based path, and while its official support policy calls for RHEL 5 Xen support until 2014, I’ve heard numerous customers complaining that Red Hat has been strong-arming them to switch to KVM before the users believe it is ready. Several told me they are considering switching to Oracle Enterprise Linux (for compatibility reasons) or to SLES. I can’t blame Red Hat for wanting to reduce the number of kernels it has to support, and its guest kernels for Xen have always lagged well behind those of Novell and Oracle in adopting key patches required for stability and performance – one of the key reasons in my view that Oracle decided to take control of its own destiny with OVM and OEL.

It’s important to realize that for a Linux vendor, KVM significantly simplifies the engineering, testing and packaging of the distro. KVM is a driver in the kernel, whereas Xen, even with paravirt_ops support in the Linux kernel, requires the vendor to pick a particular release of Xen and its tool stack, and then integrate that with a specific kernel.org kernel, and exhaustively test them together – rather than just getting a pre-integrated kernel and hypervisor from kernel.org. So it is entirely reasonable to expect that over time the distros will focus on KVM as a hypervisor. I think KVM is extremely powerful in this context. But ultimately the choice depends on how the end-user wants to acquire/consume virtualization.

If the use case involves the customer buying, installing and running Linux to achieve virtualization, KVM will eventually do a fine job. If on the other hand, the user expects to deploy a virtualization platform that is entirely guest OS agnostic, using a complete virtual infrastructure platform then a type-1 hypervisor that is OS agnostic (xen.org Xen Cloud Platform, Citrix XenServer, OracleVM, VMware vSphere) is what they will go for. I have previously made the case that OS-bundled hypervisors have both inherent advantages and disadvantages in penetrating the market: The opportunity is to supplant the existing OS footprint with a new version of the OS that includes virtualization. The disadvantage is that no OS vendor has yet done a good job of virtualizing its competitors’ products, and indeed strategically is never likely to do so. Let’s be blunt: thus far they have done a mediocre job at best.

A key point that many analysts miss is that Xen is intended to be a reference open source hypervisor. The “reference” part of this means that Xen implementations may vary, but they all will offer a consistent, high performance, secure, scalable hypervisor that is committed to compatibility with all guest VMs for both Xen and all other hypervisors. No proprietary hypervisor vendor will make this promise, and the Linux community has not made this promise for KVM. Indeed the very notion of a commitment to both backward and forward compatibility at a binary interface (virtual hardware) is generally viewed as anathema by the Linux community. KVM is part of a “Linux vs Windows vs Solaris” fight, and as such will end up with a footprint that is representative of the Linux footprint. KVM will not run Hyper-V VMs directly, as Xen Cloud Platform does today, for example. Only Xen is committed to complete compatibility at the virtual machine ABI, whereas every other hypervisor is betting that it can lock customers in by creating yet another layer of incompatibility between different software stacks. Pretty sad.

Getting back to Novell, and whether or not a Chameleon can change its spots, the answer is pretty obvious: “Huh?”. Most Chameleons don’t have spots, but they are great at blending in with any environment. SLES is supported and optimized as what Novell calls a “Perfect Guest” on Xen, Hyper-V, VMware and probably eventually KVM – great, that is, at blending into any environment.