注意

本文档适用于 Ceph 开发版本。

Converting an existing cluster to cephadm

可以将一些现有集群转换为可通过管理cephadm. 此说明适用于一些使用ceph-deploy, ceph-ansibleDeepSea.

本文档的这一部分解释了如何确定您的集群是否可以转换为可通过cephadm管理的状态,以及如何执行这些转换。

限制

  • Cephadm 仅与 BlueStore OSDs 一起工作。

准备

  1. 确保在现有集群的每个主机上都有cephadm命令行工具。另见安装 cephadm了解如何。

  2. 为使用cephadm准备每个主机,在该主机上运行此命令:

    cephadm prepare-host
    
  3. 选择要用于转换的 Ceph 版本。此过程适用于任何 Octopus (15.2.z) 或更高版本的 Ceph。Ceph 的最新稳定版本是默认值。您可能同时在执行此转换时从较早的 Ceph 版本升级。如果您从较早的版本升级,请确保遵循该版本的任何升级说明。

    使用以下命令将 Ceph 容器镜像传递给 cephadm:

    cephadm --image $IMAGE <rest of command goes here>
    

    转换开始。

  4. 通过运行cephadm ls并确保守护进程的样式已更改来确认转换正在进行中:

    cephadm ls
    

    在开始转换过程之前,cephadm ls报告所有现有legacy样式的守护进程。随着采用过程的进行,cephadm:v1.

采用过程

  1. 确保ceph配置已迁移以使用集群的中心配置数据库。如果/etc/ceph/ceph.conf在所有主机上都是相同的,则可以在一个主机上运行以下命令,该命令将适用于所有主机:

    ceph config assimilate-conf -i /etc/ceph/ceph.conf
    

    如果主机之间存在配置差异,您需要在每个主机上重复此命令,注意如果主机之间存在冲突的选项设置,则将使用最后一个主机的值。在此采用过程中,通过运行以下命令查看集群的中心配置以确认其完整性:

    ceph config dump
    
  2. 采用每个 Monitor:

    cephadm adopt --style legacy --name mon.<hostname>
    

    每个遗留 Monitor 将停止,快速作为 cephadm 容器重新启动,并重新加入多数派。

  3. 采用每个 Manager:

    cephadm adopt --style legacy --name mgr.<hostname>
    
  4. 启用 cephadm 编排:

    ceph mgr module enable cephadm
    ceph orch set backend cephadm
    
  5. 为 cephadm 生成一个 SSH 密钥:

    ceph cephadm generate-key
    ceph cephadm get-pub-key > ~/ceph.pub
    
  6. 在集群的每个主机上安装 cephadm SSH 密钥:

    ssh-copy-id -f -i ~/ceph.pub root@<host>
    

    Note

    也可以导入现有的 SSH 密钥。另见故障排除文档中的SSH 错误,了解如何导入现有 SSH 密钥的说明。

    Note

    也可以安排 cephadm 使用非 root 用户通过 SSH 登录集群主机。该用户需要具有无密码的 sudo 访问权限。使用ceph cephadm set-user <user>并将 SSH 密钥复制到每个主机上该用户的主目录中。另见配置不同的 SSH 用户

  7. 告知 cephadm 要管理哪些主机:

    ceph orch host add <hostname> [ip-address]
    

    这将在将主机添加之前在每个主机上运行cephadm check-host。此检查确保主机正常工作。建议使用 IP 地址作为参数。如果未提供地址,则将通过 DNS 解析主机名。

  8. 验证已采用的 monitor 和 manager 守护进程是否可见:

    ceph orch ps
    
  9. 采用集群中的所有 OSD:

    cephadm adopt --style legacy --name <name>
    

    例如:

    cephadm adopt --style legacy --name osd.1
    cephadm adopt --style legacy --name osd.2
    
  10. 通过告诉 cephadm 每个文件系统要运行多少个守护进程来重新部署 CephFS MDS 守护进程(如果已部署)。使用命令ceph fs ls列出 CephFS 文件系统。在主节点上运行以下命令以重新部署 MDS 守护进程:

    ceph orch apply mds <fs-name> [--placement=<placement>]
    

    例如,在一个只有一个名为foo:

    ceph fs ls
    
    name: foo, metadata pool: foo_metadata, data pools: [foo_data ]
    
    ceph orch apply mds foo 2
    

    确认新的 MDS 守护进程已启动:

    ceph orch ps --daemon-type mds
    

    最后,停止并删除遗留的 MDS 守护进程:

    systemctl stop ceph-mds.target
    rm -rf /var/lib/ceph/mds/ceph-*
    
  11. 如果已部署,重新部署 Ceph 对象网关 RGW 守护进程。Cephadm 通过区域管理 RGW 守护进程。对于每个区域,使用 cephadm 部署新的 RGW 守护进程:

    ceph orch apply rgw <svc_id> [--realm=<realm>] [--zone=<zone>] [--port=<port>] [--ssl] [--placement=<placement>]
    

    其中<placement>可以是一个简单的守护进程计数,或特定主机的列表(另见守护进程放置)。区域和 realm 参数仅在多站点设置中需要。

    守护进程启动后,您确认它们正在运行,然后停止并删除遗留的守护进程:

    systemctl stop ceph-rgw.target
    rm -rf /var/lib/ceph/radosgw/ceph-*
    
  12. 检查命令ceph health detail的输出,以查看 cephadm 关于 stray 集群守护进程或尚未由 cephadm 管理的主机的警告。

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.