1. Ceph简介和特性
Ceph是一种开源的软件定义存储系统。它也是一款以对象存储技术(独立存储技术)为核心,并在此基础之上实现块存储、文件存储的分布式存储系统。
Ceph可以实现NAS和SAN以及OSS对象存储功能。
Ceph诞生于2004年,最早致力于开发下一代高性能分布式文件系统的项目。Ceph可以部署在任意x86服务器上工作,具有良好的扩展性、兼容性和可靠性。
它能对外提供文件系统服务(cephfs)、块服务(rbd)和对象存储服务(rgw),是一种统一存储系统。Ceph架构支持海量数据存储,集群可以扩展至PB容量,系统本身无热点数据,数据寻址依赖计算而不是查找,并能做到数据状态自维护,数据自修复,是一款优秀的分布式存储系统。
Ceph 项目最早起源于 Sage 就读博士期间的工作(最早的成果于2004年发表,论文发表于2006年),并随后贡献给开源社区。
ceph官网:https://ceph.com/en/
ceph文档官网:https://docs.ceph.com/en/latest
github地址:https://github.com/ceph/ceph
2.为什么 Ceph 这么火?
- 功能强大:Ceph 能够同时提供对象存储(访问是基于通过URL的方式),块存储(SAN)和文件系统存储(NAS)三种存储服务的统一存储架构
- 可扩展性:Ceph 得以摒弃了传统的集中式存储元数据寻址方式,通过内置Crush算法的寻址操作,有相当强大的扩展性
- 高可用性:Ceph 数据副本数量可以由管理员自行定义,并可以通过 Crush 算法指定副本的物理存储位置以分割故障域,支持数据强一致性的特性也使得Ceph具有了高可靠性,可以忍受多种故障场景并自动尝试
- 并行修复:RadosGW、RBD和CephFS都是RADOS存储服务的客户端,它们把RADOS的存储服务接口(librados)分别从不同的角度做了进一步的抽象,因而各自适用于不同的应用场景。
3.Ceph运行原理
Ceph 把每一个待管理的数据流(例如一个文件)切分成一到多个固定大小的对象数据,并以其为原子单元完成数据存取。(横向扩展方便,内置了副本技术,副本数默认是3。单机是无法实现Ceph,只能通过集群来实现Ceph)
Ceph通过内部的 crush 机制,实时方式计算出一个文件应该存储到哪个存储对象里面,从而实现快速查找对象的一种方式。
对象数据的底层服务是由多个主机(Host)组成的存储集群,该集群也称之为 RADOS(Reliable Automatic Distributed Object Store)存储集群,即可靠,自动化,分布式对象存储系统。
librados 是 RADOS 存储集群的 API,它支持 C、C++、Java、Python、Ruby 和PHP等编程语言。
在RADOS集群之上,Ceph构建了块存储、文件存储和对象存储等存储形态。由于RADOS集群本身是以对象为粒度进行数据存储的,因此上述三种存储形态,在最终存储数据的时候都划分为对象。也就是说,Ceph 将三种三种存储类型统一在一个平台中,从而实现了更加强大的适用性。
OSD - 对象存储守护进程 (OSD) 存储对象。
- OSD 是在存储服务器上运行的进程。OSD 负责 管理单个存储单元,通常是单个磁盘。
MON - 是Ceph监控组件(Monitor,简称 MON)负责维护集群的状态和元数据信息。
LIBRADOS - 通过自编程方式实现数据的存储能力
RADOSGW - 通过标准的RESTful接口,提供一种云存储服务
RBD - 将ceph提供的空间,模拟成一个个的独立块设备。当ceph环境部署完成之后,服务端就准备好RBD接口
CFS - 通过一个标准的文件系统接口来进行数据的存储
参考地址:https://docs.ceph.com/en/pacific/_images/stack.png
3.Ceph 组件
4.Ceph 网络模型
Ceph 生成环境中一般分为两个网段:
- 公有网络:用于用户的数据通信,用户通过公有网络来访问Ceph集群
- 集群网络:用于集群内部的管理通信,Ceph集群组件之间的通信网络,例如:数据交换
5.Ceph 版本
每个Ceph的版本都有一个英文的名称和一个数字形式的版本编号。
第一个Ceph版本编号是 0.1,发布于 2008 年 1 月,之后是 0.2,0.3,… 多年来,版本号方案一直没变。
2015 年 4月 0.94.1(Hammer 的第一个修正版)发布后,为了避免 0.99(以及0.100胡总1.00?),制定了新的策略。
x 将从 9 算起,它代表版本名称 Infernalis (I 是第九个字母),这样第九个发布周期的第一个开发版就是 9.0.0;后续的开发版依次是 9.0.1、9.0.2 等等
x.0.z - 开发版(测试环境,个人爱好可以使用)
x.1.z - 候选版(测试环境,个人爱好可以使用)
x.2.z - 稳定,修正版(生产环境使用)
Ceph 版本说明:
https://docs.ceph.com/en/latest/releases/
6.Ceph 部署方法介绍
由于Ceph组件众多以及环境复杂,所以官方提供了多种的快速部署工具和方法。
参考资料:
https://docs.ceph.com/en/pacific/install/