Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
6.3. ハードウェアオフロードの設定 (テクノロジープレビュー)
Openv Switch (OVS) ハードウェアオフロードはテクノロジープレビューであり、実稼働環境のデプロイメントでの使用は推奨されせん。テクノロジープレビュー機能についての詳しい情報は、対象範囲の詳細 を参照してください。
OVS ハードウェアオフロードを設定する手順と SR-IOV を設定する手順は、多くの部分が共通です。
手順
ComputeSriov
ロールを作成します。openstack overcloud roles generate -o roles_data.yaml Controller ComputeSriov
-
ロール固有のパラメーターセクションに
OvsHwOffload
パラメーターを追加し、値をtrue
に設定してます。 -
neutron が iptables/ハイブリッドのファイアウォールドライバーの実装を使用するように設定するには、
NeutronOVSFirewallDriver: iptables_hybrid
の行を追加します。NeutronOVSFirewallDriver
の詳細は、オーバークラウドの高度なカスタマイズ の Open vSwitch ファイアウォールの使用 を参照してください。 ご自分の環境に合わせて、
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
設定のガイドライン を参照してください。
-
VLAN の場合には、
デフォルトフィルターの一覧に
NUMATopologyFilter
が含まれるようにします。NovaSchedulerDefaultFilters: [\'RetryFilter',\'AvailabilityZoneFilter',\'ComputeFilter',\'ComputeCapabilitiesFilter',\'ImagePropertiesFilter',\'ServerGroupAntiAffinityFilter',\'ServerGroupAffinityFilter',\'PciPassthroughFilter',\'NUMATopologyFilter']
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 等のトンネルエンドポイントがトラフィックを渡さなくなるためです。
-
Open vSwitch ハードウェアオフロードを設定する場合には、
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 ハードウェアオフロードの確認
PCI デバイスが
switchdev
モードにあることを確認します。# devlink dev eswitch show pci/0000:03:00.0 pci/0000:03:00.0: mode switchdev inline-mode none encap enable
OVS でオフロードが有効かどうかを確認します。
# ovs-vsctl get Open_vSwitch . other_config:hw-offload “true”
NIC でハードウェアオフロードが有効であることを確認します。
# ethtool -k $NIC | grep tc-offload hw-tc-offload: on