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”