Ceph分布式存储系统简介

Posted 如月之恒-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ceph分布式存储系统简介相关的知识,希望对你有一定的参考价值。

目录

文章目标:

了解CEPH的作用与基本概念


内容:


基础介绍

Ceph是一个可靠地、自动重均衡、自动恢复分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务

在虚拟化领域里,比较常用到的是Ceph的块设备存储,比如在OpenStack项目里,Ceph的块设备存储可以对接OpenStack的cinder后端存储、Glance的镜像存储和虚拟机的数据存储,比较直观的是Ceph集群可以提供一个raw格式的块存储来作为虚拟机实例的硬盘。

Ceph相比其它存储的优势点

  1. 可以充分利用存储节点的计算能力。
    在于它不单单是存储,同时还充分利用了存储节点上的计算能力,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡。
  2. 避免单点故障。
    同时由于Ceph的良好设计,采用了CRUSH算法、HASH环等方法,使得它不存在传统的单点故障的问题,且随着规模的扩大性能并不会受到影响。

核心组件介绍

Ceph的核心组件包括Ceph OSD、Ceph Monitor和Ceph MDS

  • Ceph OSD:

    OSD的英文全称是Object Storage Device,它的主要功能是存储数据、复制数据、平衡数据、恢复数据等,与其它OSD间进行心跳检查等,并将一些变化情况上报给Ceph Monitor。一般情况下一块硬盘对应一个OSD,由OSD来对硬盘存储进行管理,当然一个分区也可以成为一个OSD。

    Ceph OSD的架构实现由物理磁盘驱动器、Linux文件系统和Ceph OSD服务组成,对于Ceph OSD Deamon而言,Linux文件系统显性的支持了其拓展性,一般Linux文件系统有好几种,比如有BTRFS、XFS、Ext4等,BTRFS虽然有很多优点特性,但现在还没达到生产环境所需的稳定性,一般比较推荐使用XFS。

    伴随OSD的还有一个概念叫做Journal盘,一般写数据到Ceph集群时,都是先将数据写入到Journal盘中,然后每隔一段时间比如5秒再将Journal盘中的数据刷新到文件系统中。一般为了使读写时延更小,Journal盘都是采用SSD,一般分配10G以上,当然分配多点那是更好,Ceph中引入Journal盘的概念是因为Journal允许Ceph OSD功能很快做小的写操作;一个随机写入首先写入在上一个连续类型的journal,然后刷新到文件系统,这给了文件系统足够的时间来合并写入磁盘,一般情况下使用SSD作为OSD的journal可以有效缓冲突发负载。

  • Ceph Monitor:

    由该英文名字我们可以知道它是一个监视器,负责监视Ceph集群,维护Ceph集群的健康状态,同时维护着Ceph集群中的各种Map图,比如OSD Map、Monitor Map、PG Map和CRUSH Map,这些Map统称为Cluster Map,Cluster Map是RADOS的关键数据结构,管理集群中的所有成员、关系、属性等信息以及数据的分发,比如当用户需要存储数据到Ceph集群时,OSD需要先通过Monitor获取最新的Map图,然后根据Map图和object id等计算出数据最终存储的位置。

  • Ceph MDS:

    全称是Ceph MetaData Server,主要保存的文件系统服务的元数据,但对象存储和块存储设备是不需要使用该服务的。
    查看各种Map的信息可以通过如下命令:ceph osd(mon、pg) dump。

Ceph集群

Ceph存储集群至少需要1个Ceph Monitor和2个OSD守护进程。
运行Ceph文件系统客户端时,则必须要有元数据服务器(Metadata Server)。

  • 系统架构:(资料来自百度百科)

    Ceph 生态系统架构可以划分为四部分:

    1. Clients:客户端(数据用户)
    2. cmds:Metadata server cluster,元数据服务器(缓存和同步分布式元数据)
    3. cosd:Object storage cluster,对象存储集群(将数据和元数据作为对象存储,执行其他关键职能)
    4. cmon:Cluster monitors,集群监视器(执行监视功能)
  • Ceph OSDs:Ceph OSD(守护进程)的功能:

    1. 存储数据;
    2. 处理数据的复制、恢复、回填、再均衡;
    3. 通过检查其他OSD守护进程的心跳来向Ceph Monitors提供一些监控信息。
    4. 当Ceph存储集群设定为有两个副本时,至少需要2个OSD守护进程,集群才能达到active+clean状态(Ceph默认有3个副本,但你可以调整副本数。)
  • Monitors : Ceph Monitor的功能:
    维护着展示集群状态的各种图标:包括监视器映射、OSD映射、归置组(PG)映射和CRUSH映射。
    Ceph保存着发生再Monitors、OSD和PG上的每一次状态变更的历史信息(称为epoch)。

  • MDSs :
    Ceph元数据服务器(MDS)为Ceph文件系统存储元数据(也就是说,Ceph块设备和Ceph对象存储不适用MDS)。元数据服务器使得POSIX【可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX )】文件系统的用户们,可以再不对Ceph存储集群造成负担的前提下,执行诸如ls、find等基本命令。

    注释:
    Ceph把客户端数据保存为存储池内的对象。通过CRUSH算法,Ceph可以计算出哪个归置组(PG)应该持有指定的对象(Object),然后进一步计算出哪个OSD守护进程持有该归置组。CRUSH算法使得Ceph存储集群能够动态地伸缩、再均衡和修复。

  • 集群硬件推荐以及安装步骤参考官方文档。

官方资料

官方中文网

  • 文章是个人知识点整理总结,如有错误和不足之处欢迎指正。
  • 如有疑问、或希望与笔者探讨技术问题(包括但不限于本章内容),欢迎添加笔者微信(o815441)。请备注“探讨技术问题”。欢迎交流、一起进步。

以上是关于Ceph分布式存储系统简介的主要内容,如果未能解决你的问题,请参考以下文章

ceph

部署mimic版本的Ceph分布式存储系统

ceph分布式存储介绍

k8s 集群部署rook-ceph存储系统及使用

k8s 对接 ceph 实现持久化存储

k8s 对接 ceph 实现持久化存储