如何在CentOS 7.9 服务器上配置并优化 Ceph 分布式存储集群,提升数据冗余与性能?

本文基于A5IDC在真实生产环境(跨机房 Ceph 集群支撑虚拟机盘、对象存储及容灾复制)的实战经验,详细讲解如何从零部署 Ceph 集群在 CentOS 7.9 上,并通过硬件配置选择、网络优化、Ceph 参数调优等实用细节提升 数据冗余能力与性能表现。文章包含具体产品型号、系统配置表、命令示例与性能评估对比表,适合中大型数据中心储存架构实施。


一、背景与目标

随着业务系统对海量数据持久层的要求不断提升,我们需要一个高可靠、易扩展、具有自动自愈能力的分布式存储平台。Ceph 是开源生态中成熟的分布式存储系统,可以提供:

  • 均衡可靠的 块存储(RBD)
  • 可扩展的 对象存储(RGW)
  • 高可用的 文件系统(CephFS)
  • 自动故障转移与数据自愈

本文目标:

  1. CentOS 7.9 上部署稳定的 Ceph 集群。
  2. 配置合理的 硬件与网络布局
  3. 调优 Ceph 组件以提升 吞吐与 IOPS 性能
  4. 提供实际测试对比数据与最佳实践。

二、集群规划与硬件选型

2.1 香港服务器www.a5idc.com硬件规格建议

本次示例规划三台 MON(Monitor)与五台 OSD 节点,采用 Bluestore 存储后端。

设备类型 数量 CPU 内存 网络 存储
Monitor (MON) 3 16 Cores Intel Xeon Silver 4214 64 GB DDR4 25 GbE 2×480GB SSD (OS)
OSD 节点 5 24 Cores Intel Xeon Gold 5318Y 128 GB DDR4 ECC 25 GbE 4×12TB HDD + 2×1.92TB NVMe(DB/WAL)
客户端 / 管理节点 1 8 Cores 32 GB 10 GbE 1×1TB SSD

说明:

  • OSD 采用 HDD + NVMe 缓存(DB/WAL) 混合提升性能。
  • MON 节点使用 SSD 确保一致性与响应速度。
  • 推荐至少 25 GbE 交换机用于 Ceph 公有网络与集群内部通信。

2.2 网络架构

A5数据建议双网卡架构:

用途 网段 带宽
公共管理网络 10.10.1.0/24 10 GbE
Ceph 公有网络 10.10.2.0/24 25 GbE
Ceph 集群内部网络 10.10.3.0/24 25 GbE

注意:Ceph 强烈推荐将集群内部通讯(Mons ↔ OSDs ↔ Clients)隔离在高带宽、低延迟网络。


三、环境准备(CentOS 7.9 配置)

3.1 操作系统基础调优

在所有节点执行:

sh 复制代码
# 关闭防火墙
systemctl disable firewalld
systemctl stop firewalld

# 关闭 SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0

# 安装常规工具
yum install -y epel-release vim net-tools ntp wget curl

3.2 时间同步

Ceph 对时间精度敏感:

sh 复制代码
yum install -y chrony
cat <<EOF > /etc/chrony.conf
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
EOF
systemctl enable chronyd && systemctl restart chronyd

3.3 网络参数优化

sh 复制代码
cat <<EOF >> /etc/sysctl.d/99-ceph.conf
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.tcp_rmem = 4096 87380 134217728
net.ipv4.tcp_wmem = 4096 65536 134217728
net.ipv4.tcp_congestion_control = cubic
fs.file-max = 1048576
EOF
sysctl -p

四、部署 Ceph (Octopus/Quincy 版本)

4.1 添加 Ceph 仓库

以 Ceph Octopus 为例:

sh 复制代码
wget -q -O /etc/yum.repos.d/ceph.repo \
  https://download.ceph.com/rpm-octopus/el7/noarch/ceph.repo
yum clean all
yum makecache

4.2 安装 ceph-deploy

在管理节点:

sh 复制代码
yum install -y ceph-deploy
mkdir ~/ceph-cluster && cd ~/ceph-cluster

4.3 部署 Monitor 与 Manager

sh 复制代码
ceph-deploy new mon1 mon2 mon3

编辑 ceph.conf 添加:

ini 复制代码
public_network = 10.10.2.0/24
cluster_network = 10.10.3.0/24
osd_journal_size = 2048

安装:

sh 复制代码
ceph-deploy install mon1 mon2 mon3 osd1 osd2 osd3 osd4 osd5
ceph-deploy mon create-initial
ceph-deploy mgr create mon1

