ceph分布式存储搭建 ceph分布式存储优缺点


ceph分布式存储搭建 ceph分布式存储优缺点

文章插图
一、认识分布式存储分布式存储系统,就是通过网络将数据分散存储在多台独立的设备上二、分布式存储的特性可扩展性1)节点扩展后,旧数据会自动迁移到新节点上,实现负载均衡,避免单点过热的情况出现2)水平扩展只需要将新节点和原有集群连接到同一网络,整个过程不会对集群业务造成影响3)当节点添加到集群,集群系统的整体容量和性能也会随之线性扩展,此后新节点的资源就会被管理平台接管,被用于分配或者回收低成本高性能易用分布式存储系统需要能提供易用的对外接口,另外也需要完整的监控,运维工具,并能够与其他系统集成易管理分布式存储系统的挑战主要在于数据,状态信息的持久化,要求在自动迁移,自动容错,并发读写的过程中保证数据的一致性 。分布式存储系统涉及的技术主要在两个领域: 分布式系统以及数据库三、Ceph简介优势及架构简介:Ceph是一个统一的分布式存储系统,涉及初衷是提供较好的性能,可靠性和可扩展性优势:高扩展性: 使用普通x86服务器,支持10~1000台服务器,支持TB到EB级别的扩展高可靠性: 没有单点故障,多数据副本,自动管理,自动修复高性能:数据分布均衡可用于对象存储,块设备存储和文件系统存储基础存储系统rados:基础存储系统RADOS(Reliable Autonomic,Distributed Object Store,即可靠的,自动化的,分布式的对象存储) 。所有存储在Ceph系统中的用户数据事实上最终都是由这一层来存储的 。Ceph的高可靠,高扩展性,高性能,高自动化等等特性本质上都是由这一层完成的基础库LIBEADOSlibrados:这一层的功能是对RADOS进行抽象和封装,并向上层提供API,以便于基于基础DADOS(而不是整个Ceph)进行应用开发 。特别注意的是是RAOCS是一个对象存储,因此,librados实现的API也是针对对象存储功能的 。高层应用接口radosgw:对象网关接口(对象存储)rdb:块存储cephfs: 文件系统存储其作用是在librados库的基础上提供抽象层次更高,更便于应用或客户端使用的上层接口 。四、Ceph的基本组件如上图,Ceph主要有三个基本进程OSD用于集群中所有数据及对象的存储 。处理数据的复制,恢复,回填,在均衡 。并向其他osd守护进程发送心跳,然后想Mon发送一些信息 。当Ceph存储集群设定有两个副本时(一共存两份),则至少需要两个OSD守护集成即两个OSD节点,集群才能达到actice+clean状态MDS(可选)为Ceph文件系统提供元数据计算,缓存与同步(也就是说Ceph块设备和Ceph对象存储不需要MDS) 。在Ceph中,元数据也是存储在osd节点中的 。mds类似于元数据的代理服务器 。MDS进程并不是必须的,只有需要使用Cephfs时候,才需要配置MDS节点 。Monitor监控整个集群的状态,维护集群的cluster MAP二进制表,保证集群数据的一致性 。ClusterMAP描述了对象块存储的物理位置,以及一个将设备聚合到物理位置的桶列表Manager(ceph-mgr)用于收集ceph集群状态,运行指标,比如存储利用率,当前性能指标,和系统负载 。对外提供ceph dashboard(ceph ui)和restful api 。Manage开启高可用时,至少2个Ceph结构包含两部分ceph client: 访问ceph底层服务或组件,对外提供各种接口 。对象存储接口,块存储接口,文件级存储接口ceph node:ceph底层服务提供端,也就是ceph存储集群五、Ceph的工作原理无论使用哪种存储方式(对象,块,文件),存储的数据都会被切割成对象(object),Object Size大小可以有管理员进行调整,通常为2M或4M 。每个对象存储都会有一个唯一的OID,由ino和ono生产,ino即是文件的File ID,用于在全局唯一标识的一个文件,而ono则是分片的编号 。如一个文件FILE ID 为A,它被切割成两个对象,一个对象编号为0,一个对象编号为1,那么这两个文件的oid则为A0和A1 。OID的好处则是可以唯一标识每个不通的对象,并且存储了对象与文件的关系 。由于ceph的所有数据都虚拟成立整齐划一的对象,所以在读写时效率都会比较高 。但是对象并不会直接存储进OSD中,因为对象的size很小,在一个大规模的集群中可能有几百到几千万个对象 。这么多对象光是遍历寻址,速度都是很缓慢的;并且如果将对象直接通过某种固定映射的哈希算法映射到osd上,当这个osd损坏时,对象无法自动迁移到其他osd上面(因为映射函数不允许),为了解决这些问题,ceph引入了归置组的概念,即PGPG是一个逻辑概念,我们linux系统中可以直接看到对象,但是无法直接看到PG 。他在数据寻址时类似于数据库中的索引;每个对象都会固定映射进一个PG中,所以当我们要寻找一个对象时,只需要先找到这个对象所属的PG,然后再遍历这个PG就可以了,无需遍历所有的对象 。而且在数据迁移时,也是以PG作为基本单位进行迁移,ceph不会直接操作对象 。对象是如何映射到PG的? 还记得OID么? 首先使用静态hash函数对OID做hash取出特征码,用特征码与PG的数量取模,得到的序号则是PGID 。由于这种设计方式,PG的数量多寡直接决定了数据分布的特性,所以合理设置PG数量可以很好的提升Ceph集群的性能并使数据均匀分布 。最后PG会根据管理员设置的副本数量进行复制,然后通过crush算法存储到不同的OSD节点上(其实就是把PG中的所有对象存储到节点上),第一个OSD接地那即为主节点,其余均为从节点 。Ceph名词介绍ceph核心组件及概念介绍


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: