Ceph(2):Ceph简介

1 Ceph简介

Ceph使用C++语言开发,遵循LGPL协议开源。Sage Weil(Ceph论文发表者)于2011年创立了以Inktank公司主导Ceph的开发和社区维护。2014年Redhat收购inktank公司,并发布Inktank Ceph企业版(ICE)软件,业务场景聚焦云、备份和归档,支持对象存储和块存储以及文件系统存储应用。出现Ceph开源社区版本和Redhat企业版。

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

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

2 Ceph的优势

**高扩展性:**使用普通x86服务器,支持10~1000台服务器,支持TB到EB级的扩展。

**高可靠性:**没有单点故障,多数据副本,自动管理,自动修复。

**高性能:**数据分布均衡。

可用于对象存储,块设备存储和文件系统存储

3 Ceph架构

基础存储系统

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

基础库librados:

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

高层应用接口

**radosgw:**对象网关接口(对象存储)

**rbd:**块存储

**cephfs:**文件系统存储

其作用是在librados库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口。

4 Ceph的基本组件

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

(1)Osd

用于集群中所有数据与对象的存储。处理集群数据的复制、恢复、回填、再均衡。并向其他osd守护进程发送心跳,然后向Mon提供一些监控信息。

当Ceph存储集群设定数据有两个副本时(一共存两份),则至少需要两个OSD守护进程即两个OSD节点,集群才能达到active+clean状态。

(2)MDS(可选)

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

(3)Monitor

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

(4)Manager(ceph-mgr)

用于收集ceph集群状态、运行指标,比如存储利用率、当前性能指标和系统负载。对外提供 ceph dashboard(ceph ui)和 resetful api。Manager组件开启高可用时,至少2个

ceph 结构包含两个部分

**ceph client:**访问 ceph 底层服务或组件,对外提供各种接口。比如:对象存储接口、块存储接口、文件级存储接口。

**ceph node:**ceph 底层服务提供端,也就是 ceph 存储集群。

5 Ceph存储种类及其应用场景

5.1 块存储

典型设备: 磁盘阵列,硬盘

主要是将裸磁盘空间映射给主机使用的。

优点:

  • 通过Raid与LVM等手段,对数据提供了保护。
  • 多块廉价的硬盘组合起来,提高容量。
  • 多块磁盘组合出来的逻辑盘,提升读写效率。

缺点:

  • 采用SAN架构组网时,光纤交换机,造价成本高。
  • 主机之间无法共享数据。

使用场景:

  • Docker容器、虚拟机磁盘存储分配。
  • 日志存储。
  • 文件存储。

5.2 文件存储

典型设备: FTP、NFS服务器

为了克服块存储文件无法共享的问题,所以有了文件存储。

在服务器上架设FTP与NFS服务,就是文件存储。

优点:

  • 造价低,随便一台机器就可以了。
  • 方便文件共享。

缺点:

  • 读写速率低。
  • 传输速率慢。

使用场景:

  • 日志存储。
  • 有目录结构的文件存储。

5.3 对象存储

为什么需要对象存储?

首先,一个文件包含了属性(术语叫metadata,元数据,例如该文件的大小、修改时间、存储路径等)以及内容(以下简称数据)。

例如FAT32这种文件系统,存储过程是链表的形式。

而对象存储则将元数据独立了出来,控制节点叫元数据服务器(服务器+对象存储管理软件),里面主要负责存储对象的属性(主要是对象的数据被打散存放到了那几台分布式服务器中的信息),而其他负责存储数据的分布式服务器叫做OSD,主要负责存储文件的数据部分。当用户访问对象,会先访问元数据服务器,元数据服务器只负责反馈对象存储在哪些OSD,假设反馈文件A存储在B、C、D三台OSD,那么用户就会再次直接访问3台OSD服务器去读取数据。

这时候由于是3台OSD同时对外传输数据,所以传输的速度就加快了。当OSD服务器数量越多,这种读写速度的提升就越大,通过此种方式,实现了读写快的目的。

另一方面,对象存储软件是有专门的文件系统的,所以OSD对外又相当于文件服务器,那么就不存在文件共享方面的困难了,也解决了文件共享方面的问题。

所以对象存储的出现,很好地结合了块存储与文件存储的优点。

优点:

  • 具备块存储的读写高速。
  • 具备文件存储的共享等特性。

使用场景: (适合更新变动较少的数据)

  • 图片存储。
  • 视频存储。

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

6 扩展:什么是OSD

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

相关推荐
不死鸟.亚历山大.狼崽子11 小时前
Ceph(1):分布式存储技术简介
ceph
深度Linux14 天前
深入探讨Ceph:分布式存储架构的未来
分布式·ceph·架构·c/c++
斯普信专业组14 天前
基于Rook的Ceph云原生存储部署与实践指南(下)
ceph
斯普信专业组14 天前
基于Rook的Ceph云原生存储部署与实践指南(上)
ceph
大新新大浩浩23 天前
k8s环境中的rook-ceph的osd报Permission denied无法正常运行问题的处理方式
java·ceph·kubernetes
大新新大浩浩1 个月前
ceph部署-14版本(nautilus)-使用ceph-ansible部署实验记录
ceph·ansible
我科绝伦(Huanhuan Zhou)1 个月前
共享存储-一步一步部署ceph分布式文件系统
ceph
野猪佩挤1 个月前
Ceph集群搭建2025(squid版)
ceph
野猪佩挤1 个月前
Rook-ceph(1.92最新版)
ceph