当前位置:首页 > 程序设计 >
《Ceph源码分析》电子书封面

Ceph源码分析

  • 发布时间:2019年10月30日 09:13:20
  • 作者:常涛
  • 大小:134 MB
  • 类别:Ceph电子书
  • 格式:PDF
  • 版本:完整影印版
  • 评分:8.7

    Ceph源码分析 PDF 完整影印版

      给大家带来的一篇关于Ceph相关的电子书资源,介绍了关于Ceph、源码分析方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小134 MB,常涛编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.1。

      内容介绍

      Ceph源码分析 PDF

      随着云计算技术的兴起和普及,云计算基石:分布式共享存储系统受到业界的重视。Ceph以其稳定、高可用、可扩展的特性,乘着开源云计算管理系统OpenStack的东风,迅速成为最热门的开源分布式存储系统。

      Ceph作为一个开源的分布式存储系统,人人都可以免费获得其源代码,并能够安装部署,但是并不等于人人都能用起来,人人都能用好。用好一个开源分布式存储系统,首先要对其架构、功能原理等方面有比较好的了解,其次要有修复漏洞的能力。这些都是在采用开源分布式存储系统时所面临的挑战。

      要用好Ceph,就必须深入了解和掌握Ceph源代码。Ceph源代码的实现被公认为比较复杂,阅读难度较大。阅读Ceph源代码,不但需要对C++语言以及boost库和STL库非常熟悉,还需要有分布式存储系统相关的基础知识以及对实现原理的深刻理解,最后还需要对Ceph框架和设计原理以及具体的实现细节有很好的把握。所以Ceph源代码的阅读是相当有挑战性的。

      目录

      • 序言
      • 前言
      • 第1章 Ceph整体架构 1
      • 1.1 Ceph的发展历程 1
      • 1.2 Ceph的设计目标 2
      • 1.3 Ceph基本架构图 2
      • 1.4 Ceph客户端接口 3
      • 1.4.1 RBD 4
      • 1.4.2 CephFS 4
      • 1.4.3 RadosGW 4
      • 1.5 RADOS 6
      • 1.5.1 Monitor 6
      • 1.5.2 对象存储 7
      • 1.5.3 pool和PG的概念 7
      • 1.5.4 对象寻址过程 8
      • 1.5.5 数据读写过程 9
      • 1.5.6 数据均衡 10
      • 1.5.7 Peering 11
      • 1.5.8 Recovery和Backfill 11
      • 1.5.9 纠删码 11
      • 1.5.10 快照和克隆 12
      • 1.5.11 Cache Tier 12
      • 1.5.12 Scrub 13
      • 1.6 本章小结 13
      • 第2章 Ceph通用模块 14
      • 2.1 Object 14
      • 2.2 Buffer 16
      • 2.2.1 buffer::raw 16
      • 2.2.2 buffer::ptr 17
      • 2.2.3 buffer::list 17
      • 2.3 线程池 19
      • 2.3.1 线程池的启动 20
      • 2.3.2 工作队列 20
      • 2.3.3 线程池的执行函数 21
      • 2.3.4 超时检查 22
      • 2.3.5 ShardedThreadPool 22
      • 2.4 Finisher 23
      • 2.5 Throttle 23
      • 2.6 SafeTimer 24
      • 2.7 本章小结 25
      • 第3章 Ceph网络通信 26
      • 3.1 Ceph网络通信框架 26
      • 3.1.1 Message 27
      • 3.1.2 Connection 29
      • 3.1.3 Dispatcher 29
      • 3.1.4 Messenger 29
      • 3.1.5 网络连接的策略 30
      • 3.1.6 网络模块的使用 30
      • 3.2 Simple实现 32
      • 3.2.1 SimpleMessager 33
      • 3.2.2 Accepter 33
      • 3.2.3 DispatchQueue 33
      • 3.2.4 Pipe 34
      • 3.2.5 消息的发送 35
      • 3.2.6 消息的接收 36
      • 3.2.7 错误处理 37
      • 3.3 本章小结 38
      • 第4章 CRUSH数据分布算法 39
      • 4.1 数据分布算法的挑战 39
      • 4.2 CRUSH算法的原理 40
      • 4.2.1 层级化的Cluster Map 40
      • 4.2.2 Placement Rules 42
      • 4.2.3 Bucket随机选择算法 46
      • 4.3 代码实现分析 49
      • 4.3.1 相关的数据结构 49
      • 4.3.2 代码实现 50
      • 4.4 对CRUSH算法的评价 52
      • 4.5 本章小结 52
      • 第5章 Ceph客户端 53
      • 5.1 Librados 53
      • 5.1.1 RadosClient 54
      • 5.1.2 IoCtxImpl 56
      • 5.2 OSDC 56
      • 5.2.1 ObjectOperation 56
      • 5.2.2 op_target 57
      • 5.2.3 Op 57
      • 5.2.4 Striper 58
      • 5.2.5 ObjectCacher 59
      • 5.3 客户写操作分析 59
      • 5.3.1 写操作消息封装 60
      • 5.3.2 发送数据op_submit 61
      • 5.3.3 对象寻址_calc_target 61
      • 5.4 Cls 62
      • 5.4.1 模块以及方法的注册 62
      • 5.4.2 模块的方法执行 63
      • 5.4.3 举例说明 64
      • 5.5 Librbd 65
      • 5.5.1 RBD的相关的对象 65
      • 5.5.2 RBD元数据操作 66
      • 5.5.3 RBD数据操作 67
      • 5.5.4 RBD的快照和克隆 69
      • 5.6 本章小结 71
      • 第6章 Ceph的数据读写 72
      • 6.1 OSD模块静态类图 72
      • 6.2 相关数据结构 73
      • 6.2.1 Pool 74
      • 6.2.2 PG 75
      • 6.2.3 OSDMap 75
      • 6.2.4 OSDOp 77
      • 6.2.5 Object_info_t 77
      • 6.2.6 ObjectState 78
      • 6.2.7 SnapSetContext 79
      • 6.2.8 ObjectContext 79
      • 6.2.9 Session 80
      • 6.3 读写操作的序列图 81
      • 6.4 读写流程代码分析 83
      • 6.4.1 阶段1:接收请求 83
      • 6.4.2 阶段2:OSD的op_wq处理 85
      • 6.4.3 阶段3:PGBackend的处理 95
      • 6.4.4 从副本的处理 95
      • 6.4.5 主副本接收到从副本的应答 95
      • 6.5 本章小结 96
      • 第7章 本地对象存储 97
      • 7.1 基本概念介绍 98
      • 7.1.1 对象的元数据 98
      • 7.1.2 事务和日志的基本概念 98
      • 7.1.3 事务的封装 99
      • 7.2 ObjectStore对象存储接口 100
      • 7.2.1 对外接口说明 101
      • 7.2.2 ObjectStore代码示例 101
      • 7.3 日志的实现 102
      • 7.3.1 Jouanal对外接口 102
      • 7.3.2 FileJournal 103
      • 7.4 FileStore的实现 109
      • 7.4.1 日志的三种类型 110
      • 7.4.2 JournalingObjectStore 111
      • 7.4.3 Filestore的更新操作 112
      • 7.4.4 日志的应用 115
      • 7.4.5 日志的同步 115
      • 7.5 omap的实现 116
      • 7.5.1 omap存储 117
      • 7.5.2 omap的克隆 118
      • 7.5.3 部分代码实现分析 119
      • 7.6 CollectionIndex 120
      • 7.6.1 CollectIndex接口 122
      • 7.6.2 HashIndex 123
      • 7.6.3 LFNIndex 124
      • 7.7 本章小结 124
      • 第8章 Ceph纠删码 125
      • 8.1 EC的基本原理 125
      • 8.2 EC的不同插件 126
      • 8.2.1 RS编码 126
      • 8.2.2 LRC编码 126
      • 8.2.3 SHEC编码 128
      • 8.2.4 EC和副本的比较 129
      • 8.3 Ceph中EC的实现 129
      • 8.3.1 Ceph中EC的基本概念 129
      • 8.3.2 EC支持的写操作 130
      • 8.3.3 EC的回滚机制 131
      • 8.4 EC的源代码分析 132
      • 8.4.1 EC的写操作 132
      • 8.4.2 EC的write_full 133
      • 8.4.3 ECBackend 133
      • 8.5 本章小结 133
      • 第9章 Ceph快照和克隆 134
      • 9.1 基本概念 134
      • 9.1.1 快照和克隆 134
      • 9.1.2 RDB的快照和克隆比较 135
      • 9.2 快照实现的核心数据结构 137
      • 9.3 快照的工作原理 139
      • 9.3.1 快照的创建 139
      • 9.3.2 快照的写操作 139
      • 9.3.3 快照的读操作 140
      • 9.3.4 快照的回滚 141
      • 9.3.5 快照的删除 141
      • 9.4 快照读写操作源代码分析 141
      • 9.4.1 快照的写操作 141
      • 9.4.2 make_writeable函数 142
      • 9.4.3 快照的读操作 145
      • 9.5 本章小结 146
      • 第10章 Ceph Peering机制 147
      • 10.1 statechart状态机 147
      • 10.1.1 状态 147
      • 10.1.2 事件 148
      • 10.1.3 状态响应事件 148
      • 10.1.4 状态机的定义 149
      • 10.1.5 context函数 150
      • 10.1.6 事件的特殊处理 150
      • 10.2 PG状态机 151
      • 10.3 PG的创建过程 151
      • 10.3.1 PG在主OSD上的创建 151
      • 10.3.2 PG在从OSD上的创建 153
      • 10.3.3 PG的加载 154
      • 10.4 PG创建后状态机的状态转换 154
      • 10.5 Ceph的Peering过程分析 156
      • 10.5.1 基本概念 156
      • 10.5.2 PG日志 159
      • 10.5.3 Peering的状态转换图 166
      • 10.5.4 pg_info数据结构 167
      • 10.5.5 GetInfo 169
      • 10.5.6 GetLog 176
      • 10.5.7 GetMissing 181
      • 10.5.8 Active操作 183
      • 10.5.9 副本端的状态转移 187
      • 10.5.10 状态机异常处理 188
      • 10.6 本章小结 188
      • 第11章 Ceph数据修复 189
      • 11.1 资源预约 190
      • 11.2 数据修复状态转换图 191
      • 11.3 Recovery过程 193
      • 11.3.1 触发修复 193
      • 11.3.2 ReplicatedPG 195
      • 11.3.3 pgbackend 199
      • 11.4 Backfill过程 205
      • 11.4.1 相关数据结构 205
      • 11.4.2 Backfill的具体实现 205
      • 11.5 本章小结 210
      • 第12章 Ceph一致性检查 211
      • 12.1 端到端的数据校验 211
      • 12.2 Scrub概念介绍 213
      • 12.3 Scrub的调度 213
      • 12.3.1 相关数据结构 214
      • 12.3.2 Scrub的调度实现 214
      • 12.4 Scrub的执行 217
      • 12.4.1 相关数据结构 217
      • 12.4.2 Scrub的控制流程 219
      • 12.4.3 构建ScrubMap 221
      • 12.4.4 从副本处理 224
      • 12.4.5 副本对比 225
      • 12.4.6 结束Scrub过程 228
      • 12.5 本章小结 228
      • 第13章 Ceph自动分层存储 230
      • 13.1 自动分层存储技术 230
      • 13.2 Ceph分层存储架构和原理 231
      • 13.3 Cache Tier的模式 231
      • 13.4 Cache Tier的源码分析 234
      • 13.4.1 pool中的Cache Tier数据结构 234
      • 13.4.2 HitSet 236
      • 13.4.3 Cache Tier的初始化 237
      • 13.4.4 读写路径上的Cache Tier处理 238
      • 13.4.5 cache的flush和evict操作 245
      • 13.5 本章小结 250

      学习笔记

      jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)

      Selectator是一款实现多选和搜索过滤功能的jQuery下拉列表框插件。它支持搜索,并且能直接影响原始的选择框,而原始的选择框是用作数据容器。通过该下拉列表框插件可以多选项进行分组,设置选项的图标,对选项进行搜索过滤,以及进行多选选择。 效果展示 源码下载 使用方法 使用该下拉类别框插件需要在页面中引入fm.selectator.jquery.css、jQuery和fm.selectator.jquery.js文件。 link rel="stylesheet" href="fm.selectator.jquery.css"/script src="jquery-1.11.0.min.js"/scriptscript src="fm.selectator.jquery.js"/script HTML结构 一个选项带图标级带分组选项的下拉列表的HTML结构如下: label for="select"Multi select with custom content:/labelselect id="select" name……

      jquery拖拽效果完整实例(附demo源码下载)

      本文实例讲述了jquery实现的拖拽效果。分享给大家供大家参考,具体如下: 运行效果截图如下: 点击此处查看在线演示效果。 具体代码如下: html部分: !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"htmlheadscript type="text/javascript" src="jquery-1.4.2.min.js"/scriptscript type="text/javascript" src="tuo.js"/scriptscript type="text/javascript" $(function(){ $("#box").tuoz(); })/scriptstyle type="text/css" *{ margin:0px; padding:0px; } #box{ height:100px; width:100px; background:#666666; } #box img{ height:50px; width:50px; background:#666666; } #big{ height:400px; width:300px; background:purple; }/style/headbody div id="box"img src="http://www.baidu.com/img/baidu_sylogo1.gif"/img/div d……

      SUSE Linux源代码安装MySQL 5.6步骤详解

      MySQL为开源数据库,因此可以基于源码实现安装。基于源码安装有更多的灵活性。也就是说我们可以针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码,根据不同的软件平台环境调整相关的编译参数,选择自身需要选择不同的安装组件,设定需要的字符集等等一些可以根据特定应用场景所作的各种调整。本文描述了如何在源码方式下安装MySQL。 1、安装环境及介质 #安装环境 SZDB:~ # cat /etc/issue Welcome to SUSE Linux Enterprise Server 10 SP3 (x86_64) - Kernel \r (\l). SZDB:~ # uname -a Linux SZDB 2.6.16.60-0.54.5-smp #1 SMP Fri Sep 4 01:28:03 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux #安装介质,可以到以下网址下载安装介质,注意下载时……

      jQuery实现贪吃蛇小游戏(附源码下载)

      前言 相信贪吃蛇的游戏大家都玩过。在那个水果机还没有流行,人手一部诺基亚的时代,贪吃蛇是手机中的必备游戏。笔者闲的无聊的时候就拿出手机来玩上几局,挑战一下自己的记录。 后来上大学了,用c语言做过贪吃蛇的游戏,不过主要是通过函数来控制(PS:现在让我看代码都看不懂(⊙﹏⊙))。现在学习前端框架之后,通过jQuery来实现一个贪吃蛇的游戏效果,虽然游戏界面比(bu)较(ren)简(zhi)陋(shi),但是主要学习一下游戏中面向对象和由局部到整体的思想。 设计思想 在开始写代码前首先让我们来构思一下整体游戏的实现过程: 需要的对象 首先既然是贪吃蛇,那么游戏中肯定要涉及……

      以上就是本次介绍的Ceph电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:Git学习指南

      下一篇:大型网站服务器容量规划

      展开 +

      收起 -

      • 《Ceph源码分析》PDF下载

      Ceph相关电子书
      Spring源码深度解析
      Spring源码深度解析 扫描版

      帮助读者快速熟悉Spring源码,以便于对Spring源码进行扩展或修改,从而满足业务需求。 所有知识点均已HELLOworld级别示例为切入点,描述简单之后的复杂。 对于复杂逻辑的讲解采用剥洋葱似的

      立即下载
      Android源码设计模式解析与实战
      Android源码设计模式解析与实战 影印第2版

      本书介绍了Android源代码的设计模式,主要讲解面向对象的六大原则、主流的设计模式以及MVC和MVP模式,通过实战帮助读者达到学以致用的目的,且能够将模式运用于项目中

      立即下载
      零基础入门学习Python(含视频、源码)
      零基础入门学习Python(含视频、源码) 扫描第2版

      本书是一本Python 3.7编程轻松入门教程,前半部分首先讲解基础的Python 3语法知识,后半部分则围绕着Python 3在爬虫、界面开发和游戏开发上的应用,循序渐进,欢迎下载

      立即下载
      Spark MLlib机器学习:算法、源码及实战详解
      Spark MLlib机器学习:算法、源码及实战详解 高清扫描版

      《Spark MLlib机器学习:算法、源码及实战详解》以Spark 1.4.1版本源码为切入点,全面并且深入地解析Spark MLlib模块,着力于探索分布式机器学习的底层实现。 《Spark MLlib机器学习:算法、源码及

      立即下载
      Unix内核源码剖析
      Unix内核源码剖析 全格式原版

      选读1万行编码,深层次了解操作系统原理! 高性能计算机京的L1缓存文件设计师青柳隆宏经典书籍! 完全了解Unix源码! 需不需要阅读文章核心源码 对计算机软件的全景图有更深层次的掌握

      立即下载
      Python生物信息学数据管理(含源码)
      Python生物信息学数据管理(含源码) 扫描完整版

      生物科学学校的Python课程内容教材内容,合适大学本科课堂教学或制造行业人员的Python短期培训班。这书案例借以处理分子生物学难题,根据程序编写手法的方式,包含尽量多的机构、剖析、

      立即下载
      云原生服务网格Istio:原理、实践、架构与源码解析
      云原生服务网格Istio:原理、实践、架构与源码解析 完整版

      这书分成原理篇、实践篇、构架篇和源代码篇,循序渐进地将Istio新项目庖丁解牛并展现给用户。原理篇详细介绍了服务项目网格技术与Istio新项目的技术性背景图、设计构思与作用基本原理,

      立即下载
      读者留言
      wang_qingqing

      wang_qingqing 提供上传

      资源
      46
      粉丝
      9
      喜欢
      288
      评论
      17

      Copyright 2018-2020 xz577.com 码农之家

      本站所有电子书资源不再提供下载地址,只分享来路

      版权投诉 / 书籍推广 / 赞助:QQ:520161757