分布式存储系统 Ceph 介绍与环境部署

一、概述

Ceph是当前非常流行的开源分布式存储系统,具有高扩展性、高性能、高可靠性等优点,同时提供块存储服务(rbd)、对象存储服务(rgw)以及文件系统存储服务(cephfs),Ceph在存储的时候充分利用存储节点的计算能力,在存储每一个数据时都会通过计算得出该数据的位置,尽量的分布均衡。目前也是OpenStack的主流后端存储。

特点:

高性能摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。能够支持上千个存储节点的规模,支持TB到PB级的数据。
高可用性副本数可以灵活控制。支持故障域分隔,数据强一致性。多种故障场景自动进行修复自愈。没有单点故障,自动管理。
高可扩展性去中心化。扩展灵活。随着节点增加而线性增长。
特性丰富支持三种存储接口:块存储、文件存储、对象存储。支持自定义接口,支持多种语言驱动。
GitHub地址:https://github.com/ceph/ceph
官方文档:https://docs.ceph.com/en/latest/start/intro/

二、Ceph 架构
支持三种接口:

Object:有原生的API,而且也兼容Swift和S3的API。
Block:支持精简配置、快照、克隆。
File:Posix接口,支持快照。

在这里插入图片描述
RADOS——全称Reliable Autonomic Distributed Object Store,即可靠的、自动化的、分布式对象存储系统。RADOS是Ceph集群的精华,用户实现数据分配、Failover等集群操作。
Librados——Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。
MDS——存储Ceph文件系统的元数据。
三、Ceph核心组件介绍
在这里插入图片描述
OSD——OSD是负责物理存储的进程,一般配置成和磁盘一一对应,一块磁盘启动一个OSD进程。主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查,负责响应客户端请求返回具体数据的进程等。

OSD 是Ceph集群中存储实际用户数据的惟一组件,通常,一个OSD守护进程绑定到集群中的一个物理磁盘。因此,通常来说,Ceph集群中物理磁盘的总数与在每个物理磁盘上存储用户数据的OSD守护进程的总数相同。

PG——ceph中引入了PG(placement group)的概念,PG是一个虚拟的概念而已,并不对应什么实体。ceph先将object映射成PG,然后从PG映射成OSD。
在这里插入图片描述
Pool——Pool是存储对象的逻辑分区,它规定了数据冗余的类型和对应的副本分布策略,支持两种类型:副本(replicated)和 纠删码( Erasure Code)。
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),维护集群的健康状态,维护展示集群状态的各种图表,管理集群客户端认证与授权。
MDS——MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。负责保存文件系统的元数据,管理目录结构。对象存储和块设备存储不需要元数据服务; 如果不使用CephFS可以不安装。
Mgr——ceph 官方开发了 ceph-mgr,主要目标实现 ceph 集群的管理,为外界提供统一的入口。例如cephmetrics、zabbix、calamari、prometheus。
Ceph manager守护进程(Ceph -mgr)是在Kraken版本中引入的,它与monitor守护进程一起运行,为外部监视和管理系统提供额外的监视和接口。

RGW——RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。
CephFS——ceph文件系统提供了一个符合posix标准的文件系统,它使用Ceph存储集群在文件系统上存储用户数据。与RBD(块存储)和RGW(对象存储)一样,CephFS服务也作为librados的本机接口实现。
四、Ceph 三种存储类型
1)块存储服务(RBD)

块是一个字节序列(通常为 512)。 基于块的存储接口是一种成熟且常见的数据存储方式 介质包括硬盘、固态硬盘、CD、软盘,甚至磁带。 块设备接口的无处不在非常适合交互 具有包括 Ceph 在内的海量数据存储。Ceph 数据块设备可精简配置、可调整大小,并按条带方式存储数据在多个 OSD。

在这里插入图片描述

优点:

通过Raid与LVM等手段,对数据提供了保护;
多块廉价的硬盘组合起来,提高容量;
多块磁盘组合出来的逻辑盘,提升读写效率;
缺点:

采用SAN架构组网时,光纤交换机,造价成本高;
主机之间无法共享数据;
使用场景:

