openQA and PowerPC

Due to recent changes in the worker configuration of the SUSE internal openQA instance, we needed to reconfigure some of the PowerPC jobs in openQA. This triggered a couple of questions regarding the availability of openQA worker, worker backends, their differences and their caveats. This blog post should act as a quickstart/overview guide for people getting into OpenQA testing on the PowerPC architecture.

PowerPC jobs can either run as native virtual machines on PowerVM, leveraging the full power of PowerPC (pun intended!) or as KVM-powered virtual machines, henceforth KVM on PowerNV. While PowerVM is the only officially recommended way from IBM, in openQA we use KVM on PowerNV successfully for years. OpenQA has backends for PowerVM and KVM on PowerNV but since both comes with different shortcoming, it is difficult to give a recommendation which one to use.

TL;DR

  • qemu_ppc64le is closer to openQA, while ppc64le_hmc is closer to PowerPC
  • qemu_ppc64le provides a more openQA feature-complete backend
  • ppc64le_hmc is more likely to run on more recent hardware (Power10), but comes with caveats (see below)
  • ppc64le_hmc is not (yet) available on openqa.opensuse.org

When selecting a PowerPC backend, use the caveats section below for a help to decide which backend fits your use case better.

Different virtual machine modi

On PowerPC everything is virtualized. The hardware is designed to be a hypervisor from ground up. Even in OPAL, it’s most basic bare-metal configuration, the OS will run as the only VM on the internal hypervisor.

The internal hypervisor is backed directly by PowerPC and is managed by the VIOS (virtual input output server). VIOS is AIX based IO hub system which runs as a separate essential VM on the PowerPC machine itself. The customary way of managing virtual machines is to use either Novalink or HMC. HMC is an external management solution, typically running on a separate host and able to manage a cluster of PowerPC machines from one single host (similar to a Salt master). Novalink is used as internal management interface from the same host. Those are just different ways of managing virtual machines on PowerVM.

For using PowerPC in openQA one does not need to know how the internals work, the backend should abstract this for you away. For more information on the internals itself, I refer to the SUSE QE Tools Workshop 2021-02-05 - PowerPC administration recording.

OpenQA provided backends

openQA provides testing ability on PowerVM using either NovaLink or HMC. PowerPC managed over HMC is the newer backend and should be preferred over Novalink. This is realized via the ppc64le_hmc backend. Although this is supported and used, those backends come with some limitations compared to the qemu backends, which in turn has also its own caveats. See the dedicated caveats section below for more details.

KVM on PowerNV is “just libvirt/qemu”, or “just KVM” depending on your view. For openQA, KVM on PowerNV is a worker instance spawning qemu virtual machines on a default SUSE/openSUSE Linux installation running on PowerPC. KVM on PowerNV is provided via the qemu_ppc64le worker class and the most supported backend for PowerPC. Be aware that our current PowerPC workers for KVM on PowerNV are all based on Power8. It is uncertain if this approach will work on newer Power platforms, e.g. Power9 or Power10.

The qemu_ppc64le worker class is currently the only PowerPC backend for openqa.opensuse.org. It runs on a Power8 machine running openSUSE Leap.

The caveats for both backends makes it difficult to give a single recommendation. In general one can say that qemu_ppc64le is closer to openQA, while ppc64le_hmc is closer to PowerPC. The existing caveats for ppc64le_hmc might also help you select a suitable backend for your needs.

KVM on PowerNV for openQA

KVM on PowerNV is realized by running a default SUSE/openSUSE installation on PowerPC in OPAL/PowerNV mode. OPAL stands for OpenPower Abstraction Layer and is the closes you will get to a bare-metal installation on PowerPC. Only one VM instance is allowed, and it gets full access to the hardware (as far as possible). PowerNV (NV for Non-Virtualized) is the “bare-metal” platform using the OPAL firmware. This is the run mode for the workers providing qemu_ppc64le.

Be advised, that the current PowerPC workers for openqa.opensuse.org are based on Power8 and the future for PowerNV for Power10 (and later) is uncertain.

Known caveats

  • ppc64le_hmc only supports raw images, but not qcow or qcow2
  • ppc64le_hmc cannot publish HDDs from this backend (yet)
  • ppc64le_hmc is not available on openqa.opensuse.org
  • qemu_ppc64le runs only on Power8 and it is uncertain if it will run on Power9 or Power10

Credits

Big thanks to Nick Singer, for helping to write this blog post!