Linux KVM — An Overview

  author
Rollins Duke   
Published: January 19th, 2022 • 7 Min Read

 

The Linux KVM i.e. the Kernel-based VM (Virtual Machine) is basically a complete solution for virtualization for Linux on the “x86” hardware that consists of the extensions for virtualizations including the Intel VT/AMD-V. This comes with an absolutely loadable module (kernel module), the kvm.ko that provides the complete core infrastructure for the virtualization along with a module that is processor-specific, kvm-intel.ko/kvm-amd.ko. Using Linux Kernel based VM, you can easily run more than one VMs that are running with unmodified images of Linux or MS Windows. Every VM can have its own specific hardware that is virtualized, which consists of the disk, the network card, and the graphics adapter, etc.

Supported Linux Versions, Hosts, & Firmware Versions

  • The kernel based virtual machine’s virtualized environment should be run on the compute nodes of the X-Architecture.
  • You must be using the IBM Flex System Manager Linux versions for the kernel based virtual machine’s virtualization environment.
  • The host machines need any of the Linux versions (6.0 or 6.1 or 6.2 or 6.3 or 6.4) of the Red Hat Enterprise which must have the KVM installed.

Networks That Are Supported

  • VEB or the Virtual Ethernet Bridging
  • There is very limited support offered for the hypervisor networks of the Kernel based VM
  • The VEPA or the Virtual Ethernet Port Aggregator network needs the Network Control of the IBM Flex System Manager and where the host machine is inside the network system pool

Note

  • Use the virtio or the paravirtualized drivers if you want to have improved performance.
  • For the virtual network server adapters, make use of the e1000 or the Virtio model configurations.

Supported Storage

The virtual disk storage options and the image repositories include the types given below:

  • The version 3 of NFS server that runs on RHEL versions 6.2 & 6.3.
  • The version 3 of NFS server that runs on RHEL versions 6.0/6.1/6.2/6.3/6.4 with Kernel based virtual machine installed.

Tasks That Are Supported

With the Linux kernel-based VM’s virtualization environment, one can easily complete the following tasks:

  • You can start, edit or stop a given workload
  • On a host, you can create as well as delete the NFS storage pools
  • You can create as well as delete the NFS/SAN virtual disks as well
  • You can also relocate the virtual servers
  • You can create, edit, & delete the server system pools too
  • You can easily create, edit, & delete the virtual servers also
  • You can easily suspend/resume the virtual servers as well as the workloads without releasing the resources
  • Power® operations are also possible with this for the virtual servers
  • You can also turn the maintenance mode as “on” as well as “off” for the hosts in the server system pools
  • You can very easily import a virtual appliance package which consists of more than one raw disk images
  • It is also possible for you to easily capture a virtual server or a workload into a virtual appliance
  • It is also possible for you to easily deploy a virtual appliance package to any fresh virtual server with hardware customizations as well as with product customizations
  • It is even possible for you to easily deploy a virtual appliance package to any virtual server that already exists with ample resources.
  • You can even create, delete and edit the network system pools (this is in the case where you are using the Network Control of IBM Flex System Manager with the VMControl)
  • You can also easily work up to adjust the polling interval of the virtualization monitor for the Linux kernel-based virtual machine with the help of the “KvmPlatformPollingInterval” parameter

Linux Kernel-Assisted VM

KVM is shortened for “Kernel-based Virtual Machine”, which is a complete virtualization system for Linux on the specific “x86” hardware that consists of the 2 different virtualization extensions (that are Intel VT and AMD-V). With the help of KVM, you can easily run more than one VMs that run non-modified Linux or Microsoft Windows images. Each VM has its own separate virtualized private hardware; which consists of a disk, a network card, a graphics adapter, and more. KVM is actually an open source software solution.

linux kvm vm architecture

KVM Storage

It is the QEMU Storage

  • The host machine
    • This usually exports the virtual disks to the guests
    • But actually these guest systems use these as real guests
  • The virtual disks are backed by real devices
    • Partitions
    • Whole disks
    • Logical volumes
  • The virtual disks are backed by real files
    • Raw files
    • A file system
    • Image formats

The Virtual Storage Stack

There are 2 complete storage sacks

  • The guests
    • The guest file system
    • The guest storage driver
  • The host
    • Storage hw emulation
    • Image format
    • Host file system
    • Host volume manager
    • Host storage driver

More…

  • Image formats
    • Raw
    • Qcow2
    • VMDK
    • More…
  • Hardware emulation

QEMU Transports

  • ATA
  • SCSI
  • Virtio

Backend/Protocol

  • Posix File

Host

  • Kernel

Some Points to Ponder

  • A simple Intel ATA controller emulation works with about every OS as it is very common
  • A Symbios SCSI controller emulation is very common with the older x89 high-end systems
  • Virtio-blk is the paravirtualized block transport

What is Paravirtualization?

This means to provide more optimal interfaces than the real hardware.

  • Its Merit– Faster than full virtualization
  • Its Demerit – It needs special drivers for every guest

KVM Benefits

  • Lesser Cost – Studies show that KVM happens to be sixty to ninety percent lesser expensive than other similar enterprise solutions that offer the similar type of core functionalities. KVM is a completely open source solution, which provides as well as delivers some real value as far as functionality goes. Many enterprises save on the costs of licensing whereby enjoying multiple technical benefits as well as many financial advantages at the same time of a multiple-vendor open source ecosystem.
  • Higher Enterprise-wise Performance and Better Scalability – In the many recent evaluations of KVM’s performance, it has time after time matched with the most leading and popularly known and used proprietary technologies, while representing very good performance and competing with the upper most performance benchmarks.
  • Superior Security – As the KVM is constructed on the top of the Linux platform, it is capable of utilizing the most-advanced security capacities of SELinux (i.e. Security Enhanced Linux). This helps it in providing the security of “Mandatory Access Control” between VMs. Moreover, the Enterprise Linux 5 (Red Hat) with KVM hypervisor on IBM systems is also awarded for matching up with the security standards of the government, and also allowing this open source virtualization to be very easily used in the security projects of the homeland.
  • Higher QoS (Quality of Service) – The C-Groups or the Control Groups of Linux allow finely-grained Quality of Service, QoS, policies for these processes of Linux. Now, as the Kernel-based VM is also a part of the Linux kernel platform, the virtual machine is not different from any other program that runs on Linux. So, this is the reason why the administrators can easily set well-defined thresholds for the memory, the CPU, the network, the disk input/output, and for the guaranteeing of the QoS for any given virtual systems.
  • Open Source Architecture – The kernel-based virtual system is an open source ecosystem giving you better and more choices, unlike the other popular widely run proprietary solutions, which sometimes and in some ways, limit the partners types, thus, limiting the options for the available interoperable solutions.