11.4. 设置 SR-IOV NVIDIA GPU 可创建的最大 vGPU 数量
如果您使用 NVIDIA SR-IOV GPU,则 Compute 服务(nova)无法发现这些 GPU 可以创建的最大虚拟 GPU (vGPU)数量。因此,您必须手动从 NVIDIA 检索这个数字,然后设置 max_instances 配置选项来定义 SR-IOV NVIDIA GPU 可以创建的最大 vGPU 数。
您无法在节点集合中重新配置节点的子集。如果需要这样做,您必须缩减节点设置,并从之前删除的节点创建新节点。
先决条件
- 您知道您的 NVIDIA GPU 支持 SR-IOV 以及它支持的虚拟功能(VF)的数量。例如,Nvidia L4 GPU 加速器为 32 VF 提供 SR-IOV 支持。如需更多信息,请参阅 www.nvidia.com。
-
在工作站上安装了
oc命令行工具。 -
以具有
cluster-admin权限的用户身份登录到可访问 RHOSO 控制平面的工作站。 -
您已选择了
OpenStackDataPlaneNodeSetCR,用于定义您要为 SR-IOV NVIDIA GPU 配置最大 vGPU 数量的节点。有关创建OpenStackDataPlaneNodeSetCR 的更多信息,请参阅在 OpenShift 上部署 Red Hat OpenStack Services 中的创建带有预置备节点的 OpenStack DataPlaneNodeSet CR。
流程
要定义 SR-IOV NVIDIA GPU 可以为特定 vGPU 类型创建的最大 vGPU 数量,请创建或更新名为
nova-extra-config.yaml的ConfigMapCR。您必须在 vGPU 类型的特定mdev部分中设置enabled_mdev_types参数的值和max_instances参数的值。这个示例配置适用于 A40-2Q NVIDIA GPU 类型,它最多可创建 24 个 vGPU:apiVersion: v1 kind: ConfigMap metadata: name: nova-extra-config namespace: openstack data: 36-nova-max-instances.conf: | [devices] enabled_mdev_types = nvidia-558 [mdev_nvidia-558] max_instances = 24有关创建
ConfigMap对象的更多信息,请参阅 在节点中创建和使用 配置映射 。-
保存
nova-extra-config.yaml文件。 创建新的
OpenStackDataPlaneDeploymentCR,以在 data plane 节点上配置服务并部署数据平面,并将它保存到工作站上名为compute_vgpus_max_instance_deploy.yaml的文件中:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: compute_ vgpus_max_instance在
compute_vgpus_max_instance_deploy.yaml中,指定nodeSets以包含您要部署的所有OpenStackDataPlaneNodeSetCR。确保包含您选择的OpenStackDataPlaneNodeSetCR。警告如果您的部署有多个节点集,对
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-vgpus_max_instance spec: nodeSets: - openstack-edpm - compute_vgpus_max_instance - ... - <nodeSet_name>-
将
<nodeSet_name> 替换为您要包含在 data plane 部署中的OpenStackDataPlaneNodeSetCR 的名称。
-
检查节点集的服务列表,并查找指向
-
保存
compute_vgpus_max_instance_deploy.yaml部署文件。 部署数据平面:
$ oc create -f compute_vgpus_max_instance_deploy.yaml验证 data plane 是否已部署:
$ oc get openstackdataplanenodeset NAME STATUS MESSAGE compute_vgpus_max_instance True Deployed访问
openstackclient的远程 shell,并验证部署的 Compute 节点是否在 control plane 上可见:$ oc rsh -n openstack openstackclient $ openstack hypervisor list