Ceph Quincy版本在线安装实战:打造Kubernetes高性能存储集群
在云原生时代,分布式存储已成为支撑大规模容器化应用的核心基础设施。当我们在KubeSphere中遇到ElasticSearch组件因NFS存储导致的性能瓶颈时,Ceph便成为了最佳替代方案。本文将详细介绍如何在线安装Ceph Quincy版本(v17.2.9),为Kubernetes 1.30.x集群提供稳定可靠的存储支持。
为何选择Ceph Quincy版本?
Ceph Quincy作为第17个稳定版本,在性能和功能上都有显著提升:
- BlueStore默认加持:作为新一代存储引擎,BlueStore相较FileStore提供更优性能和更强可靠性
- cephadm简化运维:全新管理工具让集群部署和维护变得轻而易举
- 全方位优化升级:RADOS、RBD、CephFS等核心组件均得到增强
Quincy版本兼具稳定性与兼容性,是替换传统NFS存储的理想之选。
环境准备清单
硬件配置要求
- 4台服务器节点(生产环境建议5台以上)
- 单节点配置:8核CPU + 16GB内存 + 50GB系统盘 + 100GB数据盘
- 每节点额外配备1块数据磁盘(无需预分区)
软件环境设定
- 操作系统:Rocky Linux 9.6(兼容RHEL 9)
- 网络环境:节点间网络互通,支持静态IP配置
- 时间同步:全节点时间一致(推荐chronyd服务)
网络规划参考
192.168.3.41 ceph1
192.168.4.33 ceph2
192.168.4.34 ceph3
192.168.4.36 ceph4
安装操作详解
1. 基础环境配置
所有节点统一执行以下初始化操作:
# 关闭防火墙服务
systemctl stop firewalld
systemctl disable firewalld
# 禁用SELinux安全机制
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# 配置各节点主机名
hostnamectl set-hostname ceph1 # ceph1节点执行
hostnamectl set-hostname ceph2 # ceph2节点执行
hostnamectl set-hostname ceph3 # ceph3节点执行
hostnamectl set-hostname ceph4 # ceph4节点执行
# 统一配置hosts解析
cat >> /etc/hosts << EOF
192.168.3.41 ceph1
192.168.4.33 ceph2
192.168.4.34 ceph3
192.168.4.36 ceph4
EOF
# 部署时间同步服务
dnf install -y chrony
systemctl start chronyd
systemctl enable chronyd
# 安装必要依赖组件
dnf install -y yum-utils python3 podman
2. 部署cephadm工具
在ceph1节点安装管理工具:
# 获取cephadm脚本
curl --silent --remote-name --location https://github.com/ceph/ceph/raw/quincy/src/cephadm/cephadm
# 授予执行权限
chmod +x cephadm
# 安装至系统路径
dnf install --assumeyes centos-release-ceph-quincy
dnf install --assumeyes cephadm
张师傅提供目前在用的cephadm文件
配置阿里云镜像加速(适用于国内环境):
cat > /etc/yum.repos.d/ceph-quincy.repo << EOF
[ceph-quincy]
name=Ceph Quincy RPMs for EL9 - x86_64
baseurl=https://mirrors.aliyun.com/ceph/rpm-quincy/el9/x86_64/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
[ceph-quincy-noarch]
name=Ceph Quincy noarch RPMs for EL9
baseurl=https://mirrors.aliyun.com/ceph/rpm-quincy/el9/noarch/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
EOF
# 更新yum缓存
dnf clean all
dnf makecache
3. 初始化Ceph集群
在ceph1节点启动集群引导程序:
# 启动集群引导(指定mon节点IP)
# 使用默认的podman,未安装podman,会自动安装podman
cephadm bootstrap --mon-ip 192.168.3.41
# 使用docker作为容器运行时进行安装,需要先安装docker
cephadm --docker bootstrap --mon-ip 192.168.3.41
引导日志关键信息解读:
# 日志节选展示关键步骤
Verifying time synchronization is in place...
Unit chronyd.service is enabled and running
Host looks OK
Cluster fsid: b830174a-ce95-11f0-9549-525400888397
Pulling container image quay.io/ceph/ceph:v17...
Ceph version: ceph version 17.2.8 (f817ceb7f187defb1d021d6328fa833eb8e943b3) quincy (stable)
Creating mon...
Creating mgr...
Deploying mon service with default placement...
Deploying mgr service with default placement...
Ceph Dashboard is now available at:
URL: https://ceph1:8443/
User: admin
Password: 01dypy5fh9
4. 配置Ceph CLI工具
为便于日常管理,安装ceph-common工具包:
# 安装CLI组件
dnf install -y ceph-common
安装完成后即可直接使用ceph命令:
# 检查集群运行状态
ceph -s
5. 添加其余节点
将SSH公钥分发至其他节点:
# 分发密钥至各节点
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph2
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph3
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph4
注册节点至集群:
# 注册各节点
ceph orch host add ceph2 192.168.4.33
ceph orch host add ceph3 192.168.4.34
ceph orch host add ceph4 192.168.4.36
验证节点注册情况:
# 查看集群主机列表
ceph orch host ls
6. 配置MON高可用
默认情况下,Ceph会自动部署MON服务,但考虑到网络环境特殊性,需手动调整:
# 查看当前MON服务状态
ceph orch ls --service-type mon
# 由于集群各节点不在同一子网,需配置网络参数
ceph config set global public_network "192.168.0.0/16"
ceph config set mon public_network "192.168.0.0/16"
# 明确指定MON服务部署位置
ceph orch apply mon --placement="ceph1 ceph2 ceph3"
# 验证MON服务运行状态
ceph orch ps --daemon-type mon
7. 配置MGR高可用
为保障管理服务高可用,部署多个MGR实例:
# 查看当前MGR服务状态
ceph orch ls --service-type mgr
# 部署MGR服务至指定节点
ceph orch apply mgr --placement="ceph1 ceph2"
# 检查MGR服务运行状态
ceph orch ps --daemon-type mgr
8. 添加OSD存储设备
推荐使用自动模式添加所有可用磁盘:
# 自动添加所有可用磁盘为OSD
ceph orch apply osd --all-available-devices
若遇到CD-ROM设备误识别问题(如ceph2上的/dev/sr0),可通过以下方式处理:
# 手动指定磁盘添加(根据实际磁盘名称调整)
ceph orch daemon add osd ceph1:/dev/sdb
ceph orch daemon add osd ceph2:/dev/sdb
ceph orch daemon add osd ceph3:/dev/sdb
ceph orch daemon add osd ceph4:/dev/sdb
验证OSD部署结果:
# 查看设备状态列表
ceph orch device ls
# 查看OSD服务状态
ceph orch ps --daemon-type osd
9. 验证集群状态
待所有服务进入running状态后,检查集群健康度:
# 查看集群整体状态
ceph -s
# 查看集群详细健康信息
ceph health detail
健康的集群应显示HEALTH_OK状态。
高可用性增强配置
1. MON高可用优化
MON作为集群大脑,其高可用至关重要:
# 查看当前MON配置信息
ceph mon dump
# 设置MON的部署个数,默认为奇数
ceph orch apply mon --placement="ceph1 ceph2 ceph3"
运维提示:4节点环境下建议设置mon_quorum_size=3,确保单点故障不影响集群运行。
最佳实践总结:
- 部署奇数个MON实例(最少3个)防止脑裂
- 分布于不同物理节点提升容灾能力
- 保障网络低延迟高连通性
2. MGR高可用优化
MGR提供Web仪表板和REST API等功能:
# 查看MGR运行统计
ceph mgr stat
# 查看活跃/备用MGR实例
ceph mgr dump
最佳实践:
- 部署1个活跃+1个备用MGR实例
- 可增加备用实例提升可用性
- MGR资源消耗较低,可与其他服务共存
3. OSD高可用优化
OSD负责实际数据存储:
# 查看OSD树状拓扑
ceph osd tree
# 查看OSD详细状态
ceph osd status
高可用保障要点:
-
副本策略配置:
# 创建副本数为3的存储池 ceph osd pool create mypool 64 64 replicated # 设置存储池副本数 ceph osd pool set mypool size 3 -
故障域隔离:
# 查看CRUSH映射结构 ceph osd crush tree -
自动故障恢复:
# 调整OSD心跳参数 ceph config set osd osd_heartbeat_grace 20 ceph config set osd osd_heartbeat_interval 5
4. 网络高可用优化
建议配置独立集群网络提升性能:
# 分别设置公共网络和集群网络
ceph config set global public_network 192.168.3.0/24
ceph config set global cluster_network 192.168.4.0/24
实现客户端流量与内部复制流量分离,提升整体性能。
可扩展性增强配置
1. 新增节点扩容
集群容量不足时可快速扩容:
# 添加新节点至集群
ceph orch host add ceph5 192.168.4.37
# 分发SSH密钥至新节点
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph5
# 在新节点部署MON服务
ceph orch daemon add mon ceph5
# 在新节点部署MGR服务
ceph orch daemon add mgr ceph5
# 在新节点添加OSD
ceph orch daemon add osd ceph5:/dev/sdb
2. 存储池动态扩展
根据不同业务需求创建多样化存储池:
# 创建副本型存储池(通用场景)
ceph osd pool create replicated_pool 128
# 创建纠删码存储池(归档场景,节约空间)
ceph osd pool create erasure_pool 128 128 erasure
# 调整存储池副本参数
ceph osd pool set replicated_pool size 3
ceph osd pool set replicated_pool min_size 2
3. 性能调优配置
针对不同场景进行针对性优化:
# 设置OSD内存上限(按节点内存调整)
ceph config set osd osd_memory_target 8G
# 调整恢复并发参数适配扩容操作
ceph config set osd osd_max_backfills 4
ceph config set osd osd_recovery_max_active 4
常见问题诊断
1. 网络连通性检查
确保所有节点网络互通:
ping ceph2
ping ceph3
ping ceph4
2. 时间同步验证
确认时间同步服务正常运行:
# 检查chrony服务状态
systemctl status chronyd
# 查看时间源同步情况
chronyc sources
3. 防火墙端口开放
若启用防火墙,需开放必要端口:
- 6789/tcp (mon监控端口)
- 6800-7300/tcp (osd/mgr/mds服务端口)
性能优化建议
- 存储介质升级:生产环境优选SSD磁盘提升I/O性能
- 网络带宽优化:采用万兆网络降低节点间通信延迟
- 内存资源配置:每节点不少于8GB内存保障稳定运行
- 监控体系完善:建立完善的监控告警机制及时响应异常
总结
通过本文详尽的操作步骤,您可以成功搭建一套基于Ceph Quincy版本的分布式存储集群。该版本在稳定性和功能性方面的全面提升,使其成为解决KubeSphere中ElasticSearch等组件NFS存储性能问题的最佳方案。
实际生产环境中还需结合具体需求进行深度定制,如精细调整存储池配置、优化副本策略、完善监控告警等。随着对Ceph理解的加深,可进一步挖掘CephFS、RBD、RGW等高级特性,为Kubernetes及其他容器化应用提供高性能、高可靠的存储支撑。
评论区