L2
Ceph 主战场
一套集群,三种存储这是分布式存储运维的核心战场。从架构原理到部署、日常运维、故障排查,形成完整闭环。
13 节课 · 约 10 小时已完成 0/13
- 1
Ceph 架构总览:RADOS 与四类守护进程
原理35 分钟MON、OSD、MGR、MDS 各管什么,一次写入在集群里走过哪些环节。
- →画出 Ceph 的分层架构并说明每层职责
- →说清一次 RBD 写入从客户端到落盘的完整路径
- →解释为什么 MON 要奇数个、MGR 要两个
- 2
CRUSH 与 PG:数据到底落在哪块盘上
原理40 分钟没有中心元数据服务,客户端却能算出数据在哪 —— CRUSH 是 Ceph 最漂亮的设计。
- →手工推演 object → PG → OSD 的映射过程
- →为集群估算合理的 PG 数量
- →读懂 CRUSH map 与 rule,按机架划分故障域
- 3
实验:用 cephadm 从零部署一套集群
实验60 分钟三节点起步,走完 bootstrap、加主机、加 OSD、看健康状态的全流程。
- →独立完成一套三节点 Ceph 集群部署
- →排查 OSD 起不来的常见原因
- →看懂 ceph -s 输出的每一段
- 4
实验:Rook 在 K8s 里跑 Ceph
实验60 分钟存储与计算同集群的另一条路线,Operator 帮你做了什么、藏了什么。
- →用 Rook Operator 部署一套 CephCluster
- →用 kubectl rook-ceph 执行日常运维命令
- →判断什么场景该选 Rook、什么场景该选 cephadm
- 5
RBD 块存储:从 pool 到挂载
实验40 分钟创建 pool、开 image、映射到主机,再把它接到 K8s 里。
- →创建 RBD pool 与 image 并挂载使用
- →配置 ceph-csi-rbd 让 K8s 动态供卷
- →理解 image 特性、快照与克隆
- 6
CephFS 文件存储:MDS 与元数据
实验45 分钟共享文件系统的甜与苦,元数据缓存是它的命门。
- →部署 CephFS 并用内核客户端挂载
- →解释 MDS 缓存、cap 与客户端阻塞的关系
- →配置多活 MDS 与目录分片
- 7
RGW 对象存储:S3 网关
实验40 分钟把 RADOS 包装成 S3,用户、bucket、配额与多站点。
- →部署 RGW 并创建用户、bucket
- →用 s3cmd / awscli 完成读写验证
- →为 RGW 配置监控指标
- 8
Day-2 运维:扩容、换盘、升级
实验50 分钟集群跑起来只是开始,接下来两年都是这些活。
- →安全地加盘、下线盘并控制数据迁移速度
- →滚动升级集群且不中断业务
- →处理 near full、slow ops 一类日常告警
- 9
闯关:HEALTH_WARN 从哪儿看起
闯关45 分钟在模拟终端里接手一套告警集群,一步步定位到根因。
- →形成"先看全局再看局部"的排查顺序
- →把 ceph health detail 的告警映射到具体动作
- →独立完成一次从告警到根因的闭环
- 10
闯关:集群完全不可用,MON 出了什么事
闯关40 分钟ceph 命令直接卡住不返回。这一关练的是「管理面挂了怎么办」。
- →在 ceph 命令不可用时仍能定位问题
- →判断 MON 是进程问题、时间问题还是磁盘问题
- →按正确顺序恢复 quorum 而不损坏集群状态
- 11
闯关:CephFS 突然卡住,客户端全在等
闯关40 分钟带宽正常、OSD 全绿,但 ls 一个目录要等半分钟。问题在元数据层。
- →区分数据面故障与元数据面故障
- →读懂 MDS 的 slow request 与 cap 相关告警
- →定位到具体是哪个客户端在制造压力
- 12
闯关:对象存储 5xx 激增
闯关40 分钟监控报 RGW 错误率飙升,但 Ceph 集群显示 HEALTH_OK。
- →在集群健康的情况下定位网关层故障
- →把 RGW 的报错映射到 index 池与分片问题
- →给出既能救急又能治本的处置方案
- 13
Ceph 性能调优与压测
实验50 分钟先量再调。没有基线的调优都是玄学。
- →为集群建立性能基线
- →定位瓶颈在客户端、网络还是 OSD
- →掌握几个高收益的调优参数及其风险