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安全机制setenforce0sed-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# 部署时间同步服务dnfinstall-ychrony systemctl start chronyd systemctlenablechronyd# 安装必要依赖组件dnfinstall-yyum-utils python3podman2. 部署cephadm工具
在ceph1节点安装管理工具:
# 获取cephadm脚本curl--silent--remote-name--locationhttps://github.com/ceph/ceph/raw/quincy/src/cephadm/cephadm# 授予执行权限chmod+x cephadm# 安装至系统路径dnfinstall--assumeyescentos-release-ceph-quincy dnfinstall--assumeyescephadm张师傅提供目前在用的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 makecache3. 初始化Ceph集群
在ceph1节点启动集群引导程序:
# 启动集群引导(指定mon节点IP)# 使用默认的podman,未安装podman,会自动安装podmancephadm bootstrap --mon-ip192.168.3.41# 使用docker作为容器运行时进行安装,需要先安装dockercephadm--dockerbootstrap --mon-ip192.168.3.41引导日志关键信息解读:
# 日志节选展示关键步骤Verifyingtimesynchronization isinplace... 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 version17.2.8(f817ceb7f187defb1d021d6328fa833eb8e943b3)quincy(stable)Creating mon... Creating mgr... Deploying monservicewith default placement... Deploying mgrservicewith default placement... Ceph Dashboard is now available at: URL: https://ceph1:8443/ User: admin Password: 01dypy5fh94. 配置Ceph CLI工具
为便于日常管理,安装ceph-common工具包:
# 安装CLI组件dnfinstall-yceph-common安装完成后即可直接使用ceph命令:
# 检查集群运行状态ceph-s5. 添加其余节点
将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 orchhostaddceph2192.168.4.33 ceph orchhostaddceph3192.168.4.34 ceph orchhostaddceph4192.168.4.36验证节点注册情况:
# 查看集群主机列表ceph orchhostls6. 配置MON高可用
默认情况下,Ceph会自动部署MON服务,但考虑到网络环境特殊性,需手动调整:
# 查看当前MON服务状态ceph orchls--service-type mon# 由于集群各节点不在同一子网,需配置网络参数ceph configsetglobal public_network"192.168.0.0/16"ceph configsetmon public_network"192.168.0.0/16"# 明确指定MON服务部署位置ceph orch apply mon--placement="ceph1 ceph2 ceph3"# 验证MON服务运行状态ceph orchps--daemon-type mon7. 配置MGR高可用
为保障管理服务高可用,部署多个MGR实例:
# 查看当前MGR服务状态ceph orchls--service-type mgr# 部署MGR服务至指定节点ceph orch apply mgr--placement="ceph1 ceph2"# 检查MGR服务运行状态ceph orchps--daemon-type mgr8. 添加OSD存储设备
推荐使用自动模式添加所有可用磁盘:
# 自动添加所有可用磁盘为OSDceph orch apply osd --all-available-devices若遇到CD-ROM设备误识别问题(如ceph2上的/dev/sr0),可通过以下方式处理:
# 手动指定磁盘添加(根据实际磁盘名称调整)ceph orch daemonaddosd ceph1:/dev/sdb ceph orch daemonaddosd ceph2:/dev/sdb ceph orch daemonaddosd ceph3:/dev/sdb ceph orch daemonaddosd ceph4:/dev/sdb验证OSD部署结果:
# 查看设备状态列表ceph orch devicels# 查看OSD服务状态ceph orchps--daemon-type osd9. 验证集群状态
待所有服务进入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 mgrstat# 查看活跃/备用MGR实例ceph mgr dump最佳实践:
- 部署1个活跃+1个备用MGR实例
- 可增加备用实例提升可用性
- MGR资源消耗较低,可与其他服务共存
3. OSD高可用优化
OSD负责实际数据存储:
# 查看OSD树状拓扑ceph osd tree# 查看OSD详细状态ceph osd status高可用保障要点:
副本策略配置:
# 创建副本数为3的存储池ceph osd pool create mypool6464replicated# 设置存储池副本数ceph osd poolsetmypool size3故障域隔离:
# 查看CRUSH映射结构ceph osd crush tree自动故障恢复:
# 调整OSD心跳参数ceph configsetosd osd_heartbeat_grace20ceph configsetosd osd_heartbeat_interval5
4. 网络高可用优化
建议配置独立集群网络提升性能:
# 分别设置公共网络和集群网络ceph configsetglobal public_network192.168.3.0/24 ceph configsetglobal cluster_network192.168.4.0/24实现客户端流量与内部复制流量分离,提升整体性能。
可扩展性增强配置
1. 新增节点扩容
集群容量不足时可快速扩容:
# 添加新节点至集群ceph orchhostaddceph5192.168.4.37# 分发SSH密钥至新节点ssh-copy-id-f-i/etc/ceph/ceph.pub root@ceph5# 在新节点部署MON服务ceph orch daemonaddmon ceph5# 在新节点部署MGR服务ceph orch daemonaddmgr ceph5# 在新节点添加OSDceph orch daemonaddosd ceph5:/dev/sdb2. 存储池动态扩展
根据不同业务需求创建多样化存储池:
# 创建副本型存储池(通用场景)ceph osd pool create replicated_pool128# 创建纠删码存储池(归档场景,节约空间)ceph osd pool create erasure_pool128128erasure# 调整存储池副本参数ceph osd poolsetreplicated_pool size3ceph osd poolsetreplicated_pool min_size23. 性能调优配置
针对不同场景进行针对性优化:
# 设置OSD内存上限(按节点内存调整)ceph configsetosd osd_memory_target 8G# 调整恢复并发参数适配扩容操作ceph configsetosd osd_max_backfills4ceph configsetosd osd_recovery_max_active4常见问题诊断
1. 网络连通性检查
确保所有节点网络互通:
pingceph2pingceph3pingceph42. 时间同步验证
确认时间同步服务正常运行:
# 检查chrony服务状态systemctl status chronyd# 查看时间源同步情况chronyc sources3. 防火墙端口开放
若启用防火墙,需开放必要端口:
- 6789/tcp (mon监控端口)
- 6800-7300/tcp (osd/mgr/mds服务端口)
性能优化建议
- 存储介质升级:生产环境优选SSD磁盘提升I/O性能
- 网络带宽优化:采用万兆网络降低节点间通信延迟
- 内存资源配置:每节点不少于8GB内存保障稳定运行
- 监控体系完善:建立完善的监控告警机制及时响应异常
总结
通过本文详尽的操作步骤,您可以成功搭建一套基于Ceph Quincy版本的分布式存储集群。该版本在稳定性和功能性方面的全面提升,使其成为解决KubeSphere中ElasticSearch等组件NFS存储性能问题的最佳方案。
实际生产环境中还需结合具体需求进行深度定制,如精细调整存储池配置、优化副本策略、完善监控告警等。随着对Ceph理解的加深,可进一步挖掘CephFS、RBD、RGW等高级特性,为Kubernetes及其他容器化应用提供高性能、高可靠的存储支撑。
参考资料
- Ceph官方文档 - Quincy版本
- 吴昊博客 - cephadm搭建Ceph集群(在线安装quincy版)
- Ceph版本发布说明
温馨提示
由于网络环境或文件存储等因素,若相关文件或图片链接暂时无法访问,您也可以通过访问张师傅的好来斯技术博客获取更多相关资源和最新信息。
本篇文章原始链接:
https://www.howlaisi.com/categories/ceph/ceph-quincyban-ben-zai-xian-an-zhuang-shi-zhan-da-zao-kubernetesgao-xing-neng-cun-chu-ji-qun