admin 管理员组文章数量: 1184232
2024年1月17日发(作者:c语言编译器怎么改中文版)
⑨OpenStack高可用集群部署方案—CentOS8安装与配置Ceph集群
CentOS8安装与配置Ceph Octopus版
1. Ceph介绍
1.1 为什么要用Ceph
Ceph是当前非常流行的开源分布式存储系统,具有高扩展性、高性能、高可靠性等优点,同时提供块存储服务(rbd)、对象存储服务(rgw)以及文件系统存储服务(cephfs),Ceph在存储的时候充分利用存储节点的计算能力,在存储每一个数据时都会通过计算得出该数据的位置,尽量的分布均衡。目前也是OpenStack的主流后端存储,随着OpenStack在云计算领域的广泛使用,ceph也变得更加炙手可热。国内目前使用ceph搭建分布式存储系统较为成功的企业有x-sky,深圳元核云,上海UCloud等三家企业。
分布式存储
平台属性
系统架构
数据存储方式
元数据节点数量
数据冗余
数据一致性
分块大小
适用场景
Ceph
开源
GFS
闭源
HDFS
开源
Swift
开源
Lustre
开源
中心化架构
文件
1个
无
无
1MB
大型集群/超算
去中心化架构 中心化架构
块、文件对象 文件
多个
多副本/纠删码
强一致性
4MB
1个
多副本/纠删码
最终一致性
64MB
中心化架构 去中心化架构
文件
1个(主备)
多副本/纠删码
对象
多个
多副本/纠删码
过程一致性 弱一致性
128MB
视对象大小
频繁读写场景大文件连续/IaaS
读写
大数据场景 云的对象存储
1.2 Ceph架构介绍
Ceph使用RADOS提供对象存储,通过librados封装库提供多种存储方式的文件和对象转换。外层通过RGW(Object,有原生的API,而且也兼容Swift和S3的API,适合单客户端使用)、RBD(Block,支持精简配
置、快照、克隆,适合多客户端有目录结构)、CephFS(File,Posix接口,支持快照,社会和更新变动少的数据,没有目录结构不能直接打开)将数据写入存储。
• 高性能 a. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高 b.考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等 c. 能够支持上千个存储节点的规模,支持TB到PB级的数据
高可扩展性 a. 去中心化 b. 扩展灵活 c. 随着节点增加而线性增长
特性丰富 a. 支持三种存储接口:块存储、文件存储、对象存储 b. 支持自定义接口,支持多种语言驱动
•
•
目前来说,ceph在开源社区还是比较热门的,但是更多的是应用于云计算的后端存储。官方推荐使用ceph的对象式存储,速度和效率都比较高,而cephfs官方并不推荐直接在生产中使用。以上介绍的只是ceph的沧海一粟,ceph远比上面介绍的要复杂,而且支持很多特性,比如使用纠删码就行寻址,所以大多数在生产环境中使用ceph的公司都会有专门的团队对ceph进行二次开发,ceph的运维难度也比较大。但是经过合理的优化之后,ceph的性能和稳定性都是值得期待的。
1.3 Ceph核心概念
==RADOS==
全称Reliable Autonomic Distributed Object Store,即可靠的、自动化的、分布式对象存储系统。RADOS是Ceph集群的精华,用户实现数据分配、Failover等集群操作。
==Librados==
Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。
==Crush==
Crush算法是Ceph的两大创新之一,通过Crush算法的寻址操作,Ceph得以摒弃了传统的集中式存储元数据寻址方案。而Crush算法在一致性哈希基础上很好的考虑了容灾域的隔离,使得Ceph能够实现各类负载的副本放置规则,例如跨机房、机架感知等。同时,Crush算法有相当强大的扩展性,理论上可以支持数千个存储节点,这为Ceph在大规模云环境中的应用提供了先天的便利。
==Pool==
Pool是存储对象的逻辑分区,它规定了数据冗余的类型和对应的副本分布策略,默认存储3份副本;支持两种类型:副本(replicated)和 纠删码( Erasure
Code);
==PG==
PG( placement group)是一个放置策略组,它是对象的集合,该集合里的所有对象都具有相同的放置策略,简单点说就是相同PG内的对象都会放到相同的硬盘上,PG是 ceph的逻辑概念,服务端数据均衡和恢复的最小粒度就是PG,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据;
==Object==
简单来说块存储读写快,不利于共享,文件存储读写慢,利于共享。能否弄一个读写快,利于共享的出来呢。于是就有了对象存储。最底层的存储单元,包含元数据和原始数据。
1.4 Ceph核心组件
OSD
是负责物理存储的进程,一般配置成和磁盘一一对应,一块磁盘启动一个OSD进程。主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查,负责响应客户端请求返回具体数据的进程等;
Pool、PG和OSD的关系:
•
•
•
一个Pool里有很多PG;
一个PG里包含一堆对象,一个对象只能属于一个PG;
PG有主从之分,一个PG分布在不同的OSD上(针对三副本类型);
Monitor
一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。负责监视整个Ceph集群运行的Map视图(如OSD Map、Monitor Map、PG Map和CRUSH Map),维护集群的健康状态,维护展示集群状态的各种图表,管理集群客户端认证与授权;生产中建议最少要用3个Monitor,基数个的Monitor组成组件来做高可用。
MDS
MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。负责保存文件系统的元数据,管理目录结构。对象存储和块设备存储不需要元数据服务;
Mgr
ceph 官方开发了 ceph-mgr,主要目标实现 ceph 集群的管理,为外界提供统一的入口。例如cephmetrics、zabbix、calamari、promethus
RGW
RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。
Admin
Ceph常用管理接口通常都是命令行工具,如rados、ceph、rbd等命令,另外Ceph还有可以有一个专用的管理节点,在此节点上面部署专用的管理工具来实现近乎集群的一些管理工作,如集群部署,集群组件管理等。
1.5 Ceph三种存储类型
块存储(RBD)
优点:
•
•
•
通过Raid与LVM等手段,对数据提供了保护;
多块廉价的硬盘组合起来,提高容量;
多块磁盘组合出来的逻辑盘,提升读写效率;
缺点:
•
•
采用SAN架构组网时,光纤交换机,造价成本高;
主机之间无法共享数据;
使用场景
•
•
•
docker容器、虚拟机磁盘存储分配;
日志存储;
文件存储;
如果满足以下所有条件,则认为存储设备可用
•
•
•
•
•
•
硬盘设备必须没有分区。
设备不得具有任何LVM状态。
不得安装设备。
该设备不得包含文件系统。
该设备不得包含Ceph BlueStore OSD。
设备必须大于5 GB。
注意:Ceph拒绝在不可用的设备上配置OSD;也就是说配置OSD时,要保证挂载的硬盘设备是没有分区过的空盘
文件存储(CephFS)
优点:
•
•
造价低,随便一台机器就可以了;
方便文件共享;
缺点:
•
•
读写速率低;
传输速率慢;
使用场景
•
•
•
日志存储;
FTP、NFS;
其它有目录结构的文件存储
对象存储(Object)
适合更新变动较少的数据
优点:
•
•
具备块存储的读写高速;
具备文件存储的共享等特性;
使用场景
•
•
图片存储;
视频存储;
2. 安装与配置
2.1 环境介绍
IP地址 配置 主机名 Ceph版本
10.15.253.161 c2m8h300 cephnode01 Octopus 15.2.4
10.15.253.193 c2m8h300 cephnode02 Octopus 15.2.4
10.15.253.225 c2m8h300 cephnode03 Octopus 15.2.4
2.1.1 Ceph安装与版本选择
ceph-deploy 是用于快速部署群集的工具;社区不再积极维护ceph-deploy。仅支持Nautilus版之前的Ceph版本上进行。它不支持RHEL8,CentOS 8或更新的操作系统。
这里的系统环境是centos8系统,所以需要使用cephadm部署工具部署octopus版的ceph
2.1.2
基础环境准备
全部Ceph节点上操作;以cephnode01节点为例;
3. 添加Octopus版yum源
4. cephadm工具部署
• 在15版本,支持使用cephadm工具部署,ceph-deploy在14版本前都支持
4.1
拉取最新的cephadm并赋权
在cephnode01节点配置;
4.2
使用cephadm获取octopus最新版本并安装
已手动配置为国内yum源,不需要按官方文档的步骤再进行添加yum源
5. 创建ceph新集群
5.1
指定管理节点
创建一个可以被任何访问Ceph集群的主机访问的网络,指定mon-ip,并将生成的配置文件写进/etc/ceph目录里
可登陆URL: ,首次登陆要修改密码,进行验证
5.2
将ceph命令映射到本地
• Cephadm不需要在主机上安装任何Ceph包。但是,建议启用对ceph命令的简单访问。
• cephadm shell命令在安装了所有Ceph包的容器中启动一个bash shell。默认情况下,如果在主机上的/etc/ceph中找到配置和keyring文件,它们将被传递到容器环境中,这样就可以完全正常工作了。
查看状态
5.4
部署添加 monitor
选择需要设置mon的节点,全选
具体验证是否安装完成,其他两台节点可查看下
6. 部署OSD
6.1
查看可使用的硬盘
6.2
使用所有可用硬盘
添加单块盘的方式
6.3
验证部署情况
7. 存储部署
7.1 CephFS部署
部署cephfs的mds服务,指定集群名及mds的数量
7.2
部署RGW
创建一个领域
创建一个zonegroup区域组
创建一个区域
为特定领域和区域部署一组radosgw守护进程,这里只指定了两个节点开启rgw
验证
为RGW开启dashborad
设置dashboard凭证
重启RGW
3. ceph的监控
1. 安装grafana
部署到cephnode03上;生产环境建议单独分离
2. 安装prometheus
3. mgr、prometheus插件配置
在cephnode01上配置;
4. 配置prometheus
4.1
在scrape_configs:配置项下添加
4.2
重启prometheus服务
systemctl restart prometheus
4.3
检查prometheus服务器中是否添加成功
5.1
浏览器登录 grafana
管理界面
5.2
添加Data Sources
点击configuration--》data sources
添加prometheus
设置prometheus的访问地址
5.3
添加ceph监控模板
ceph的dashboard模板
点击HOME--》Import dashboard, 选择合适的dashboard,记录编号
检测成功
版权声明:本文标题:⑨OpenStack高可用集群部署方案—CentOS8安装与配置Ceph集群 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1705444583a485046.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论