Ceph简介
1 概念
ceph是一套可靠的、可扩展的、统一的分布式存储系统。
Ceph可以同时提供对象存储RADOSGW、块存储RBD、文件存储Ceph FS三种功能。
对象存储可以对接网盘应用业务
块存储可以对接当前主流的IaaS云平台软件,如open stack、cloudstack、zstack、eucalyptus等
文件系统文件上不成熟,官方不建议生产环境使用
2 生态
Ceph作为开源项目,遵循LGPL协议,使用C++语言开发
3 功能组件
Ceph提供了RADOS、OSD、MON、LIBRADOS、RBD、RGW、Ceph FS等功能组件,RADOS存储是支撑上层组件的基础
一个Ceph集群至少需要一个Ceph Monitor、两个Ceph的OSD。运行Ceph文件系统的客户端时必须要Ceph的MDS(元数据服务)

RADOS:
>>>
本身是一个完整的对象存储系统,具备自我修复等特性。
物理上,RADOS由大量的存储设备节点组成,每个节点拥有自己的硬件资源(CPU、内存、硬盘、网络),并运行这操作系统和文件系统
RADOS系统主要由两个部分组成:OSD和Monitor
Ceph OSD:
Object Storage Device,主要功能包括存储数据,处理数据的复制、恢复、回补、平和数据分布,并将一些相关数据提供给Ceph Monitor,如心跳等。每个disk、分区都可以成为一个OSD。
由数目可变的大柜面OSD组成集群,负责存储所有的Objects数据。
Ceph OSD操作必须在一个有效的linux分区的物理磁盘驱动器上,Linux分区可以是BTRFS、XFS或者EXT4分区。
Ceph使用日志文件系统,在提交数据到后背存储器之前,Ceph首先讲数据写入成为一个单独的存储区,该区域被称为journal,这是缓冲器分区在相同或单独磁盘作为OSD,一个单独的SSD磁盘或分区,甚至一个文件系统。在这种机制下,Ceph任何写入首先是日志,然后是后备存储。
journal持续到后备存储同步,每隔5s,journal空间越大越好。journal允许ceph osd功能很快做小的写操作,一个随机写入首先写入在上一个连续类型的journal,然后刷新到文件系统。可以使用SSD盘作为journal盘能获得相对较好的性能,所有的客户端写操作都写入到超高速SSD日志,然后刷新到磁盘。
Ceph Monitor:
Ceph的监控器,主要功能是维护整个集群健康状态,提供一致性的决策,包含了Monitor map、OSD map、PG(Placement Group) map和CRUSH map,这些map被统称为cluster map。
由少量Monitors组成的强耦合、小规模集群,负责管理cluster map。cluster map是整个RADOS系统的关键数据结构,管理集群中的所有成员、关系和属性等信息及数据的分发。
对于RADOS系统,节点组织管理和数据分发策略均由内部的Mon全权负责。
节点数为奇数,推荐为3。
Monitor Map:
包括有关monitor节点端到端的信息,其中包括ceph集群id,监控主机名和IP地址和端口号,还存储了当前版本信息以及最新更改信息。
查看集群的monitor map命令
#ceph mon dump
OSD Map:
包括一些常用信息,如集群ID,创建OSD Map的版本信息和最后修改信息,以及pool相关信息,副本书以及PGP,还包括OSD信息。
查看集群的OSD Map命令
#ceph osd dump
PG Map:
包括当前PG版本、时间戳、最新的OSD Map版本信息、空间使用比例、接近占满比例信息,同时,也包括每个PG ID、对象数目、状态、OSD的状态以及深度清理的详细信息。
查看PG Map命令
#ceph pg dump
CRUSH Map:
包括集群存储设备信息,故障域层测结构和存储数据时定义失败域规则信息。
查看CRUSH Map命令:
#ceph osd crush dump
CRUSH:
>>>
CRUSH是一种基于伪随机控制数据分布、控制的算法。在Ceph及群众,CRUSH只需要一个简洁而层次清晰的设备描述,包括存储集群和副本放置策略,就可以有效的把数据对象映射到存储设备上,且这个过程是完全分布式的,在集群系统中的任何一方都可以独立计算任何对象的位置;此外,CRUSH能够处理存储设备的变更,并最小化由于存储设备的变更而导致的数据迁移。
<<<
<<<
LIBRADOS:
>>>
LIBRADOS层的功能是对RADOS进行抽象和封装,并向上层提供API,实现的API是针对对象存储功能的。
物理上,LIBRADOS和基于其上开发的应用位于同一台机器,因而也被称为本地API。应用调用北极上的LIBRADOS API,再有后者通过socket与RADOS集群中的节点通信并完成各种操作。
<<<
RADOSGW:
>>>
RADOSGW功能特性基于LIBRADOS之上,提供当前流行的RESTful协议的网关,并兼容S3和Swift接口
<<<
RBD
>>>
RBD (Rados Block Device)功能基于LIBRADOS之上,提供了一个标准的块设备接口,通过LIBRBD创建一个块设备,通过QEMU/KVM附加到vm上,作为传统的块设备来用,同时也支持快照、COW(Copy On Write)等功能
<<<
MDS
>>>
Ceph MDS:Ceph Metadata Server,主要保存的是Ceph文件存储的元数据。Ceph的块存储和对象存储都不需要Ceph MDS。
<<<
技术特性:集群可靠性、集群扩展性、数据安全性、接口统一性
与传统的分布式数据存储相比,RADOS最大的特点如下:
a.将文件映射到Object后,利用Cluster Map通过CRUSH计算而不是查找表方式定位文件数据到存储设备中的位置。优化了传统的文件到块的映射和BlockMap管理。
b.RADOS充分利用了OSD的只能特点,将部分任务授权给OSD,最大程度的实现可扩展。
参考:《Ceph分布式存储实战》

浙公网安备 33010602011771号