ceph的组件介绍

  ceph是一个开源的分布式存储系统,同时支持对象存储、块存储、文件系统

 

  ceph支持EB(1EB=1,000,000,000GB)级别的数据存储,ceph把每一个待管理的数据流(文件等数据)切分为一到多个固定大小(默认4兆)的对象存储,并以其为原子单元(原子是构成元素的的最小单元)完成数据的读写。

  ceph的底层存储服务是由多个存储主机(host)组成的存储集群,该集群也被称之为RADOS(reliable automatic distributed object store)存储集群,即可靠的、自动化的、分布式的对象存储系统。

  librados是RADOS存储集群的API,支持C/C++/JAVA/python/ruby/php/go等编程语言客户端。

  github项目地址:https://github.com/ceph/ceph

 

 

  Ceph集群角色定义

  官网文档:https://docs.ceph.com/en/latest/start/intro/

  中文官网文档:http://docs.ceph.org.cn/start/intro

 

  LIBRADOS、RADOSGW、RBD和Cephfs统称为Ceph客户端接口,RADOSGW、RBD、CephFS是基于LIBRADOS提供的多编程语言接口开发的。

  一个ceph集群的组成部分:

  若干的Ceph OSD(对象存储守护程序)

  至少需要一个Ceph Monitors监视器(1,3,5,7...)

  两个或以上的Ceph管理器managers,运行Ceph文件系统客户端时

  还需要高可用的Ceph Metedata Server(文件系统元数据服务器)

 

  RADOS cluster: 由多台host存储服务器组成的ceph集群

  OSD(Object Storage Daemon):每台存储服务器的磁盘组成的存储空间

  Mon(Monitor):ceph的监视器,维护OSD和PG的集群状态,一个Ceph集群至少需要一个mon,可以是一三五七等奇数个。

  Mgr(manager):负责跟踪运行时指标和Ceph集群的当前状态,包括存储利用率,当前性能指标和系统负载等。

 

  Monitor(ceph-mon)ceph监视器

  在一个主机上运行的一个守护进程,用于维护集群状态映射(maintains maps of the cluster state),比如ceph集群中有多少存储池,每个存储池有多少PG以及存储池和PG的映射关系等,monitor map,manager map,the OSD map,the MDS map,and the CRUSH map,这些映射是Ceph守护程序相互协调所需的关键集群状态,此外监视器还负责管理守护程序和客户端之间的身份验证(认证使用cephX协议),通常至少需要三个监视器才能实现冗余和高可用性。

 

  Managers(ceph-mgr)的功能

  在一个主机上运行的一个守护进程,Ceph Manager守护程序(ceph-mgr)负责追踪运行时指标和Ceph集群的当前状态,包括存储利用率,当前性能指标和系统负载,Ceph manager守护程序还托管基于python的模块来管理和公开Ceph集群信息,包括基于Web的Ceph仪表板和REST API,高可用性通常至少需要两个管理器。

 

  Ceph OSDs(对象存储守护程序 ceph-osd)

  提供存储数据,操作系统上的一个磁盘就是一个OSD守护程序,OSD用于处理Ceph集群数据复制,恢复,重新平衡,并通过检查其他Ceph OSD守护程序的心跳来向Ceph监视器和管理器提供一些监视信息。通常至少需要3个Ceph OSD才能实现冗余和高可用性。

 

  MDS(ceph元数据服务器ceph-mds)

  代表ceph文件系统(NFS/CIFS)存储元数据,(即Ceph块设备和Ceph对象存储不使用MDS)

 

  Ceph的管理节点

  1、ceph的常用管理接口是一组命令行工具程序,例如rados、ceph、rbd等命令,ceph管理员可以从,某个特定的ceph-mon节点执行管理操作。

  2、推荐使用部署专用的管理节点对ceph进行配置管理、升级与后期维护,方便后期权限管理,管理节点的权限只对管理人员开房,可以避免一些不必要的误操作的发生。

 

  逻辑组织架构

  Pool:存储池,分区,存储池的大小取决于底层的存储空间。

  PG(placement group):一个pool内部可以有多个PG存在,pool和PG都是抽象的逻辑概念,一个Pool中有多少个PG可以通过公式计算。

  OSD(Object Storage Daemon,对象存储设备):每一块磁盘都是一个OSD,一个主机由一个或多个osd组成。

  ceph集群部署好之后,要先创建存储池才能向ceph写入数据,文件在向ceph保存之前要进行一致性hash计算,计算后会把文件保存在某个对应的PG的,此文件一定属于某个pool的一个PG,在通过PG保存在OSD上。

  数据对象在写到OSD之后再同步对从OSD以实现数据的高可用。

 

posted @ 2023-01-15 15:47  PunchLinux  阅读(377)  评论(0编辑  收藏  举报