首页 > 其他分享 >ceph的基本介绍

ceph的基本介绍

时间:2022-08-14 18:46:32浏览次数:82  
标签:基本 Ceph 存储 对象 介绍 ceph PG OSD

一文带你读懂ceph,从此步入ceph大门

Cloud研习社 Cloud研习社 2022-08-08 07:33 发表于山东 收录于合集 #云计算29个 #计算机32个 #实战经验31个 #存储系统2个

图片

 

之前写过一篇存储学习路线(https://zhuanlan.zhihu.com/p/528770730),其中提到了ceph,我们今天就学习一下ceph。
图片

Ceph简介


 

Ceph使用C++语言开发,遵循LGPL协议开源。是Sage Weil的一篇论文,后经发展成为开源项目。2014年Redhat收购并发布Ceph企业版,业务场景聚焦云、备份和归档,支持对象存储和块存储以及文件系统存储应用。出现Ceph开源社区版本和Redhat企业版。

Ceph主要设计的初衷是变成一个可避免单节点故障的分布式文件系统,PB级别的扩展能力,而且是一种开源自由软件,许多超融合的分布式文件系统都是基于Ceph开发的。

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

 

图片

ceph的优势


 

 

高扩展性:使用普通x86服务器,支持10~1000台服务器,支持TB到EB级的扩展。
高可靠性:没有单点故障,多数据副本,自动管理,自动修复。
高性能:数据分布均衡。
可用于对象存储,块设备存储和文件系统存储


图片

ceph架构


 

图片

基础存储系统
rados:基础存储系统RADOS(Reliable, Autonomic, Distributed Object Store,即可靠的、自动化的、分布式的对象存储)。所有存储在Ceph系统中的用户数据事实上最终都是由这一层来存储的。Ceph的高可靠、高可扩展、高性能、高自动化等等特性本质上也是由这一层所提供的。

基础库librados:
librados:这一层的功能是对RADOS进行抽象和封装,并向上层提供API,以便直接基于RADOS(而不是整个Ceph)进行应用开发。特别要注意的是,RADOS是一个对象存储系统,因此,librados实现的API也只是针对对象存储功能的。

高层应用接口
radosgw:对象网关接口(对象存储)
rbd: 块存储
cephfs:文件系统存储
其作用是在librados库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口。
图片

Ceph的基本组件


 

图片

如上图所示,Ceph主要有三个基本进程

OSD
用于集群中所有数据与对象的存储。处理集群数据的复制、恢复、回填、再均衡。并向其他osd守护进程发送心跳,然后向Mon提供一些监控信息。
当Ceph存储集群设定数据有两个副本时(一共存两份),则至少需要两个OSD守护进程即两个OSD节点,集群才能达到active+clean状态。

MDS(可选)
为Ceph文件系统提供元数据计算、缓存与同步(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。在ceph中,元数据也是存储在osd节点中的,mds类似于元数据的代理缓存服务器。MDS进程并不是必须的进程,只有需要使用CEPHFS时,才需要配置MDS节点。

Monitor
监控整个集群的状态,维护集群的cluster MAP二进制表,保证集群数据的一致性。ClusterMAP描述了对象块存储的物理位置,以及一个将设备聚合到物理位置的桶列表。

Manager(ceph-mgr)
用于收集ceph集群状态、运行指标,比如存储利用率、当前性能指标和系统负载。对外提供 ceph dashboard(ceph ui)和 resetful api。Manager组件开启高可用时,至少2个ceph 结构包含两个部分ceph client:访问 ceph 底层服务或组件,对外提供各种接口。比如:对象存储接口、块存储接口、文件级存储接口。
ceph node:ceph 底层服务提供端,也就是 ceph 存储集群。

 

图片

Ceph存储种类及其应用场景


 

块存储

图片
典型设备:磁盘阵列,硬盘。主要是将裸磁盘空间映射给主机使用的。
优点:通过Raid与LVM等手段,对数据提供了保护。多块廉价的硬盘组合起来,提高容量。多块磁盘组合出来的逻辑盘,提升读写效率。
缺点:采用SAN架构组网时,光纤交换机,造价成本高。主机之间无法共享数据。
使用场景:Docker容器、虚拟机磁盘存储分配。日志存储。文件存储。
图片

 

 

文件存储

 

图片
典型设备:FTP、NFS服务器为了克服块存储文件无法共享的问题,所以有了文件存储。在服务器上架设FTP与NFS服务,就是文件存储。
优点:造价低,随便一台机器就可以了。方便文件共享。
缺点:读写速率低。传输速率慢。使用场景:日志存储。有目录结构的文件存储。
图片

 

 

对象存储

 

图片为什么需要对象存储?首先,一个文件包含了属性(术语叫metadata,元数据,例如该文件的大小、修改时间、存储路径等)以及内容(以下简称数据)。
例如FAT32这种文件系统,存储过程是链表的形式。
而对象存储则将元数据独立了出来,控制节点叫元数据服务器(服务器+对象存储管理软件),里面主要负责存储对象的属性(主要是对象的数据被打散存放到了那几台分布式服务器中的信息),而其他负责存储数据的分布式服务器叫做OSD,主要负责存储文件的数据部分。当用户访问对象,会先访问元数据服务器,元数据服务器只负责反馈对象存储在哪些OSD,假设反馈文件A存储在B、C、D三台OSD,那么用户就会再次直接访问3台OSD服务器去读取数据。
这时候由于是3台OSD同时对外传输数据,所以传输的速度就加快了。当OSD服务器数量越多,这种读写速度的提升就越大,通过此种方式,实现了读写快的目的。另一方面,对象存储软件是有专门的文件系统的,所以OSD对外又相当于文件服务器,那么就不存在文件共享方面的困难了,也解决了文件共享方面的问题。
所以对象存储的出现,很好地结合了块存储与文件存储的优点。
优点:具备块存储的读写高速。具备文件存储的共享等特性。
使用场景:(适合更新变动较少的数据)图片存储。视频存储。图片

 

 

Ceph同时提供对象存储、块存储和文件系统存储三种功能,满足不同应用需求。

扩展什么是OSD

对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device)简称OSD。总体上来讲,对象存储综合了NAS和SAN的优点,同时具有SAN的高速直接访问和NAS的分布式数据共享等优势,提供了具有高性能、高可靠性、跨平台以及安全的数据共享的存储体系结构。

 

图片

Ceph 工作原理


 

ceph数据的存储过程

无论使用哪种存储方式(对象、块、挂载),存储的数据都会被切分成对象(Objects)。Objects size大小可以由管理员调整,通常为2M或4M。每个对象都会有一个唯一的OID,由ino与ono生成,虽然这些名词看上去很复杂,其实相当简单。ino即是文件的File ID,用于在全局唯一标示每一个文件,而ono则是分片的编号。比如:一个文件FileID为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

监控整个集群的状态,维护集群的cluster MAP二进制表,保证集群数据的一致性

OSD --

OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。

MDS

MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。

Object --

Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。

PG --

PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。

RADOS

RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。

Libradio

Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。

CRUSH --

CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。

RBD --

RBD全称RADOS block device,是Ceph对外提供的块设备服务。

RGW

RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。

CephFS --

CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。

 

文章来源于网络,侵删
推荐阅读

 

 

干货 | PXE+kickstart无人值守批量装机(原理与架构)

干货 | PXE+kickstart无人值守批量装机(实战部署)

ifconfig已淘汰,ip登场

40个简单而有效的Shell脚本,想不起来的时候一看就懂(下)Linux 云计算 学习路线(建议收藏)
放后台的Linux任务没有了,试试这个命令

Linux 网络状态工具 ss 命令详解

这次终于搞明白VLAN技术了

终于有人把敏捷、DevOps、CI、CD讲清楚了

快速上手:iperf网络性能测试工具(运维必会)

 

 

 

除每周二、四、六定期更新的《Linux云计算一站式教程》以外,其余时间雷哥会推送一些工作中遇到的小知识、实战经验总结的文章。后续都会收录在“实战经验”合集中。

图片

 


Cloud研习社 为Linux云计算零基础同学服务,致力于打造一套完整的linux云计算教程。包括新手学习路线、linux、存储、集群架构以及Docker,K8S,DevOps等 144篇原创内容 公众号

图片

 

收录于合集 #云计算  29个 上一篇多网卡绑定之team下一篇Docker 镜像构建的一些技巧 阅读原文 阅读 103

标签:基本,Ceph,存储,对象,介绍,ceph,PG,OSD
From: https://www.cnblogs.com/qiangfenger/p/16586009.html

相关文章

  • centOS7 firewall 防火墙基本操作
    centOS7firewall防火墙基本操作运维家 2022-07-2309:09 发表于北京收录于合集#防火墙1个#linux22个 一、防火墙的开启、关闭、禁用命令 (1)设置开机......
  • 搞定面试官 - 你可以介绍一下在 MySQL 中,哪些情况下 索引会失效嘛?
    大家好,我是程序员啊粥,前边给大家分享了*MySQLInnoDB索引模型在MySQLInnoDB中,为什么delete删除数据之后表数据文件大小没有变如何计算一个索引的长度如何查看......
  • 抽取基本JDBC中的基本操作与数据连接池
     1.JDBCDBC(JavaDataBaseConnectivity):Java数据库连接技术:具体讲就是通过Java连接广泛的数据库,并对表中数据执行增、删、改、查等操作的技术。JDBC是数据库与Java代......
  • 一、Vue.js介绍
    一、介绍Vue(读音/vjuː/,类似于 view)是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不......
  • 银行的基本业务
    按照资产负债表的构成划分,银行的业务主要分为三类:负债业务、资产业务、中间业务,本期主要跟大家介绍负债业务。负债业务负债业务是商业银行形成资金来源的业务,是商业银行......
  • FluentValidation 验证:WebApi 中使用 基本使用
    FluentValidation.AspNetCore引入包publicclassLogin2RequestValidator:AbstractValidator<Login2Request>{ publicLogin2RequestValidator() { RuleFor(x=>......
  • HCIA-Datacom 1.1实验 华为VRP系统基本操作
    前言:最近有很多老哥,会私信问我一些华为的网络配置和规划,在调试的时候我发现其实我命令也忘了很多,所以写一个文档,方便大家查阅实验介绍:  实现功能:1.完成设备重命名,路......
  • Four---pytorch学习---基本数据类型/标量/张量/dim值
    pytorch学习(1)pytorch的基本数据类型在torch中默认的数据类型是32位浮点型(torch.FloatTensor)可以通过torch.set_default_tensor_type()函数设置默认的数据类型,但该函......
  • 思兼的 KlipperBox 套件之打完安全关机插座介绍
    前言原创文章,转载引用务必注明链接,水平有限,如有疏漏,欢迎指正交流。本智能插座方案实现非侵入式的Klipper3D打印机的电源管理(以打完安全关机为例)。所谓非侵入......
  • ceph 005 赋权补充 rbd块映射
    我的ceph版本[root@serverc~]#ceph-vcephversion16.2.0-117.el8cp(0e34bb74700060ebfaa22d99b7d2cdc037b28a57)pacific(stable)认证授权[root@serverc~]#ce......