搜索

7.4. 配置 OVS 硬件卸载

download PDF

OVS 硬件卸载配置共享许多与配置 SR-IOV 相同的步骤。

注意

从 Red Hat OpenStack Platform 16.2.3 开始,若要从带有 OVS 硬件卸载和 ML2/OVS 的 Compute 节点卸载流量,您必须在 openvswitch_agent.ini 配置文件中将 disable_packet_marking 参数设置为 true,然后重启 neutron_ovs_agent 容器。

+

cat /var/lib/config-data/puppet-generated/neutron/\
etc/neutron/plugins/ml2/openvswitch_agent.ini
  [ovs]
  disable_packet_marking=True

流程

  1. 为基于 Compute 角色的 OVS 硬件卸载生成 overcloud 角色:

    openstack overcloud roles generate -o roles_data.yaml \
    Controller Compute:ComputeOvsHwOffload
  2. 可选:更改 HostnameFormatDefault: '%stackname%-compute-%index%' 名称,用于 ComputeOvsHwOffload 角色。
  3. OvsHwOffload 参数添加到角色特定参数下,值设为 true
  4. 要将 neutron 配置为使用 iptables/hybrid 驱动实现,请包括: NeutronOVSFirewallDriver: iptables_hybrid。有关 NeutronOVSFirewallDriver 的更多信息,请参阅高级 Overcloud 自定义指南中的 使用 Open vSwitch 防火墙
  5. 配置 physical_network 参数以匹配您的环境。

    • 对于 VLAN,将 physical_network 参数设置为部署后您在 neutron 中创建的网络名称。这个值也应在 NeutronBridgeMappings 中。
    • 对于 VXLAN,将 physical_network 参数设置为 null

      例如:

      parameter_defaults:
        NeutronOVSFirewallDriver: iptables_hybrid
        ComputeSriovParameters:
          IsolCpusList: 2-9,21-29,11-19,31-39
          KernelArgs: "default_hugepagesz=1GB hugepagesz=1G hugepages=128 intel_iommu=on iommu=pt"
          OvsHwOffload: true
          TunedProfileName: "cpu-partitioning"
          NeutronBridgeMappings:
            - tenant:br-tenant
          NovaPCIPassthrough:
            - vendor_id: <vendor-id>
              product_id: <product-id>
              address: <address>
              physical_network: "tenant"
            - vendor_id: <vendor-id>
              product_id: <product-id>
              address: <address>
              physical_network: "null"
          NovaReservedHostMemory: 4096
          NovaComputeCpuDedicatedSet: 1-9,21-29,11-19,31-39
    • <vendor-id > 替换为物理 NIC 的供应商 ID。
    • <product-id > 替换为 NIC VF 的产品 ID。
    • < address> 替换为物理 NIC 的地址。

      有关如何配置 NovaPCIPassthrough 的更多信息,请参阅 为实例创建配置计算服务指南中的 配置 NovaPCIPassthrough 的指南。

  6. 确保默认过滤器列表包含 NUMATopologyFilter

    parameter_defaults:
      NovaSchedulerEnabledFilters:
        - AvailabilityZoneFilter
        - ComputeFilter
        - ComputeCapabilitiesFilter
        - ImagePropertiesFilter
        - ServerGroupAntiAffinityFilter
        - ServerGroupAffinityFilter
        - PciPassthroughFilter
        - NUMATopologyFilter
    注意

    可选:有关如何对带有 Mellanox ConnectX5 NIC 的 RHOSP 16.2 中的 OVS Hardware Offload 问题进行故障排除和配置 OVS Hardware Offload 的详情,请参阅 对 Hardware Offload 进行故障排除

  7. compute-sriov.yaml 配置文件中配置用于硬件卸载的一个或多个网络接口:

      - type: ovs_bridge
        name: br-tenant
        mtu: 9000
        members:
        - type: sriov_pf
          name: p7p1
          numvfs: 5
          mtu: 9000
          primary: true
          promisc: true
          use_dhcp: false
          link_mode: switchdev
    注意
    • 在配置 Open vSwitch 硬件卸载时,不要使用 NeutronSriovNumVFs 参数。使用 os-net-config 使用的网络配置文件中的 numvfs 参数来指定虚拟功能的数量。红帽不支持在更新或重新部署过程中修改 numvfs 设置。
    • 不要将 Mellanox 网络接口配置为 nic-config 接口类型 ovs-vlan,因为这可防止 VXLAN 等隧道端点因为驱动程序限制而传递流量。
  8. overcloud deploy 命令中包含 ovs-hw-offload.yaml 文件:

    TEMPLATES_HOME=”/usr/share/openstack-tripleo-heat-templates”
    CUSTOM_TEMPLATES=”/home/stack/templates”
    
    openstack overcloud deploy --templates \
      -r ${CUSTOM_TEMPLATES}/roles_data.yaml \
      -e ${TEMPLATES_HOME}/environments/ovs-hw-offload.yaml \
      -e ${CUSTOM_TEMPLATES}/network-environment.yaml \
      -e ${CUSTOM_TEMPLATES}/neutron-ovs.yaml

验证

  1. 确认 PCI 设备处于 switchdev 模式:

    # devlink dev eswitch show pci/0000:03:00.0
    pci/0000:03:00.0: mode switchdev inline-mode none encap enable
  2. 验证 OVS 中是否启用了卸载:

    # ovs-vsctl get Open_vSwitch . other_config:hw-offload
    “true”
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.