展开全部

主编推荐语

一本书总结了作者使用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 本章小结
展开全部

评分及书评

评分不足
1个评分

出版方

机械工业出版社有限公司

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。