Ceph分布式存储架构深度分析_第1页
Ceph分布式存储架构深度分析_第2页
Ceph分布式存储架构深度分析_第3页
Ceph分布式存储架构深度分析_第4页
Ceph分布式存储架构深度分析_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 Ceph分布式存储架构深度分析本文主要讨论Ceph架构,同时对Ceph生态、特性和企业级存储进行对比分析。Ceph使用C+语言开发,遵循LGPL协议开源。Sage Weil(Ceph论文发表者)于2011年创立了以Inktank公司主导Ceph的开发和社区维护。2014年Redhat收购inktank公司,并发布Inktank Ceph企业版(ICE)软件,业务场景聚焦云、备份和归档,支持对象和块存储应用。从此出现Ceph开源社区版本和Redhat企业版。Cehp的基础服务架构 Cehp的基础服务架构主要包括了Object Storage Device(OSD),Monitor和MDS。基于

2、此,Ceph提供了Librados原生对象基础库、Librbd块存储库、Librgw基于S3和Swift兼容的对象库和Libceph文件系统库。 OSD(Object Storage Device)负责存储数据,处理数据复制、数据恢复、数据再均衡以及通过心跳机制监测其它OSD状况并报告给Ceph Monitors。 Monitor负责监控集群状态,包括监控自身状态、集群OSD状态、Placement Group(存储组织和位置映射)状态、CRUSH状态(Controlled Replication Under Scalable Hashing,一种伪随机数据分布算法)。同时,Monitor还会

3、记录它们的每一个历史状态改变版本信息,以确定集群该遵循哪个版本。 MDS负责文件系统的元数据存储和管理,也就是如前所说,块存储和对象存储服务是不需要这个模块的。MDS负责提供标准的POSIX文件访问接口。 搭建一台Ceph系统至少需要1个Ceph Monitor和2个Ceph OSD逻辑角色,而Ceph Metadata server仅仅是运行CephFS时存储文件元数据。但在物理部署上,这些逻辑角色可以运行在同一台物理机上的。Ceph存储数据默认是2副本拷贝,所以不管是提供Object、Block还是Filesystem服务,最小的Ceph系统需要2台OSD存储服务器。Ceph的软件体系架构

4、1、基础存储系统RADOS RADOS(Reliable, Autonomic、Distributed Object Store),这一层本身就是一个完整的对象存储系统,包括Cehp的基础服务(MDS,OSD,Monitor),所有存储在Ceph系统中的用户数据事实上最终都是由这一层来存储的。而Ceph的高可靠、高可扩展、高性能、高自动化等等特性本质上也是由这一层所提供的。因此,理解RADOS是理解Ceph的基础与关键。 RADOS在物理形态上由大量的存储设备节点组成,每个节点拥有自己的硬件资源(CPU、内存、硬盘、网络),并运行着操作系统和文件系统。2、基础库librados 这一层的功能是

5、对RADOS进行抽象和封装,并向上层提供不同API,以便直接基于RADOS进行原生对象或上层对象、块和文件应用开发。特别要注意的是,RADOS是一个对象存储系统,因此,基于librados实现的API也只是针对对象存储功能的。 RADOS所提供的原生librados API包括C和C+两种。Librados在部署上和基于其上开发的应用位于同一台机器。应用调用本机上的librados API,再由后者通过socket与RADOS集群中的节点通信并完成各种操作。3、高层存储应用接口 这一层包括了RADOS GW(RADOS Gateway)、 RBD(Reliable Block Device)和

6、Ceph FS(Ceph File System)三个部分,其作用是在librados库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口。 RADOSGW是一个提供与Amazon S3和Swift兼容的RESTful API的Gateway,以供相应的对象存储应用开发使用。RADOS GW提供的API抽象层次更高,但功能则不如librados强大。因此,开发者应针对自己的需求选择使用。 RBD则提供了一个标准的块设备接口,常用于在虚拟化的场景下为虚拟机创建Volume。如前所述,Red Hat已经将RBD驱动集成在KVM/QEMU中,以提高虚拟机访问性能。 CephFS是一个POSI

7、X兼容的分布式文件系统。目前还处在开发状态,因而Ceph官网并不推荐将其用于生产环境中。4、服务器客户端层 这一层就是不同场景下对于Ceph各个应用接口的各种应用方式,例如基于librados直接开发的对象存储应用,基于RADOS GW开发的对象存储应用,基于RBD实现的云硬盘等等。 Ceph Client是基于Fuse层(User SpacE)和VFS文件系统开发,兼容Posix接口标准。在Ceph存储系统中,Ceph Metadata Daemon 提供了元数据服务器,而Ceph Object Storage Daemon 提供了数据和元数据的实际存储。Ceph对DFS、Block和Obj

8、ect数据写入和读取,都需Client利用Crush算法(负责集群中的数据放置和检索的算法)完成存储位置计算和数据组装。Ceph内部数据存储视图 在Ceph存储系统中,Cehp的基础服务架构主要包括了Object Storage Device(OSD),Monitor和MDS。一个Cluster可逻辑上划分为多个Pool,一个 Pool由若干个逻辑 PG( Placement Group)组成,Pool内的副本数量也是可以设置的。 Ceph底层是对象系统,所以一个文件会被切分为多个Object,每个Object会被映射到一个PG,每个PG 会映射到一组 OSD(Object Storage D

9、evice),其中第一个OSD 是主,其余的是备,OSD间通过心跳来相互监控存活状态。引入PG概念后,OSD只和PG相关,不但简化了OSD的数据存储,而且实现了Object到OSD的动态映射,OSD的添加和故障不影响Object的映射。Ceph数据存储过程 在Ceph存储系统中,数据存储分三个映射过程,首先要将用户要操作的file,映射为RADOS能够处理的object。就是简单的按照object的size对file进行切分,相当于RAID中的条带化过程。接着把Object映射到PG,在file被映射为一个或多个object之后,就需要将每个object独立地映射到一个PG中去。第三次映射就是

10、将作为object的逻辑组织单元的PG映射到数据的实际存储单元OSD。 文件存入时,首先把File切分为RADOS层面的Object,每个Object一般为2MB或4MB(大小可设置)。每个Object通过哈希算法映射到唯一的PG。每个PG通过Crush算法映射到实际存储单元OSD,PG和OSD间是多对多的映射关系。OSD在物理上可划分到多个故障域中,故障域可以跨机柜和服务器,通过策略配置使PG的不同副本位于不同的故障域中Ceph数据分布算法 Ceph以私有Client方式对外提供服务,支持Linux用户态(Fuse)和内核态(VFS)方式,Clinet还实现数据切片,通过Crush算法定位对

11、象位置,并进行数据的读写。但在测试中,通常在Ceph服务器端将Ceph配置成NFS服务的ExportFS,通过标准NFS接口导出目录。 CephFS 支持POSIX、HDFS、NFS、CIFS服务接口,其中NFS和CIFS通过外置网关实现(通过Clinet导出)。 在PG通过Crush算法映射到数据的实际存储单元OSD时,需求通过Crush Map、Crush Rules和Crush算法配合才能完成。 Cluster Map用来记录全局系统状态记数据结构,由Crush Map和OSD Map两部分组成。 Crush Map包含当前磁盘、服务器、机架的层级结构,OSD Map包含当前所有Pool的状态和所有OSD的状态。 Crush

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论