7.3. 为 SR-IOV 配置 QoS 策略的网络服务


Red Hat OpenStack Services on OpenShift (RHOSO) Networking 服务(neutron)中的服务质量功能通过 qos 服务插件提供。如果您的网络服务 ML2 机制驱动程序是 SR-IOV,那么您还必须为 NIC 交换机代理加载 qos 扩展驱动程序 neutron-sriov-nic-agent,后者在 Compute 节点上运行,也称为 RHOSO 数据平面。

先决条件

  • 在工作站上安装了 oc 命令行工具。
  • 以具有 cluster-admin 权限的用户身份登录到可访问 RHOSO 控制平面的工作站。

流程

  1. 为您要更新的节点集打开 OpenStackDataPlaneNodeSet CR 定义文件,如 my_data_plane_node_set.yaml
  2. 添加所需的 QoS 配置 NeutronSriovAgentExtensions: "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: |
              ---
              NeutronSriovAgentExtensions: "qos"
              ...
    Copy to Clipboard Toggle word wrap
  3. 保存 OpenStackDataPlaneNodeSet CR 定义文件。
  4. 应用更新的 OpenStackDataPlaneNodeSet CR 配置:

    $ oc apply -f my_data_plane_node_set.yaml
    Copy to Clipboard Toggle word wrap
  5. 验证 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

  6. 在工作站上创建一个文件来定义 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 指定一个唯一的描述性名称,指示修改的节点集的目的。

  7. 添加您修改的 OpenStackDataPlaneNodeSet CR:

    spec:
      nodeSets:
        - my-data-plane-node-set
    Copy to Clipboard Toggle word wrap
  8. 保存 OpenStackDataPlaneDeployment CR 部署文件。
  9. 部署修改后的 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
  10. 验证修改后的 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

  11. 重复 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 条件和状态

验证

确认 NIC 交换机代理 neutron-sriov-nic-agent 已加载 qos 扩展。

  1. 获取 NIC 交换机代理的 UUID:

    $ openstack network agent list
    Copy to Clipboard Toggle word wrap
  2. 使用 neutron-sriov-nic-agent UUID,运行以下命令:

    $ openstack network agent show <uuid>
    Copy to Clipboard Toggle word wrap

    Example

    $ openstack network agent show 8676ccb3-1de0-4ca6-8fb7-b814015d9e5f \
    --max-width 70
    Copy to Clipboard Toggle word wrap

    输出示例

    您应该会看到一个带有名为 配置 的字段的代理对象。加载 qos 扩展时,extensions 字段应在列表中包含 qos

    -------------------------------------------------------------------+
    | Field             | Value                                          |
    -------------------------------------------------------------------+
    | admin_state_up    | UP                                             |
    | agent_type        | NIC Switch agent                               |
    | alive             | :-)                                            |
    | availability_zone | None                                           |
    | binary            | neutron-sriov-nic-agent                        |
    | configuration     | {device_mappings: {}, devices: 0, extensi | | | ons: [qos], resource_provider_bandwidths: |
    |                   | {}, resource_provider_hypervisors: {}, reso | | | urce_provider_inventory_defaults: {allocatio | | | n_ratio: 1.0, min_unit: 1, step_size: 1,  |
    |                   | reserved: 0}}                                |
    | created_at        | 2024-08-08 08:22:57                            |
    | description       | None                                           |
    | ha_state          | None                                           |
    | host              | edpm-compute-0.ctlplane.example.com            |
    | id                | 8676ccb3-1de0-4ca6-8fb7-b814015d9e5f           |
    | last_heartbeat_at | 2024-08-08 08:24:27                            |
    | resources_synced  | None                                           |
    | started_at        | 2024-08-08 08:22:57                            |
    | topic             | N/A                                            |
    -------------------------------------------------------------------+
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat