发表于2024-11-29
Ceph创始人Sage Weil高度评价并亲自作序,张万春、陆平、郑纬民、何宝宏等8位领导和技术专家联袂推荐
中兴通讯Clove团队核心成员撰写,Clove团队在Ceph项目的Commit数量,中国第*,世界第二,仅次于创始团队RedHat
从设计者和使用者角度系统剖析了Ceph的整体架构、核心设计理念、组件的功能与实现原理
本书是中兴Clove团队多年研究和实践经验的总结,Ceph创始人Sage Weil的高度评价并亲自作序。
Clove团队是Ceph项目的核心贡献者,从贡献的Commit数上看,连续多个版本贡献在中国排名第*,世界排名第二,对Ceph有非常深入的研究,在中兴通讯内部进行了大量的生产实践。
本书同时从设计者和使用者的角度系统剖析了Ceph 的整体架构、核心设计理念,以及各个组件的功能与原理;同时,结合大量在生产环境中积累的真实案例,展示了大量实战技巧。每一章都从基本原理切入,采用循序渐进的方式自然过渡至Ceph,并结合 Ceph 的核心设计理念指出需要进行哪些必要的改进和裁剪,使得读者不但能够知其然,而且能够知其所以然,真正做到了“源于 Ceph ,高于 Ceph”。此外,写作时尽量避免涉及到过多、非必要的专业术语,做到深入浅出并且每章相对独立,以最大程度的减少阅读障碍。
本书核心内容:
l Ceph 核心算法 CRUSH 设计算法分析及拓展
l Ceph 新型高性能存储引擎BlueStore特性及关键流程分析
l Ceph 高级特性EC Overwrites
l Ceph PG 状态机及数据修复、平衡机制
l Ceph RBD、RGW、Ceph-FS三大主要组件的实现与拓展
l Ceph 生产环境实战技巧
谢型果
中兴通讯资深软件工程师,5年存储开发经验,精通本地文件系统ZFS和分布式存储系统Ceph。2014 年开始研究 Ceph,2015 年加入 Ceph 开源社区,目前是 Ceph 开源社区的 Ceph Member。
任焕文
中兴通讯高级软件工程师,有10余年研发经验,曾就职于浪潮和华为,擅长数据库、网络和存储相关技术。Ceph Member成员,现主要负责Ceph文件系统、NAS存储和分布式一致性方面的研发工作。
严 军
中兴通讯高级软件工程师,从事存储系统开发工作多年,熟悉DPDK开发框架;2015年加入Ceph开源项目,对分布式存储系统QoS有深入研究,目前是Ceph开源社区的积极贡献者。
罗润兵
华中科技大学微电子专业研究生,中兴通讯高级软件工程师,精通TCP/IP协议栈和分布式存储系统,2014年开始接触并参与Ceph开源项目,目前是Ceph开源社区的积极贡献者。
韦巧苗
中兴通讯高级软件工程师,擅长C/C++编程,有5年存储系统研发经验,对Ceph RGW模块有深入研究,同时在Cache技术及性能优化上也有丰富的经验。
骆科学
中兴通讯高级软件工程师,有5年存储产品相关开发经验,擅长虚拟化及存储相关技术,2016年于Ceph中国社区年终盛典中被评为“2016年度社区*佳贡献者”
Ceph以其优异的可扩展性、可靠性、高性能、灵活性、安全性等特征,成为*活跃的开源存储明星项目,是OpenStack 的默认存储后端。大家可以方便地获得Ceph的源代码,但要透彻地理解它、用好它并不容易。本书系统、详实地介绍了Ceph的设计与实现,有理论,有实践,相信能对广大Ceph爱好者,包括开发者和运维人员都有很大的帮助!
郑纬民 清华大学计算机系教授、博士生导师
我非常欣喜地看到,中兴的Clove团队的六位开发者,包括多位Core Member和Contributer,愿意将自己在Ceph社区的工作和积累,以及对Ceph的理解和应用花费大量的时间整理成书,为产业界不同领域的从业者提供参考。相信会是一本好书。
何宝宏 中国信息通信研究院技术与标准研究所副所长、互联网研究领域主席
伴随着全球数字化革命大潮而来的是新技术的不断涌现和商业模式的推陈出新。本书对开源社区的明星项目Ceph进行了完美演绎,有助于读者全面了解开源分布式云存储领域的设计原理和应用。
孙振鹏 *佳国际实践联盟主席、EXIN国际信息科学考试学会亚太区总经理
作者所在团队是国内*早从事 Ceph系统研发的机构之一,为Ceph系统的开发、完善和推广做出重要贡献。作者依托自身的理论基础和实践经验,介绍了Ceph系统的工作原理、核心技术和实操技巧,对于云存储和数据中心里那些力图对数据资源进行高效可靠存储的从业人员来说,本书是一本很好的指导手册!
张广艳 清华大学计算机科学与技术系副教授、博士生导师、计算机学会信息存储专委会委员
2015年开始与几位作者开启了一段美妙的 Ceph 旅程,期间我们有互为知己般的信任和支持,过程中更有意思的是不断战胜困难和挑战所赢得的快乐和满足。作为中兴通讯开源先锋的这支Ceph团队极具战斗力,他们一直用行动在诠释他们倡导的“保持奔跑、拥抱开源、拒绝平庸”理念。这本著作倾注了这支王*团队的巨大心血并且有丰富实践基础,非常精彩,值得一读。
谭芳 中兴通讯长沙研究所在软件定义存储的时代,Ceph对存储的影响如同Linux对操作系统的影响。Ceph的发展壮大,离不开各种业务场景的需求拉动,也离不开繁荣活跃的社区推动。本书的6位创作者,他们既是中兴通讯的一支优秀研发团队,也是Ceph社区中的一支优秀的团队。他们深入专研,拨开迷雾,将自己对Ceph设计原理与实现的*新理解与实践,深入系统地分享出来。
闫林 中兴通讯IT技术学院副院长
推荐序一
推荐序二
前 言
第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
Foreword推 荐 序 一
张万春 中兴通讯股份有限公司副总裁
阅读了谢型果、任焕文、严军、罗润兵、韦巧苗、骆科学6位同事创作的《Ceph设计原理与实现》,感到非常高兴,并由衷祝贺创作团队的杰出贡献!就这本书,我想谈三点看法:
一、中兴通讯重视技术的发展
云计算、大数据、人工智能三位一体,它们重新定义了IT,重新定义了资产,重新定义了工具和效率,这些技术力量越来越快地驱动和改变了整个产业,成为支撑行业变革、选择技术伙伴、拓展创新业务和提供高效服务的技术平台。中兴通讯作为全球通信领域的重要厂商,非常重视技术的发展。在云计算领域,多年来致力于利用先进技术,研发更高速度、更大容量、更高安全、更具弹性、更低成本的云计算基础设施。其中Ceph就是开源分布式云储存领域中最具活力、最先进的基础技术社区之一,本书记录了我们在这个领域最新的探索实践。
二、中兴通讯重视社区的力量
中兴通讯非常认同和重视社区的力量,致力于建立开放合作的生态环境。我们参加了全球多个开源的社区项目,成为其中最关键的伙伴,包括我们和Openstack、Ceph社区的合作。中兴通讯在Ceph领域技术能力的发展,离不开与社区的合作。中兴通讯的Ceph团队是一个优秀的自组织、自管理、自激励的开放合作的敏捷组织,他们内通外联与社区合作,共同推动Ceph技术的发展演进。
三、中兴通讯乐于分享最佳实践
中兴通讯作为最负社会责任的高科技企业,非常愿意将我们的知识、经验和服务分享到社区、回馈到社会。本书的6位作者身处Ceph技术研发的最前沿,他们精心创作的《Ceph设计原理与实现》有着三个鲜明的特点:一是最系统,二是最前沿,三是最有深度。我们很乐意将这本优秀的著作分享给大家!
最后再次感谢创作团队的重大贡献,并欢迎各位读者开启精彩的《Ceph设计原理与实现》阅读之旅!
Foreword推 荐 序 二
陆平 中兴通讯股份有限公司副总裁
近几年,随着IT信息技术的飞速发展,云计算、虚拟化及池化技术得到了广泛的应用。作为云计算最受追捧的开源项目,OpenStack让越来越多的人感受到了虚拟化的魅力,并在金融、政务、电力和制造业广泛被使用。在最新的OpenStack 2017用户调研中,Ceph RBD以绝对优势(65%)的环境占有率,证明了大家对 Ceph 充满信心,而作为OpenStack默认存储后端的Ceph,也不负众望,近两年发展得如火如荼,不仅吸引了越来越多的大厂商加入到Ceph生态圈,而且越来越多的行业也采用了Ceph作为其优选的存储解决方案。在大数据盛行的时代,数据量井喷式增长,动辄上PB、EB甚至是ZB的存储需求比比皆是,而且对性能、可靠性的要求也越来越高,Ceph以其优异的性能、可靠性及灵活的扩展性能受到各行各业的青睐,想想也是理所应当的事情。
Ceph作为一个十多年前就已经诞生的开源项目,能够发展到今天,它的生命力是由每一个社区贡献者释放和延续的,我们很欣喜地发现,这种由参与的力量所带来的生命力,随着Ceph开源社区的不断发展及贡献者的日益增多,而变得越来越旺盛。让我们更兴奋的是在广大贡献者的不断努力下,Ceph依然在飞速发展,中兴通讯作为Ceph开源社区中持续活跃的贡献者,无疑给Ceph开源社区注入了更多的激情和活力。
本书是中兴通讯在Ceph开源社区中长期积累的创作成果,不仅从设计原理及思想上对Ceph进行了剖析,而且结合实践深入浅出地将Ceph的独特魅力展现给大家,对于想进阶参与Ceph开源社区的人来说,绝对是一本不可多得的好书。
Ceph是“存储的未来”,相信在大家的共同努力下,这个“未来”不会远了。
前 言 Preface
诞生于 2006 年的 Ceph,是开源社区的明星项目,也是私有云事实上的标准——OpenStack 的默认存储后端。作为当前最火爆的分布式存储系统,Ceph 拥有诸多引人注目的特性。
首先,Ceph 是一种软件定义存储,可以运行在几乎所有主流的Linux 发行版(典型如 CentOS 和 Ubuntu)和其他类 UNIX 操作系统(典型如 FreeBSD)上。2016 年,社区进一步将 Ceph 从 x86 架构移植到 ARM 架构中,令Ceph 应用场景进一步扩展至移动、低功耗等前沿领域,使得 Ceph 未来充满无限可能。
其次,Ceph 的分布式基因使其可以轻易管理成百上千个节点、 PB 级及以上存储容量的大规模集群,同时基于计算的扁平寻址设计使得 Ceph 客户端可以直接和服务端的任意节点通信,从而避免因为存在访问热点而导致性能瓶颈。实际上,在没有网络传输限制的前提下,Ceph 可以呈现我们所梦寐以求的、性能与集群规模成线性扩展的优秀特性。
最后,Ceph 是一个统一存储系统,既支持传统的块、文件存储协议,例如 SAN 和 NAS;也支持新兴的对象存储协议,例如 S3 和 Swift,这使得 Ceph 理论上可以满足时下一切主流的存储应用需求。此外,良好的架构设计使得 Ceph可以轻易拓展至需要存储的任何领域。
上述这一切使得理论上只要存在存储需求,Ceph 就能找到用武之地。因此,诚如Ceph社区所言:Ceph是存储的未来!
为什么写这本书
在 Ceph 的设计理念中,高可扩展性、高可靠性和高性能都是其核心考虑要素。此外,为了能够最大程度地拓展 Ceph的“触角”(Ceph 本意就是章鱼),Ceph 当中所有组件都被设计成松耦合和高度可定制的。基于上述考虑,Ceph 采用面向对象的语言——C++ 进行开发,并且在具体实现上大量采用了 STL 和Boost 库中的高级特性。一方面,C++ 被公认为最复杂的编程语言之一;另一方面,经过 10 年的发展,Ceph 已经成为一个代码行数超过百万的庞然大物,各种组件多如牛毛,组件之间关系错综复杂。更加令人望而生畏的是:随着 Ceph 应用场景日益广泛,大量新需求新特性持续涌入,Ceph 正加速向前发展!社区代码每天都在发生翻天覆地的变化——一方面很多模块从无到有,另一方面很多模块从有到无,即便是一些仍然存在的模块,短短几个开发周期之后就会变得面目全非。上述这一切都成为大量渴望接触 Ceph、玩转 Ceph 和深度参与 Ceph的开发人士的梦魇,足以令他们手足无措,对 Ceph望而却步。
此外,虽然 Ceph诞生至今已经超过 10 年的时间,但是在国内兴起却是近几年的事情(感谢 OpenStack),因此相关书籍异常匮乏。市面上仅有的几本,或者单纯从实践角度针对如何使用 Ceph 进行介绍,因为缺乏理论作为指导,加之 Ceph 的命令集一直处于进化之中并且越来越庞大,普通读者可能无法留下深刻印象;或者单纯从源码角度对 Ceph 进行分解和剖析,一方面 Ceph设计原理与实现 下载 mobi epub pdf txt 电子书 格式
Ceph设计原理与实现 下载 mobi pdf epub txt 电子书 格式 2024
Ceph设计原理与实现 下载 mobi epub pdf 电子书比较有深度的一本书,需要有一定的CEPH基础
评分送货速度很快,上午买的下午就到了,书有塑封,是正版,印刷质量很好,赞~
评分能静心看理论,是最佳学习方式
评分送货速度很快,上午买的下午就到了,书有塑封,是正版,印刷质量很好,赞~
评分还行吧,学习中
评分书不错,正在看,挺有用。
评分书刚到,马上啃了起来,收获真不少,啥都不说了?,绝对恶补的好书,值得拥有
评分从零开始学Storm(第2版)
评分非常好的书籍,技术深度和广度覆盖很全。正好工作需要。
Ceph设计原理与实现 mobi epub pdf txt 电子书 格式下载 2024