《Ceph源码分析》——导读

简介: 本节书摘来自华章出版社《Ceph源码分析》一书中的导读,作者常涛,更多章节内容可以访问云栖社区“华章计算机”公众号查看 目  录序言第1章 Ceph整体架构 **1.1 Ceph的发展历程1.2 Ceph的设计目标1.

本节书摘来自华章出版社《Ceph源码分析》一书中的导读,作者常涛,更多章节内容可以访问云栖社区“华章计算机”公众号查看


b02c29bec2f52b8336f96ca1a55df43a2a91b0c9

目  录
序言
第1章 Ceph整体架构
1.1 Ceph的发展历程
1.2 Ceph的设计目标
1.3 Ceph基本架构图
1.4 Ceph客户端接口
1.4.1 RBD
1.4.2 CephFS
1.4.3 RadosGW
1.5 RADOS
1.5.1 Monitor
1.5.2 对象存储
1.5.3 pool和PG的概念
1.5.4 对象寻址过程
1.5.5 数据读写过程
1.5.6 数据均衡
1.5.7 Peering
1.5.8 Recovery和Backfill
1.5.9 纠删码
1.5.10 快照和克隆
1.5.11 Cache Tier
1.5.12 Scrub
1.6 本章小结
第2章 Ceph通用模块
2.1 Object
2.2 Buffer
2.2.1 buffer::raw
2.2.2 buffer::ptr
2.2.3 buffer::list
2.3 线程池
2.3.1 线程池的启动
2.3.2 工作队列
2.3.3 线程池的执行函数
2.3.4 超时检查
2.3.5 ShardedThreadPool
2.4 Finisher
2.5 Throttle
2.6 SafeTimer
2.7 本章小结
第3章 Ceph网络通信
3.1 Ceph网络通信框架
3.1.1 Message
3.1.2 Connection
3.1.3 Dispatcher
3.1.4 Messenger
3.1.5 网络连接的策略
3.1.6 网络模块的使用
3.2 Simple实现
3.2.1 SimpleMessager
3.2.2 Accepter
3.2.3 DispatchQueue
3.2.4 Pipe
3.2.5 消息的发送
3.2.6 消息的接收
3.2.7 错误处理
3.3 本章小结
第4章 CRUSH数据分布算法
4.1 数据分布算法的挑战
4.2 CRUSH算法的原理
4.2.1 层级化的Cluster Map
4.2.2 Placement Rules
4.2.3 Bucket随机选择算法
4.3 代码实现分析
4.3.1 相关的数据结构
4.3.2 代码实现
4.4 对CRUSH算法的评价
4.5 本章小结
第5章 Ceph客户端
5.1 Librados
5.1.1 RadosClient
5.1.2 IoCtxImpl
5.2 OSDC
5.2.1 ObjectOperation
5.2.2 op_target
5.2.3 Op
5.2.4 Striper
5.2.5 ObjectCacher
5.3 客户写操作分析
5.3.1 写操作消息封装
5.3.2 发送数据op_submit
5.3.3 对象寻址_calc_target
5.4 Cls
5.4.1 模块以及方法的注册
5.4.2 模块的方法执行
5.4.3 举例说明
5.5 Librbd
5.5.1 RBD的相关的对象
5.5.2 RBD元数据操作
5.5.3 RBD数据操作
5.5.4 RBD的快照和克隆
5.6 本章小结
第6章 Ceph的数据读写
6.1 OSD模块静态类图
6.2 相关数据结构
6.2.1 Pool
6.2.2 PG
6.2.3 OSDMap
6.2.4 OSDOp
6.2.5 Object_info_t
6.2.6 ObjectState
6.2.7 SnapSetContext
6.2.8 ObjectContext
6.2.9 Session
6.3 读写操作的序列图
6.4 读写流程代码分析
6.4.1 阶段1:接收请求
6.4.2 阶段2:OSD的op_wq处理
6.4.3 阶段3:PGBackend的处理
6.4.4 从副本的处理
6.4.5 主副本接收到从副本的应答
6.5 本章小结
第7章 本地对象存储
7.1 基本概念介绍
7.1.1 对象的元数据
7.1.2 事务和日志的基本概念
7.1.3 事务的封装
7.2 ObjectStore对象存储接口
7.2.1 对外接口说明
7.2.2 ObjectStore代码示例
7.3 日志的实现
7.3.1 Jouanal对外接口
7.3.2 FileJournal
7.4 FileStore的实现
7.4.1 日志的三种类型
7.4.2 JournalingObjectStore
7.4.3 Filestore的更新操作
7.4.4 日志的应用
7.4.5 日志的同步
7.5 omap的实现
7.5.1 omap存储
7.5.2 omap的克隆
7.5.3 部分代码实现分析
7.6 CollectionIndex
7.6.1 CollectIndex接口
7.6.2 HashIndex
7.6.3 LFNIndex
7.7 本章小结
第8章 Ceph纠删码
8.1 EC的基本原理
8.2 EC的不同插件
8.2.1 RS编码
8.2.2 LRC编码
8.2.3 SHEC编码
8.2.4 EC和副本的比较
8.3 Ceph中EC的实现
8.3.1 Ceph中EC的基本概念
8.3.2 EC支持的写操作
8.3.3 EC的回滚机制
8.4 EC的源代码分析
8.4.1 EC的写操作
8.4.2 EC的write_full
8.4.3 ECBackend
8.5 本章小结
第9章 Ceph快照和克隆
9.1 基本概念
9.1.1 快照和克隆
9.1.2 RDB的快照和克隆比较
9.2 快照实现的核心数据结构
9.3 快照的工作原理
9.3.1 快照的创建
9.3.2 快照的写操作
9.3.3 快照的读操作
9.3.4 快照的回滚
9.3.5 快照的删除
9.4 快照读写操作源代码分析
9.4.1 快照的写操作
9.4.2 make_writeable函数
9.4.3 快照的读操作
9.5 本章小结
第10章 Ceph Peering机制
10.1 statechart状态机
10.1.1 状态
10.1.2 事件
10.1.3 状态响应事件
10.1.4 状态机的定义
10.1.5 context函数
10.1.6 事件的特殊处理
10.2 PG状态机
10.3 PG的创建过程
10.3.1 PG在主OSD上的创建
10.3.2 PG在从OSD上的创建
10.3.3 PG的加载
10.4 PG创建后状态机的状态转换
10.5 Ceph的Peering过程分析
10.5.1 基本概念
10.5.2 PG日志
10.5.3 Peering的状态转换图
10.5.4 pg_info数据结构
10.5.5 GetInfo
10.5.6 GetLog
10.5.7 GetMissing
10.5.8 Active操作
10.5.9 副本端的状态转移
10.5.10 状态机异常处理
10.6 本章小结
第11章 Ceph数据修复
11.1 资源预约
11.2 数据修复状态转换图
11.3 Recovery过程
11.3.1 触发修复
11.3.2 ReplicatedPG
11.3.3 pgbackend
11.4 Backfill过程
11.4.1 相关数据结构
11.4.2 Backfill的具体实现
11.5 本章小结
第12章 Ceph一致性检查
12.1 端到端的数据校验
12.2 Scrub概念介绍
12.3 Scrub的调度
12.3.1 相关数据结构
12.3.2 Scrub的调度实现
12.4 Scrub的执行
12.4.1 相关数据结构
12.4.2 Scrub的控制流程
12.4.3 构建ScrubMap
12.4.4 从副本处理
12.4.5 副本对比
12.4.6 结束Scrub过程
12.5 本章小结
第13章 Ceph自动分层存储
13.1 自动分层存储技术
13.2 Ceph分层存储架构和原理
13.3 Cache Tier的模式
13.4 Cache Tier的源码分析
13.4.1 pool中的Cache Tier数据结构
13.4.2 HitSet
13.4.3 Cache Tier的初始化
13.4.4 读写路径上的Cache Tier处理
13.4.5 cache的flush和evict操作
13.5 本章小结

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
11月前
|
存储 API 开发工具
DeepSeek 3FS解读与源码分析(5):客户端解读
本文深入解析了3FS的客户端模式,包括FUSE Client和Native Client(USRBIO)。
DeepSeek 3FS解读与源码分析(5):客户端解读
|
存储 人工智能 固态存储
DeepSeek开源周第五弹之一!3FS:支撑V3/R1模型数据访问的高性能分布式文件系统
3FS是DeepSeek开源的高性能分布式文件系统,专为AI训练和推理任务设计,提供高达6.6 TiB/s的读取吞吐量,支持强一致性保障和通用文件接口,优化AI工作负载。
1706 2
DeepSeek开源周第五弹之一!3FS:支撑V3/R1模型数据访问的高性能分布式文件系统
|
块存储
ceph-deploy部署ceph分部署集群
这篇博客详细介绍了如何使用ceph-deploy工具部署Ceph集群,包括环境准备、配置hosts、免密登录、时间同步、添加块设备、部署mon、mgr组件以及初始化OSD节点的步骤,并提供了在部署过程中可能遇到的问题和解决方案。
1566 4
|
存储 算法 容灾
Ceph实战(一):Ceph实战专栏说明以及Ceph介绍
Ceph实战(一):Ceph实战专栏说明以及Ceph介绍
410 4
|
存储 缓存 负载均衡
图解一致性哈希算法,看这一篇就够了!
近段时间一直在总结分布式系统架构常见的算法。前面我们介绍过布隆过滤器算法。接下来介绍一个非常重要、也非常实用的算法:一致性哈希算法。通过介绍一致性哈希算法的原理并给出了一种实现和实际运用的案例,带大家真正理解一致性哈希算法。
28467 66
图解一致性哈希算法,看这一篇就够了!
|
存储 网络协议 测试技术
DPDK新手入门必读五本书籍
DPDK新手入门必读五本书籍
|
存储 固态存储 Java
multi-stream SSD 介绍
# NVMe Multi-stream ## 1. 原理介绍 ### 1.1. flash 写操作 在介绍 multi-stream 之前,首先简单介绍一下 flash 写操作的特性。 - SSD 中写操作(write)的单元为 page,page 的大小通常为 2 ~ 64 KB - NAND flash 在对 page 写操作之前,必须对 page 执行擦除操作(er
9814 0
|
存储 固态存储 Linux
开启全新存储时代:SPDK文件系统项目实战指南
开启全新存储时代:SPDK文件系统项目实战指南
|
存储 容灾 安全
带你读《存储漫谈:Ceph原理与实践》——3.1.3 远程复制
带你读《存储漫谈:Ceph原理与实践》——3.1.3 远程复制
带你读《存储漫谈:Ceph原理与实践》——3.1.3 远程复制
|
存储 关系型数据库 块存储
带你读《存储漫谈:Ceph原理与实践》——2.3.2 PG 的状态机
带你读《存储漫谈:Ceph原理与实践》——2.3.2 PG 的状态机

热门文章

最新文章