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 控制平面的工作站。

流程

  1. 如果使用 ML2/SR-IOV 机制驱动程序,您必须在 Compute 节点上启用 qos 代理扩展,也称为 RHOSO 数据平面。

    如需更多信息,请参阅为 SR-IOV 配置 QoS 策略的网络服务

  2. 添加所需的 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
              ...
    Copy to Clipboard Toggle word wrap
  3. 如果要创建 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
              ...
    Copy to Clipboard Toggle word wrap

    启用 edpm_ovn_encap_tos ( 代表1)时,网络服务会将内部标头的 DSCP 值复制到外部标头。默认值为 0

  4. 保存 OpenStackDataPlaneNodeSet CR 定义文件。
  5. 应用更新的 OpenStackDataPlaneNodeSet CR 配置:

    $ oc apply -f my_data_plane_node_set.yaml
    Copy to Clipboard Toggle word wrap
  6. 验证 data plane 资源是否已更新:

    $ oc get openstackdataplanenodeset
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                     STATUS MESSAGE
    my-data-plane-node-set   False  Deployment not started
    Copy to Clipboard Toggle word wrap

  7. 在工作站上创建一个文件来定义 OpenStackDataPlaneDeployment CR,如 my_data_plane_deploy.yaml

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneDeployment
    metadata:
      name: my-data-plane-deploy
    Copy to Clipboard Toggle word wrap
    提示

    为定义文件和 OpenStackDataPlaneDeployment CR 指定一个唯一的描述性名称,指示修改的节点集的目的。

  8. 添加您修改的 OpenStackDataPlaneNodeSet CR:

    spec:
      nodeSets:
        - my-data-plane-node-set
    Copy to Clipboard Toggle word wrap
  9. 保存 OpenStackDataPlaneDeployment CR 部署文件。
  10. 部署修改后的 OpenStackDataPlaneNodeSet CR:

    $ oc create -f my_data_plane_deploy.yaml -n openstack
    Copy to Clipboard Toggle word wrap

    您可以在部署执行时查看 Ansible 日志:

    $ oc get pod -l app=openstackansibleee -n openstack -w
    
    $ oc logs -l app=openstackansibleee -n openstack -f \
    --max-log-requests 10
    Copy to Clipboard Toggle word wrap
  11. 验证修改后的 OpenStackDataPlaneNodeSet CR 是否已部署:

    Example

    $ oc get openstackdataplanedeployment -n openstack
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                     STATUS   MESSAGE
    my-data-plane-node-set   True     Setup Complete
    Copy to Clipboard Toggle word wrap

  12. 重复 oc get 命令,直到您看到 NodeSet Ready 信息:

    Example

    $ oc get openstackdataplanenodeset -n openstack
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                     STATUS   MESSAGE
    my-data-plane-node-set   True     NodeSet Ready
    Copy to Clipboard Toggle word wrap

    如需有关返回状态的含义的信息,请参阅 在 OpenShift 上部署 Red Hat OpenStack Services 指南中的 Data plane 条件和状态

验证

  • 确认已加载 qos 服务插件:

    $ openstack network qos policy list
    Copy to Clipboard Toggle word wrap

    如果 qos 服务插件已加载,则不会收到 ResourceNotFound 错误。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat