搜索

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

download PDF

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。

9.1. 为 VDPA 设计 Compute 节点

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

注意

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

流程

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

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

    (undercloud)$ openstack overcloud roles \
     generate -o /home/stack/templates/roles_data_vdpa.yaml \
     ComputeVdpa Compute Controller
  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
  5. 将 overcloud 的 VDPA Compute 节点添加到节点定义模板中,注册它们: node.jsonnode.yaml。有关更多信息,请参阅 安装和管理 Red Hat OpenStack Platform 指南中的 为 overcloud 注册节点
  6. 检查节点硬件:

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

    如需更多信息,请参阅 安装和管理 Red Hat OpenStack Platform 指南中的创建 裸机节点硬件清单

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

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

    <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>
    • <role_topology_file > 替换为用于 ComputeVdpa 角色的拓扑文件的名称,如 vdpa_net_top.j2。您可以重复使用现有网络拓扑,或为角色创建新的自定义网络接口模板。如需更多信息,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 指南中的 自定义网络接口模板。要使用默认网络定义设置,请不要在角色定义中包含 network_config

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

  9. 打开您的网络接口模板 vdpa_net_top.j2,并添加以下配置,将 VDPA 支持的网络接口指定为 OVS 网桥的成员:

    - type: ovs_bridge
      name: br-tenant
      members:
        - type: sriov_pf
          name: enp6s0f0
          numvfs: 8
          use_dhcp: false
          vdpa: true
          link_mode: switchdev
        - type: sriov_pf
          name: enp6s0f1
          numvfs: 8
          use_dhcp: false
          vdpa: true
          link_mode: switchdev
  10. 为您的角色置备新节点:

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

    (undercloud)$ watch openstack baremetal node list
  12. 如果您在没有 --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/<role_topology_file>
       ControllerNetworkConfigTemplate: /home/stack/templates/nic-configs/controller.j2

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.