注意
本文档适用于 Ceph 的开发版本。
将现有集群转换为 cephadm
可以将一些现有集群转换为由 cephadm 管理。这适用于使用 ceph-deploy、ceph-ansible 或 DeepSea 部署的一些集群。
本文档的这一部分解释了如何确定您的集群是否可以转换为由 cephadm 管理的状态,以及如何执行这些转换。
限制
Cephadm 仅适用于 BlueStore OSD。
准备工作
确保现有集群中的每个主机上都提供了
cephadm命令行工具。请参阅 安装 cephadm 了解如何操作。通过在每个主机上运行此命令来准备每个主机以供
cephadm使用cephadm prepare-host选择用于转换的 Ceph 版本。此过程适用于 Octopus (15.2.z) 或更高版本的任何 Ceph 版本。最新的稳定 Ceph 版本是默认版本。您可能正在同时从较早的 Ceph 版本升级并执行此转换。如果您正在从较早的版本升级,请确保遵循该版本的任何升级相关说明。
使用以下命令将 Ceph 容器镜像传递给 cephadm
cephadm --image $IMAGE <rest of command goes here>转换开始。
通过运行
cephadm ls并确保守护进程的样式已更改来确认转换正在进行中cephadm ls在开始转换过程之前,
cephadm ls会报告所有现有守护进程的样式为legacy。随着采用过程的进行,被采用的守护进程将以cephadm:v1样式出现。
采用过程
确保 ceph 配置已迁移为使用集群的中心配置数据库。如果
/etc/ceph/ceph.conf在所有主机上都相同,则可以在一个主机上运行以下命令,并且对所有主机生效ceph config assimilate-conf -i /etc/ceph/ceph.conf如果主机之间存在配置差异,您将需要对每个主机重复此命令,注意如果主机之间存在冲突的选项设置,则将使用最后一个主机的值。在采用过程中,通过运行以下命令查看集群的中心配置以确认其完整性
ceph config dump采用每个监视器
cephadm adopt --style legacy --name mon.<hostname>每个旧版监视器都将停止,作为 cephadm 容器快速重新启动,并重新加入仲裁。
采用每个管理器
cephadm adopt --style legacy --name mgr.<hostname>启用 cephadm 编排
ceph mgr module enable cephadm ceph orch set backend cephadm
为 cephadm 生成 SSH 密钥
ceph cephadm generate-key ceph cephadm get-pub-key > ~/ceph.pub
在集群中的每个主机上安装 cephadm SSH 密钥
ssh-copy-id -f -i ~/ceph.pub root@<host>注意
也可以导入现有的 SSH 密钥。请参阅故障排除文档中的 SSH 错误,了解如何导入现有 SSH 密钥的说明。
注意
还可以安排 cephadm 使用非 root 用户通过 SSH 连接到集群主机。此用户需要具有无密码 sudo 访问权限。使用
ceph cephadm set-user <user>并将 SSH 密钥复制到每个主机上该用户的主目录中。请参阅 配置不同的 SSH 用户告诉 cephadm 管理哪些主机
ceph orch host add <hostname> [ip-address]这将在添加之前对每个主机运行
cephadm check-host。此检查确保主机正常运行。建议使用 IP 地址参数。如果未提供地址,则将通过 DNS 解析主机名。验证被采用的监视器和管理器守护进程是否可见
ceph orch ps采用集群中的所有 OSD
cephadm adopt --style legacy --name <name>例如
cephadm adopt --style legacy --name osd.1 cephadm adopt --style legacy --name osd.2
通过告诉 cephadm 为每个文件系统运行多少个守护进程来重新部署 CephFS MDS 守护进程(如果已部署)。使用命令
ceph fs ls按名称列出 CephFS 文件系统。在主节点上运行以下命令以重新部署 MDS 守护进程ceph orch apply mds <fs-name> [--placement=<placement>]例如,在具有名为 foo 的单个文件系统的集群中
ceph fs lsname: 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-*
重新部署 Ceph Object Gateway RGW 守护进程(如果已部署)。Cephadm 按区域管理 RGW 守护进程。对于每个区域,使用 cephadm 部署新的 RGW 守护进程
ceph orch apply rgw <svc_id> [--realm=<realm>] [--zone=<zone>] [--port=<port>] [--ssl] [--placement=<placement>]其中 <placement> 可以是简单的守护进程计数,也可以是特定主机的列表(请参阅 守护进程放置)。仅在多站点设置中才需要区域和域参数。
守护进程启动后并确认它们正常运行后,停止并删除旧版守护进程
systemctl stop ceph-rgw.target rm -rf /var/lib/ceph/radosgw/ceph-*
检查命令
ceph health detail的输出,查看有关游离集群守护进程或尚未由 cephadm 管理的主机的 cephadm 警告。