Ceph-介绍
Ceph架构简介及使用场景介绍

一、Ceph简介
Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。
二、Ceph特点
1.高性能
- 采用CRUSH算法,数据分布均衡,并行度高
- 容灾:本地、异地
- 能够支持上千个存储节点的规模,支持TB到PB级的数据
2.高可用
- 副本数可以灵活控制
- 多种故障场景自动进行修复自愈
- 没有单点故障,自动管理
3.高扩展性
随着节点增加,性能线性增长
4.特性丰富
支持三种存储接口:对象存储,块设备存储,文件存储
三、Ceph架构

RADOS:对象存储系统(稳定可靠、分布式存储层、复制、支持差错码EC算法)
LIBRDOS:访问RADOS,提供API接口,分别为:RGW、RBD、CEPH FS
RGW:对象存储接口Swift和S3、如:百度网盘、openstack云平台
RBD:块存储接口,如:物理机、虚拟机
CEPH FS:文件系统接口,如:NFS、SMB
四、Ceph组件

mon:监控整个集群的状态,记录映射表关系,找到文件的存储位置;至少需要3个mon。
osd:用来存放数据,一个硬盘对应一个osd
mds:适用于Cephfs

Ceph的核心组件包括Client客户端、MON监控服务、MDS元数据服务、OSD存储服务,各组件功能如下:
Client客户端:负责存储协议的接入,节点负载均衡。
MON监控服务:负责监控整个集群,维护集群的健康状态,维护展示集群状态的各种图表,如OSD Map、Monitor Map、PG Map和CRUSH Map。
MDS元数据服务:负责保存文件系统的元数据,管理目录结构。
OSD存储服务:主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查等。一般情况下一块硬盘对应一个OSD。
五、Ceph数据的存储过程
Ceph采用crush算法,在大规模集群下,实现数据的快速、准确存放,同时能够在硬件故障或扩展硬件设备时,做到尽可能小的数据迁移,其原理如下:
1.当用户要将数据存储到Ceph集群时,数据先被分割成多个object,(每个object一个object id,大小可设置,默认是4MB),object是Ceph存储的最小存储单元。
2.由于object的数量很多,为了有效减少了Object到OSD的索引表、降低元数据的复杂度,使得写入和读取更加灵活,引入了pg(Placement Group ):PG用来管理object,每个object通过Hash,映射到某个pg中,一个pg可以包含多个object。
3.Pg再通过CRUSH计算,映射到osd中。如果是三副本的,则每个pg都会映射到三个osd,保证了数据的冗余。


- 首先文件被切片分为多个Objects并以oid标记,通过hash算法和mask掩码得到PGid
- 引入PG逻辑概念(为了防止oid存储时混乱不好搜索,可以理解为文件夹),并用crush算法生成pgid,通过副本的机制把oid均匀分布给OSD中存储。
- 副本数至少2-3个

