文章插图
文章插图
一、认识分布式存储
分布式存储系统,就是通过网络将数据分散存储在多台独立的设备上
二、分布式存储的特性可扩展性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存储空间利用率与性能关系】四、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核心组件及概念介绍
Monitor监控整个集群的状态,维护集群的clusterMAP二进制表,保证集群数据的一致性OSDOSD全称 Object Storage Device,也就是负责响应客户端请求返回数据的进程 。一个ceph集群一般都有很多个OSD节点MDSMDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务ObjectCeph最底层的存储单元是Obect对象,每个Object包含了元数据和原始数据PGPG全称 Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD 。引入PG这一层其实是为了更好地分配数据和定位数据RADOSRADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作LibraydiosLibrados是Rados的提供库,因为RADOS是协议很难直接访问,因此在上层的RBD,RGW,CephFS都是通过librados访问的 。CRUSHCRUSH是ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方RDBRDB全称RADOS block device,是ceph对外提供的块设备服务 。RGWRGW全称RADOS gateway,是ceph对外提供的对象存储服务,接口与S3和Swift兼容CephFSCephFS全称Ceph File System,是Ceph对外提供的文件系统服务
- 古代海上丝绸之路进入鼎盛时期是在:明朝为什么不发展海洋贸易?
- 和前任第一次见面应该怎么做 分手后第一次见面应该是什么状态
- 台式电脑chkdsk工具怎么运行 电脑chkdsk工具是什么
- 网站设计的意义是什么? 视频设计网站有哪些
- 想加盟一个服装店需要了解什么 加盟什么样的服装店好
- 如何设置wifi漫游 设置wifi漫游是什么意思
- iPhone4 分辨率 苹果4分辨率是多少
- 不愧是迪奥 迪奥与中国
- 为什么恋爱时你总是没有安全感 在恋爱中为什么会没有安全感
- 巨蟹座的性格你知道多长 巨蟹座的性格特点是什么