9.6. 配置 OVS PMD Auto Load Balance
该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息。
您可以使用 Open vSwitch(OVS)轮询模式驱动程序(PMD)线程对用户空间上下文切换执行以下任务:
- 为数据包持续轮询输入端口。
- 对接收的数据包分类。
- 在分类后对数据包执行操作。
通过编辑 baremetal 节点预置备和 overcloud 部署的参数,将 RHOSP 部署配置为自动负载平衡 OVS PMD 线程。您必须在节点预置备和 overcloud 部署过程中配置该功能。
流程
在
baremetal_deployment.yaml文件或自定义文件中,设置以下 baremetal 节点预置备参数:pmd_auto_lb-
设置为
true以启用 PMD 自动负载平衡。 pmd_load_threshold- 在触发 PMD 负载均衡前,其中一个 PMD 线程必须使用的处理周期百分比。整数,范围 0-100。
pmd_improvement_threshold在触发 PMD 自动负载平衡的非隔离 PMD 线程中评估改进的最小百分比。整数,范围 0-100。
为计算预计改进,完成重新分配的空运行,与当前的差异相比估计的负载差异。默认为 25%。
pmd_rebal_interval连续两个 PMD Auto Load Balance 操作之间的最短时间(以分钟为单位)。范围 0-20,000 分钟。
配置此值,以防止在流量模式可改变时触发频繁重新分配。例如,您可以每 10 分钟触发一次重新分配,或者每几分钟后触发一次。
示例
ansible_playbooks: … - playbook: /usr/share/ansible/tripleo-playbooks/cli-overcloud-openvswitch-dpdk.yaml extra_vars: … pmd_auto_lb: true pmd_load_threshold: "70" pmd_improvement_threshold: "25" pmd_rebal_interval: "2"
在
openstack overcloud node provision命令中包含 baremetal 部署文件,如下例所示:示例
openstack overcloud node provision \ --stack overcloud \ --network-config \ --templates /usr/share/openstack-tripleo-heat-templates \ --output ~/templates/overcloud-baremetal-deployed.yaml \ home/stack/$OSP17REF/network/baremetal_deployment.yaml在
dpdk-config.yaml或自定义文件中,设置以下 overcloud 部署参数:OvsPmdAutoLb等同于
pmd_auto_lb的 Heat。设置为
true以启用 PMD 自动负载平衡。OvsPmdLoadThreshold等同于
pmd_load_threshold的 Heat。在触发 PMD 负载均衡前,其中一个 PMD 线程必须使用的处理周期百分比。整数,范围 0-100。
OvsPmdImprovementThreshold等同于
pmd_improvement_threshold的 Heat。在触发 PMD 自动负载平衡的非隔离 PMD 线程中评估改进的最小百分比。整数,范围 0-100。
为计算预计改进,完成重新分配的空运行,与当前的差异相比估计的负载差异。默认为 25%。
OvsPmdRebalInterval等同于
pmd_rebal_interval的 Heat。连续两个 PMD Auto Load Balance 操作之间的最短时间(以分钟为单位)。范围 0-20,000 分钟。
配置此值,以防止在流量模式可改变时触发频繁重新分配。例如,您可以每 10 分钟触发一次重新分配,或者每几分钟后触发一次。
示例
parameter_merge_strategies: ComputeOvsDpdkSriovParameters:merge … parameter_defaults: ComputeOvsDpdkSriovParameters: … OvsPmdAutoLb: true OvsPmdLoadThreshold: 70 OvsPmdImprovementThreshold: 25 OvsPmdRebalInterval: 2
使用其他环境文件将
dpdk-config.yaml或您的 dpdk 配置文件添加到堆栈中,并部署 overcloud:示例
(undercloud)$ openstack overcloud deploy --templates \ -e <your_environment_files> \ -e /home/stack/templates/dpdk-config.yaml