Chapter 3. Getting started with virtualization on IBM POWER
You can use KVM virtualization when using RHEL 8 on IBM POWER8 or POWER9 hardware. However, enabling the KVM hypervisor on your system requires extra steps compared to virtualization on AMD64 and Intel64 architectures. Certain RHEL 8 virtualization features also have different or restricted functionality on IBM POWER.
Apart from the information in the following sections, using virtualization on IBM POWER works the same as on AMD64 and Intel 64. Therefore, you can see other RHEL 8 virtualization documentation for more information when using virtualization on IBM POWER.
3.1. Enabling virtualization on IBM POWER
To set up a KVM hypervisor and create virtual machines (VMs) on an IBM POWER8 or IBM POWER9 system running RHEL 8, follow the instructions below.
- RHEL 8 is installed and registered on your host machine.
The following minimum system resources are available:
- 6 GB free disk space for the host, plus another 6 GB for each intended VM.
- 2 GB of RAM for the host, plus another 2 GB for each intended VM.
Your CPU machine type must support IBM POWER virtualization.
To verify this, query the platform information in your
# grep ^platform /proc/cpuinfo/ platform : PowerNV
If the output of this command includes the
PowerNVentry, you are running a PowerNV machine type and can use virtualization on IBM POWER.
Load the KVM-HV kernel module
# modprobe kvm_hv
Verify that the KVM kernel module is loaded
# lsmod | grep kvm
If KVM loaded successfully, the output of this command includes
Install the packages in the virtualization module:
# yum module install virt
# yum install virt-install
# systemctl start libvirtd
Verify that your system is prepared to be a virtualization host:
# virt-host-validate [...] QEMU: Checking if device /dev/vhost-net exists : PASS QEMU: Checking if device /dev/net/tun exists : PASS QEMU: Checking for cgroup 'memory' controller support : PASS QEMU: Checking for cgroup 'memory' controller mount-point : PASS [...] QEMU: Checking for cgroup 'blkio' controller support : PASS QEMU: Checking for cgroup 'blkio' controller mount-point : PASS QEMU: Checking if IOMMU is enabled by kernel : PASS
If all virt-host-validate checks return a
PASSvalue, your system is prepared for creating VMs.
If any of the checks return a
FAILvalue, follow the displayed instructions to fix the problem.
If any of the checks return a
WARNvalue, consider following the displayed instructions to improve virtualization capabilities.
Note that if virtualization is not supported by your host CPU, virt-host-validate generates the following output:
QEMU: Checking for hardware virtualization: FAIL (Only emulated CPUs are available, performance will be significantly limited)
However, attempting to create VMs on such a host system will fail, rather than have performance problems.
3.2. How virtualization on IBM POWER differs from AMD64 and Intel 64
KVM virtualization in RHEL 8 on IBM POWER systems is different from KVM on AMD64 and Intel 64 systems in a number of aspects, notably:
- Memory requirements
- VMs on IBM POWER consume more memory. Therefore, the recommended minimum memory allocation for a virtual machine (VM) on an IBM POWER host is 2GB RAM.
- Display protocols
The SPICE protocol is not supported on IBM POWER systems. To display the graphical output of a VM, use the
VNCprotocol. In addition, only the following virtual graphics card devices are supported:
vga- only supported in
-vga stdmode and not in
- SMBIOS configuration is not available.
- Memory allocation errors
POWER8 VMs, including compatibility mode VMs, may fail with an error similar to:
qemu-kvm: Failed to allocate KVM HPT of order 33 (try smaller maxmem?): Cannot allocate memory
This is significantly more likely to occur on VMs that use RHEL 7.3 and prior as the guest OS.
To fix the problem, increase the CMA memory pool available for the guest’s hashed page table (HPT) by adding
kvm_cma_resv_ratio=memoryto the host’s kernel command line, where memory is the percentage of the host memory that should be reserved for the CMA pool (defaults to 5).
- Huge pages
Transparent huge pages (THPs) do not provide any notable performance benefits on IBM POWER8 VMs. However, IBM POWER9 VMs can benefit from THPs as expected.
In addition, the size of static huge pages on IBM POWER8 systems are 16 MiB and 16 GiB, as opposed to 2 MiB and 1 GiB on AMD64, Intel 64, and IBM POWER9. As a consequence, to migrate a VM configured with static huge pages from an IBM POWER8 host to an IBM POWER9 host, you must first set up 1GiB huge pages on the VM.
kvm-clockservice does not have to be configured for time management in VMs on IBM POWER9.
IBM POWER9 systems do not support the
pvpanicdevice. However, an equivalent functionality is available and activated by default on this architecture. To enable it in a VM, use the
<on_crash>XML configuration element with the
In addition, make sure to remove the
<panic>element from the
<devices>section, as its presence can lead to the VM failing to boot on IBM POWER systems.
- Single-threaded host
- On IBM POWER8 systems, the host machine must run in single-threaded mode to support VMs. This is automatically configured if the qemu-kvm packages are installed. However, VMs running on single-threaded hosts can still use multiple threads.
- Peripheral devices
A number of peripheral devices supported on AMD64 and Intel 64 systems are not supported on IBM POWER systems, or a different device is supported as a replacement.
Devices used for PCI-E hierarchy, including
xio3130-downstream, are not supported. This functionality is replaced by multiple independent PCI root bridges provided by the
- UHCI and EHCI PCI controllers are not supported. Use OHCI and XHCI controllers instead.
IDE devices, including the virtual IDE CD-ROM (
ide-cd) and the virtual IDE disk (
ide-hd), are not supported. Use the
Emulated PCI NICs (
rtl8139) are not supported. Use the
Sound devices, including
AC97, are not supported.
USB redirection devices, including
usb-tablet, are not supported.
- Devices used for PCI-E hierarchy, including
- v2v and p2v
virt-p2vutilities are only supported on the AMD64 and Intel 64 architecture, and are not provided on IBM POWER.
- For a comparison of selected supported and unsupported virtualization features across system architectures supported by Red Hat, see Section 20.5, “An overview of virtualization features support”.