pg_num计算值为:
注意:
最终pg_num的计算结果取接近计算值的2次幂,以提高CRUSH算法效率,减少CPU、内存的消耗。例如:计算值为200时,取256作为结果。pgp_num的值应设置为与pg_num一致。
参数解释:
Target PGs per OSD:预估每个OSD的PG数,一般取100计算。当预估以后集群OSD数不会增加时,取100计算;当预估以后集群OSD数会增加一倍时,取200计算。
OSD :集群OSD数量。
%Data:预估该pool占该OSD集群总容量的近似百分比。
Size:该pool的副本数。
| OSD数目 | 1-5 | 5-10 | 10-50 | >50 |
|---|---|---|---|---|
| PG数目 | 建议128 | 建议512 | 建议4096 | 使用Pgcalc工具 |
创建pool时需要确定其PG的数目,在pool被创建后也可以调整该数字,PG值有以下影响因素:
数据的持久性:假如pool的size为 3,表明每个PG会将数据存放在3个OSD上。当一个OSD down了后,一定间隔后将开始recovery过程,recovery和需要被恢复的数据的数量有关系,如果该 OSD 上的 PG 过多,则花的时间将越长,风险将越大。
在recovery结束前有部分PG的数据将只有两个副本,如果此时再有一个OSD down了,那么将有一部分PG的数据只有一个副本。recovery 过程继续,如果再出现第三个OSD down了,那么可能会出现部分数据丢失。
可见,每个OSD上的PG数目不宜过大,否则会降低数据的持久性。这也就要求在添加OSD后,PG的数目在需要的时候也需要相应增加。
数据的均匀分布性:CRUSH算法会伪随机地保证PG被选中来存放客户端的数据,它还会尽可能地保证所有的PG均匀分布在所有的OSD上。
比方说,有10个OSD,但是只有一个size为3的pool,它只有一个PG,那么10个 OSD 中将只有三个OSD被用到。但是CURSH算法在计算的时候不会考虑到OSD上已有数据的大小。
比方说,100万个4K对象共4G均匀地分布在10个OSD上的1000个PG内,那么每个OSD上大概有400M 数据。再加进来一个400M的对象,那么有三块OSD上将有400M + 400M = 800M的数据,而其它七块OSD上只有400M数据。
资源消耗:PG作为一个逻辑实体,它需要消耗一定的资源,包括内存、CPU和带宽。太多PG的话,则占用资源会过多。
清理时间:Ceph的清理工作是以PG为单位进行的。如果一个PG内的数据太多,则其清理时间会很长。
Ceph-介绍的更多相关文章
- Ceph介绍
1. 介绍 云硬盘是IaaS云平台的重要组成部分,云硬盘给虚拟机提供了持久的块存储设备.目前的AWS 的EBS(Elastic Block store)给Amazon的EC2实例提供了高可用高可靠的块 ...
- 分布式存储ceph介绍(1)
一.Ceph简介: Ceph是一种为优秀的性能.可靠性和可扩展性而设计的统一的.分布式文件系统.ceph 的统一体现在可以提供文件系统.块存储和对象存储,分布式体现在可以动态扩展.在国内一些公司的云环 ...
- Ceph介绍及原理架构分享
https://www.jianshu.com/p/cc3ece850433 1. Ceph架构简介及使用场景介绍 1.1 Ceph简介 Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能. ...
- ceph介绍和安装
目录 1.Ceph简介 2.Ceph的特点 3.Ceph的缺点 4.架构与组件 4.1.组件介绍 4.2.存储过程 5.部署 5.1 设置主机名.配置时间同步 5.2 配置添加清华源 5.3 初始化c ...
- 分布式文件系统ceph介绍
ceph哲学思想 1. 每个组件必须支持扩展 2.不存在单点故障 3.解决方案必须是基于软件的.开源的.适应能力强 4.任何可能的一切必须自我管理 存在的意义:帮助企业摆脱昂贵的专属硬件 ceph目标 ...
- Ceph 介绍及原理架构
- Percona 开始尝试基于Ceph做上层感知的分布式 MySQL 集群,使用 Ceph 提供的快照,备份和 HA 功能来解决分布式数据库的底层存储问题
本文由 Ceph 中国社区 -QiYu 翻译 英文出处:Using Ceph with MySQL 欢迎加入CCTG Over the last year, the Ceph world drew m ...
- 海量小文件存储与Ceph实践
海量小文件存储(简称LOSF,lots of small files)出现后,就一直是业界的难题,众多博文(如[1])对此问题进行了阐述与分析,许多互联网公司也针对自己的具体场景研发了自己的存储方案( ...
- Ubuntu CEPH快速安装
一.CEPH简介 不管你是想为云平台提供Ceph 对象存储和/或 Ceph 块设备,还是想部署一个 Ceph 文件系统或者把 Ceph 作为他用,所有 Ceph 存储集群的部署都始于部署一个个 Cep ...
- ceph架构简介
ceph架构简介 在测试OpenStack的后端存储时,看到了ceph作为后端存储时的各种优势 ,于是查询资料,总结了这篇ceph架构的博客,介绍了ceph的架构和ceph的核心组件.ceph整体十分 ...
随机推荐
- LeetCode 周赛 346(2023/05/21)仅 68 人 AK 的最短路问题
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. LeetCode 单周赛第 345 场 · 体验一题多解的算法之美 单周赛 345 概览 T1. 删除子串后 ...
- js 获取系统yyyyMMdd时间
var myDate = new Date(); var Time1 = myDate.toLocaleDateString()//yyyy/MM/dd 这个方法如果是1月份,会显示yyyy/M/dd ...
- DevOps| 研发效能和PMO如何合作共赢?
项目经理(PMO)对于大组织.跨团队高效协同有着不可替代的作用.跳出组织架构的束缚,横向推动公司级别的大项目向前推进,跟进进展和拿到结果,PMO的小伙伴有着独特的优势. 我之前写过小团队如何高效协作的 ...
- TLS详解(原理和实践)
主页 个人微信公众号:密码应用技术实战 个人博客园首页:https://www.cnblogs.com/informatics/ 引言 本文主要内容涉及到TLS协议发展历程.TLS协议原理以及在HTT ...
- XHbuilder 需要的 ipa 签名,超详细的教程,你不看吃亏的是自己!
今天使用 hbuilder 运行到 ios 真机的时候,突然发现还需要 ipa 签名,这是什么东东呢? 1.IPA 签名是什么? 因苹果公司禁止企业证书用于非企业内部开发者.所以开发者无法再使用DCl ...
- Windows服务启动exe无界面终极解决方案
1.前言 我这个方案(C#操作)是彻底解决[从Windows服务启动程序exe,程序无界面]问题的终极解决方案,终极方案,绝对的终极方案,本来打算收钱的,还是算了,你们也不容易,关注我一下就行.后 ...
- 记一次Native memory leak排查过程
1 问题现象 路由计算服务是路由系统的核心服务,负责运单路由计划的计算以及实操与计划的匹配.在运维过程中,发现在长期不重启的情况下,有TP99缓慢爬坡的现象.此外,在每周例行调度的试算过程中,能明显看 ...
- python笔记:第六章函数&方法
1.系统函数 由系统提供,直接拿来用或是导入模块后使用 a = 1.12386 result = round(a,2) print(result) > 1.12 2.自定义函数 函数是结构化编程 ...
- Day01_Java作业
A:选择题 1:下列标识符哪个是合法的(a) A.class B.$abc C.1234 D.Car.taxi B:填空题 1: java源程序的扩展名是( .java ) 2: java程序经编译后 ...
- System类_Calendar类_Date类_小记
PrintStream(字节打印流) ps = System.out ; 标准输出流 PrintWriter(字符打印流) InputStream in = System.in; 标准输入流 常用的成 ...