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
              ...
  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
              ...

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

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

    $ oc apply -f my_data_plane_node_set.yaml
  6. 验证 data plane 资源是否已更新:

    $ oc get openstackdataplanenodeset

    输出示例

    NAME                     STATUS MESSAGE
    my-data-plane-node-set   False  Deployment not started

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

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneDeployment
    metadata:
      name: my-data-plane-deploy
    提示

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

  8. 添加您修改的 OpenStackDataPlaneNodeSet CR:

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

    $ 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
  11. 验证修改后的 OpenStackDataPlaneNodeSet CR 是否已部署:

    Example

    $ oc get openstackdataplanedeployment -n openstack

    输出示例

    NAME                     STATUS   MESSAGE
    my-data-plane-node-set   True     Setup Complete

  12. 重复 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 错误。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部