7.2. 为 QoS 策略配置网络服务
Red Hat OpenStack Services on OpenShift (RHOSO) Networking 服务(neutron)中的服务质量功能通过 qos 服务插件提供。使用 ML2/OVN 机制驱动程序时,qos 会默认加载。但是,对于 ML2/SR-IOV,这并不为 true。
将 qos 服务插件与 ML2/SR-IOV 机制驱动程序搭配使用时,还必须在其对应的代理上加载 qos 扩展。
以下列表总结了为 QoS 配置网络服务时必须执行的任务。任务详情遵循这个列表:
对于所有 QoS 策略类型:
-
添加
qos服务插件。 -
为代理(仅限SR-IOV)添加
qos扩展。
-
添加
- 在 ML2/OVN 部署中,您可以为硬件卸载的端口启用最小带宽和带宽限制出口策略。您无法为硬件卸载的端口启用入口策略。
仅使用最小带宽策略调度虚拟机实例的其他任务:
- 如果与计算服务(nova)使用的名称不同,请指定虚拟机监控程序名称。
- 为每个 Compute 节点上为相关代理配置资源提供程序入口和出口带宽。
-
(可选)不支持 Mark
vnic_types。
DSCP 标记策略的额外任务:
-
启用
edpm_ovn_encap_tos。默认情况下,edpm_ovn_encap_tos被禁用。
-
启用
先决条件
-
在工作站上安装了
oc命令行工具。 -
以具有
cluster-admin权限的用户身份登录到可访问 RHOSO 控制平面的工作站。
流程
如果使用 ML2/SR-IOV 机制驱动程序,您必须在 Compute 节点上启用
qos代理扩展,也称为 RHOSO 数据平面。如需更多信息,请参阅为 SR-IOV 配置 QoS 策略的网络服务。
添加所需的 QoS 配置。将配置放在
ansibleVars下的edpm_network_config_template中:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneNodeSet metadata: name: my-data-plane-node-set spec: ... nodeTemplate: ... ansible: ansibleVars: edpm_network_config_template: | --- OvnHardwareOffloadedQos: true ...如果要创建 DSCP 标记策略,请在
ansibleVars下添加edpm_ovn_encap_tos: '1':apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneNodeSet metadata: name: my-data-plane-node-set spec: ... nodeTemplate: ... ansible: ansibleVars: edpm_network_config_template: | --- OvnHardwareOffloadedQos: true edpm_ovn_encap_tos: 1 ...启用
edpm_ovn_encap_tos(代表1)时,网络服务会将内部标头的 DSCP 值复制到外部标头。默认值为0。-
保存
OpenStackDataPlaneNodeSetCR 定义文件。 应用更新的
OpenStackDataPlaneNodeSetCR 配置:$ oc apply -f my_data_plane_node_set.yaml验证 data plane 资源是否已更新:
$ oc get openstackdataplanenodeset输出示例
NAME STATUS MESSAGE my-data-plane-node-set False Deployment not started在工作站上创建一个文件来定义
OpenStackDataPlaneDeploymentCR,如my_data_plane_deploy.yaml:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: my-data-plane-deploy提示为定义文件和
OpenStackDataPlaneDeploymentCR 指定一个唯一的描述性名称,指示修改的节点集的目的。添加您修改的
OpenStackDataPlaneNodeSetCR:spec: nodeSets: - my-data-plane-node-set-
保存
OpenStackDataPlaneDeploymentCR 部署文件。 部署修改后的
OpenStackDataPlaneNodeSetCR:$ oc create -f my_data_plane_deploy.yaml -n openstack您可以在部署执行时查看 Ansible 日志:
$ oc get pod -l app=openstackansibleee -n openstack -w $ oc logs -l app=openstackansibleee -n openstack -f \ --max-log-requests 10验证修改后的
OpenStackDataPlaneNodeSetCR 是否已部署:Example
$ oc get openstackdataplanedeployment -n openstack输出示例
NAME STATUS MESSAGE my-data-plane-node-set True Setup Complete重复
oc get命令,直到您看到NodeSet Ready信息:Example
$ oc get openstackdataplanenodeset -n openstack输出示例
NAME STATUS MESSAGE my-data-plane-node-set True NodeSet Ready如需有关返回状态的含义的信息,请参阅 在 OpenShift 上部署 Red Hat OpenStack Services 指南中的 Data plane 条件和状态。
验证
确认已加载
qos服务插件:$ openstack network qos policy list如果
qos服务插件已加载,则不会收到ResourceNotFound错误。