1. 初识Ceph

1.1 Ceph核心组件

  • Ceph OSD:全称是Object Storage Device,主要功能包括存储数据,处理数据的复制,恢复,回补,平衡数据分布。并将一些相关数据提供给Ceph Monitor,例如Ceph OSD心跳等。每一个Disk,分区都可以成为一个OSD。
  • Ceph Monitor:Ceph的监控器,主要功能是维护整个集群的健康状态,提供一致性的决策,包含了Monitor map,OSD map,PG(Placement Group)map和CRUSH map。
  • Ceph MDS:全称是Ceph Metadata Server,主要保存的是Ceph文件系统的元数据。注意:Ceph的块存储和Ceph的对象存储都不需要MDS,Ceph FS需要。

一个Ceph集群至少需要一个Ceph Monitor和至少2个Ceph的OSD。

1.2 Ceph的功能特性

Ceph可以提供以下功能:

  • RADOSGW(Reliable Autonomic Distributed Object Storage Gateway)对象存储:类似AMZ S3的对象存储功能
  • RBD(Rados Block Device)块存储:通过LIBRBD创建一个块设备,通过KVM附加到VM上,作为传统的块设备来用。同时支持快照,COW(Copy On Write)等功能
  • Ceph FS(Ceph File System):一个基于RADOS来实现的分布式文件系统,引入了MDS,兼容POSIX文件系统提供元数据。可以当做文件系统来挂载。

1.3 Ceph 架构

Ceph的底层是RADOS,以上为Ceph的架构图。

  • RADOS:RADOS有自我修复等特性,提供了一个可靠,自动,智能的分布式存储
  • LIBRADOS:LIBRADOS库允许应用程序直接访问,支持C,java,Python等多种语言
  • RADOSGW:RADOSGW是一套基于RESTful协议的网关,并且兼容S3和Swift。
  • RBD:RBD通过Linux内核客户端和KVM驱动,来提供一个完全分布式的块设备。
  • Ceph FS:Ceph FS通过Linux内核客户端结合FUSE,来提供一个兼容POSFIX的文件系统。

1.4 Ceph的设计思想

Ceph的技术特性主要为以下4个方面:

  • 集群可靠性:尽可能保存数据不丢失以及数据写入过程中的可靠性
  • 集群可扩展性:包括系统规模,存储容量以及随着系统节点数增加的聚合数据访问带宽的线性扩展。
  • 数据安全性:保证硬件故障时数据不会丢失并且支持数据自动恢复,自动平衡。
  • 接口统一性:是指Ceph支持的3种存储类型

通过技术特性可知Ceph的设计思想可以总结为两点:

  • 充分发挥存储设备自身的计算能力
  • 去除所有的中心点