7.4. 配置 OVS 硬件卸载
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
流程
为基于 Compute 角色的 OVS 硬件卸载生成 overcloud 角色:
openstack overcloud roles generate -o roles_data.yaml \ Controller Compute:ComputeOvsHwOffload-
可选:更改
HostnameFormatDefault: '%stackname%-compute-%index%'名称,用于ComputeOvsHwOffload角色。 -
将
OvsHwOffload参数添加到角色特定参数下,值设为true。 -
要将 neutron 配置为使用 iptables/hybrid 驱动实现,请包括:
NeutronOVSFirewallDriver: iptables_hybrid。有关NeutronOVSFirewallDriver的更多信息,请参阅高级 Overcloud 自定义指南中的 使用 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: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 进行故障排除。
在
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 等隧道端点因为驱动程序限制而传递流量。
-
在配置 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
验证
确认 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”