1 About Oracle Linux KVM

This chapter provides a high-level overview of the Kernel-based Virtual Machine (KVM) feature on Oracle Linux, the user space tools that are available for installing and managing a standalone instance of KVM, and the differences between KVM usage in this mode and usage within a managed environment provided by Oracle Linux Virtualization Manager.

Description of the Oracle Linux KVM Feature

The KVM feature provides a set of modules that enable you to use the Oracle Linux kernel as a hypervisor. KVM can be used on both x86_64 and aarch64 processor architectures and is available on Oracle Linux 7, Oracle Linux 8, and Oracle Linux 9 systems using either Red Hat Compatible Kernel (RHCK) or Unbreakable Enterprise Kernel (UEK).

By default, KVM is built into the kernel. KVM features are actively developed and might vary depending on platform and kernel release. If you're using UEK, see the release notes for the kernel release that you're using to obtain information about features and any known issues or limitations that might apply. See Unbreakable Enterprise Kernel documentation for more information.

For enterprise or clustered KVM deployments on Oracle Linux, consider using Oracle Linux Virtualization Manager which is a server virtualization management platform. Through its Administration or virtual machine (VM) portals, you can configure, monitor, and manage an Oracle Linux KVM environment, including hosts, VMs, storage, networks, and users. Oracle Linux Virtualization Manager also provides a REST API for managing Oracle Linux KVM infrastructure, enabling you to integrate Oracle Linux Virtualization Manager with other management systems or to automate repetitive tasks with scripts. Find out more at https://docs.oracle.com/en/virtualization/oracle-linux-virtualization-manager/.

Guest Operating System Requirements

The following guest operating systems can be used when installed within a standalone instance of KVM.

Linux Guest Operating Systems

Linux Operating System 32-bit Architecture 64-bit Architecture

Oracle Linux 6

Yes*

Yes

Oracle Linux 7

N/A

Yes

Oracle Linux 8

N/A

Yes

Oracle Linux 9

N/A

Yes

Red Hat Enterprise Linux 6

Yes*

Yes

Red Hat Enterprise Linux 7

N/A

Yes

Red Hat Enterprise Linux 8

N/A

Yes

Red Hat Enterprise Linux 9

N/A

Yes

CentOS 6

Yes*

Yes

CentOS 7

N/A

Yes

SUSE Linux Enterprise Server 12

N/A

Yes

SUSE Linux Enterprise Server 15

N/A

Yes

Ubuntu 16.04

N/A

Yes

Ubuntu 18.04

N/A

Yes

Ubuntu 20.04

N/A

Yes

Ubuntu 22.04

N/A

Yes

Important:

* cloud-init is unavailable for 32-bit architectures.

You can download Oracle Linux ISO images and disk images from Oracle Software Delivery Cloud: https://edelivery.oracle.com/linux.

Microsoft Windows Guest Operating Systems

Table 1-1 Microsoft Windows Supported Guest Operating Systems

Guest Operating System 64-bit 32-bit

Microsoft Windows Server 2022

Yes

N/A

Microsoft Windows Server 2019

Yes

N/A

Microsoft Windows Server 2016

Yes

N/A

Microsoft Windows Server 2012 R2

Yes

N/A

Microsoft Windows Server 2012

Yes

N/A

Microsoft Windows 11

Yes

Yes

Microsoft Windows 10

Yes

Yes

Microsoft Windows 8.1

Yes

Yes

Microsoft Windows 8

Yes

Yes

Caution:

Microsoft Windows 8 is no longer supported by Microsoft. See https://docs.microsoft.com/en-us/lifecycle/products/windows-8 for more information.

Microsoft Windows 8.1 falls out of extended support by Microsoft in January 2023. See https://docs.microsoft.com/en-us/lifecycle/products/windows-81 for more information.

Note:

We recommend that you install the Oracle VirtIO Drivers for Microsoft Windows in Windows VMs for improved performance for network and block (disk) devices and to resolve common issues. The drivers are paravirtualized drivers for Microsoft Windows guests running on Oracle Linux KVM hypervisors.

