9.6. 配置一个时间使用设备
计算服务(nova)支持将设备标记为 One Time Use (OTU),以保留它们,以便单个实例使用。
先决条件
-
在工作站上安装了
oc命令行工具。 -
以具有
cluster-admin权限的用户身份登录到可访问 RHOSO 控制平面的工作站。 -
您已选择了
OpenStackDataPlaneNodeSetCR,它定义了您要配置为 One Time Use PCI 设备的节点。有关创建OpenStackDataPlaneNodeSetCR 的更多信息,请参阅 Deploying Red Hat OpenStack Services on OpenShift 指南中的使用预置备节点创建 OpenStackDataPlaneNodeSet CR。 - 您已在放置服务中配置了 PCI 设备跟踪。如需更多信息,请参阅 在放置服务中启用 PCI 设备跟踪。
流程
-
创建或更新名为
nova-extra-config.yaml的ConfigMap自定义资源(CR)。 通过向其添加
one_time_use标签,添加或编辑您要标记为 OTU 设备的device_spec。以下是添加此标签的
device_spec示例:apiVersion: v1 kind: ConfigMap metadata: name: nova-extra-config namespace: openstack data: 32-nova-pci-alias.conf: | [pci] alias = {"name":"a1", "product_id":"1572", "vendor_id": "8086", "device_type": "type-PF", "numa_policy": "preferred"} device_spec = {"vendor_id":"8086", "product_id":"1572", "address": "0000:06:", "one_time_use": true}注意device_spec配置选项可以多次定义,而 OpenShift 上的 Red Hat OpenStack Services (RHOSO)会将每个定义合并到一个device_spec值列表中。这意味着device_spec值不能被 subsquentdevice_specdefinitons 覆盖。当您将设备配置为 OTU 设备时,必须在最初定义device_spec的配置文件中定义one_time_use标签。例如,为 PCI 透传创建 OpenStackDataPlaneNodeSet CR 定义了如何启用云用户创建带有附加 PCI 设备的实例。它通常处于此阶段,标签将添加到
device_spec中。有关创建 ConfigMap 对象的更多信息,请参阅 在节点中创建和使用 配置映射 。
-
保存
nova-extra-config.yaml文件。 创建新的
OpenStackDataPlaneDeploymentCR,以在数据平面节点上配置服务并部署数据平面。将 CR 保存到工作站上名为compute_otu_devices_deploy.yaml的文件:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: compute-otu-devices在
compute_otu_devices_deploy.yaml中,指定nodeSets使其包含您要部署的所有OpenStackDataPlaneNodeSetCR。确保包含您选择的OpenStackDataPlaneNodeSetCR。该OpenStackDataPlaneNodeSetCR 定义了您要配置为 OTU 设备的节点。警告您无法在节点集合中重新配置节点的子集。如果需要这样做,您必须缩减节点设置,并从之前删除的节点创建新节点。
警告如果您的部署有多个节点集,对
nova-extra-config.yamlConfigMap 的更改可能会直接影响多个节点集,具体取决于节点集和DataPlaneServices的配置方式。要检查节点集是否使用nova-extra-configConfigMap,因此会受到重新配置的影响,请完成以下步骤:-
检查节点集的服务列表,并查找指向
nova的DataPlaneService的名称。确保DataPlaneService的edpmServiceType字段的值设置为nova。 -
如果
DataPlaneService的dataSources列表包含名为nova-extra-config的configMapRef,则此节点会使用此ConfigMap,因此会受到此ConfigMap中的配置更改的影响。如果某些受影响的节点集合不应重新配置,您必须创建一个新的DataPlaneService,指向这些节点集的独立ConfigMap,并在所需的节点集中使用该自定义服务。
apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: compute-otu-devices spec: nodeSets: - openstack-edpm - ... - <nodeSet_name>-
将
<nodeSet_name> 替换为您要包含在 data plane 部署中的OpenStackDataPlaneNodeSetCR 的名称。
-
检查节点集的服务列表,并查找指向
-
保存
compute_otu_devices_deploy.yaml部署文件。 部署数据平面:
$ oc create -f compute_otu_devices_deploy.yaml验证 data plane 是否已部署:
$ oc get openstackdataplanenodeset NAME STATUS MESSAGE compute-otu-devices True Deployed访问
openstackclient的远程 shell,并验证部署的 Compute 节点是否在 control plane 上可见:$ oc rsh -n openstack openstackclient $ openstack hypervisor list