9.18.8. 配置 PCI 透传


通过 Peripheral Component Interconnect (PCI) 透传功能,您可以从虚拟机 (VM) 访问和管理硬件设备。配置 PCI 透传后,PCI 设备的功能就如同它们实际上附加到客户机操作系统上一样。

集群管理员可以使用 oc CLI 来公开和管理集群中允许在集群中使用的主机设备。

重要

对于 vfio-pci 来分配 PCI 设备,其他内核驱动程序都无法管理该设备。如果驱动程序已经管理该设备,您必须将特定的内核模块添加到 blocklist 中。

向黑名单中添加内核模块会导致该模块处理的所有设备对主机不可用。

以下示例显示了一个 MachineConfig CR,它通过在 /etc/modprobe.d/ 中创建配置文件并添加内核参数,将 enic 网络驱动程序添加到 blocklist 中:

apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
  labels:
    machineconfiguration.openshift.io/role: worker
  name: 100-blacklist-enic
spec:
  config:
    ignition:
      version: 3.4.0
    storage:
      files:
      - contents:
          source: data:,blacklist%20enic%0A
        mode: 420
        overwrite: true
        path: /etc/modprobe.d/blacklist-enic.conf
  kernelArguments:
    - enic.blacklist=1
    - rd.driver.blacklist=enic

9.18.8.1. 为 GPU 透传准备节点

您可以防止 GPU 操作对象部署到您为 GPU 透传指定的 worker 节点上。

如果在集群中使用 NVIDIA GPU Operator,您可以将 nvidia.com/gpu.deploy.operands=false 标签应用到您不想为 GPU 或 vGPU 操作对象配置的节点。这可防止创建配置 GPU 或 vGPU 操作对象的 pod,并终止现有的 pod。

先决条件

  • 已安装 OpenShift CLI (oc)。

流程

  • 运行以下命令标记节点:

    $ oc label node <node_name> nvidia.com/gpu.deploy.operands=false

    其中:

    <node_name>
    指定您不想安装 NVIDIA GPU 操作对象的节点名称。

验证

  1. 运行以下命令,验证标签是否已添加到节点:

    $ oc describe node <node_name>
  2. 可选: 如果之前在节点上部署了 GPU 操作对象,请验证其删除。

    1. 运行以下命令,检查 nvidia-gpu-operator 命名空间中的 pod 状态:

      $ oc get pods -n nvidia-gpu-operator

      输出示例:

      NAME                             READY   STATUS        RESTARTS   AGE
      gpu-operator-59469b8c5c-hw9wj    1/1     Running       0          8d
      nvidia-sandbox-validator-7hx98   1/1     Running       0          8d
      nvidia-sandbox-validator-hdb7p   1/1     Running       0          8d
      nvidia-sandbox-validator-kxwj7   1/1     Terminating   0          9d
      nvidia-vfio-manager-7w9fs        1/1     Running       0          8d
      nvidia-vfio-manager-866pz        1/1     Running       0          8d
      nvidia-vfio-manager-zqtck        1/1     Terminating   0          9d
    2. 监控 pod 状态,直到具有 Terminating 状态的 pod 被删除:

      $ oc get pods -n nvidia-gpu-operator

      输出示例:

      NAME                             READY   STATUS    RESTARTS   AGE
      gpu-operator-59469b8c5c-hw9wj    1/1     Running   0          8d
      nvidia-sandbox-validator-7hx98   1/1     Running   0          8d
      nvidia-sandbox-validator-hdb7p   1/1     Running   0          8d
      nvidia-vfio-manager-7w9fs        1/1     Running   0          8d
      nvidia-vfio-manager-866pz        1/1     Running   0          8d
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部