Virtualization and hypervisors

On IBM Z, IBM Fusion Data Foundation supports both KVM and z/VM as hypervisors. Although the interaction with the hypervisor is covered by the OpenShift Container Platform itself, there are a couple of considerations with regards to IBM Fusion Data Foundation.

IBM Fusion Data Foundation is a storage-centric product, which requires high I/O throughput and responsiveness compared to OpenShift Container Platform, which is a generic platform. Therefore, it is essential to have native performance on disk devices and to keep the high level of disk utilization.

With z/VM, both FCP SCSI and DASD disks are in native/pass-through mode, which means that guests can use native performance of those devices. Enabling HyperPAV (aliases) for ECKD DASD disks achieves higher throughput and overall better I/O performance. This might result in higher CPU utilization, which is acceptable for a storage-oriented product such as IBM Fusion Data Foundation.

With KVM, besides the pass-through mode, disks on the KVM host could be partitioned into libvirt/QEMU image files and be used as disks for KVM guests. In either cases, depending on the type of libvirt/QEMU driver being used - be it VirtIO Block (virtio-blk) or VirtIO SCSI (virtio-scsi) - the naming of the disk device in the guest might be different, where /dev/vdX for VirtIO Block and /dev/sdX for VirtIO SCSI. Using pass-through mode for disks in KVM is preferred, especially for the case of using the disks as block devices for OSD disks. Using I/O threads could improve the performance of I/O for disk devices, at a cost of higher CPU and memory utilization. Under certain events of the Ceph nodes performing rebalancing or recovering, the network load spikes might happen for extended period, depending on the size of the datasets. It is advisable to use multiple queues for VirtIO network interfaces, ideally matching the number of the guest’s CPUs.

In general:

  • With z/VM, enable HyperPAV.
  • With KVM, depending on VirtIO drivers, the deployment plan needs to consider disk device naming convention.
  • With KVM, enable I/O threads, as many as the number of CPUs.
  • With KVM, use multiple queues for VirtIO network interfaces, as much as the number of CPUs.
  • Use KVM pass-through mode for disks to achieve the highest performance.
  • If not using pass-through disks, use KVM VirtIO Block driver for highest performance (being deprecated upstream).
  • If not using pass-through disks, use KVM Virtio SCSI driver for highest compatibility and having a high number of (OSD) disks that are attached to the guest.