Red Hat Training

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

6.3. ハードウェアオフロードの設定 (テクノロジープレビュー)

Openv Switch (OVS) ハードウェアオフロードはテクノロジープレビューであり、実稼働環境のデプロイメントでの使用は推奨されせん。テクノロジープレビュー機能についての詳しい情報は、対象範囲の詳細 を参照してください。

OVS ハードウェアオフロードを設定する手順と SR-IOV を設定する手順は、多くの部分が共通です。

手順

  1. ComputeSriov ロールを作成します。

    openstack overcloud roles generate -o roles_data.yaml Controller ComputeSriov
  2. ロール固有のパラメーターセクションに OvsHwOffload パラメーターを追加し、値を true に設定してます。
  3. neutron が iptables/ハイブリッドのファイアウォールドライバーの実装を使用するように設定するには、NeutronOVSFirewallDriver: iptables_hybrid の行を追加します。NeutronOVSFirewallDriver の詳細は、オーバークラウドの高度なカスタマイズ の Open vSwitch ファイアウォールの使用 を参照してください。
  4. ご自分の環境に合わせて、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 設定のガイドライン を参照してください。

  5. デフォルトフィルターの一覧に NUMATopologyFilter が含まれるようにします。

      NovaSchedulerDefaultFilters: [\'RetryFilter',\'AvailabilityZoneFilter',\'ComputeFilter',\'ComputeCapabilitiesFilter',\'ImagePropertiesFilter',\'ServerGroupAntiAffinityFilter',\'ServerGroupAffinityFilter',\'PciPassthroughFilter',\'NUMATopologyFilter']
  6. compute-sriov.yaml 設定ファイルで、ハードウェアオフロードに使用するネットワークインターフェイスを 1 つまたは複数設定します。

      - 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 パラメーターを使用しないでください。Virtual Function の数は、os-net-config で使用されるネットワーク設定ファイルの numvfs パラメーターを使用して指定します。Red Hat では、更新または再デプロイ時の numvfs 設定の変更をサポートしません。
    • Mellanox ネットワークインターフェイスの nic-config インターフェイス種別を ovs-vlan に設定しないでください。ドライバーの制約により、VXLAN 等のトンネルエンドポイントがトラフィックを渡さなくなるためです。
  7. 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

6.3.1. OVS ハードウェアオフロードの確認

  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”
  3. NIC でハードウェアオフロードが有効であることを確認します。

    # ethtool -k $NIC | grep tc-offload
    hw-tc-offload: on