Linux virtualization users have two free, open source hypervisors to choose from: Xen and KVM.
Xen, the most established of the two, is a type-one bare metal hypervisor that is also the foundation of several commercial offerings, including Citrix Systems XenServer and Oracle VM. Proponents argue that Xen is robust, enjoys a broad ecosystem of management tools and delivers excellent performance, among other virtues.
But recently, several Linux vendors -- including Red Hat and Canonical, which makes Ubuntu -- have thrown their weight behind the Kernel-based Virtual Machine (KVM), a lightweight hypervisor module that comes with the mainline Linux kernel. KVM is a relative newcomer, but the strength and simplicity of its implementation, plus continued support of Linux heavyweights, make it worthy of serious consideration.
Andi Mann: Six reasons to choose Xen vs. KVM
Sander van Vugt: KVM over Xen for better Linux integration
By Andi Mann, Contributor
When comparing Xen to KVM for open source virtualization, Xen wins out for six compelling reasons: Better resources, platform support, manageability, implementation, live migration and performance benchmarks.
- Resources: Xen has been in the public domain for four years longer than KVM (2003 vs. 2007). With implementations from Citrix, Novell, Oracle, Sun, Red Hat and Virtual Iron, it is easier to find IT professionals with Xen skills, easier for those professionals to get Xen training, easier to locate Xen consultants and obtain Xen certification. These are critical issues for 60% of enterprises who say they lack essential virtualization resources and skills, according to research from a 2008 report on virtualization and management trends by Enterprise Management Associates (EMA).
- Platform Support: Xen currently supports more host and guest environments, including paravirtualized, hardware assisted and both modified and unmodified guests; UNIX, Linux and explicit support from Microsoft for Windows; multiple chipsets including x86, IA64, and ARM from AMD, Fujitsu, IBM, Sun and embedded support from x86/64 CPU vendor, Intel.
- Manageability: For 83% of all enterprises, says 2009 research on virtual systems management from EMA, management is a critical or important factor in choosing virtualization technology. In the comparing Xen vs. KVM comparison, Xen has a much broader third-party ecosystem for provisioning, backup, storage management, P2V, capacity planning, performance monitoring, process automation, security and other management disciplines from Citrix, IBM, CA, Novell/Platespin, Enomaly, Microsoft, HP, Quest/Vizioncore, Sun, Oracle, Symantec -- and even VMware (via Hyperic). Even Red Hat has no sophisticated tools available for KVM today, and its promised KVM management will lag for the foreseeable future.
- Implementation: Whether KVM is 'type 1' or 'type 2' is mostly semantic. Xen is run and managed at a lower level (ring 0), even for new virtual machine creation, and guests do not share memory blocks, CPU instructions or any of the underlying (albeit occasionally de-privileged) Linux operating system like KVM does. This means KVM suffers performance, latency, security, scalability, isolation and other issues that do not affect a true bare-metal hypervisor like Xen.
- No live migration with KVM: Most of the arguments used in the past to show VMware ESX superiority over Microsoft Hyper-V, also apply to Xen in comparison to KVM today. But this is the big one. Unlike KVM, Xen supports uninterrupted live migration to allow dynamic workload balancing and routine maintenance with near-zero downtime. KVM comes with an inherent downtime penalty.
- Performance: Most Xen vs. KVM performance benchmarks show Xen has better (near-native) processing performance, and only marginally underperforms KVM in disk I/O. Moreover, independent tests have shown that KVM performance suffers as more workloads are added, and it consistently crashed trying to support any more than four guests. Xen supported a linear increase to over 30 concurrent workloads.
A more comprehensive Xen-KVM comparison would also show that Xen outperforms KVM with virtual network support, virtual storage support, enhanced security, high availability, fault tolerance, power management, HPC/real-time support, virtual CPU scalability, cross-vendor compatibility, VM portability, virtual appliance marketplace and an established cloud services ecosystem. So while KVM is technologically impressive and has some excellent use cases, it is still far-inferior to Xen as an enterprise-class server virtualization technology.
Andi Mann is the vice president of research, systems and storage management at the IT analyst firm Enterprise Management Associates (EMA). Mann has over 20 years of IT experience in both technical and management roles, working with enterprise systems and software on mainframes, midrange, servers and desktops. Mann leads the EMA Systems Management research practice, with a personal focus on data center automation and virtualization. For more information, visit EMA's website.
By Sander van Vugt, Contributor
Even without performing an extensive Xen vs. KVM performance benchmark study, there are very solid reasons to follow Linux leaders like Red Hat and Ubuntu to KVM. The most obvious and important factor is that KVM is a part of the Linux kernel, while Xen is a product that is installed beneath a Linux kernel.
Why is this important? It's important because, in the past, patches to the Xen environment have proven to be incompatible to the Linux kernel. By implementing KVM, this problem is easily solved. Another reason to select KVM is because KVM is implemented in the Linux kernel itself. Consequently it is easier to control virtualization processes.
Xen advocates argue that KVM is not as mature as Xen and lacks key features such as live migration and paravirtualization. It's true that paravirtualization in a Xen environment makes machines operate more efficiently since they can address hardware directly. However, to use paravirtualization, you need a modified operating system. A default Windows installation just doesn't work in a paravirtualization environment. About Live Migration, that does work. You just need the right KVM version to do that. Yes, there was a problem with live migration in the past, but that is fixed now.
KVM, on the other hand, is more flexible. Since the operating systems are communicating to a hypervisor that is integrated in the Linux kernel, they can address hardware directly in all cases, without the need to modify the virtualized operating system. This is significant because it makes KVM a faster solution for your virtual machines. The fact that KVM needs the Pacifica (AMD) or Vanderbilt (Intel) virtualization CPU is hardly a limitation because the majority of server CPU's currently have these processors.
The one credible argument not to choose KVM virtualization is that Xen has been around longer and is a more mature product. Long term, however, Xen will become more and more a burden for your Linux kernel, because it lacks good integration -- and never will -- despite the fact that Xen developers are actively working on the integration problem.
The bottom line is that KVM is a part of Linux and Xen can, at best, only be integrated with Linux. Over time, Red Hat, the number one player in the Linux enterprise market (which currently owns KVM technology) will make sure that up-and-comer KVM is as fully-featured as Xen. The future belongs to KVM.
Sander van Vugt is an independent trainer and consultant based in the Netherlands. Van Vugt is an expert in Linux high availability, virtualization and performance and has completed several projects that implement all three. He is also the writer of various Linux-related books, such as Beginning the Linux Command Line, Beginning Ubuntu Server Administration and Pro Ubuntu Server Administration.