第 15 章 扩展 Ceph Storage 集群


您可以通过添加或删除存储节点来扩展 Ceph Storage 集群的大小。

15.1. 扩展 Ceph Storage 集群

随着容量和性能要求的变化,您可以扩展 Ceph 存储集群来满足不断增长的需求。在这样做前,请确保您有足够的节点供更新的部署使用。然后,您可以在 Red Hat OpenStack Platform (RHOSP)环境中注册和标记新节点。

这个过程会产生以下操作:

  • 存储网络和防火墙规则在新的 CephStorage 节点上配置。
  • ceph-admin 用户在新的 CephStorage 节点上创建。
  • ceph-admin 用户公共 SSH 密钥分发到新的 CephStorage 节点,以便 cephadm 可以使用 SSH 添加额外的节点。
  • 如果添加了新的 CephMonCephMgr 节点,ceph-admin 私钥也会分发到该节点。
  • 应用更新的 Ceph 规格,cephadm 将调度新节点来加入 Ceph 集群。
注意

此流程使用 CephStorage 角色来演示如何扩展集群。此角色包含 CephOSD 服务。通过创建包括所需服务的可组合角色,可以扩展额外的 Red Hat Ceph Storage 服务。有关可组合角色的更多信息,请参阅 可组合服务和自定义角色

例如,可以创建包含 CephOSDCephMon 服务的角色,然后用于使用此新角色扩展集群的步骤。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
  3. 修改 ~/overcloud-baremetal-deploy.yaml,将 CephStorage 节点添加到部署中。

    以下示例文件表示具有三个 CephStorage 节点的原始部署。

    - name: CephStorage
      count: 3
      instances:
        - hostname: ceph-0
          name: ceph-0
        - hostname: ceph-1
          name: ceph-2
        - hostname: ceph-2
          name: ceph-2

    以下示例修改此文件以添加三个额外的节点。

    - name: CephStorage
      count: 6
      instances:
        - hostname: ceph-0
          name: ceph-0
        - hostname: ceph-1
          name: ceph-2
        - hostname: ceph-2
          name: ceph-2
        - hostname: ceph-3
          name: ceph-3
        - hostname: ceph-4
          name: ceph-4
        - hostname: ceph-5
          name: ceph-5
  4. 使用 openstack overcloud node provision 命令及更新的 ~/overcloud-baremetal-deploy.yaml 文件。

    $ openstack overcloud node provision \
      --stack overcloud \
      --network-config \
      --output ~/overcloud-baremetal-deployed.yaml \
      ~/overcloud-baremetal-deploy.yaml
    注意

    此命令将置备配置的节点,并输出 ~/overcloud-baremetal-deployed.yaml 的更新副本。新版本更新 CephStorage 角色。DeployedServerPortMapHostnameMap 还包含新的存储节点。

  5. 使用 openstack overcloud ceph spec 命令生成 Ceph 规范文件。

    $ openstack overcloud ceph spec ~/overcloud-baremetal-deployed.yaml \
        --osd-spec osd_spec.yaml \
        --roles-data roles_data.yaml \
        -o ceph_spec.yaml
    注意

    openstack overcloud ceph spec 中使用的文件应该已经可用。它们在以下位置创建:

    • 此步骤的上一步中创建了 overcloud-baremetal-deployed.yaml 文件。
    • 配置高级 OSD 规格中创建了 osd_spec.yaml 文件。使用 --osd-spec 参数提供 OSD 规格是可选的。
    • roles_data.yaml 文件是 在为 Red Hat Ceph Storage 设计节点 时创建的。假设新节点被分配给此文件中的一个角色。

    此命令的输出将是 ceph_spec.yaml 文件。

  6. 使用 openstack overcloud ceph user enable 命令在集群中的所有节点上创建 ceph-admin 用户。ceph-admin 用户必须在所有节点上存在,以便通过 Ceph 编配器启用对节点的 SSH 访问。

    $ openstack overcloud ceph user enable ceph_spec.yaml
    注意

    使用上一步中创建的 ceph_spec.yaml 文件。

  7. ceph_spec.yaml 文件复制到 controller-0 节点。
  8. 登录 controller-0 节点。
  9. 挂载 ceph_spec.yaml 文件

    $ cephadm shell -m <spec_file_path>
    • <spec_file_path > 替换为 ceph_spec.yaml 文件的完全限定路径和文件名。
  10. 使用编配器应用 ceph_spec.yaml

    $ ceph orch apply -i /mnt/ceph_spec.yaml
  11. stack 用户身份登录 undercloud 主机。
  12. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
  13. 可选:使用带有更新的 ~/overcloud-baremetal-deployed.yaml 文件的 openstack overcloud deploy 命令。

    注意

    只有在您扩展 ComputeHCI 节点时才需要这一步。如果要扩展 CephStorage 节点,则不需要这样做。

    $ openstack overcloud deploy --templates \
      -e /usr/share/openstack-tripleo-heat-templates/environments/cephadm/cephadm.yaml \
      -e deployed_ceph.yaml
      -e overcloud-baremetal-deploy.yaml
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部