必须掌握的ceph知识点
1.ceph 分布式存储系统简介、版本及组件功能简介
2.ceph 数据访问流程及crush简介
3.ceph 环境初始化,部署mon节点及mgr节点
4.ceph 存储集群添加node节点
7.ceph 集群管理与维护
重启 添加OSD 删除OSD
ceph-deploy --overwrite-conf config push ceph-node2
8.ceph存储池介绍及管理、pg与pgp常见状态
分布式相关概念
分布式存储数据特性
数据的概念:
数据分为数据(data)和元数据(meta),元数据存放的是文件的相关属性信息(如:文件名、文件权限等)和文件状态等;数据存放的是文件的内容。
在分布式存储中,当客户端或者应用程序产生的数据被写入到分布式存储系统时,会有一个服务(name node)提供文件元数据的路由功能,及告诉应用程序去哪个服务器去请求文件内容,然后再有(data node)提供数据的读写请求及数据的高可用功能。
#######################################
数据分为:数据(data)和元数据(meta)
data:存放的是文件内容
meta:存放的是文件状态
分布式存储数据的过程
1. 客户端或者应用程序发送获取文件元数据的路由请求到name node服务(路由的作用:告诉客户端或者应用服务器到指定服务器请求获取文件的内容)
2、name node服务会把文件数据库的路由发送给客户端或者应用服务器端
2. 客户端或者应用服务器接收到name node的路由,根据接收到的路由信息到指定的服务器上获取文件内容
存储的特性
- 块存储:需要格式化,将文件直接保存在磁盘上
- 文件存储:提供数据存储的接口,是由操作系统针对块存储的应用, 即由操作系统提供存储接口,应用程序通过调用操作系统将文件保存到块存储进行持久化
- 对象存储:也称为基于对象的存储,其中的文件被拆分成多个部分并散布在多个存储服务器上,在对象存储中,数据会被分解称为“对象”的离散单元,并保存在单个存储库中,而不是作为文件夹中的文件或服务器上的块来保存,对象存储需要一个简单的http应用编程接口(API),以供大多数客户端使用
Ceph基础
概念:
-
ceph是一个开源的分布式存储系统,同时支持对对象存储、块设备、文件系统
-
ceph是一个对象(object)式存储系统,把每一个代管理的数据流切分为一个或者多个固定大小(默认为4M)的对象数据,并以其为原子单元完成数据的读写。
-
对象数据的底层存储服务是由多个存储主机组成的存储集群,该集群也被称之为RADOS存储集群,即可靠的、自动化的、分布式的对象存储系统
-
librados是RADOS存储集群的API访问接口
ceph集群的组成部分
- 若干的ceph OSD (对象存储守护程序)
- 至少需要一个Ceph monitors监视器
- 两个或以上的ceph管理器manager,运行ceph文件系统客户端时还需要高可用的ceph metadata server(文件系统元数据服务器)
- RADOS cluster:由多台host存储服务器组成的ceph集群
- OSD:每台存储服务器的磁盘组成的存储空间
- Mon:ceph的监视器,维护OSD和PG的集群状态,一个ceph集群至少要有一个Mon,可以是1,3,5,。。。。(奇数个)
- Mgr:负责跟踪运行时指标和ceph集群的当前状态,包括存储的利用率,当前性能指标和系统负载等
Monitor(ceph-mon)ceph监视器
在一个主机上运行的一个守护进程,用于维护集群状态映射(比如 ceph 集群中有多少存储池、每个存储池有多少 PG 以及存储池和 PG的映射关系等, monitor map, manager map, the OSD map, the MDS map, and theCRUSH 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监视器和管理器提供一些监视信息。通常至少需要三个ceph OSD才能实现冗余和高可用性。
MDS(ceph元数据服务器ceph-mds):
代表ceph文件系统(NFS/CIFS)存储元数据,(即ceph块设备和ceph对象存储不使用MDS)
ceph的管理节点
1.ceph 的常用管理接口是一组命令行工具程序,例如 rados、ceph、rbd 等命令,ceph 管
理员可以从某个特定的 ceph-mon 节点执行管理操作
2.推荐使用部署专用的管理节点对 ceph 进行配置管理、升级与后期维护,方便后期权限管
理,管理节点的权限只对管理人员开放,可以避免一些不必要的误操作的发生。
ceph逻辑组织架构
-
pool:存储池、分区,存储池的大小取决于底层的存储空间
-
PG:一个pool内部可以有多个PG存在,pool和PG都是抽象的逻辑概念,一个pool中有多少个PG可以通过公式计算。
-
OSD(对象存储设备):每一块磁盘都是一个OSD,一个主机由一个或多个OSD组成
ceph集群部署好之后,要先创建存储池才能向ceph写入数据,文件在向ceph保存之前要先进项一致性的hash计算,计算后会把文件保存在某个对应的PG的,此文件一定属于某个pool的一个PG,在通过PG保存在OSD上。数据对象在写到主OSD之后再同步对从OSD以实现数据的高可用
存储文件的过程
- 计算文件到对象的映射
- 通过hash算法计算出文件对应的pool中的PG
- 通过crush把对象映射到PG中的OSD
- PG中的主OSD将对象写入磁盘
- 主OSD将数据同步给备份OSD,并等待备份OSD返回确认
- 计算文件到对象的映射
- 通过hash算法计算出文件对应的pool中的PG
- 通过crush把对象映射到PG中的OSD
- PG中的主OSD将对象写入磁盘
- 主OSD将数据同步给备份OSD,并等待备份OSD返回确认
- 主OSD将写入完成返回给客户端
小菜鸟刚学ceph分布式存储相关的知识,写的有什么不对的地方请指出,紧跟老大的步伐学习了云原生已经有快一个月了,有的知识点听过一次,现在第二遍听感觉和理解完全不一样,有的知识你听一遍可能不知道说的啥,但是听第二遍、第三遍你的感觉完全不一样的,道路满满,还需加倍努力,加油干,涨薪摆脱月光族!欧耶