互联网
类型
6.3
豆瓣评分
可以朗读
语音朗读
197千字
字数
2016-10-01
发行日期
展开全部
主编推荐语
一本书总结了作者使用Ceph的实战经验,并对Ceph的框架和主要源代码进行了分析!
内容简介
众所周知,在过去十年里,IT技术领域中巨大的创新项目很多来自于开源世界,从垄断大数据的Hadoop、Spark,到风靡全球的Docker,都证明了开源力量推动了新技术的产生与发展。而再往以前看十年,从Unix到Linux,从Oracle到MySQL/PostgreSQL,从VMWare到KVM,开源世界从传统商业技术继承并给用户带来更多的选择。处于开源社区一线的我欣喜地看到,在IT基础设施领域,越来越多的创业公司从创立之初就以开源为基石,而越来越多的商业技术公司也受益于开源,大量的复杂商业软件基于开源分布式数据库、缓存存储、中间件构建。相信开源的Ceph也将成为IT创新的驱动力。正如Sage Weil在2016 Ceph Next会议上所说,Ceph将成为存储里的Linux!
目录
- 版权信息
- 序言
- 前言
- 第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 RBD的快照和克隆比较
- 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 本章小结
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。