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 thelibvirtd
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.