分布式存储Ceph架构原理.docx
《分布式存储Ceph架构原理.docx》由会员分享,可在线阅读,更多相关《分布式存储Ceph架构原理.docx(11页珍藏版)》请在第一文库网上搜索。
1、分布式存储Ceph技术架构原理【摘要】本文带你层层深入CePh的架构原理、读写原理,从而理解CePh的特性及其应用场景。1 .什么是Ceph?首先,我们从CePh的官方网站上,可以看到:Cephisaunified,distributedstoragesystemdesignedforexce11entperformance,re1iabi1ityandsca1abi1ity.,从它的定义上我们可以明确它是一种存储系统,而且可以明确它所具备的两点特性:(1)统一性(unified):意味着可以同时提供对象存储、块存储和文件系统存储三种接口功能。(2)分布式(distributed):意味着其内
2、部节点架构是以分布式集群算法为依托的。接下来,我们从其架构原理以及读写原理上来分析其如何支撑定义当中所提到的各个特性。2 .CePh的架构原理2.1 CePh存储功能架构从功能角度来讲,Ceph本身的架构比较清晰明了,主要分应用接口层、存储基础接口层以及存储对象层,接口层主要对客户端的访问负责,分为本地语言绑定接口(CC+,Java,Python),RESTfu1(S3Swift),块存储设备接口、文件系统接口。从这个点上,其完整诠释了“统一性(unified)”的特性。具体如图2.1所示:图2.1CePh存储系统功能图(1)基础存储系统(RADoS)RADOS是理解Ceph的基础与核心。物理
3、上,RADoS由大量的存储设备节点组层,每个节点拥有自己的硬件资源(CPU、内存、硬盘、网络),并运行着操作系统和文件系统。逻辑上,RADOS是一个完整的分布式对象存储系统,数据的组织和存储以及Ceph本身的高可靠、高可扩展、高性能等使命都是依托于这个对象。(2)基础库(1ibrados)1ibrados是基于rados对象在功能层和开发层进行的抽象和封装。从使用功能上,其向上提供使用接口AP1(RADoSGW、RBD.FS)。从开发上功能上,其向上直接提供本地开发语言的API,主要包括C、C+、JAVA、Python等。这样应用上的特殊需求变更就不会涉及到CePh存储本身,保障其安全性并且解
4、除了存储系统和上层应用的耦合性。(3)存储应用接口(RADOSGW、RBD、CephFS)存储应用接口层包括了三个部分:RADOSGatewayRe1iab1eB1ockDevice、CephFS,其作用是在IibradoS库的基础上提供抽象层次更高、更便于应用或客户端直接使用的上层接口。其中,RADOSGW是一个提供S3RESTfu1AP1的网关,以供相应的对象存储应用使用;RBD则提供了一个标准的块设备接口;CePhFS是一个POSIX兼容的分布式文件系统。读到此处,可能很多人都会有一个疑问:“既然1ibradoSAP1能提供对象存储应用可以使用的接口,为什么还要搞一个RadoSGWAPI
5、?其实这个是基于不同使用者维度来考虑的,就像应用系统的使用者和开发者两个不同维度。使用者仅仅需要知道这个应用系统提供了什么功能,到什么界面去完成使用就可以了。但是开发者可能需要从后台代码当中去解决一系列基于性能、并发量、易用易维护性等维度出现的问题。同样,对于RadoSGWAP1来讲,它仅仅提供了一些通用、固定、易用的少数使用维度的接口,而1ibradoSAP1则是一个丰富的具备各种使用、开发等维度的接口库。2. 2CePh物理组件架构RADOS是Ceph的核心,我们谈及的物理组件架构也是只RADOS的物理架构。如图2.2所示,RADOS集群是由若干服务器组成,每一个服务器上都相应会运行RAD
6、oS的核心守护进程(OSD、MON.MDS)O具体守护进程的数量需要根据集群的规模和既定的规则来配置。图2.2RADOS物理组件架构结合图2.2,我们首先来看每一个集群节点上面的守护进程的主要作用:OSDDaemon:两方面主要作用,一方面负责数据的处理操作,另外一方面负责监控本身以及其他OSD进程的健康状态并汇报给MONoOSD守护进程在每一个PG(P1acementGroup)当中,会有主次(PrinIary、Rep1ication)之分,Prin1ary主要负责数据的读写交互,ReP1iCatiOrI主要负责数据副本的复制。其故障处理机制主要靠集群的Crush算法来维持Primary和R
7、ep1ication之间的转化和工作接替。所有提供磁盘的节点上都要安装OSD守护进程。MONDaemon:三方面主要作用,首先是监控集群的全局状态(OSDDaemonMap.MONMap、PGMap、CrushMap),这里面包括了OSD和MON组成的集群配置信息,也包括了数据的映射关系。其次是管理集群内部状态,当OSD守护进程故障之后的系列恢复工作,包括数据的复制恢复。最后是与客户端的查询及授权工作,返回客户端查询的元数据信息以及授权信息。安装节点数目为2N+1,至少三个来保障集群算法的正常运行。MDSDaemon:它是CePhFS的元数据管理进程,主要是负责文件系统的元数据管理,它不需要运
8、行在太多的服务器节点上。安装节点模式保持主备保护即可。2.3CePh数据对象组成CePh的数据对象组成这部分主要是想阐述从客户端发出的一个文件请求,到RadoS存储系统写入的过程当中会涉及到哪些逻辑对象,他们的关系又是如何的?首先,我们先来列出这些对象:(1)文件(F11E):用户需要存储或者访问的文件。对于一个基于CePh开发的对象存储应用而言,这个文件也就对应于应用中的“对象”,也就是用户直接操作的“对象”O(2)对象(Object):RADOS所看到的“对象”。Objeet指的是最大SiZe由RADoS限定(通常为2/4MB)之后RADoS直接进行管理的对象。因此,当上层应用向RADOS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 存储 Ceph 架构 原理