9.4. 为 PCI 透传更新 control plane
要让您的云用户创建附加 PCI 设备的实例,请从配置 control plane 开始。使用要传递的正确产品 ID、供应商 ID 和设备类型配置 alias 字段。
先决条件
-
您已选择了
OpenStackDataPlaneNodeSetCR,用于定义您可以配置 PCI 透传的节点。有关创建OpenStackDataPlaneNodeSetCR 的更多信息,请参阅 Deploying Red Hat OpenStack Services on OpenShift 指南中的使用预置备节点创建 OpenStackDataPlaneNodeSet CR。 启用
PCIPassthroughFilter和NUMATopologyFilter过滤器。这些过滤器默认为启用。您可以通过检查OpenStackControlPlaneCR 来验证它们是否已更改:oc exec nova-scheduler-0 -- grep "enabled_filters" /etc/nova/nova.conf.d/ -R
流程
-
在工作站上打开
OpenStackControlPlane自定义资源(CR)文件openstack_control_plane.yaml。 将
customServiceConfig字段添加到nova模板,以指定 Compute 节点上的 PCI 设备别名:apiVersion: core.openstack.org/v1beta1 kind: OpenStackControlPlane spec: nova: apiOverride: route: {} template: secret: osp-secret apiServiceTemplate: replicas: 3 customServiceConfig: | [pci] alias = {"name":"a1", "product_id":"<prod_id>", "vendor_id": "<vendor_id>", "device_type": "<device_type>"}-
将
<prod_id> 替换为 PCI 设备的产品 ID,如1572。 -
将
<vendor_id> 替换为 PCI 设备的供应商 ID,例如8086。 将
<device_type> 替换为 PCI 设备类型,如type-PF。注意您可以在安装了 PCI 设备的系统中使用
lspci -nn命令来查找产品 ID 和厂商 ID。有关配置device_type字段的更多信息,请参阅 PCI passthrough device type 字段。
-
将
可选: 要为 PCI 透传设备设置默认 NUMA 关联性策略,请在配置中添加
numa_policy:[pci] alias = {"name":"a1", "product_id":"<prod_id>", "vendor_id": "<vendor_id>", "device_type": "<device_type>", "numa_policy": "<pci_numa_policy>"}-
将
<prod_id> 替换为 PCI 设备的产品 ID,如1572。 -
将
<vendor_id> 替换为 PCI 设备的供应商 ID,例如8086。 -
将
<device_type> 替换为 PCI 设备类型,如type-PF。 -
将
<pci_numa_policy> 替换为所需的、socket、preferred或legacy的值。如需更多信息,请参阅配置 Nova PCI 透传的指南。
-
将
更新 control plane:
oc apply -f openstack_control_plane.yaml -n openstack等待 RHOCP 创建与
OpenStackControlPlaneCR 相关的资源。运行以下命令来检查状态:$ oc get openstackcontrolplane -n openstack输出示例:
NAME STATUS MESSAGE openstack-control-plane Unknown Setup started当状态为 "Setup complete" 时,会创建
OpenStackControlPlane资源。提示将
-w选项附加到get命令的末尾,以跟踪部署进度。可选:通过查看 openstack 命名空间中的 pod 来查看每个单元,确认部署了 control plane:
$ oc get pods -n openstack当所有 pod 都已完成或运行时,会部署 control plane。