第 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=scsihw_scsi_model=virtio-scsi 镜像属性。如需更多信息,请参阅 执行存储操作中 的虚拟硬件的元数据属性

警告
  • 如果具有活跃实例的 Compute 节点上的 nova-extra-config ConfigMap CR 中更改 [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 节点。

先决条件

流程

  1. 创建或更新名为 nova-extra-configConfigMap CR,并在 [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 对象的更多信息,请参阅 在节点中创建和使用 配置映射

  2. 创建新的 OpenStackDataPlaneDeployment CR,以在数据平面节点上配置服务并部署数据平面。将 CR 保存到工作站上名为 compute_storage_devices_deploy.yaml 的文件中:

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneDeployment
    metadata:
       name: compute-storage-devices

    有关创建 OpenStackDataPlaneDeployment CR 的更多信息,请参阅在 OpenShift 上部署 Red Hat OpenStack Services 指南中的部署数据平面。

  3. compute_storage_devices_deploy.yaml 中,指定 nodeSets 以包含您要部署的所有 OpenStackDataPlaneNodeSet CR。确保包含您选择的 OpenStackDataPlaneNodeSet CR。该 OpenStackDataPlaneNodeSet CR 定义您要配置附加到一个实例的最大存储设备数量的节点。

    警告

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

    警告

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

    1. 检查节点集的服务列表,并查找指向 nova 的 DataPlaneService 的名称。
    2. 确保 DataPlaneServiceedpmServiceType 字段的值设置为 nova

      如果 DataPlaneServicedataSources 列表包含名为 nova-extra-configconfigMapRef,则此节点会使用此 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 的名称。
  4. 保存 compute_storage_devices_deploy.yaml 部署文件。
  5. 部署数据平面:

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

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

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

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部