第 6 章 配置 Compute 服务存储
您可以从基础镜像创建实例,其中 Compute (nova)服务从镜像(glance)服务复制,并在 Compute 节点上进行本地缓存。此基础镜像包含实例磁盘,即实例的后端。
您可以配置 Compute 服务,将临时磁盘磁盘数据存储在主机 Compute 节点上,或者远程存储在 NFS 共享或 Ceph 集群中。或者,您可以将 Compute 服务配置为将实例磁盘数据存储在块存储(cinder)服务提供的卷中。
您可以为环境配置镜像缓存,并配置实例磁盘的性能和安全性。当镜像服务使用 Red Hat Ceph RADOS Block Device (RBD)作为后端,并且计算服务使用基于文件的本地临时存储时,计算服务可以直接从 RBD 镜像存储库下载镜像,而无需使用镜像服务 API。
6.1. 配置附加到一个实例的最大存储设备数量 复制链接链接已复制到粘贴板!
默认情况下,您可以将无限数量的存储设备附加到单个实例。将大量磁盘设备附加到实例可能会降低实例的性能。您可以根据环境支持的边界调整实例可附加到实例的最大设备数量。实例支持的存储磁盘数量取决于磁盘使用的总线。例如,IDE 磁盘总线限制为 4 个附加的设备。您可以将最多 500 个磁盘设备附加到机器类型 Q35 的实例。
Q35 是默认的机器类型,它使用 PCIe 端口。您可以通过将 [libvirt] 参数 num_pcie_ports 添加到 nova-extra-config ConfigMap CR 来管理 PCIe 端口设备的数量。可附加到 PCIe 端口的设备数量小于之前版本上运行的实例。如果要使用更多设备,则必须使用 hw_disk_bus=scsi 或 hw_scsi_model=virtio-scsi 镜像属性。如需更多信息,请参阅 执行存储操作中 的虚拟硬件的元数据属性。
-
如果具有活跃实例的 Compute 节点上的
nova-extra-configConfigMapCR 中更改[compute]参数max_disk_devices_to_attach的值,则如果最大数量低于已附加到实例的设备数量,则会导致重建失败。例如,如果实例 A 附加了 26 个设备,并将max_disk_devices_to_attach更改为 20,则重建实例 A 的请求将失败。 - 在冷迁移过程中,配置的最大存储设备数量仅在您要迁移的实例源上强制实施。移动前不会检查目的地。这意味着,如果 Compute 节点 A 有 26 个附加磁盘设备,并且 Compute 节点 B 配置最多 20 个附加磁盘设备,则从 Compute 节点 A 到 Compute 节点 B 的 26 个附加设备的冷迁移成功。但是,在 Compute 节点 B 中重建实例的后续请求会失败,因为已经附加了 26 个设备,超过配置的最大值 20。
在 shelved 卸载实例上不强制配置的最大存储设备数量,因为它们没有 Compute 节点。
先决条件
-
oc命令行工具已安装在您的工作站上。 -
以具有
cluster-admin权限的用户身份登录 Red Hat OpenStack Services on OpenShift (RHOSO)。 -
您已选择
OpenStackDataPlaneNodeSetCR,用于定义您可以配置要附加到一个实例的最大存储设备数量。有关创建OpenStackDataPlaneNodeSetCR 的更多信息,请参阅 Deploying Red Hat OpenStack Services on OpenShift 指南中的创建数据平面。https://docs.redhat.com/en/documentation/red_hat_openstack_services_on_openshift/18.0/html/deploying_red_hat_openstack_services_on_openshift/assembly_creating-the-data-plane
流程
创建或更新名为
nova-extra-config的ConfigMapCR,并在[compute]下设置参数的值:apiVersion: v1 kind: ConfigMap metadata: name: nova-extra-config namespace: openstack data: 31-nova-max-storage-devices.conf: | [compute] max_disk_devices_to_attach = <max_device_limit>有关创建
ConfigMap对象的更多信息,请参阅 在节点中创建和使用 配置映射 。创建新的
OpenStackDataPlaneDeploymentCR,以在数据平面节点上配置服务并部署数据平面。将 CR 保存到工作站上名为compute_storage_devices_deploy.yaml的文件中:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: compute-storage-devices有关创建
OpenStackDataPlaneDeploymentCR 的更多信息,请参阅在 OpenShift 上部署 Red Hat OpenStack Services 指南中的部署数据平面。在
compute_storage_devices_deploy.yaml中,指定nodeSets以包含您要部署的所有OpenStackDataPlaneNodeSetCR。确保包含您选择的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-storage-devices spec: nodeSets: - openstack-edpm - compute-storage-devices - ... - <nodeSet_name>-
将
<nodeSet_name> 替换为您要包含在 data plane 部署中的 'OpenStackDataPlaneNodeSet'CR 的名称。
-
检查节点集的服务列表,并查找指向 nova 的
-
保存
compute_storage_devices_deploy.yaml部署文件。 部署数据平面:
$ oc create -f compute_storage_devices_deploy.yaml验证 data plane 是否已部署:
$ oc get openstackdataplanenodeset NAME STATUS MESSAGE compute-storage-devices True Deployed访问
openstackclient的远程 shell,并验证部署的 Compute 节点是否在 control plane 上可见:$ oc rsh -n openstack openstackclient $ openstack hypervisor list