问世于2007年的Ceph,是开源社区的大牌明星新项目,也是私有云存储实际上的规范——OpenStack的默认设置储存后端开发。做为当今趋之若鹜的分布式系统系统软件,Ceph有着众多引人注意的特点。这书偏重于详细介绍RADOS及三大关键运用部件——RBD、RGW和CephFS.书里绝大多数內容根据小区新(17年2月)公布的Kraken稳定版,偏重于BlueStore、ECoverwrites、QoS等一众增加部件和增加特点的详细介绍,创作时各章尽量追求完美从基本概念选择,选用由浅入深的方法当然衔接和营销推广至Ceph,并融合Ceph的关键设计构思强调必须开展什么必需的改善和剪裁,促使阅读者不仅可以知其所以然,并且可以学有所用。除此之外,以便进一步加重阅读者印像,每一个章节目录都交叉了许多好用实例,后一章的素材图片也是所有来源于人们平时累积的、从顾客处搜集的生产制造实例,具有象征性和实用性,假如阅读者可以在阅读文章、学习培训的另外开展实战演练应急演练,基础理论融合实践活动,坚信必然可以获得更大盈利。
目录
- 推荐序一
- 推荐序二
- 前 言
- 第1章 计算为王—— 基于可扩展哈希的受控副本分布策略CRUSH 1
- 1.1 straw及straw2算法简介 2
- 1.2 CRUSH 算法详解 6
- 1.2.1 集群的层级化描述——Cluster Map 7
- 1.2.2 数据分布策略——Placement Rule 9
- 1.3 调制CRUSH 14
- 1.3.1 编辑 CRUSH Map 15
- 1.3.2 定制CRUSH规则 19
- 1.3.3 数据重平衡 21
- 1.4 总结与展望 23
- 第2章 性能之巅——新型对象存储引擎BlueStore 25
- 2.1 设计理念与指导原则 26
- 2.2 磁盘数据结构 30
- 2.2.1 PG 30
- 2.2.2 对象 38
- 2.3 缓存管理 46
- 2.3.1 常见的缓存淘汰算法 46
- 2.3.2 BlueStore中的缓存管理 49
- 2.4 磁盘空间管理 53
- 2.4.1 常见磁盘空间管理模式 53
- 2.4.2 BitmapFreelistManager 56
- 2.4.3 BitmapAllocator 57
- 2.5 BlueFS 59
- 2.5.1 RocksDB与BlueFS 59
- 2.5.2 磁盘数据结构 62
- 2.5.3 块设备 65
- 2.6 实现原理 66
- 2.6.1 mkfs 66
- 2.6.2 mount 67
- 2.6.3 read 69
- 2.6.4 write 72
- 2.7 使用指南 77
- 2.7.1 部署BlueStore 77
- 2.7.2 配置参数 80
- 2.8 总结与展望 83
- 第3章 时空博弈——纠删码原理与overwrites支持 84
- 3.1 RAID技术概述 85
- 3.2 RS-RAID和Jerasure 90
- 3.2.1 计算校验和 92
- 3.2.2 数据恢复 92
- 3.2.3 算术运算 93
- 3.2.4 缺陷与改进 99
- 3.2.5 Jerasure 100
- 3.3 纠删码在Ceph中的应用 102
- 3.3.1 术语 104
- 3.3.2 概述 105
- 3.3.3 新写 106
- 3.3.4 读 108
- 3.3.5 覆盖写 110
- 3.3.6 日志 112
- 3.3.7 Scrub 113
- 3.4 总结与展望 113
- 第4章 迁移之美 —— PG 读写流程与状态迁移详解 116
- 4.1 PG概述 117
- 4.2 读写流程 120
- 4.2.1 消息接收与分发 127
- 4.2.2 do_request 129
- 4.2.3 do_op 129
- 4.2.4 execute_ctx 136
- 4.3 状态迁移 146
- 4.3.1 状态机概述 147
- 4.3.2 创建 PG 150
- 4.3.3 Peering 154
- 4.3.4 Recovery 169
- 4.3.5 Backfill 172
- 4.4 总结与展望 173
- 第5章 控制先行——存储服务质量QoS 175
- 5.1 研究现状 176
- 5.2 dmClock算法原理 177
- 5.2.1 mClock 177
- 5.2.2 dmClock 179
- 5.3 QoS的设计与实现 180
- 5.3.1 优先级队列(prio) 181
- 5.3.2 权重的优先级队列(wpq) 183
- 5.3.3 dmClock队列 184
- 5.3.4 Client的设计 191
- 5.4 总结与展望 192
- 第6章 无心插柳——分布式块存储RBD 195
- 6.1 RBD架构 195
- 6.2 存储组织 196
- 6.2.1 元数据 197
- 6.2.2 数据 209
- 6.3 功能特性 211
- 6.3.1 快照 211
- 6.3.2 克隆 216
- 6.4 总结与展望 219
- 第7章 应云而生——对象存储网关RGW 220
- 7.1 总体架构 221
- 7.2 数据组织和存储 222
- 7.2.1 用户 225
- 7.2.2 存储桶 228
- 7.2.3 对象 229
- 7.2.4 数据存储位置 231
- 7.3 功能实现 232
- 7.3.1 功能特性 233
- 7.3.2 I/O路径 235
- 7.3.3 存储桶创建 240
- 7.3.4 对象上传 242
- 7.3.5 对象下载 244
- 7.4 总结与展望 244
- 第8章 经典重现—— 分布式文件系统 CephFS 246
- 8.1 文件系统基础知识 247
- 8.1.1 文件系统 247
- 8.1.2 文件系统中的元数据 249
- 8.1.3 硬链接和软链接 250
- 8.1.4 日志 251
- 8.2 分布式文件系统CephFS 252
- 8.2.1 CephFS设计框架和背景 252
- 8.2.2 MDS的作用 254
- 8.3 MDS设计原理与实现 255
- 8.3.1 MDS元数据存储 255
- 8.3.2 MDS负载均衡实现 260
- 8.3.3 MDS故障恢复 268
- 8.4 总结与展望 271
- 第9章 运用之妙—— 应用案例实战 272
- 9.1 实战案例一:Ceph 集群定时Scrub 272
- 9.2 实战案例二:Ceph对接OpenStack 274
- 9.3 实战案例三:Ceph数据重建配置策略 288
- 9.4 实战案例四:Ceph集群Full紧急处理 290
- 9.5 实战案例五:Ceph快照在增量备份的应用 292
- 9.6 实战案例六:Ceph集群异常watcher处理 297
- 9.7 总结与展望 298