1. 为什么选择cephadm部署Ceph存储集群
作为新一代Ceph集群部署工具,cephadm彻底改变了传统部署方式。我在生产环境中使用cephadm部署了多个Ceph集群后,发现它相比传统方式有三大核心优势:
- 容器化部署:所有Ceph组件都运行在容器中,避免了依赖冲突问题。实测部署速度比传统方式快3-5倍
- 声明式管理:通过YAML文件定义集群状态,实现基础设施即代码(IaC)
- 全生命周期管理:从初始部署到后续扩展、升级,全部通过统一命令行工具完成
重要提示:cephadm要求所有节点必须使用systemd作为init系统,且需要预先安装Docker或Podman
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 部署前的关键准备工作
2.1 硬件环境规划建议
根据我的经验,生产环境部署建议采用以下配置:
| 节点类型 | 数量 | 推荐配置 | 磁盘要求 |
|---|---|---|---|
| Monitor | 3+ | 4C8G | 系统盘+日志盘 |
| OSD | 5+ | 8C32G | 每节点4+块数据盘 |
| MGR | 2 | 4C8G | 系统盘 |
2.2 系统环境准备
在所有节点上执行以下基础配置:
bash复制# 关闭SELinux(生产环境需评估安全需求)
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# 配置NTP时间同步
yum install -y chrony
systemctl enable --now chronyd
# 配置SSH免密登录(部署节点到所有集群节点)
ssh-keygen -t rsa -b 4096
for node in node{1..5}; do ssh-copy-id $node; done
3. 详细部署步骤实录
3.1 cephadm引导安装
在第一个monitor节点执行:
bash复制# 安装cephadm工具
curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
chmod +x cephadm
./cephadm add-repo --release octopus
./cephadm install
# 引导创建新集群
cephadm bootstrap --mon-ip 192.168.1.10
部署完成后会输出dashboard访问信息,务必保存好admin密码。
3.2 添加集群节点
将其他节点加入集群:
bash复制# 在已引导节点上生成添加命令
ceph orch host add node2 192.168.1.11
ceph orch host add node3 192.168.1.12
# 验证节点状态
ceph orch host ls
3.3 OSD部署实战技巧
添加OSD的几种方式对比:
-
自动发现模式(适合新环境)
bash复制
ceph orch apply osd --all-available-devices -
手动指定设备(生产推荐)
bash复制
ceph orch daemon add osd node1:/dev/sdb ceph orch daemon add osd node1:/dev/sdc -
批量部署模式
bash复制
ceph orch device zap node1 /dev/sdb --force ceph orch apply osd --data=/dev/sdb
经验之谈:建议先对磁盘进行预检,使用
ceph-volume inventory查看设备信息,避免误操作
4. 集群配置优化指南
4.1 网络拓扑配置
生产环境建议分离公共网络和集群网络:
yaml复制service:
# 公共网络(客户端访问)
public_network: 192.168.1.0/24
# 集群内部通信网络
cluster_network: 10.10.1.0/24
应用配置:
bash复制ceph config set mon public_network 192.168.1.0/24
ceph config set osd cluster_network 10.10.1.0/24
4.2 CRUSH调优策略
根据硬件拓扑配置CRUSH map:
bash复制# 创建自定义CRUSH规则
ceph osd crush add-bucket rack1 rack
ceph osd crush move rack1 root=default
ceph osd crush add osd.0 1.0 rack=rack1
5. 运维监控与排错
5.1 健康状态检查清单
常见检查命令:
bash复制# 集群整体状态
ceph -s
# OSD状态详情
ceph osd stat
# PG状态监控
ceph pg dump | grep -v ^0 | awk '{print $1,$2,$15}'
# 性能指标查看
ceph perf
5.2 典型问题处理记录
问题1:OSD无法启动
现象:systemctl status ceph-osd@<id>显示启动超时
解决方案:
bash复制# 查看日志定位具体原因
journalctl -u ceph-osd@<id>
# 常见修复步骤
ceph-volume lvm zap /dev/sdX --destroy
ceph orch daemon add osd nodeX:/dev/sdX
问题2:PG卡在inconsistent状态
处理方法:
bash复制ceph pg repair <pg_id>
ceph osd set norecover
ceph osd unset norecover
6. 升级与扩展实战
6.1 无缝升级方案
采用分阶段滚动升级:
bash复制# 查看可用版本
ceph versions
# 开始升级(以octopus到pacific为例)
ceph orch upgrade start --ceph-version 16.2.0
# 监控升级进度
ceph -W cephadm
6.2 集群扩容操作
添加新OSD节点完整流程:
- 准备新节点硬件
- 加入集群:
bash复制
ceph orch host add newnode 192.168.1.20 - 部署OSD:
bash复制
ceph orch apply osd --all-available-devices --host newnode - 调整CRUSH map(如需)
经过多次生产环境部署验证,cephadm确实大幅简化了Ceph集群的管理复杂度。但需要注意容器网络配置、存储设备预检等细节,这些往往是新手容易踩坑的地方
