9.6. 配置一个时间使用设备


计算服务(nova)支持将设备标记为 One Time Use (OTU),以保留它们,以便单个实例使用。

先决条件

  • 在工作站上安装了 oc 命令行工具。
  • 以具有 cluster-admin 权限的用户身份登录到可访问 RHOSO 控制平面的工作站。
  • 您已选择了 OpenStackDataPlaneNodeSet CR,它定义了您要配置为 One Time Use PCI 设备的节点。有关创建 OpenStackDataPlaneNodeSet CR 的更多信息,请参阅 Deploying Red Hat OpenStack Services on OpenShift 指南中的使用预置备节点创建 OpenStackDataPlaneNodeSet CR
  • 您已在放置服务中配置了 PCI 设备跟踪。如需更多信息,请参阅 在放置服务中启用 PCI 设备跟踪

流程

  1. 创建或更新名为 nova-extra-config.yamlConfigMap 自定义资源(CR)。
  2. 通过向其添加 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 值不能被 subsquent device_spec definitons 覆盖。当您将设备配置为 OTU 设备时,必须在最初定义 device_spec 的配置文件中定义 one_time_use 标签。

    例如,为 PCI 透传创建 OpenStackDataPlaneNodeSet CR 定义了如何启用云用户创建带有附加 PCI 设备的实例。它通常处于此阶段,标签将添加到 device_spec 中。

    有关创建 ConfigMap 对象的更多信息,请参阅 在节点中创建和使用 配置映射

  3. 保存 nova-extra-config.yaml 文件。
  4. 创建新的 OpenStackDataPlaneDeployment CR,以在数据平面节点上配置服务并部署数据平面。将 CR 保存到工作站上名为 compute_otu_devices_deploy.yaml 的文件:

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneDeployment
    metadata:
       name: compute-otu-devices
  5. compute_otu_devices_deploy.yaml 中,指定 nodeSets 使其包含您要部署的所有 OpenStackDataPlaneNodeSet CR。确保包含您选择的 OpenStackDataPlaneNodeSet CR。该 OpenStackDataPlaneNodeSet CR 定义了您要配置为 OTU 设备的节点。

    警告

    您无法在节点集合中重新配置节点的子集。如果需要这样做,您必须缩减节点设置,并从之前删除的节点创建新节点。

    警告

    如果您的部署有多个节点集,对 nova-extra-config.yaml ConfigMap 的更改可能会直接影响多个节点集,具体取决于节点集和 DataPlaneServices 的配置方式。要检查节点集是否使用 nova-extra-config ConfigMap,因此会受到重新配置的影响,请完成以下步骤:

    1. 检查节点集的服务列表,并查找指向 novaDataPlaneService 的名称。确保 DataPlaneServiceedpmServiceType 字段的值设置为 nova
    2. 如果 DataPlaneServicedataSources 列表包含名为 nova-extra-configconfigMapRef,则此节点会使用此 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 部署中的 OpenStackDataPlaneNodeSet CR 的名称。
  6. 保存 compute_otu_devices_deploy.yaml 部署文件。
  7. 部署数据平面:

    $ oc create -f compute_otu_devices_deploy.yaml
  8. 验证 data plane 是否已部署:

    $ oc get openstackdataplanenodeset
    
    NAME                STATUS MESSAGE
    compute-otu-devices True   Deployed
  9. 访问 openstackclient 的远程 shell,并验证部署的 Compute 节点是否在 control plane 上可见:

    $ oc rsh -n openstack openstackclient
    
    $ openstack hypervisor list
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部