初识Ceph

Ceph

Ceph:一个统一的分布式存储系统。

创新点

Ceph会成为OpenStack后端存储标配就在于它的创新点

  1. 关键创新:Ceph能够同时提供对象存储、块存储和文件系统存储三种存储服务的统一存储架构,能够满足不同应用需求前提下的简化部署和运维。

  2. Crush算法:Ceph的两大创新之一,通过Crush算法的寻址操作,Ceph得以摒弃了传统的集中式存储元数据寻址方案。而Crush算法在一致性哈希基础上很好的考虑了容灾域的隔离,使得Ceph能够实现各类负载的副本放置规则,例如跨机房、机架感知等。同时,Crush算法有相当强大的扩展性,理论上可以支持数千个存储节点,这为Ceph在大规模云环境中的应用提供了先天的便利。

  3. Ceph中的数据副本数量可以由管理员自行定义,并可以通过Crush算法指定副本的物理存储位置以分隔故障域,支持数据强一致性的特性也使Ceph具有了高可靠性,可以忍受多种故障场景并自动尝试并行修复。而Ceph本身没有主控节点,扩展起来比较容易,并且理论上,它的性能会随着磁盘数量的增加而线性增长,这又使得Ceph具备了云计算所应该拥有的高扩展性

特点

1.高性能

  1. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。
  2. 考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。
  3. 能够支持上千个存储节点的规模,支持TB到PB级的数据。

2.高可用

  1. 副本数可以灵活控制。
  2. 支持故障域分隔,数据强一致性。
  3. 多种故障场景自动进行修复自愈。
  4. 没有单点故障,自动管理。

3.高扩展性

  1. 去中心化。
  2. 扩展灵活。
  3. 随着节点增加而线性增长。

4.特性丰富

  1. 支持三种存储接口:块存储、文件存储、对象存储。
  2. 支持自定义接口,支持多种语言驱动

架构

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

在这里插入图片描述

组件

1.Monitor :一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。
2.OSD:OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。
3. MDS:MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。
4.Object:Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。
5.PG:PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。
6.RADOS:RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。
7.Libradio:Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。
8. CRUSH:CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。
9. RBD:RBD全称RADOS block device,是Ceph对外提供的块设备服务。
10. RGW:RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。
11.CephFS:CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。

存储类型

1.块存储

典型设备: 磁盘阵列,硬盘
主要是将裸磁盘空间映射给主机使用的。

优点:

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

缺点:

  1. 采用SAN架构组网时,光纤交换机,造价成本高。
  2. 主机之间无法共享数据。

使用场景:

  1. docker容器、虚拟机磁盘存储分配。
  2. 日志存储。
  3. 文件存储。

1.文件存储

典型设备: FTP、NFS服务器 为了克服块存储文件无法共享的问题,所以有了文件存储。 在服务器上架设FTP与NFS服务,就是文件存储。

优点:

  1. 造价低,随便一台机器就可以了。
  2. 方便文件共享。

缺点:

  1. 读写速率低。
  2. 传输速率慢。

使用场景:

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

3.对象存储

典型设备: 内置大容量硬盘的分布式服务器(swift, s3) 多台服务器内置大容量硬盘,安装上对象存储管理软件,对外提供读写访问功能。
优点:

  1. 具备块存储的读写高速。
  2. 具备文件存储的共享等特性。

使用场景: (适合更新变动较少的数据)

  1. 图片存储。
  2. 视频存储。

存储对比

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Crush

Crush算法特征
1.数据分布和负载均衡
2.灵活应对集群收缩
3.支持大规模集群

Crush算法因子
1.层次化Ckuster Map:反映了存储系统层级的物理拓扑结构。定义了OSD集群具有层级关系的静态拓扑结构。OSD层级使得Crush算法在选择OSD时实现了机构感知能力,也就是通过规则定义,使得副本可以分布在不同的机架、不同的机房中、提供数据的安全性。

2.Placement Rules:决定了一个PG的对象副本如何选择的规则,通过这些可以自己设定规则,用户可以自定义设置副本在集群中的分布。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42748009/article/details/111352891