基于华为openeuler 20安装ceph集群
介绍
ceph是一款开源的SDS分布式存储,具备极高的可用性,扩展性和易用性,可以用于存储海量数据,存储节点可以部署在通用的服务器上,CPU支持x86和arm架构,存储节点之间相互通信,以便对存储的数据进行动态复制和分配。
特点
- 采用RADOS系统将所有数据作为对象,存储在存储池之中
- 采用CRUSH算法计算出对象所对应的存储位置
- 去中心化,客户端可以根据CRUSH算法自行计算出对象存储的位置,然后进行数据读写
- 集群可以自动进行扩展,数据再平衡,数据恢复等
架构
RADOS全称为Reliable Automic Distribute Distributed Object Store,是ceph的基础,是一款可靠,自主的分布式对象存储系统,有具备自我修复,自我管理的智能存储节点组成。
组件
- MON,MGR,MDS和OSD属于ceph的后端存储组件
- RADOSGW,RBD,CEPHFS以及LIBARDOS属于ceph的访问方式
数据存储机制
Monitor
monitor用于维护集群的cluster map,ceph各个组件之间的交互需要根据cluster map进行,它可以使得ceph客户端找到所有的ceph,monitor,OSD,ceph元数据服务器,cluster map包括
- monitor map
- OSD map
- PG map
- CRUSH map
- MDS map
为了保证monitor的高可用性,montior一般会以集群的方式部署,并通过一定的算法和多数服从少数的方式来保证montior之间的数据一致性。
monitor对应的进程一般会被称为mon,在生产中,mon的节点一般为单数,来保证投票仲裁机制。
monitor map包含以下信息:
- cluster的fsid,fsid是一个自动产生的,唯一的用于区别ceph的集群uuid
- 每一个mon的位置,名称,地址以及端口号
- map的时间戳
- 使用ceph mon dump可以查看monitor map的信息
OSD map包含以下信息
- cluster 的fsid
- 存储池pool的清单
- 副本数量
- PG数量
- OSD清单及其状态
- map的时间戳
- 使用ceph osd dump可以查看
PG map
- PG版本
- PG的空间占用率
- PG的详细信息
- MAP时间戳
CRUSH
- 存储设备清单
- 故障域级别
- 数据恢复规则
MDS
- 元数据存储池信息
- matadata server的清单
- matadata server的状态
manager
ceph的manager进程(ceph-mgr)用于查看ceph集群的运行状态,可以提供图形化配置页面,并可以对接第三方的管理插件,如zabbix,prometheus。数据读写不依赖manager,单无法对集群的相关数据进行查询,建议每个集群至少配置两个manager。
MDS
MDS(MetaData Server),也被叫做ceph-mds,当运行了cephFS的时候,MDS必须运行,它用来保存文件系统的元数据。
MDS使用RADOS来保存元数据,在MDS配置的时候,系统会要求创建两个存储池,分别是元数据存储池和数据存储池。MDS会将元数据加载到内存中,以加速文件系统的访问。
OSD
osd(object storage deamoen),它是存储集群的构建单元,数据的存储位置。ceph存储节点运行多个osd,osd将数据保存在裸硬盘之中,每个OSD对应一个裸磁盘。为了使得ceph的性能尽可能的接近物理设备,ceph使用crush算法将对象存储到OSD中。
CRUSH(contollerd replication under scalable hashing),用于计算对象存储的位置。CRUSH 将对象和PG进行关联,通过伪随机的算将对象分散在不同的PG之中,并计算OSD和PG之间的映射。一旦故障,ceph将PG重新映射到不同的OSD,同时将根据配置的数据保护策略进行数据同步。
ceph采用副本机制,将数据保存到不同的OSD中,用于保证数据的安全性,仅有的一个OSD会被选举为主OSD,其他OSD为从OSD,主OSD和从OSD在ceph中有着不同的功能,其中客户端进行读写的时候仅仅会和主OSD进行通信。
osd有四种状态:
- up&in 正常运行且已经承载了至少一个PG
- up&out 正常运行,但是未承载任何一个PG,新加入集群的OSD为此状态
- down&in 表示osd运行异常,但是至少承载了一个PG,该状态下OSD采取一定的措施,可能会恢复到up且in的状态
- down&out 表示osd运行异常,且不再承载任何PG
主OSD的功能包括
- 相应所有的IO请求
- 数据的复制和保护
- 坚持数据的一致性
- 数据重平衡和恢复
从OSD功能包括
- 接收主OSD的指令
- 主OSD故障后,升级为主OSD
ceph的安装
安装要求
以上为最小的安装需求
准备
1、配置主机名解析
2、关闭防火墙和selinux
3、配置时间同步
4、下载cephadmin
5、配置ceph所需的yum源
6、安装官方推荐的容器引擎
本次安装,采用华为的欧拉操作系统
准备工作,每台机器上执行
安装cephadm
在ceph-1主机上安装
在所有主机上,添加ceph所需的yum源
在所有主机上添加容器引擎所需的yum源
完成后重启
安装ceph
ceph1上,初始化ceph集群
安装完成后,使用ceph-1的ip可以登录
初次登录,因为osd没有创建,会有报错,无视
为集群添加node节点
等待系统自动将服务部署到所有节点中,时间较长,需要等待, 部署完成后状态如下
cpeh集群初始化
同时在dashbord上也能确认
其他命令
同时在dashbord上也有相关操作