Install KVM on CentOS / RHEL / Ubuntu / Debian / SLES / Arch Linux

This guide will cover the full installation of KVM hypervisor and its management tools on CentOS 7/8, Ubuntu 18.04/16.04, Debian 10/9, SUSE Linux Enterprise Server 12 and Arch Linux. This list of Linux systems should cover mostly used Linux servers in an enterprise setup.

 

KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V).

Install KVM on CentOS / RHEL / Ubuntu / Debian / SLES / Arch Linux

It consists of a loadable kernel module, kvm.ko, that provides the core virtualization infrastructure and a processor specific module, kvm-intel.ko or kvm-amd.ko. It has received huge adoption on enterprise over the last few years.

Install KVM on CentOS / RHEL 8

How to install KVM on RHEL / CentOS 8

Install KVM on CentOS 7

We’ll install KVM and QEMU plus some tools like libguestfs-tools and virt-top which comes in handy when administering KVM. Install them as below:

sudo yum -y install epel-release
sudo yum -y install libvirt qemu-kvm virt-install virt-top libguestfs-tools bridge-utils

Confirm that the kernel modules are loaded:

$ sudo lsmod | grep kvm
kvm_intel 147785 0
kvm 464964 1 kvm_intel

Start and enable libvirtd service:

sudo systemctl start libvirtd
sudo systemctl enable libvirtd

Install KVM on Fedora

How to Install KVM on Fedora Linux

 

Install KVM on Ubuntu 19.04/18.04/16.04

For the Ubuntu system, all packages required to run KVM are available on official upstream repositories. Install them using the commands:

sudo apt-get -y install qemu-kvm libvirt-bin virt-top  libguestfs-tools virtinst bridge-utils

Load and enable the modulevhost-net.

sudo modprobe vhost_net
sudo lsmod | grep vhost
echo "vhost_net" | sudo tee -a /etc/modules

Install KVM on Debian 10/9

Install libvirt daemon, qemu and other KVM related tools using the commands.

sudo apt -y install libvirt-daemon libosinfo-bin libguestfs-tools libvirt-daemon-system qemu-kvm virtinst bridge-utils virt-top

Load KVM kernel module

 

$ sudo modprobe vhost_net
$ sudo smod | grep vhost
vhost_net 20480 0
tun 28672 1 vhost_net
vhost 45056 1 vhost_net
macvtap 24576 1 vhost_net

$ echo "vhost_net" | sudo tee -a /etc/modules

Install KVM on Arch Linux / Manjaro

For Arch Linux and its derivatives, I already wrote an article which is available on the link below.

Complete Installation of KVM,QEMU and Virt Manager on Arch Linux and Manjaro

 

Install KVM on SUSE Linux Enterprise Server

The CPU on the system you’re using should have Intel VT or AMD-V function. The install required packages using:

sudo zypper -n install qemu-kvm guestfs-tools virt-top libvirt virt-install libguestfs0 bridge-utils

Ensure the kernel module required to virtualize is on:

$ sudo lsmod | grep kvm 
kvm_intel 147785 0
kvm 464964 1 kvm_intel

Start and enable kvm service:

sudo systemctl start libvirtd  && sudo systemctl enable libvirtd

Basic KVM Operations

Now that you have KVM installed with basic tools you need to get started, so what next?. I have a virsh cheat sheet which you can start with:

virsh commands cheatsheet to manage KVM guest virtual machines

Bridge configuration on Linux is also a crucial part when working on KVM, an article for this is also available.

How to Create and Configure Bridge Networking For KVM in Linux

If you want to generate KVM VM templates, refer to How to Create CentOS / Fedora / RHEL VM Templates on KVM

 

To Automate deployment of VMs on KVM, check:

How to Provision VMs on KVM with Terraform

Further reading:

Mastering KVM Virtualization

Virtualization Essentials, 2nd Edition