目 录CONTENT

文章目录

Ceph Quincy版本在线安装实战:打造Kubernetes高性能存储集群

Administrator
2026-03-10 / 0 评论 / 0 点赞 / 3 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Ceph Quincy版本在线安装实战:打造Kubernetes高性能存储集群

在云原生时代,分布式存储已成为支撑大规模容器化应用的核心基础设施。当我们在KubeSphere中遇到ElasticSearch组件因NFS存储导致的性能瓶颈时,Ceph便成为了最佳替代方案。本文将详细介绍如何在线安装Ceph Quincy版本(v17.2.9),为Kubernetes 1.30.x集群提供稳定可靠的存储支持。

为何选择Ceph Quincy版本?

Ceph Quincy作为第17个稳定版本,在性能和功能上都有显著提升:

  1. BlueStore默认加持:作为新一代存储引擎,BlueStore相较FileStore提供更优性能和更强可靠性
  2. cephadm简化运维:全新管理工具让集群部署和维护变得轻而易举
  3. 全方位优化升级: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

高可用保障要点:

  1. 副本策略配置

    # 创建副本数为3的存储池
    ceph osd pool create mypool 64 64 replicated
    
    # 设置存储池副本数
    ceph osd pool set mypool size 3
    
  2. 故障域隔离

    # 查看CRUSH映射结构
    ceph osd crush tree
    
  3. 自动故障恢复

    # 调整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服务端口)

性能优化建议

  1. 存储介质升级:生产环境优选SSD磁盘提升I/O性能
  2. 网络带宽优化:采用万兆网络降低节点间通信延迟
  3. 内存资源配置:每节点不少于8GB内存保障稳定运行
  4. 监控体系完善:建立完善的监控告警机制及时响应异常

总结

通过本文详尽的操作步骤,您可以成功搭建一套基于Ceph Quincy版本的分布式存储集群。该版本在稳定性和功能性方面的全面提升,使其成为解决KubeSphere中ElasticSearch等组件NFS存储性能问题的最佳方案。

实际生产环境中还需结合具体需求进行深度定制,如精细调整存储池配置、优化副本策略、完善监控告警等。随着对Ceph理解的加深,可进一步挖掘CephFS、RBD、RGW等高级特性,为Kubernetes及其他容器化应用提供高性能、高可靠的存储支撑。

参考资料

  1. Ceph官方文档 - Quincy版本
  2. 吴昊博客 - cephadm搭建Ceph集群(在线安装quincy版)
  3. Ceph版本发布说明
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区