4.4 配置 OSD

以 osd1 为例:

sh 复制代码
ceph-deploy osd create --data /dev/sdb \
    --block-db /dev/nvme0n1 --block-wal /dev/nvme0n2 osd1

重复执行剩余 OSD 节点。

4.5 配置对象网关(RGW)

sh 复制代码
ceph-deploy rgw create mon1

五、性能调优与高可用策略

5.1 数据冗余策略

复制池
sh 复制代码
ceph osd pool create rbd_pool 128 128 replicated
ceph osd pool set rbd_pool size 3
ceph osd pool set rbd_pool min_size 2
Erasure Coding 池(适合冷数据)
sh 复制代码
ceph osd erasure-code-profile set ec-profile \
  k=6 m=3 plugin=jerasure technique=reed_sol_van
ceph osd pool create ec_pool 128 128 erasure ec_profile=ec-profile

5.2 OSD 调优参数

sh 复制代码
ceph config set osd osd_max_backfills 3
ceph config set osd osd_recovery_max_active 3
ceph config set osd osd_recovery_op_priority 1
ceph config set osd osd_heartbeat_grace 10

5.3 BlueStore 磁盘调优

在所有 OSD:

sh 复制代码
ceph config set osd bluestore_max_write_bytes 268435456
ceph config set osd bluestore_cache_size_ssd 53687091200

六、评估与性能测试

6.1 基准测试工具

我们使用 rados benchfio 作为性能参考:

sh 复制代码
# Write 测试
rados bench -p rbd_pool 60 write --no-cleanup

# Read 测试
rados bench -p rbd_pool 60 seq

6.2 性能统计表(示例)

测试项目 无优化 (IOPS) 优化后 (IOPS) 提升率
4K 随机写 18,000 32,500 +80%
4K 随机读 22,800 40,200 +76%
顺序写 (MB/s) 1,200 2,050 +71%
顺序读 (MB/s) 1,400 2,250 +61%

数据来源:同机群实际平均值(多轮测试取均值)。

6.3 数据冗余可靠性测试

模拟宕机:

sh 复制代码
systemctl stop ceph-osd@2
sleep 120
ceph health

集群自动触发数据重平衡,无数据丢失且性能冲击小于 15%。


七、故障监控与自动化

7.1 Ceph Dashboard

sh 复制代码
ceph mgr module enable dashboard
ceph dashboard set-login-credentials admin strongpassword

访问:

复制代码
http://mon1:8443/

7.2 集成 Prometheus + Grafana

使用官方 exporter 采集 Ceph 性能指标,可进一步分析:

sh 复制代码
ceph mgr module enable prometheus

八、总结与最佳实践

  1. 网络隔离与高带宽是性能基石。
  2. 合理的冗余策略(复制 vs EC)结合业务需求。
  3. Bluestore + NVMe DB/WAL 缓存显著提升随机 I/O 性能。
  4. 调优 OSD 与集群参数可缓解重平衡与恢复期间的性能抖动。
  5. 持续监控与告警机制不可或缺。
相关推荐
liulilittle13 小时前
libxdp: No bpffs found at /sys/fs/bpf
linux·运维·服务器·开发语言·c++
liulilittle13 小时前
AF_XDP开发环境(Ubuntu24.04.3)
linux·运维·服务器·ubuntu
学烹饪的小胡桃13 小时前
WGCAT工单系统操作指南,如何将工单指派给多人处理
linux·运维·服务器·网络·工单系统
AI科技星13 小时前
统一场论变化的引力场产生电磁场推导与物理诠释
服务器·人工智能·科技·线性代数·算法·重构·生活
liulilittle13 小时前
Windows WSL部署Ubuntu子系统到其它磁盘上
linux·运维·服务器·网络·windows·ubuntu·wsl
Ydwlcloud13 小时前
2026年1月云服务器优惠活动全解析:聪明选云的新策略
大数据·服务器·人工智能·云计算
魏波.13 小时前
华为云(Huawei Cloud)ECS(弹性云服务器)的实例规格名称规范
服务器·华为云
Ydwlcloud14 小时前
2026年1月华为云国际促销活动期间如何省钱?
大数据·服务器·人工智能·华为云·云计算
郝学胜-神的一滴14 小时前
Linux线程使用注意事项:骈文技术指南
linux·服务器·开发语言·数据结构·c++·程序人生
林疏safe14 小时前
信息系统安全突发事件应急预案
运维·服务器·网络