
本文基于A5IDC在真实生产环境(跨机房 Ceph 集群支撑虚拟机盘、对象存储及容灾复制)的实战经验,详细讲解如何从零部署 Ceph 集群在 CentOS 7.9 上,并通过硬件配置选择、网络优化、Ceph 参数调优等实用细节提升 数据冗余能力与性能表现。文章包含具体产品型号、系统配置表、命令示例与性能评估对比表,适合中大型数据中心储存架构实施。
一、背景与目标
随着业务系统对海量数据持久层的要求不断提升,我们需要一个高可靠、易扩展、具有自动自愈能力的分布式存储平台。Ceph 是开源生态中成熟的分布式存储系统,可以提供:
- 均衡可靠的 块存储(RBD)
- 可扩展的 对象存储(RGW)
- 高可用的 文件系统(CephFS)
- 自动故障转移与数据自愈
本文目标:
- 在 CentOS 7.9 上部署稳定的 Ceph 集群。
- 配置合理的 硬件与网络布局。
- 调优 Ceph 组件以提升 吞吐与 IOPS 性能。
- 提供实际测试对比数据与最佳实践。
二、集群规划与硬件选型
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 操作系统基础调优
在所有节点执行:
1# 关闭防火墙 2systemctl disable firewalld 3systemctl stop firewalld 4 5# 关闭 SELinux 6sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 7setenforce 0 8 9# 安装常规工具 10yum install -y epel-release vim net-tools ntp wget curl 11
3.2 时间同步
Ceph 对时间精度敏感:
1yum install -y chrony 2cat <<EOF > /etc/chrony.conf 3server 0.centos.pool.ntp.org iburst 4server 1.centos.pool.ntp.org iburst 5server 2.centos.pool.ntp.org iburst 6EOF 7systemctl enable chronyd && systemctl restart chronyd 8
3.3 网络参数优化
1cat <<EOF >> /etc/sysctl.d/99-ceph.conf 2net.core.rmem_max = 134217728 3net.core.wmem_max = 134217728 4net.ipv4.tcp_rmem = 4096 87380 134217728 5net.ipv4.tcp_wmem = 4096 65536 134217728 6net.ipv4.tcp_congestion_control = cubic 7fs.file-max = 1048576 8EOF 9sysctl -p 10
四、部署 Ceph (Octopus/Quincy 版本)
4.1 添加 Ceph 仓库
以 Ceph Octopus 为例:
1wget -q -O /etc/yum.repos.d/ceph.repo \ 2 https://download.ceph.com/rpm-octopus/el7/noarch/ceph.repo 3yum clean all 4yum makecache 5
4.2 安装 ceph-deploy
在管理节点:
1yum install -y ceph-deploy 2mkdir ~/ceph-cluster && cd ~/ceph-cluster 3
4.3 部署 Monitor 与 Manager
1ceph-deploy new mon1 mon2 mon3 2
编辑 ceph.conf 添加:
1public_network = 10.10.2.0/24 2cluster_network = 10.10.3.0/24 3osd_journal_size = 2048 4
安装:
1ceph-deploy install mon1 mon2 mon3 osd1 osd2 osd3 osd4 osd5 2ceph-deploy mon create-initial 3ceph-deploy mgr create mon1 4
4.4 配置 OSD
以 osd1 为例:
1ceph-deploy osd create --data /dev/sdb \ 2 --block-db /dev/nvme0n1 --block-wal /dev/nvme0n2 osd1 3
重复执行剩余 OSD 节点。
4.5 配置对象网关(RGW)
1ceph-deploy rgw create mon1 2
五、性能调优与高可用策略
5.1 数据冗余策略
复制池
1ceph osd pool create rbd_pool 128 128 replicated 2ceph osd pool set rbd_pool size 3 3ceph osd pool set rbd_pool min_size 2 4
Erasure Coding 池(适合冷数据)
1ceph osd erasure-code-profile set ec-profile \ 2 k=6 m=3 plugin=jerasure technique=reed_sol_van 3ceph osd pool create ec_pool 128 128 erasure ec_profile=ec-profile 4
5.2 OSD 调优参数
1ceph config set osd osd_max_backfills 3 2ceph config set osd osd_recovery_max_active 3 3ceph config set osd osd_recovery_op_priority 1 4ceph config set osd osd_heartbeat_grace 10 5
5.3 BlueStore 磁盘调优
在所有 OSD:
1ceph config set osd bluestore_max_write_bytes 268435456 2ceph config set osd bluestore_cache_size_ssd 53687091200 3
六、评估与性能测试
6.1 基准测试工具
我们使用 rados bench 与 fio 作为性能参考:
1# Write 测试 2rados bench -p rbd_pool 60 write --no-cleanup 3 4# Read 测试 5rados bench -p rbd_pool 60 seq 6
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 数据冗余可靠性测试
模拟宕机:
1systemctl stop ceph-osd@2 2sleep 120 3ceph health 4
集群自动触发数据重平衡,无数据丢失且性能冲击小于 15%。
七、故障监控与自动化
7.1 Ceph Dashboard
1ceph mgr module enable dashboard 2ceph dashboard set-login-credentials admin strongpassword 3
访问:
1http://mon1:8443/ 2
7.2 集成 Prometheus + Grafana
使用官方 exporter 采集 Ceph 性能指标,可进一步分析:
1ceph mgr module enable prometheus 2
八、总结与最佳实践
- 网络隔离与高带宽是性能基石。
- 合理的冗余策略(复制 vs EC)结合业务需求。
- Bluestore + NVMe DB/WAL 缓存显著提升随机 I/O 性能。
- 调优 OSD 与集群参数可缓解重平衡与恢复期间的性能抖动。
- 持续监控与告警机制不可或缺。
《如何在CentOS 7.9 服务器上配置并优化 Ceph 分布式存储集群,提升数据冗余与性能?》 是转载文章,点击查看原文。