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以实现数据的高可用。
标签:Ceph,存储,介绍,ceph,集群,PG,组件,OSD From: https://www.cnblogs.com/punchlinux/p/17053617.html