Ceph 分布式存储架构(一)

一、Ceph 简介

        Ceph 是一个开源分布式存储系统。它为大量数据提供可扩展的容错存储。Ceph 使用分布式架构,使其能够提供高性能和可靠性。它通常用于云计算环境,可用于存储各种类型的数据,包括对象、块和文件存储。

Ceph.io — 首页

  • Ceph 是可扩展的

        Ceph 能够快速扩展,无需其他解决方案所需的典型停机时间。Ceph 采用先进的 CRUSH 算法,克服了所有可扩展性挑战,引领了实现真正灵活、难以置信的大规模弹性存储的道路。停止依赖昂贵的、特定于供应商的硬件和锁定合同。摆脱传统限制。随着业务的扩展,存储集群呈指数级增长。Ceph 是一种可扩展、经济高效的解决方案,可应对企业市场、学术机构及其他领域的快速、不可预测的数据增长。

  • Ceph 是可靠的

        数据是不可替代的,因此存储系统的可靠性和微调管理至关重要。与 Ceph 一起实现安心;自我管理和自我修复,Ceph 会在您意识到问题之前发现并纠正问题。在存储集群中,Ceph Monitor 和 Manager 守护程序进行协调,以提高互连系统的可靠性和数据可用性。CRUSH 算法可降低单点故障风险、性能瓶颈和可扩展性限制,从而创建可靠且高性能的存储解决方案,适合不断增长的企业市场。

  • Ceph 是高性能的

        Ceph 的配置和部署可以完全根据您的需求进行定制,而不会影响性能。将 Ceph 应用到您现有的存储设置中,或使用广泛可用的商用硬件创建新集群,以实现行业领先的可靠性和可扩展性,而无需花费传统的专有 ICT 基础架构。

        传统存储系统在延迟、复杂的重复数据重复过程以及需要特定、不灵活的物理基础架构方面苦苦挣扎,而 Ceph 仍能保持高性能和可扩展性。

        作为软件定义的存储系统,Ceph 旨在最大限度地提高效率和性能,无论它运行在何种基础架构上。

二、Ceph的架构原理

2.1 Ceph存储功能架构

        Ceph的架构原理基于分布式存储和对象存储的概念。它由多个组件组成,包括监视器(Monitors)、对象存储守护进程(Object Storage Daemons,简称OSDs)和元数据服务器(Metadata Servers)。

        监视器(Monitors)是Ceph集群的控制节点,负责存储集群的状态信息和元数据。它们通过选举机制来保证高可用性,并在集群中提供一致的视图。

         对象存储守护进程(OSDs)是Ceph集群中的存储节点。它们负责存储实际的数据,并处理读写请求。每个OSD都会负责一部分数据,并通过数据复制和纠删码等机制来提供数据的冗余和容错性。

        元数据服务器(Metadata Servers)负责管理文件系统的元数据,包括目录结构、文件属性等。它们提供了高度可扩展的元数据服务,以支持大规模的文件系统操作。 Ceph的数据存储和访问是基于RADOS(可靠自主分布式对象存储)的。RADOS将数据划分为对象,并将其分布在多个OSD上。这种分布式存储方式使得Ceph具有高度的可伸缩性和容错性。

1、基础存储系统RADOS

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

2、基础库librados

        这一层的功能是对RADOS进行抽象和封装,并向上层提供API,以便直接基于RADOS进行应用开发。由于RADOS是一个对象存储系统,因此,librados实现的API也只是针对对象存储功能的。

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

3、高层应用接口
  • radosgw: 对象网关接口(对象存储)
  • rbd: 块存储
  • cephfs:文件系统存储

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

2.2 Ceph物理组件架构 

Ceph主要有三个基本进程

  • Osd

        OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。用于集群中所有数据与对象的存储。处理集群数据的复制、恢复、回填、再均衡。并向其他osd守护进程发送心跳,然后向Mon提供一些监控信息。
当Ceph存储集群设定数据有两个副本时(一共存两份),则至少需要两个OSD守护进程即两个OSD节点,集群才能达到active+clean状态.

  • MDS

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

  • Monitor

        监控整个集群的状态,保证集群数据的一致性。

  • Manager(ceph-mgr)

        用于收集ceph集群状态、运行指标,比如存储利用率、当前性能指标和系统负载展示出来。对外提供 ceph dashboard(ceph ui)。

Ceph 结构包含两个部分

  • ceph client:访问 ceph 底层服务或组件,对外提供各种接口。比如:对象存储接口、块存储接口、文件级存储接口。
  • ceph node:ceph 底层服务提供端,也就是 ceph 存储集群。

  • Object

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

  • PG

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

  • CRUSH

      CRUSH是Ceph底层使用的数据分布算法,让数据分配到预期的地方。

  • RBD

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

  • RGW

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

  • CephFS 文件存储

      CephFS全称Ceph File System,是Ceph对外提供的分布式文件存储服务。

三、Ceph的读写原理 

        1. 写入(Write):当客户端要写入数据时,它会将数据分割成对象,并将它们发送给Ceph存储集群中的监视器。监视器会确定数据应该存储在哪些OSD上,并将数据分发给相应的OSDs。OSDs接收到数据后,会将其存储在本地磁盘上,并复制到其他OSDs以提供冗余和容错性。一旦数据写入完成并得到确认,写操作就完成了。      

        2. 读取(Read):当客户端要读取数据时,它会向监视器发送读取请求,并提供所需数据的位置信息。监视器会返回数据所在的OSDs的信息。客户端直接与这些OSDs通信,请求所需的数据。如果某个OSD无法提供数据,客户端可以与其他副本进行通信以获取数据。一旦数据被读取并传输到客户端,读操作就完成了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值