第 一篇 理论篇
第 1章 分布式存储概述 3
1.1 存储系统的架构演进 4
1.1.1 集中式存储系统 6
1.1.2 分布式存储系统 7
1.2 各主流分布式方案对比 10
1.2.1 有中心架构 11
1.2.2 无中心架构 12
1.3 Ceph的发展历程 17
1.3.1 Ceph的起源与发展 17
1.3.2 Ceph的版本信息 18
1.4 小结 20
第 2章 Ceph架构 21
2.1 数据寻址方案 22
2.1.1 查表型寻址方式 22
2.1.2 计算型寻址方式 23
2.1.3 鹿死谁手,犹未可知 24
2.2 Ceph数据寻址 24
2.2.1 Ceph寻址流程 25
2.2.2 CRUSH算法因子 27
2.2.3 Bucket随机选择算法 33
2.3 Ceph的归置组 39
2.3.1 PG数量的选择 39
2.3.2 PG的状态机 40
2.4 小结 45
第3章 接入层 46
3.1 块存储RBD 46
3.1.1 块设备映射 46
3.1.2 快照与克隆 49
3.1.3 远程复制 53
3.1.4 RBD Cache 58
3.1.5 QoS 62
3.1.6 Burst I/O 72
3.1.7 未来展望 74
3.2 对象存储RGW 75
3.2.1 对象存储和S3 75
3.2.2 RGW架构 79
3.2.3 I/O路径 82
3.2.4 元数据/数据布局 84
3.2.5 元数据/数据同步 100
3.2.6 未来展望 108
3.3 文件存储CephFS 110
3.3.1 MDS设计原理 110
3.3.2 CephFS访问方式 114
3.3.3 CephFS高级特性 118
3.3.4 未来展望 125
第4章 存储层 127
4.1 Monitor 128
4.1.1 背景 128
4.1.2 具体实现 128
4.1.3 一致性算法与Paxos介绍 130
4.1.4 小结 138
4.2 OSD 138
4.2.1 单机存储引擎 138
4.2.2 网络通信机制 147
4.2.3 流控机制 153
4.2.4 安全性 154
第二篇 实践篇
第5章 解决方案 159
5.1 集群管理与监控 160
5.1.1 当前Ceph存储系统的故障抵御能力 160
5.1.2 亚健康问题 161
5.1.3 服务器监控交换机异常 163
5.1.4 性能管理 164
5.2 性能与成本 165
5.2.1 低成本冷存储 166
5.2.2 高性能存储 170
5.2.3 缓存层 172
5.3 ARM服务器存储集群调优实践 179
5.3.1 华为泰山ARM服务器简介 179
5.3.2 性能优化方向 179
5.3.3 小结 187
5.4 负载均衡方案 187
5.4.1 常用负载均衡方案介绍 187
5.4.2 负载均衡方案实践 189
5.5 RGW GC回收与容量调度 191
5.5.1 概述 191
5.5.2 涉及的概念 191
5.5.3 垃圾回收调度的设计和实现 192
5.6 OpenStack-Cinder-Backup Driver优化 194
5.6.1 OpenStack-Cinder-Backup介绍 194
5.6.2 OpenStack-Cinder-Backup优化 195
5.6.3 小结 200
第6章 常见问题 201
6.1 集群容量问题 202
6.1.1 集群容量“丢失”问题 202
6.1.2 PG均衡问题 217
6.2 时间调整问题 222
6.2.1 时钟同步要求 222
6.2.2 Ceph心跳检测 223
6.2.3 管理系统时间同步逻辑 225
6.3 大规模应用场景参数配置问题 228
6.3.1 PG分裂问题 228
6.3.2 对象存储元数据集群shard分片问题 230
6.3.3 BlueStore rocksdb slow disk space问题 235
附录 技术术语表 239