跳到主要内容

Ceph 分布式存储

Ceph 架构

三种存储接口

接口用途特点
RBD块设备K8s PersistentVolume、虚拟机磁盘
CephFS文件系统POSIX 兼容,多客户端共享
RGW对象存储S3/Swift API 兼容

部署(cephadm)

cephadm 快速部署
# 引导初始节点
cephadm bootstrap --mon-ip 10.0.1.10

# 添加节点
ceph orch host add node2 10.0.1.11
ceph orch host add node3 10.0.1.12

# 部署 OSD(自动发现空磁盘)
ceph orch apply osd --all-available-devices

# 检查集群健康
ceph status
ceph health detail

K8s 集成(Rook)

Rook CephCluster CRD
apiVersion: ceph.rook.io/v1
kind: CephCluster
metadata:
name: rook-ceph
namespace: rook-ceph
spec:
dataDirHostPath: /var/lib/rook
mon:
count: 3
storage:
useAllNodes: true
useAllDevices: true
提示

Rook 是 Ceph 在 Kubernetes 上的最佳部署方式,以 Operator 模式管理 Ceph 集群的完整生命周期。


常见面试问题

Q1: Ceph 如何保证数据可靠性?

答案

  1. CRUSH 算法:数据按规则分布到不同节点/机架/机房,无需中心元数据服务器
  2. 副本策略:默认 3 副本,分布在不同故障域
  3. 自愈能力:OSD 故障后自动重建副本到其他节点
  4. 纠删码(EC):类似 RAID 5,节省空间但牺牲写性能

Q2: Ceph 和 NFS 怎么选?

答案

维度NFSCeph
规模中小大规模
可靠性单点无单点
接口文件块+文件+对象
运维简单复杂
K8s 集成简单但功能有限Rook 原生支持 CSI

相关链接