docker容器、虚拟机磁盘存储分配;
日志存储;
文件存储;

总结: 一个Linux内核级的块设备,允许用户像任何其他Linux块设备一样访问Ceph。

2)文件系统存储服务(CephFS)

Ceph 文件系统(CephFS),是建立在 Ceph 分布式对象存储的顶部, CephFS提供了最先进的、多用途、高度可用且高性能的文件存储在各种场景应用,包括共享home目录、FTP和NFS 共享存储等等。

在这里插入图片描述
Ceph有了块存储,为什么还需要文件系统接口呢?

主要是因为应用场景的不同,Ceph的块设备具有优异的读写性能,但不能多处挂载同时读写,目前主要用在OpenStack上作为虚拟磁盘,而Ceph的文件系统接口读写性能较块设备接口差,但具有优异的 共享性。

优点:

造价低,随便一台机器就可以了。
方便文件共享。
缺点:

读写速率低。
传输速率慢。
使用场景:

日志存储。
有目录结构的文件存储。

3)对象存储服务(RGW)

Ceph 对象网关 是构建在 librados.它在应用程序和 Ceph 之间提供了一个 RESTful 网关。 存储集群。 Ceph 对象存储 支持两种接口:

S3 兼容: 通过接口提供对象存储功能 与 Amazon S3 RESTful API 的大部分子集兼容。
快速兼容: 通过接口提供对象存储功能 与 OpenStack Swift API 的一大块子集兼容。

在这里插入图片描述
优点:

具备块存储的读写高速。
具备文件存储的共享等特性。
使用场景:

图片存储。
视频存储。
五、Ceph版本发行生命周期
Ceph从Nautilus版本(14.2.0)开始,每年都会有一个新的稳定版发行,预计是每年的3月份发布,每年的新版本都会起一个新的名称(例如,“Mimic”)和一个主版本号(例如,13 代表 Mimic,因为“M”是字母表的第 13 个字母)。

版本号的格式为x.y.z,x表示发布周期(例如,13 代表 Mimic,17代表Quincy),y表示发布版本类型,即

x.0.z - y等于0,表示开发版本
x.1.z - y等于1,表示发布候选版本(用于测试集群)
x.2.z - y等于2,表示稳定/错误修复版本(针对用户)
在Octopus版本后使用cephadm来部署ceph集群,如果使用cephadm部署,在后期新的版本升级时,可以做到完全自动化,并可以通过ceph -W cephadm查看升级进度,升级完成后,无法降级,升级时请不要跨版本升级,例如:当前使用Octopus升级到Quincy,要先把Octopus升级到Pacific,然后在升级至Quincy,这是最稳妥的方式。

稳定版本的生命周期在第一个发布月份后,大约2年时间将停止该版本的更新维护,具体版本发布时间见下表。

在这里插入图片描述
六、Ceph 集群部署
Ceph的部署工具:

ceph-deploy:官方的部署工具,不再积极维护ceph-deploy。它不支持RHEL8,CentOS 8或更新的操作系统。
ceph-ansible:红帽的部署工具
ceph-chef:利用chef进行自动部署Ceph的工具
puppet-ceph:puppet的ceph模块
cephadm——cephadm 仅支援 Octopus 及更新版本(推荐)。
1)集群部署规划

在这里插入图片描述
monitor:Ceph监视管理节点,承担Ceph集群重要的管理任务,一般需要3或5个节点。
mgr: Ceph 集群管理节点(manager),为外界提供统一的入口。
rgw: Ceph对象网关,是一种服务,使客户端能够利用标准对象存储API来访问Ceph集群。
mds:Ceph元数据服务器,MetaData Server,主要保存的文件系统服务的元数据,使用文件存储时才需要该组件。
osd:Ceph存储节点Object Storage Daemon,实际负责数据存储的节点。
2)前期准备
1、关闭filewalld服务

systemctl stop firewalld.service
systemctl disable firewalld.service

2、关闭并禁用SELinux

sed -i 's/^SELINUX=enforcing$
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值