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 控制平面的工作站。
流程
-
为您要更新的节点集打开
OpenStackDataPlaneNodeSetCR 定义文件,如my_data_plane_node_set.yaml。 添加所需的 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" ...-
保存
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 条件和状态。
验证
确认 NIC 交换机代理 neutron-sriov-nic-agent 已加载 qos 扩展。
获取 NIC 交换机代理的 UUID:
$ openstack network agent list使用
neutron-sriov-nic-agentUUID,运行以下命令:$ openstack network agent show <uuid>Example
$ openstack network agent show 8676ccb3-1de0-4ca6-8fb7-b814015d9e5f \ --max-width 70输出示例
您应该会看到一个带有名为
配置的字段的代理对象。加载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 | -------------------------------------------------------------------+