OpenStack provides open source software for creating and managing public and private cloud, with various OpenStack projects managing the compute, storage, network, and a handful of other "cloudy" aspects. But, there’s a vital piece of the stack that is not part of OpenStack itself. The compute power needs to run somewhere and for us at Civo, that somewhere is a hypervisor.

What hypervisors does OpenStack support?

OpenStack Compute (Nova) runs on a variety of hypervisors, including those from VMware, Citrix, and Microsoft.

So why choose KVM? KVM turns the Linux kernel into a hypervisor, and comes standard with many Linux distributions. OpenStack is built to run on Linux, so the marriage of OpenStack with KVM makes sense. Use your open source software to manage your open source hypervisor! Consequently, the OpenStack community embraced KVM and turned it into the most highly tested and feature rich hypervisor to use in an OpenStack cloud.

What is KVM?

KVM (Kernel-based Virtual Machine) is an open source hypervisor technology for virtualising compute infrastructure running on x86 compatible hardware.

A KVM host actually runs on the Linux kernel along with two KVM kernel modules (the kvm.ko module and the kvm-intel.ko). Through its tight kernel integration  -  including the I/O connectivity with kernel block and network drivers provided by Virtio  -  KVM can offer its guests more seamless access to all the complex hardware and networking profiles that they might encounter.

Hardware virtualisation extensions built into modern CPU designs and required for KVM deployments mean that, right out of the box, KVM guests can safely access only those hardware resources they need without the need to worry about leakage to the larger system (this is very important for not wasting resources or potentially crashing a hardware node).

Key features of KVM

  • Over-committing : Which means allocating more virtualised CPUs or memory than the available resources on the system.
  • Thin provisioning : This allows the allocation of flexible storage and optimizes the available space for every guest virtual machine.
  • Disk I/O throttling: Provides the ability to set a limit on disk I/O requests sent from virtual machines to the host machine.
  • Virtual CPU hot add capability : It increases the capacity of processing power on running virtual machines with no down time.

Advantages of using KVM

  • Low cost
  • Can interact directly with the Kernel.
  • Excellent security : Since the base of KVM is made up of Linux, it uses the SE Linux advanced security system.
  • Available for anybody to use : The open source environment means anybody can use it and customise the system to fit specific requirements.
  • Most of the open source cloud automation software uses KVM as a default hypervisor.
  • All applications should work exactly like in a dedicated server.

Personally having worked with multiple hypervisors over the years, they all have their advantages and disadvantages. However I have found that KVM is a perfect fit for Openstack (as have many others) and the flexibility and power of KVM has made the compute aspect of Openstack a joy to work with. I can only see KVM growing from strength to strength over the coming years in the Openstack and open source community.