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 控制平面的工作站。
流程
-
为您要更新的节点集打开
OpenStackDataPlaneNodeSet
CR 定义文件,如my_data_plane_node_set.yaml
。 添加所需的 QoS 配置
NeutronSriovAgentExtensions: "qos"
。将配置放在
ansibleVars
下的edpm_network_config_template
中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存
OpenStackDataPlaneNodeSet
CR 定义文件。 应用更新的
OpenStackDataPlaneNodeSet
CR 配置:oc apply -f my_data_plane_node_set.yaml
$ oc apply -f my_data_plane_node_set.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 data plane 资源是否已更新:
oc get openstackdataplanenodeset
$ oc get openstackdataplanenodeset
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS MESSAGE my-data-plane-node-set False Deployment not started
NAME STATUS MESSAGE my-data-plane-node-set False Deployment not started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在工作站上创建一个文件来定义
OpenStackDataPlaneDeployment
CR,如my_data_plane_deploy.yaml
:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: my-data-plane-deploy
apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: my-data-plane-deploy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示为定义文件和
OpenStackDataPlaneDeployment
CR 指定一个唯一的描述性名称,指示修改的节点集的目的。添加您修改的
OpenStackDataPlaneNodeSet
CR:spec: nodeSets: - my-data-plane-node-set
spec: nodeSets: - my-data-plane-node-set
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存
OpenStackDataPlaneDeployment
CR 部署文件。 部署修改后的
OpenStackDataPlaneNodeSet
CR:oc create -f my_data_plane_deploy.yaml -n openstack
$ oc create -f my_data_plane_deploy.yaml -n openstack
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以在部署执行时查看 Ansible 日志:
oc get pod -l app=openstackansibleee -n openstack -w oc logs -l app=openstackansibleee -n openstack -f \ --max-log-requests 10
$ oc get pod -l app=openstackansibleee -n openstack -w $ oc logs -l app=openstackansibleee -n openstack -f \ --max-log-requests 10
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证修改后的
OpenStackDataPlaneNodeSet
CR 是否已部署:Example
oc get openstackdataplanedeployment -n openstack
$ oc get openstackdataplanedeployment -n openstack
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS MESSAGE my-data-plane-node-set True Setup Complete
NAME STATUS MESSAGE my-data-plane-node-set True Setup Complete
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重复
oc get
命令,直到您看到NodeSet Ready
信息:Example
oc get openstackdataplanenodeset -n openstack
$ oc get openstackdataplanenodeset -n openstack
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS MESSAGE my-data-plane-node-set True NodeSet Ready
NAME STATUS MESSAGE my-data-plane-node-set True NodeSet Ready
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需有关返回状态的含义的信息,请参阅 在 OpenShift 上部署 Red Hat OpenStack Services 指南中的 Data plane 条件和状态。
验证
确认 NIC 交换机代理 neutron-sriov-nic-agent
已加载 qos
扩展。
获取 NIC 交换机代理的 UUID:
openstack network agent list
$ openstack network agent list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
neutron-sriov-nic-agent
UUID,运行以下命令:openstack network agent show <uuid>
$ openstack network agent show <uuid>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
openstack network agent show 8676ccb3-1de0-4ca6-8fb7-b814015d9e5f \ --max-width 70
$ openstack network agent show 8676ccb3-1de0-4ca6-8fb7-b814015d9e5f \ --max-width 70
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
您应该会看到一个带有名为
配置
的字段的代理对象。加载qos
扩展时,extensions
字段应在列表中包含qos
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow