一、认识分布式存储
分布式存储系统,就是通过网络将数据分散存储在多台独立的设备上二、分布式存储的特性
可扩展性 1)节点扩展后,旧数据会自动迁移到新节点上,实现负载均衡,避免单点过热的情况出现 2)水平扩展只需要将新节点和原有集群连接到同一网络,整个过程不会对集群业务造成影响 3)当节点添加到集群,集群系统的整体容量和性能也会随之线性扩展,此后新节点的资源就会被管理平台接管,被用于分配或者回收低成本高性能易用 分布式存储系统需要能提供易用的对外接口,另外也需要完整的监控,运维工具,并能够与其他系统集成易管理分布式存储系统的挑战主要在于数据,状态信息的持久化,要求在自动迁移,自动容错,并发读写的过程中保证数据的一致性。分布式存储系统涉及的技术主要在两个领域: 分布式系统以及数据库三、Ceph简介优势及架构
简介: Ceph是一个统一的分布式存储系统,涉及初衷是提供较好的性能,可靠性和可扩展性优势: 高扩展性: 使用普通x86服务器,支持10~1000台服务器,支持TB到EB级别的扩展 高可靠性: 没有单点故障,多数据副本,自动管理,自动修复 高性能: 数据分布均衡 可用于对象存储,块设备存储和文件系统存储
四、Ceph的基本组件

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引入了归置组的概念,即PG PG是一个逻辑概念,我们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对外提供的文件系统服务