第 6 章 配置 VDPA Compute 节点以启用使用 VDPA 端口的实例


重要

该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息

VIRTIO 数据路径加速 (VDPA) 通过 VIRTIO 提供有线速数据传输。VDPA 设备在 SR-IOV 虚拟功能 (VF) 上提供 VIRTIO 抽象,它允许在实例上不使用特定于供应商的驱动程序。

注意

当您将 NIC 用作 VDPA 接口时,它必须专用于 VDPA 接口。您不能将 NIC 用于其他连接,因为您必须使用 switchdev 模式配置 NIC 的物理功能(PF),并使用硬件卸载的 OVS 管理 PF。

要让您的云用户创建使用 VDPA 端口的实例,请完成以下任务:

  1. 可选:为 VDPA 设计 Compute 节点。
  2. 为 VDPA 配置具有所需 VDPA 驱动程序的 Compute 节点。
  3. 部署 overcloud。
提示

如果 VDPA 硬件有限,您还可以配置主机聚合来优化 VDPA Compute 节点上的调度。要仅在 VDPA Compute 节点上调度请求 VDPA 的实例,请创建一个具有 VDPA 硬件的 Compute 节点的主机聚合,并将计算调度程序配置为仅将 VDPA 实例放在主机聚合上。如需更多信息,请参阅通过隔离主机聚合创建和管理主机聚合来过滤

先决条件

  • 您的 Compute 节点具有所需的 VDPA 设备和驱动程序。
  • 您的 Compute 节点有 Mellanox NIC。
  • 您的 overcloud 被配置为 OVS 硬件卸载。如需更多信息,请参阅配置 OVS 硬件卸载
  • 您的 overcloud 配置为使用 ML2/OVN。

6.1. 为 VDPA 设计 Compute 节点

要为请求 VIRTIO 数据路径加速 (VDPA) 接口的实例指定计算节点,请创建一个新的角色文件来配置 VDPA 角色,并使用 VDPA 资源类配置裸机节点,以标记 VDPA 的计算节点。

注意

以下流程适用于尚未调配的新 overcloud 节点。要将资源类分配给已调配的现有 overcloud 节点,请缩减 overcloud 以取消置备节点,然后扩展 overcloud,以使用新的资源类分配来重新置备节点。有关更多信息,请参阅 扩展 overcloud 节点

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    [stack@director ~]$ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 生成一个名为 roles_data_vdpa.yaml 的新角色数据文件,其中包含 Controller, Compute, 和 ComputeVdpa 角色:

    (undercloud)$ openstack overcloud roles \
     generate -o /home/stack/templates/roles_data_vdpa.yaml \
     ComputeVdpa Compute Controller
    Copy to Clipboard Toggle word wrap
  4. 为 VDPA 角色更新 roles_data_vdpa.yaml 文件:

    ###############################################################################
    # Role: ComputeVdpa                                                         #
    ###############################################################################
    - name: ComputeVdpa
      description: |
        VDPA Compute Node role
      CountDefault: 1
      # Create external Neutron bridge
      tags:
        - compute
        - external_bridge
      networks:
        InternalApi:
          subnet: internal_api_subnet
        Tenant:
          subnet: tenant_subnet
        Storage:
          subnet: storage_subnet
      HostnameFormatDefault: '%stackname%-computevdpa-%index%'
      deprecated_nic_config_name: compute-vdpa.yaml
    Copy to Clipboard Toggle word wrap
  5. 将 overcloud 的 VDPA Compute 节点添加到节点定义模板中,注册它们: node.jsonnode.yaml。有关更多信息,请参阅 Director 安装和使用 指南中的 为 overcloud 注册节点
  6. 检查节点硬件:

    (undercloud)$ openstack overcloud node introspect \
     --all-manageable --provide
    Copy to Clipboard Toggle word wrap

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

  7. 使用自定义 VDPA 资源类标记您要为 VDPA 指定的每个裸机节点:

    (undercloud)$ openstack baremetal node set \
     --resource-class baremetal.VDPA <node>
    Copy to Clipboard Toggle word wrap

    <node> 替换为裸机节点的名称或 UUID。

  8. ComputeVdpa 角色添加到节点定义文件 overcloud-baremetal-deploy.yaml 中,并定义您要分配给节点的任何预先节点放置、资源类、网络拓扑或其他属性:

    - name: Controller
      count: 3
    - name: Compute
      count: 3
    - name: ComputeVdpa
      count: 1
        defaults:
          resource_class: baremetal.VDPA
          network_config:
            template: /home/stack/templates/nic-config/<role_topology_file>
    Copy to Clipboard Toggle word wrap
    • <role_topology_file> 替换为用于 ComputeVdpa 角色的拓扑文件的名称,如 myRoleTopology.j2。您可以重复使用现有的网络拓扑,或为角色创建新的自定义网络接口模板。如需更多信息,请参阅 Director 安装和使用 指南中的 自定义网络接口模板。要使用默认网络定义设置,请不要在角色定义中包含 network_config

    有关您可以在节点定义文件中配置节点属性的属性的更多信息,请参阅裸机节点置备属性。如需节点定义文件示例,请参阅 节点定义文件示例

  9. 为您的角色置备新节点:

    (undercloud)$ openstack overcloud node provision \
    [--stack <stack>] \
    [--network-config \]
    --output <deployment_file> \
    /home/stack/templates/overcloud-baremetal-deploy.yaml
    Copy to Clipboard Toggle word wrap
    • 可选:将 <stack> 替换为置备裸机节点的堆栈的名称。默认为 overcloud
    • 可选:包含 --network-config 可选参数,为 cli-overcloud-node-network-config.yaml Ansible playbook 提供网络定义。如果您使用 network_config 属性在节点定义文件中未定义网络定义,则使用默认网络定义。
    • <deployment_file> 替换为用于部署命令生成的 heat 环境文件的名称,如 /home/stack/templates/overcloud-baremetal-deployed.yaml
  10. 在单独的终端中监控调配进度。当置备成功后,节点状态会从 available 改为 active

    (undercloud)$ watch openstack baremetal node list
    Copy to Clipboard Toggle word wrap
  11. 如果您在没有 --network-config 选项运行 provisioning 命令,请在 network-environment.yaml 文件中配置 <Role>NetworkConfigTemplate 参数以指向 NIC 模板文件:

    parameter_defaults:
       ComputeNetworkConfigTemplate: /home/stack/templates/nic-configs/compute.j2
       ComputeVdpaNetworkConfigTemplate: /home/stack/templates/nic-configs/<vdpa_net_top>.j2
       ControllerNetworkConfigTemplate: /home/stack/templates/nic-configs/controller.j2
    Copy to Clipboard Toggle word wrap

    <vdpa_net_top> 替换为包含 ComputeVdpa 角色的网络拓扑的文件名称,如 compute.yaml 以使用默认网络拓扑。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat