将现有集群转换为 CEPHADM
可以转换一些现有的集群,以便可以使用cephadm. 此声明适用于使用ceph-deploy、ceph-ansible或DeepSea部署的某些集群。
文档的这一部分解释了如何确定您的集群是否可以转换为可以管理它们的状态以及cephadm如何执行这些转换。
限制
Cephadm 仅适用于 BlueStore OSD。集群中的 FileStore OSD 无法使用cephadm。
准备
-
确保cephadm命令行工具在现有集群中的每台主机上都可用。请参阅安装 cephadm 以了解如何操作。
-
cephadm通过运行以下命令准备每个主机以供使用:
cephadm prepare-host
- 选择用于转换的 Ceph 版本。此过程适用于 Octopus (15.2.z) 或更高版本(含)的任何 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
- 转换每个mon:
cephadm adopt --style legacy --name mon.<hostname>
每个遗留监视器都应该停止,作为 cephadm 容器快速重新启动,然后重新加入仲裁。
- 转换每个MGR:
cephadm adopt --style legacy --name mgr.<hostname>
- 启用cephadm:
ceph mgr module enable cephadm
ceph orch set backend cephadm
- 生成 SSH 密钥:
ceph cephadm generate-key
ceph cephadm get-pub-key > ~/ceph.pub
- 在集群中的每台主机上安装集群 SSH 密钥:
ssh-copy-id -f -i ~/ceph.pub root@<host>
笔记: 也可以导入现有的 ssh 密钥。有关如何导入现有 ssh 密钥的说明,请参阅 故障排除文档中的 ssh 错误。
笔记: ceph cephadm set-user
也可以让 cephadm 使用非 root 用户 ssh 进入集群主机。此用户需要具有无密码 sudo 访问权限。使用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 为每个文件系统运行多少个守护进程来重新部署 MDS 守护进程。使用ceph fs ls命令按名称列出文件系统。在主节点上运行以下命令以重新部署 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-*
- 重新部署 RGW 守护程序。Cephadm 按区域管理 RGW 守护进程。对于每个区域,使用 cephadm 部署新的 RGW 守护程序:
ceph orch apply rgw <svc_id> [--realm=<realm>] [--zone=<zone>] [--port=<port>] [--ssl] [--placement=<placement>]
其中
在守护程序启动并且您确认它们正在运行后,停止并删除旧的遗留守护程序:
systemctl stop ceph-rgw.target
rm -rf /var/lib/ceph/radosgw/ceph-*
- 检查 ceph health detail 命令的输出以获取有关杂散集群守护程序或尚未由 cephadm 管理的主机的 cephadm 警告。