Ceph概念及基本原理介绍

网友投稿 434 2022-09-29

Ceph概念及基本原理介绍

Ceph概念及基本原理

简介

Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。

特点

高性能

a. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高; b. 能够支持上千个存储节点的规模,支持TB到PB级的数据。

高可用性

a. 副本数可以灵活控制; b. 支持故障域分隔,数据强一致性; c. 多种故障场景自动进行修复自愈; d. 没有单点故障,自动管理。

高扩展性

a. 去中心化; b. 扩展灵活; c. 随着节点增加而线性增长。

特性多样

a. 支持三种存储接口:块存储、文件存储、对象存储; b. 支持自定义接口,支持多种语言驱动。

核心组件介绍

Mon(Monitor): ceph的监视器,维护OSD和PG的集群状态,一个ceph集群至少需要一个mon OSD: 全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。每台存储服务器的磁盘组成的存储空间 Mgr(Manager): 负责跟踪运行时指标和Ceph 集群的当前状态,包括存储利用率,当前性能指标和系统负载等。 MDS: 全称Ceph Metadata Server,主要保存的是Ceph文件系统(NFS/CIFS)的元数据。注意:ceph的块存储和ceph对象存储都不需要MDS。 PG(placement group): 是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。 RADOS: 由多台host 存储服务器组成的ceph 集群 Object: Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。默认为4M CRUSH: 数据分布算法,类似一致性哈希,让数据分配到预期的地方 RBD: 全称RADOS block device,是Ceph对外提供的块设备服务 RGW: 全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容 CephFS: CephFS全称Ceph File System,是Ceph对外提供的文件系统服务

Ceph IO流程

client 创建cluster handler。client 读取配置文件。client 连接上monitor,获取集群map信息。client 读写io 根据crshmap 算法请求对应的主osd数据节点。主osd数据节点同时写入另外两个副本节点数据。等待主节点以及另外两个副本节点写完数据状态。主节点及副本节点写入状态都成功后,返回给client,io写入完成。

如果新加入的OSD1取代了原有的 OSD4成为 Primary OSD, 由于 OSD1 上未创建 PG , 不存在数据,那么 PG 上的 I/O 无法进行,怎样工作的呢?

client连接monitor获取集群map信息。同时新主osd1由于没有pg数据会主动上报monitor告知让osd2临时接替为主。临时主osd2会把数据全量同步给新主osd1。client IO读写直接连接临时主osd2进行读写。osd2收到读写io,同时写入另外两副本节点。等待osd2以及另外两副本写入成功。osd2三份数据都写入成功返回给client, 此时client io读写完毕。如果osd1数据同步完毕,临时主osd2会交出主角色。osd1成为主节点,osd2变成副本。

ceph 集群部署好之后,要先创建存储池才能向ceph 写入数据,文件在向ceph 保存之前要先进行一致性hash 计算,计算后会把文件保存在某个对应的PG 的,此文件一定属于某个pool 的一个PG,在通过PG 保存在OSD 上。数据对象在写到主OSD 之后再同步对从OSD 以实现数据的高可用。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Springboot集成mybatis实现多数据源配置详解流程
下一篇:Kubernetes Cronjob的第一次使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~