注意
本文档适用于 Ceph 开发版本。
Converting an existing cluster to cephadm
可以将一些现有集群转换为可通过管理cephadm
. 此说明适用于一些使用ceph-deploy
, ceph-ansible
或DeepSea
.
本文档的这一部分解释了如何确定您的集群是否可以转换为可通过cephadm
管理的状态,以及如何执行这些转换。
限制
Cephadm 仅与 BlueStore OSDs 一起工作。
准备
确保在现有集群的每个主机上都有
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
采用每个 Monitor:
cephadm adopt --style legacy --name mon.<hostname>
每个遗留 Monitor 将停止,快速作为 cephadm 容器重新启动,并重新加入多数派。
采用每个 Manager:
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>
Note
也可以导入现有的 SSH 密钥。另见故障排除文档中的SSH 错误,了解如何导入现有 SSH 密钥的说明。
Note
也可以安排 cephadm 使用非 root 用户通过 SSH 登录集群主机。该用户需要具有无密码的 sudo 访问权限。使用
ceph cephadm set-user <user>
并将 SSH 密钥复制到每个主机上该用户的主目录中。另见配置不同的 SSH 用户告知 cephadm 要管理哪些主机:
ceph orch host add <hostname> [ip-address]
这将在将主机添加之前在每个主机上运行
cephadm check-host
。此检查确保主机正常工作。建议使用 IP 地址作为参数。如果未提供地址,则将通过 DNS 解析主机名。验证已采用的 monitor 和 manager 守护进程是否可见:
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 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-*
如果已部署,重新部署 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-*
检查命令
ceph health detail
的输出,以查看 cephadm 关于 stray 集群守护进程或尚未由 cephadm 管理的主机的警告。
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.