KVM Virtualization | Install KVM | RHEL/CentOS 8


CentOS 8

In this article I will share step by step tutorial to install KVM on RHEL 8 or CentOS 8 Linux. But before we start with the installation steps, let us understand little bit about KVM Virtualization and about KVM Hypervisor.

 

What is Virtualization?

  • CentOS/RHEL 8 provides the virtualization functionality (so does many other distros..)
  • This enables a machine running CentOS/RHEL 8 to host multiple virtual machines (VMs), also referred to as guests.
  • VMs use the host’s physical hardware and computing resources to run a separate, virtualized operating system (guest OS) as a user-space process on the host’s operating system.

 

What is Hypervisor?

  • The basis of creating virtual machines (VMs) in RHEL and CentOS 8 is the hypervisor.
  • It is a software layer that controls hardware and enables running multiple operating systems on a host machine.
  • The hypervisor in RHEL/CentOS includes the Kernel-based Virtual Machine (KVM) module and virtualization kernel drivers, such as virtio and vfio.
  • These components ensure that the Linux kernel on the host machine provides resources for virtualization to user-space software.

There are two types of hypervisor

  • Type 1 Hypervisor
  • Type 2 Hypervisor

What is KVM?

  • KVM is short abbreviation for Kernel Based Virtual Machine.
  • It gives the Linux kernel hypervisor capabilities.
  • Because KVM is implemented directly in the Linux kernel, it has great support across a wide variety of Linux distros.
  • At the user-space level, the QEMU emulator simulates a complete virtualized hardware platform that the guest operating system can run in, and manages how resources are allocated on the host and presented to the guest.
  • In addition, the libvirt software suite serves as a management and communication layer, making QEMU easier to interact with, enforcing security rules, and providing a number of additional tools for configuring and running VMs.

 

Pre-requisites to Install and Configure KVM

Install RHEL 8 or CentOS 8

Red Hat Enterprise Linux 8 or CentOS 8 must be installed on your physical host machine.

 

Verify support for KVM Virtualization

  • The physical host machine must support KVM Virtualization.
  • On an Intel platform, the flag that shows support for full hardware-based virtualization is the vmx flag.
  • To check whether an Intel processor has support for vmx, you could grep for the desired flag in /proc/cpuinfo, like so
# lscpu | grep -i "Model Name"
Model name:            Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz

# grep -i -o vmx /proc/cpuinfo | uniq
vmx

The presence of vmx in this sample output shows that necessary CPU extensions are in place on the Intel processor.

  • On an AMD platform, the flag that shows support for full hardware-based virtualization is the Secure Virtual Machine (svm) flag.
  • To check whether an AMD processor has support for svm, you could grep for the desired flag in /proc/cpuinfo, like so:
# lscpu | grep -i "Model Name"
Model name:            AMD EPYC 7402P 24-Core Processor

# grep -i -o svm /proc/cpuinfo | uniq
svm

The presence of svm in this sample output shows that necessary CPU extensions are in place on the AMD processor.

 

Register RHEL 8 to RHN (Optional)

My RHEL 8 node is registered with Red Hat Network

[root@rhel-8 ~]# subscription-manager list
+-------------------------------------------+
    Installed Product Status
+-------------------------------------------+
Product Name:   Red Hat Enterprise Linux for x86_64
Product ID:     479
Version:        8.2
Arch:           x86_64
Status:         Subscribed
Status Details:
Starts:         12/10/2019
Ends:           12/10/2020

 

Install KVM on RHEL/CentOS 8

To use virtualization in RHEL/CentOS 8, you must enable the virtualization module, install virtualization packages, and ensure your system is configured to host virtual machines (VMs).

I hope you are already aware of YUM alternative DNF tool

[root@rhel-8 ~]# dnf module install virt

Once installed you can check if kvm module is loaded on your Physical Host

[root@rhel-8 ~]# lsmod | grep kvm
kvm_intel             290816  16
kvm                   761856  1 kvm_intel
irqbypass              16384  2 kvm

On AMD host, you would get output like below

# lsmod | grep kvm
kvm_amd              2177260  0
kvm                   621480  1 kvm_amd
irqbypass              13503  1 kvm

Install the virt-install and virt-viewer packages. We will need them to create KVM Virtual Machines

[root@rhel-8 ~]# dnf install virt-install virt-viewer

 

Enable and start libvirtd service

Start and enable the libvirtd service

[root@rhel-8 ~]# systemctl enable libvirtd --now

 

Verify KVM Virtualization Status

After you install KVM rpms and start libvirtd service, verify if your RHEL/CentOS 8 physical host is enabled to support KVM Virtualization

[root@rhel-8 ~]# virt-host-validate
  QEMU: Checking for hardware virtualization                                 : PASS
  QEMU: Checking if device /dev/kvm exists                                   : PASS
  QEMU: Checking if device /dev/kvm is accessible                            : PASS
  QEMU: Checking if device /dev/vhost-net exists                             : PASS
  QEMU: Checking if device /dev/net/tun exists                               : PASS
  QEMU: Checking for cgroup 'cpu' controller support                         : PASS
  QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
  QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
  QEMU: Checking for cgroup 'memory' controller support                      : PASS
  QEMU: Checking for cgroup 'devices' controller support                     : PASS
  QEMU: Checking for cgroup 'blkio' controller support                       : PASS
  QEMU: Checking for device assignment IOMMU support                         : PASS
  QEMU: Checking if IOMMU is enabled by kernel                               : WARN (IOMMU appears to be disabled in kernel. Add intel_iommu=on to kernel cmdline arguments)

Here our first part of KVM Tutorial is complete. Now our RHEL/CentOS 8 physical host is ready to create KVM Virtual Machines

 

 

Lastly I hope the steps from the article to install LVM on RHEL/CentOS 8 Linux was helpful. So, let me know your suggestions and feedback using the comment section.

 

Deepak Prasad

Deepak Prasad

He is the founder of GoLinuxCloud and brings over a decade of expertise in Linux, Python, Go, Laravel, DevOps, Kubernetes, Git, Shell scripting, OpenShift, AWS, Networking, and Security. With extensive experience, he excels in various domains, from development to DevOps, Networking, and Security, ensuring robust and efficient solutions for diverse projects. You can connect with him on his LinkedIn profile.

Can't find what you're searching for? Let us assist you.

Enter your query below, and we'll provide instant results tailored to your needs.

If my articles on GoLinuxCloud has helped you, kindly consider buying me a coffee as a token of appreciation.

Buy GoLinuxCloud a Coffee

For any other feedbacks or questions you can send mail to admin@golinuxcloud.com

Thank You for your support!!

Leave a Comment