搜索

第 5 章 配置 PCI 透传

download PDF

您可以使用 PCI 透传将物理 PCI 设备(如图形卡或网络设备)附加到实例。如果您将 PCI 透传用于设备,则实例会对该设备进行独占访问来执行任务,且设备不适用于主机。

重要

在路由的提供商网络中使用 PCI 透传

Compute 服务不支持跨越多个提供商网络的单个网络。当网络包含多个物理网络时,计算服务仅使用第一个物理网络。因此,如果您使用路由的提供者网络,则必须在所有 Compute 节点上使用相同的 physical_network 名称。

如果将路由的提供者网络与 VLAN 或扁平网络搭配使用,则必须对所有片段使用相同的 physical_network 名称。然后,您可以为网络创建多个片段,并将片段映射到适当的子网。

要让您的云用户创建附加 PCI 设备的实例,您必须完成以下操作:

  1. 为 PCI 透传指定 Compute 节点。
  2. 为具有所需 PCI 设备的 PCI 透传配置 Compute 节点。
  3. 部署 overcloud。
  4. 创建类别,以启动附加有 PCI 设备的实例。

先决条件

  • Compute 节点具有所需的 PCI 设备。

5.1. 为 PCI 透传设计 Compute 节点

要为附加物理 PCI 设备的实例指定 Compute 节点,您必须创建一个新角色文件来配置 PCI 透传角色,并配置一个新的 overcloud 类别和 PCI 透传资源类,以用于标记 PCI 透传的 Compute 节点。

流程

  1. stack 用户的身份登录 undercloud。
  2. Source stackrc 文件:

    [stack@director ~]$ source ~/stackrc
  3. 生成一个名为 roles_data_pci_passthrough.yaml 的新角色数据文件,其中包含 Controller, Compute, 和 ComputeCPI 角色:

    (undercloud)$ openstack overcloud roles \
     generate -o /home/stack/templates/roles_data_pci_passthrough.yaml \
     Compute:ComputePCI Compute Controller
  4. 打开 roles_data_pci_passthrough.yaml 并编辑或添加以下参数和部分:

    section/Parameter当前值新值

    角色注释

    Role: Compute

    Role: ComputePCI

    角色名称

    名称 :Compute

    名称 :ComputePCI

    description

    基本 Compute 节点角色

    PCI Passthrough Compute 节点角色

    HostnameFormatDefault

    %stackname%-novacompute-%index%

    %stackname%-novacomputepci-%index%

    deprecated_nic_config_name

    compute.yaml

    compute-pci-passthrough.yaml

  5. 通过将 overcloud 添加到节点定义模板 node.jsonnode.yaml,注册 overcloud 的 PCI 透传 Compute 节点。有关更多信息,请参阅 Director 安装和使用 指南中的 为 overcloud 注册节点
  6. 检查节点硬件:

    (undercloud)$ openstack overcloud node introspect \
     --all-manageable --provide

    如需更多信息,请参阅 Director 安装和使用指南中的 创建裸机节点硬件清单

  7. 为 PCI 透传 Compute 节点创建 compute-pci-passthrough overcloud 类别:

    (undercloud)$ openstack flavor create --id auto \
     --ram <ram_size_mb> --disk <disk_size_gb> \
     --vcpus <no_vcpus> compute-pci-passthrough
    • <ram_size_mb> 替换为裸机节点的 RAM,以 MB 为单位。
    • <disk_size_gb> 替换为裸机节点中的磁盘大小(以 GB 为单位)。
    • <no_vcpus> 替换为裸机节点中的 CPU 数量。

      注意

      这些属性不可用于调度实例。但是,计算调度程序使用磁盘大小来确定根分区大小。

  8. 使用自定义 PCI 透传资源类标记您要为 PCI 透传指定的每个裸机节点:

    (undercloud)$ openstack baremetal node set \
     --resource-class baremetal.PCI-PASSTHROUGH <node>

    <node> 替换为裸机节点的 ID。

  9. compute-pci-passthrough 类别与自定义 PCI passthrough 资源类关联:

    (undercloud)$ openstack flavor set \
     --property resources:CUSTOM_BAREMETAL_PCI_PASSTHROUGH=1 \
      compute-pci-passthrough

    要确定与 Bare Metal 服务节点的资源类对应的自定义资源类的名称,请将资源类转换为大写,请将所有 punctuation 替换为下划线,并使用 CUSTOM_ 前缀。

    注意

    类别只能请求一个裸机资源类实例。

  10. 设置以下类别属性,以防止计算调度程序使用裸机类别属性来调度实例:

    (undercloud)$ openstack flavor set \
     --property resources:VCPU=0 --property resources:MEMORY_MB=0 \
     --property resources:DISK_GB=0 compute-pci-passthrough
  11. node-info.yaml 文件中添加以下参数,以指定 PCI 透传 Compute 节点的数量,以及用于指定 PCI 透传的 Compute 节点的类别:

    parameter_defaults:
      OvercloudComputePCIFlavor: compute-pci-passthrough
      ComputePCICount: 3
  12. 要验证角色是否已创建,请输入以下命令:

    (undercloud)$ openstack overcloud profiles list
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.