Ceph分布式存储集群搭建与容量管理实战

Ceph作为开源的统一分布式存储系统,同时提供对象存储、块存储和文件系统三种接口,在IDC数据中心建设中被广泛采用。服务器运维场景下,Ceph集群的部署规划、容量管理和故障域控制直接决定存储可靠性。本文以Ceph Reef(v19)版本为例,演示从零搭建Ceph集群的完整流程。

Ceph架构设计与存储类型选择

Ceph的核心组件包括Monitor(MON)、Manager(MGR)、OSD(Object Storage Device)和MDS(Metadata Server)。各组件职责:

# Ceph组件职责
# MON  - 维护集群拓扑映射(PG/OSD/Crush Map),提供一致性保证
# MGR  - 集群监控、告警、仪表盘管理
# OSD  - 实际数据存储守护进程,每个磁盘一个OSD
# MDS  - 仅CephFS需要,管理文件系统元数据
#
# 三种存储接口选择:
# RBD (块存储)   - 虚拟机磁盘、数据库卷、iSCSI目标
# RGW (对象存储) - S3/Swift兼容API,备份归档、CDN源站
# CephFS (文件) - POSIX挂载,NAS替代、共享文件系统

生产环境通常至少部署3个MON节点和3个MGR节点以保证高可用。OSD数量取决于存储容量需求,一般每个节点配置6-12块磁盘。

集群环境准备与节点规划

部署Ceph前需要完成网络配置、时间同步和SSH互信等准备工作。以下是一个3节点集群的规划示例:

# 集群节点规划
# ceph-node1: 192.168.10.11  MON+MGR+OSD (3块数据盘)
# ceph-node2: 192.168.10.12  MON+MGR+OSD (3块数据盘)
# ceph-node3: 192.168.10.13  MON+MGR+OSD (3块数据盘)
# ceph-deploy: 192.168.10.10  管理节点(不参与存储)

# 所有节点基础环境配置
# 1. 配置NTP时间同步
apt install chrony -y
# 在管理节点配置chrony server,其他节点配置client

# 2. 创建部署用户并配置SSH免密
useradd -m -s /bin/bash cephadm
echo "cephadm ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
su - cephadm
ssh-keygen -t rsa -N ""
ssh-copy-id cephadm@ceph-node1
ssh-copy-id cephadm@ceph-node2
ssh-copy-id cephadm@ceph-node3

# 3. 配置hosts解析
cat >> /etc/hosts << EOF
192.168.10.11 ceph-node1
192.168.10.12 ceph-node2
192.168.10.13 ceph-node3
EOF

Ceph部署工具cephadm安装配置

Ceph Reef版本推荐使用cephadm进行容器化部署,相比传统ceph-deploy方式管理更灵活:

# 在管理节点安装cephadm
curl --silent --remote-name \
  https://raw.githubusercontent.com/ceph/ceph/quincy/src/cephadm/cephadm
chmod +x cephadm
./cephadm add-repo --release reef
apt install cephadm -y

# 引导集群(在第一个节点上初始化MON和MGR)
cephadm bootstrap \
  --mon-ip 192.168.10.11 \
  --initial-dashboard-admin-password Ceph@2026 \
  --dashboard-password-noupdate

# 将其他节点加入集群
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph-node2
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph-node3
ceph orch host add ceph-node2 192.168.10.12
ceph orch host add ceph-node3 192.168.10.13

# 查看集群状态
ceph -s
# 输出示例:
# cluster:
#   id:     a3f8d2e1-xxxx-xxxx
#   health: HEALTH_OK
#   services:
#     mon: 3 daemons, quorum ceph-node1,ceph-node2,ceph-node3
#     mgr: ceph-node1(active), standbys: ceph-node2
#     osd: 9 osds: 9 up, 9 in

OSD与PG容量管理

OSD添加完成后需要配置PG(Placement Group)数量,PG数量直接影响数据分布的均衡性:

# 添加OSD(自动发现可用磁盘)
ceph orch daemon add osd --all-available-devices

# 手动指定磁盘添加OSD
ceph orch daemon add osd ceph-node1:/dev/sdb
ceph orch daemon add osd ceph-node1:/dev/sdc
ceph orch daemon add osd ceph-node1:/dev/sdd

# 创建块存储池并设置PG数量
# PG数量计算公式: PG = (OSD数 * 100) / 副本数  向上取2的N次幂
# 9个OSD,3副本: (9*100)/3 = 300 -> 取256
ceph osd pool create rbd-pool 256 256 replicated
ceph osd pool set rbd-pool size 3
ceph osd pool set rbd-pool min_size 2
ceph osd pool application enable rbd-pool rbd

# 初始化RBD
rbd pool init rbd-pool

# 创建块设备镜像
rbd create rbd-pool/vm-disk-01 --size 100G
rbd map rbd-pool/vm-disk-01
mkfs.ext4 /dev/rbd0
mount /dev/rbd0 /mnt/ceph-rbd

PG数量设置不当会导致数据分布不均匀或集群性能下降。PG过多增加MON管理开销,PG过少导致单个PG数据量过大影响恢复速度。当OSD数量变化时可通过pg_autoscaler自动调整:

# 启用PG自动缩放
ceph osd pool set rbd-pool pg_autoscale_mode on

# 查看PG状态与推荐值
ceph osd pool autoscale-status
# POOL        SIZE TARGET  RAW USED  %USE  PG_NUM NEW_PG_NUM AUTO
# rbd-pool    0        8       0     0    256        256 on

Crush Map故障域调优

Crush Map决定数据副本在OSD之间的分布策略,合理的故障域设置能避免单节点故障导致多副本同时丢失:

# 查看当前Crush Map规则
ceph osd crush rule dump

# 创建基于host故障域的Crush规则(默认为osd级)
ceph osd crush rule create-replicated \
  replicated-rule-host \
  default host

# 创建基于rack故障域的Crush规则
ceph osd crush rule create-replicated \
  replicated-rule-rack \
  default rack

# 将存储池应用新的Crush规则
ceph osd pool set rbd-pool crush_rule replicated-rule-host

# 验证数据分布
ceph osd df tree
# ID  CLASS WEIGHT  REWEIGHT SIZE  USED  AVAIL  %USE  VAR  PGS
#  0   hdd 0.546    1.000  546G  12G   534G   2.2  1.0   85
#  1   hdd 0.546    1.000  546G  11G   535G   2.0  0.9   83
#  2   hdd 0.546    1.000  546G  13G   533G   2.4  1.1   88
# 数据应在各节点间均匀分布,偏差不超过10%

生产环境中host级故障域是基本要求,即同一数据的三个副本分别存储在不同物理服务器上。对于更高可靠性要求,可配置rack或row级故障域,防止机架级断电导致数据不可用。Ceph集群上线后需定期检查磁盘健康状态,通过SMART监控提前替换接近寿命终点的磁盘,避免多盘同时故障导致PG降级。

原创文章,作者:小编,如若转载,请注明出处:https://www.yunthe.com/ceph-fen-bu-shi-cun-chu-ji-qun-da-jian-yu-rong-liang-guan/

(0)
小编小编
上一篇 1小时前
下一篇 1小时前

相关推荐