• 分布式存储系统Ceph应用组件介绍


    1、 无中心架构分布式存储Ceph

    Ceph是一套开源的分布式存储系统。具有可靠性高,性能优良,可伸缩,与HDFS不同的地方在于,该架构中没有中心节点。    

    Ceph优点在于它不单单是存储,同时还充分利用了存储节点上的计算能力,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据均衡分布,因此它不存在传统的单点故障的问题,且随着规模的扩大,性能并不会受到影响。能够可靠地、自动重均衡、自动恢复集群状态。

    Ceph可实现三种存储方式:块设备存储,CephFS 文件系统,对象存储。

    那么Ceph能做什么?我们可以把文件想象成粮食,那么Ceph就是一个粮仓,这个粮仓可以通过三种不同的方式来存储粮食。这个粮仓可以容纳很多很多的仓库,每个仓库可以存放很多很多的粮食。


    2、 Ceph的功能特性

    放弃传统的集中式存储元数据寻址的方式,采用CRUSH算法,数据分布均衡,没有单点故障。
    考虑了容灾域的隔离,能够实现各类负载副本放置规则。同样的还是以粮仓为例子。当一个仓库着火了,我们可以通过隔断门将其与其他正常的仓库隔离。避免影响到其他正常的仓库。
    能够支持上千个存储节点的规模,支持TB和PB级别的数据。
    扩展灵活,就是说支持动态的增加存储节点。
    副本数可以灵活控制,默认情况下Ceph的副本数是3个,可以在配置文件中修改副本的数量。


    3、 mon组件的概念与作用
    Mon的概念:
    mon组件是monitor(监视器)的意思,顾名思义就是监视整个集群的运行状态。整个集群的大管家。一个ceph集群中至少要有一个监视器,一般为了保证集群的高可用,最少需要启动3个监视器,这样就可以避免单点故障。
    Mon的作用:
    负责管理集群内部状态:通过集群运行图(即map,如OSD Map、Monitor Map、PG Map和CRUSH Map )跟踪监控整个集群的运行状态。也就是说客户端连接到一个监视器之后就可以获取到整个集群的运行图,获取到运行图之后就可以确定所有监视器、OSD和mds元数据服务器的位置。
    负责授权:Ceph客户端读写OSD或者元数据服务器之前,必须先连到一个监控器,靠当前集群运行图的副本和CRUSH算法,客户端就可以计算出任何对象的位置,因此,客户端有能力直接连到OSD。 这对Ceph的高伸缩性,高性能来说非常重要。
    注意:monitor节点的个数=2n+1,必须为奇数个,一个monitor也可以,但是不建议这么做,因为有单点故障,所以最少三个起。

    4、 OSD组件的概念和作用

    OSD的概念:
    OSD(object storage device)是负责存储文件的进程,一般配置成和磁盘一一对应,一块磁盘启动一个OSD进程。主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查,负责响应客户端请求返回具体数据的进程等;在Ceph集群中所有的文件都会以对象的形式存储到OSD中。OSD与OSD之间是可以相互通信的。
    OSD的作用:
    客户端在请求OSD进行I/O操作时,必须先获取集群运行图(就是各种map)。也就是说,第一次请求时必须先请求某一个mon节点获取运行图,然后再请求OSD进行I/O操作,以后的话就可以直接请求OSD进行I/O操作。

    当客户端发起写入数据A的请求时,会将数据A转成对象然后分发到集群不同节点的OSD中,存储池副本数默认为3个,可以配置。


    5、 mgr、 MDS、 RGW组件

    mgr主要目标实现 ceph 集群的管理,为外界提供统一的入口,其实质是分担和扩展monitor的部分功能,减轻monitor的负担,让其更好地管理Ceph集群 。

    MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。负责保存 文件系统的元数据,管理目录结构。只有需要Cephfs文件系统的时候,才需要此组件,对象存储和块设备存储不需要元数据服务。

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

    6、 其他组件与概念

    PG
    PG英文全称Placement Group,中文称之为归置组。,可以将PG看做一个逻辑容器,这个容器包含多个对象,同时这个逻辑对象映射多个OSD上。如果没有PG,在成千上万个OSD上管理和跟踪数百万计的对象的复制和传播是相当困难的。没有PG这一层,管理海量的对象所消耗的计算资源也是不可想象的。
    PG的作用:PG相当于一个虚拟组件,出于集群伸缩,性能方面的考虑。Ceph将每个存储池分为多个PG,如果存储池为副本池类型,并会给该存储池每个PG分配一个主OSD和多个从OSD,当数据量大的时候,PG将均衡的分布在集群中的每个OSD上面。
    Object
    存储对象,最底层的存储单元,包含元数据和原始数据。

    ==============================================================

    更多Linux、云计算、云原生、大数据、docker、k8s知识,可访问:奇智云课堂

  • 相关阅读:
    Markdown语法之数学公式【总结】(二)
    suricata 流管理
    [图文教程]如何不买苹果电脑来体验类Unix的感觉呢?Linux装机初体验,manjaro笔记本电脑,爆改Windows笔记本
    【原创】分布式之一行代码解决缓存击穿问题
    基于ssm的OA办公管理系统
    Iris for mac 好用的录屏软件
    插画师走尺助力中国青年艺术人才逐梦前行
    【Java并发编程十】同步控制二
    202. 快乐数(JavaScript)
    算法笔记-lc-827. 最大人工岛
  • 原文地址:https://blog.csdn.net/exitgogo/article/details/134061858