第 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 添加额外的节点。 -
如果添加了新的
CephMon或CephMgr节点,ceph-admin私钥也会分发到该节点。 -
应用更新的 Ceph 规格,
cephadm将调度新节点来加入 Ceph 集群。
此流程使用 CephStorage 角色来演示如何扩展集群。此角色包含 CephOSD 服务。通过创建包括所需服务的可组合角色,可以扩展额外的 Red Hat Ceph Storage 服务。有关可组合角色的更多信息,请参阅 可组合服务和自定义角色。
例如,可以创建包含 CephOSD 和 CephMon 服务的角色,然后用于使用此新角色扩展集群的步骤。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:$ source ~/stackrc修改
~/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使用
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角色。DeployedServerPortMap和HostnameMap还包含新的存储节点。使用
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文件。-
此步骤的上一步中创建了
使用
openstack overcloud ceph user enable命令在集群中的所有节点上创建ceph-admin用户。ceph-admin用户必须在所有节点上存在,以便通过 Ceph 编配器启用对节点的 SSH 访问。$ openstack overcloud ceph user enable ceph_spec.yaml注意使用上一步中创建的
ceph_spec.yaml文件。-
将
ceph_spec.yaml文件复制到controller-0节点。 -
登录
controller-0节点。 挂载
ceph_spec.yaml 文件:$ cephadm shell -m <spec_file_path>-
将
<spec_file_path> 替换为ceph_spec.yaml文件的完全限定路径和文件名。
-
将
使用编配器应用
ceph_spec.yaml:$ ceph orch apply -i /mnt/ceph_spec.yaml-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:$ source ~/stackrc可选:使用带有更新的
~/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