Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

5.17. 检查 DPDK 和 SR-IOV 配置

本节用于使用 NFV 技术,如数据平面开发套件(DPDK)集成和单根输入/输出虚拟化(SR-IOV)。如果您的 overcloud 不使用这些功能,请忽略本节。

注意

在 Red Hat OpenStack Platform 10 中,不需要将 first-boot 脚本文件替换为 host-config-and-reboot.yaml,这是 OpenStack Platform 13 模板。在整个升级过程中维护第一引导脚本可避免进行额外的重启。

5.17.1. 升级 DPDK 环境

对于使用 DPDK 的环境,请检查特定的服务映射,以确保成功过渡到容器化环境。

流程

  1. 由于过渡到容器化服务,所以会自动升级 DPDK 服务的快速升级。如果将自定义环境文件用于 DPDK,请手动调整这些环境文件以映射到容器化服务。

      OS::TripleO::Services::ComputeNeutronOvsDpdk:
        /usr/share/openstack-tripleo-heat-templates/docker/services/neutron-ovs-dpdk-agent.yaml
    注意

    另外,也可使用最新的 NFV 环境文件 /usr/share/openstack-tripleo-heat-templates/environments/services/services/neutron-ovs-dpdk.yaml

  2. 将 OpenStack Network (Neutron)代理服务映射到适当的容器化模板:

    • 如果您正在使用 DPDK 的默认 Compute 角色,请将 ComputeNeutronOvsAgent 服务映射到核心 heat 模板集合的 docker/services 目录中的 neutron-ovs-dpdk-agent.yaml 文件。

      resource_registry:
        OS::TripleO::Services::ComputeNeutronOvsAgent:
          /usr/share/openstack-tripleo-heat-templates/docker/services/neutron-ovs-dpdk-agent.yaml
    • 如果您在 DPDK 中使用自定义角色,则应当存在一个自定义的可组合服务,如 ComputeNeutronOvsDpdkAgentCustom。将这个服务映射到 docker 目录中的 neutron-ovs-dpdk-agent.yaml 文件。
  3. 在 DPDK 角色定义中添加以下服务和额外参数:

      RoleParametersDefault:
        VhostuserSocketGroup: "hugetlbfs"
        TunedProfileName: "cpu-paritioning"
    
      ServicesDefault:
        - OS::TripleO::Services::ComputeNeutronOvsDPDK
  4. 删除以下服务:

      ServicesDefault:
        - OS::TripleO::Services::NeutronLinuxbridgeAgent
        - OS::TripleO::Services::NeutronVppAgent
        - OS::TripleO::Services::Tuned

5.17.2. 升级 SR-IOV 环境

对于使用 SR-IOV 的环境,请检查以下服务映射,以确保成功过渡到容器化环境。

流程

  1. SR-IOV 服务的快速升级会因为过渡到容器化服务而自动进行。如果您要为 SR-IOV 使用自定义环境文件,请确保这些服务正确映射到容器化服务。

      OS::TripleO::Services::NeutronSriovAgent:
        /usr/share/openstack-tripleo-heat-templates/docker/services/neutron-sriov-agent.yaml
    
    OS::TripleO::Services::NeutronSriovHostConfig:
        /usr/share/openstack-tripleo-heat-templates/puppet/services/neutron-sriov-host-config.yaml
    注意

    另外,也可使用最后一个 NFV 环境文件 /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-sriov.yaml

  2. 确保 roles_data.yaml 文件包含所需的 SR-IOV 服务。

    如果您要为 SR-IOV 使用默认 Compute 角色,请在 OpenStack Platform 13 中包括此角色中的相应服务。

    • roles_data.yaml 文件从 /usr/share/openstack-tripleo-heat-templates 复制到您的自定义模板目录,例如 /home/stack/templates
    • 将以下服务添加到默认计算角色中:

      • OS::TripleO::Services::NeutronSriovAgent
      • OS::TripleO::Services::NeutronSriovHostConfig
    • 从默认的 Compute 角色中删除以下服务:

      • OS::TripleO::Services::NeutronLinuxbridgeAgent
      • OS::TripleO::Services::Tuned

        如果您要为 SR-IOV 使用自定义 Compute 角色,则 NeutronSriovAgent 服务应当存在。添加 NeutronSriovHostConfig 服务,该服务在 Red Hat OpenStack Platform 13 中引入。

        注意

        在运行 ffwd-upgrade 命令以下部分 准备 和聚合时,应该包括 roles_data.yaml 文件。