新書推薦:
《
万千教育学前·与幼儿一起解决问题:捕捉幼儿园一日生活中的教育契机
》
售價:NT$
214.0
《
爱你,是我做过最好的事
》
售價:NT$
254.0
《
史铁生:听风八百遍,才知是人间(2)
》
售價:NT$
254.0
《
量子网络的构建与应用
》
售價:NT$
500.0
《
拍电影的热知识:126部影片里的创作技巧(全彩插图版)
》
售價:NT$
500.0
《
大唐名城:长安风华冠天下
》
售價:NT$
398.0
《
情绪传染(当代西方社会心理学名著译丛)
》
售價:NT$
403.0
《
中国年画 1950-1990 THE NEW CHINA: NEW YEAR PICTURE 英文版
》
售價:NT$
1100.0
|
編輯推薦: |
Ceph分布式存储系统基本原理及典型案例,深入浅出,具有较好的可读性,使读者更易理解系统的基本运行原理。
|
內容簡介: |
本书从Ceph分布式存储系统的基本原理角度出发,结合软件的架构设计与关键功能的程序代码对Ceph系统进行系统分析,采用自顶向下的方法,从用户的角度切入系统,分层逐个解析。全书分为8章:Ceph概述、RGW对象存储、RBD块存储、LibRADOS接口、Monitor节点、OSD节点、本地后端存储BlueStore和RADOS故障恢复。本书在解析过程中注重描述相关数据结构等因素的关联关系,并结合程序功能对关键代码进行分析,具有较好的可读性,使读者更易理解系统的基本运行原理。
本书一方面有助于读者从原理上认识Ceph系统,另一方面有助于读者了解分布式技术的实际应用方式和实现细节。本书可供相关科研院所工程技术人员和管理人员参考,也可作为相关专业的研究生教材或参考书。
|
關於作者: |
石春刚等,“航盾”产品初创团队成员,计算机软件专业硕士研究生毕业,长期从事软件研发、产品设计工作,主持设计多款软件产品并得到广泛应用,获得国防科技进步一等奖。
|
目錄:
|
第1章Ceph概述1
1.1Ceph简介1
1.2Ceph架构3
1.2.1Ceph架构简介3
1.2.2Ceph中的数据流向5
1.3本书章节介绍6
第2章RGW对象存储8
2.1RGW简介8
2.2RGW的组成结构9
2.3RGW用户信息11
2.4Bucket与对象索引信息13
2.5RGW对象与RADOS对象的关系14
2.6上传对象的处理流程16
2.7RGW的并发与WatchNotify机制29
2.8RGW版本管理机制与CLS机制33
本章小结38
第3章RBD块存储39
3.1RBD简介39
3.1.1RBD方式40
3.1.2NBD方式42
3.2用户态librbd方式及librbd的结构组成45
3.2.1用户态librbd方式45
3.2.2librbd的结构组成46
3.3存储镜像的数据组成49
3.4RBD写操作的处理流程51
3.5RBD快照63
3.6克隆块设备及对读写性能的影响64
3.7RBD QoS65
3.8RBD journal与RBDMirror67
本章小结75
第4章LibRADOS接口76
4.1简介76
4.2LibRADOS对外提供的功能接口76
4.3LibRADOS的结构组成77
4.4存储池Pool与归置组PG79
4.5CRUSHMAP与CRUSH算法80
4.5.1CRUSHMAP80
4.5.2CRUSH算法82
4.5.3定制CRUSH84
4.6对象写请求示例86
4.7WatchNotify接口实现94
本章小结97
第5章Monitor节点98
5.1Monitor节点的结构组成99
5.2Monitor节点与Paxos算法100
5.2.1Paxos算法流程100
5.2.2Paxos算法在Ceph Monitor节点中的应用102
5.2.3Monitor节点Leader选举实现104
5.2.4选举后的Monitor集群内的数据通信113
5.3Monitor节点的认证功能115
5.3.1票据115
5.3.2三种密钥116
5.3.3票据与密钥应用的过程118
5.4Monitor节点对OSD状态的检测119
5.5OSDMAP的更新与传播122
本章小结124
第6章OSD节点125
6.1OSD中的对象125
6.2PG在OSD内的实现128
6.3OSD操作请求的处理过程131
本章小结152
第7章本地后端存储BlueStore153
7.1BlueStore的对外功能153
7.1.1BlueStore的对外接口153
7.1.2BlueStore事务的组成154
7.2BlueStore的内部实现156
7.2.1对象在BlueStore中的描述157
7.2.2BlueStore使用磁盘的方式158
7.2.3BlueStore对磁盘空间的管理162
7.2.4BlueStore使用RocksDB实现元数据的管理164
7.2.5专门支撑RocksDB的日志型文件系统BlueFS165
7.3事务在BlueStore中的实现171
7.3.1事务处理的基本流程171
7.3.2写操作事务处理实例174
本章小结178
第8章RADOS故障恢复180
8.1Peering同组互联机制180
8.1.1Peering的启动时机180
8.1.2PG PastIntervals与Peering初步处理182
8.1.3Peering的执行过程183
8.2数据恢复总述198
8.2.1recovery增量数据恢复201
8.2.2backfill全量数据恢复208
本章小结211
|
內容試閱:
|
随着技术的不断发展,软件定义(Software Defined)逐渐成为信息技术领域的发展趋势。软件定义主要指的是将传统的硬件功能和控制逻辑抽象化、虚拟化,并通过软件来实现。软件定义正在日益普遍地改变各个行业的方式和方法,带来更高的灵活性、可定制性和可管理性。
在网络领域,软件定义网络(Software Defined Networking,SDN)已经成为一种重要的网络架构和管理方式。SDN将网络控制平面与数据转发平面分离,通过集中式的控制器来统一管理和配置网络。这样可以提高网络的灵活性、可编程性和可管理性,满足不断增长的网络需求。
在存储领域,软件定义存储(Software Defined Storage,SDS)正在广泛应用。SDS利用标准的服务器硬件和软件,通过虚拟化技术将存储资源整合起来,提供可扩展、灵活和高性能的存储解决方案。SDS具有较低的成本、易于管理和高度可定制的特点,因此在云计算、大数据和虚拟化等场景中得到了广泛应用。Ceph便是该领域的典型应用之一。
Ceph也是分布式系统的典型案例。分布式系统是指由多个独立计算机或服务器组成的系统,这些计算机通过网络互相通信和协作,以高并发的方式共同完成任务。为了确保分布式系统的可用性,在传统的单机事务模型ACID(Atomicity Consistency Isolation Durability,原子性、一致性、隔离性、持久性)的基础上,业界提出了CAP(Consistency Availability Partition Tolerance,一致性、可用性、分区容错性)定理。CAP定理指出,一个分布式系统无法同时满足一致性、可用性和分区容错性,最多能满足其中的两个特性。CAP理论给出了分布式系统的约束,但没有给出一个明确的解决方案。为此,业界又提出了BASE(Basically Available, Soft State, Eventually Consistent,基本可用、软状态、最终一致性)理论。BASE理论指出分布式系统即使无法做到强一致性,但是可以根据自身业务的特性,采用合适的方式、合理的设计达到最终一致性。通过这些针对性的设计,使分布式系统具有故障独立性(当系统发生部分节点故障时,不会影响系统的整体功能)等特性,进一步保证了分布式系统的高可靠性、高性能和可扩展性。
分布式系统的应用涵盖了多个方面。在分布式计算领域,通过将计算任务分解为多个子任务,在多台计算机上并行执行,并将结果进行合并,可以提高计算效率和处理能力。分布式计算广泛应用于大规模数据处理、机器学习、科学计算等场景。在分布式数据库领域,分布式数据库将数据分散存储在多个节点上,并提供分布式查询和事务处理能力。分布式数据库系统可以处理大规模数据,并提供高性能和数据一致性。
在分布式存储领域,分布式存储将数据分散存储在多个节点上,通过软硬件协同,依托高效网络连接多个节点,实现存储功能;采用可扩展的系统结构,以提高存储的可用性、可靠性和可扩展性。Ceph使用分布式技术,在保证可靠性的基础上,较传统集中式存储大大提高了其线性扩展能力。
Ceph是一个开源的、软件定义的、分布式存储系统,并逐渐在多个行业中成熟和普及。Ceph设计的目标是提供可扩展性、高可用性和高性能的分布式存储解决方案。Ceph由多个组件组成,包括Monitor节点、OSD(Object Storage Device,对象存储设备)节点和MDS(Meta Data Server,元数据服务器)节点,以及RGW(RADOS Gateway)对象存储、RBD(RADOS Block Device)块存储和CephFS文件系统等,这些组件一起工作,构成一个统一的分布式存储基础设施。Ceph运行在标准的服务器硬件上,并使用软件定义技术实现其设计目标。
基于Ceph的广泛应用,以及其软件定义和分布式技术特性,本书对其基本原理进行深入浅出的分析。一方面可帮助读者从原理上了解和认识Ceph系统;另一方面将其作为软件定义和分布式技术的典型案例,读者可通过本书了解这些技术的应用方式和实现细节。 Ceph主要使用C 语言实现,系统组件多,程序代码量大,程序实现中涉及了线程、队列、加密通信等多种底层技术,本书将这些技术放在Ceph程序案例中进行介绍,也有助于读者通过本书学习了解使用C 语言设计复杂的软件系统。
由于作者水平有限,书中不足之处在所难免,恳请读者批评指正。
|
|