What is KVM?
KVM (Kernel-based Virtual Machine) is an open source module for the Linux kernel that allows the creation of emulated/virtualized hardware, which can be used to boot virtual machines.
It’s what is commonly known as a Hypervisor, and KVM has been ported to various processor architectures including the fast-rising ARM. KVM is the most popular hypervisor for service providers running the OnApp cloud management platform.
KVM has gained much more recognition in the past few years as its development has continued, and it has become more refined, including the addition of more host and guest OS options.
It allows for paravirtualization, which allows a Hypervisor to give a guest virtual machine access to certain physical hardware including disks, NICs and Video Adapters. That kind of flexibility helps you to create the perfect virtual solution for you or your client’s requirement. For example, we use this facility with Smart Servers in the OnApp cloud platform: a Smart Server delivers close to bare metal performance for virtual machines, because it uses this hardware passthrough capability.
KVM vs Xen
It would be difficult to not also mention Xen in this context, since KVM and Xen are the main contenders in the open source hypervisor arena. They do have major differences, including the fact that Xen does not require Virtualization Extensions on the physical processor, while KVM does require these instruction sets. This is not much of an issue with modern processors, most of which include them.
Xen also supports paravirtualization, but does not support every Linux kernel; in comparison, RedHat Enterprise Linux (RHEL) has included KVM since 5.4, but dropped Xen support in RHEL 6. While Xen was technologically more mature, KVM had made such strides that RedHat adopted it as its mainline virtualization software.
KVM vs Xen performance
KVM generally delivers better performance benchmarks in the guest OS than Xen does, even though Xen does have its place in the market for certain hardware configurations that do not provide CPU virtualization instructions. Both must coexist in the virtualization ecosystem because they are useful in different situations – just as Hyper-V, vSphere, OpenVZ and other hypervisors have different applications depending on the situation.
In conclusion, KVM is an increasingly popular way to go about virtualization. It’s backed by RHEL; it does require processors that have virtualization instruction sets, but it enables you to use many different Linux distributions as the OS. KVM provides an efficient layer of virtualization which retains most of the performance of the bare-metal hosts it’s running on.
If you’d like to know more about KVM and cloud with OnApp, drop us a line!