Testing of all Microsoft Windows guests on KVM is performed by using the Oracle VirtIO Drivers for Microsoft Windows.

For instructions on how to obtain and install the drivers, see Oracle Linux: Oracle VirtIO Drivers for Microsoft Windows for use with KVM.

Oracle Solaris Guest Operating System

Oracle Solaris 11.4 can be used as a guest operating system when installed within a standalone instance of KVM.

Oracle Solaris 11.4.33 (Oracle Solaris 11.4 SRU 33) is the minimum version that provides VirtIO driver support.

For best results, follow these recommendations:

  • Use at least a two-core configuration for the Oracle Solaris VM.

  • Use the most current QEMU system type (Custom Emulated Machine = pc-i440fx-4.2) for the Oracle Solaris VM.

You can download Oracle Solaris ISO images and disk images from Oracle Software Delivery Cloud: https://edelivery.oracle.com/.

System Requirements and Recommendations

Although most systems running Oracle Linux 7, Oracle Linux 8, or Oracle Linux 9 can use KVM, some general hardware recommendations, requirements, and guidelines should be followed to run a guest on a host system. Many of these depend on the kinds of applications being run on the virtual machine (VM) and the amount of work they're expected to perform.

  • Bare metal host

    KVM can be used when it's run on a bare metal host. Nested virtualization scenarios aren't supported for KVM.

  • CPU

    The host system CPU must have virtualization features Intel (VT-x) or AMD (AMD-V) enabled. Arm (aarch64) CPUs can also be used. If virtualization features aren't available, check that virtualization is enabled in the system firmware BIOS or UEFI. As a rule of thumb, you can start with the following virtual CPU to host CPU ratios (this ratio is of distinct CPU cores and assumes SMT is enabled):

    • 1:1 to 2:1 can typically achieve good VM performance.

    • 3:1 may cause some VM performance degradations.

    • 4:1 or greater might cause significant VM performance problems.

    The ratio of virtual CPUs to host CPUs can be calculated by running performance tests on VM and host systems. Deciding on acceptable performance depends on many factors such as, for example:

    • Tasks that VM systems perform.

    • Volume of tasks to be processed.

    • Preferred rate that these tasks need to be processed.

  • Memory

    3 GB reserved for the host is a good starting point but memory requirements for the host operating system scale with the amount of physical memory available. For systems with lots of available physical memory, increase the reserved memory for the host operating system. For example, on a system with 1 TB memory, We recommend at least 20 GB available for the host operating system. If system work on a host and all VMs start exceeding the available physical RAM the performance impact is severe. However, if VMs are typically idle, you might not need to allocate as much RAM. Ensure you do performance testing to ensure that applications always have enough memory.

  • Storage

    The minimum disk space, usually 6 GB, required for the host operating system should be met. Each VM requires its own storage for the guest operating system and for swap usage. Cater to around 6 GB, at minimum, per VM that you intend to create, but consider the purpose of the VM and scale accordingly.

About Virtualization Packages

Oracle Linux provides several virtualization packages that enable you work with KVM. You can install virtualization packages from the Oracle Linux yum server or from the Unbreakable Linux Network (ULN). Packages are provided from various upstream projects, including:

The following packages are usually required for a virtualization host:

  • libvirt: This package provides an interface to KVM, and the libvirtd daemon for managing guest VMs.

  • qemu-kvm: This package installs the QEMU emulator that performs hardware virtualization so that guests can access host CPU and other resources.

  • virt-install: This package provides command line utilities for creating and provisioning guest VMs.

  • virt-viewer: This package provides a graphical utility that can be loaded into a desktop environment to access the graphical console of a guest VM.

Instead of installing virtualization packages individually, you can install virtualization package groups.

The Virtualization Host package group contains the minimum set of packages that are required for a virtualization host. If the Oracle Linux system includes a GUI environment, you can also choose to install the Virtualization Client package group.

Note that the Cockpit web console also provides a graphical interface to interact with KVM and libvirtd to set up and configure VMs on a system. See Oracle Linux: Using the Cockpit Web Console for more information.