
本文基于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 操作系统基础调优
在所有节点执行:
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 bench 与 fio 作为性能参考:
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
八、总结与最佳实践
- 网络隔离与高带宽是性能基石。
- 合理的冗余策略(复制 vs EC)结合业务需求。
- Bluestore + NVMe DB/WAL 缓存显著提升随机 I/O 性能。
- 调优 OSD 与集群参数可缓解重平衡与恢复期间的性能抖动。
- 持续监控与告警机制不可或缺。