Skip to content

Fibre Channel PCI Passthrough on KVM Virtual Machine Overview

This section describes the configuration steps necessary for setting up Fibre Channel PCI passthrough for an OpenVMS instance running on a KVM virtual machine. This allows OpenVMS to directly access and utilize a physical Fibre Channel Host Bus Adapter (HBA) connected to the host.

Passthrough technology uses an input-output memory management unit (IOMMU) which can be referred to as VT-d on Intel-based hosts and AMD-Vi, AMD-V, or SVM on AMD-based hosts. Throughout this guide, the generic term IOMMU is used, but be aware that the terminology on your system may differ depending on your CPU.

Important

  • PCI passthrough is based on PCI slot granularity. That is, all functions of a multi-function PCI device must be assigned to the same virtual machine. For example, a dual-port Fibre Channel HBA must have both ports (i.e. functions) assigned to the same virtual machine. Individual ports on the same HBA cannot be assigned to more than one virtual machine.

    If more than one virtual machine needs to have control over a Fibre Channel HBA, there must be more than one Fibre Channel HBA installed on the host system.

  • N_Port ID Virtualization (NPIV) is not supported on VSI OpenVMS.

Supported Platforms and Hardware

Operating systems
  • Red Hat Enterprise Linux (RHEL) 9.x
  • Oracle Linux (OL) 9.x
Host Bus Adapters
Refer to the Supported Platforms page for the full list of supported HBA devices.
VSI OpenVMS Version
VSI OpenVMS V9.2-3 + Update V3 with the PERF_UPD V1.0 ECO kit installed, or any newer version of VSI OpenVMS x86-64.
KVM Version
PCI passthrough has been tested on systems running KVM version 9.1.0 and 10.1.0.
Linux Kernel Version
Linux kernel version 5.2 or higher

Prerequisites

Before you start setting up PCI passthrough, you must make sure that the IOMMU support is enabled on your host system both on the UEFI/BIOS side and in the Linux kernel. In order to do so, follow the steps described in the next sections.

Info

Note that the commands from the examples in the next sections may require root privileges to run. Execute sudo -s to be able to run all commands without specifying sudo.