ceph简介

1.  Ceph简介

Ceph是一种开源的分布式存储系统,它旨在提供高性能、高可靠性和可伸缩性的存储解决方案。

Ceph作为一个软件定义存储(SDS)系统可以在通用硬件上运行,并支持多种存储类型,包括对象存储、块存储和文件系统。

Ceph从2006年开源至今,一直是主流的分布式存储系统,已在OpenStack等系统中广泛应用,足以证明其功能的强大和稳定。  

 

2.  Ceph架构

Ceph的架构图:

                                                                          Ceph组成架构

Ceph底层是RADOS(Reliable Autonomic Distributed Object Store)。正如其名字,RADOS本身就是一个完整的对象存储系统。Ceph的高可靠、高可扩展、高性能、高自动化的特性都是由这一层所提供的,在Ceph中,所有数据都分解成对象(Object 一般为4MB大小),以对象的形式存储。

在RADOS之上,Ceph提供了块设备接口、对象存储接口、文件系统存储接口、多种语音的库,四种方式来与RADOS系统进行交互。

 

3.  RADOS组成和基础概念

3.1 Monitor组件

为了使 Ceph 集群正常运行,Ceph 客户端和 Ceph OSD 必须具有有关群集拓扑的最新信息。Ceph Monitor负责组织管理整个集群,并把集群状态以5个Map的形式记录下来,这些Map被统称为Cluster Map。同时数据分发策略均也是由Mon负责。

MON Map:记录集群信息和monitor组件信息。包含集群id、monitor ip地址、监听端口。

OSD Map:记录集群中OSD组件信息。包括OSD数量、OSD主机信息、OSD状态、权重、池(pool)列表、副本数列表、PG放置信息。

PG Map:记录集群中放置组信息。这包括PG ID、Up Set、Acting Set、PG的状态、每个池的数据使用统计信息。

CRUSH Map:记录集群中的存储设备及他们的拓扑结构(故障域层级结构)以及数据存储的层次结构规则。

MDS Map:记录用于存储元数据的池、元数据服务器列表。

3.2 OSD组件

Ceph OSD是真正管理存储数据的守护进程,它负责存储数据,处理数据复制、恢复、重新平衡。每个存储节点(主机)运行一个或多个OSD守护进程,通常一个磁盘存储设备对应一个OSD守护进程。

Ceph OSD守护程序还会确定相邻OSD是否存在,并将其报告给Ceph Monitor。这有助于使Ceph Monitor 成为轻量级进程。

3.3 MGR组件

Ceph Manager承载了许多辅助功能,如监控和插件,减轻mon的负担。

3.4 为什么说RADOS无中心节点的分布式存储

在Ceph中数据存在哪个OSD节点上是计算出来的(CRUSH算法),而非在元数据节点(中心节点)查询出来的。

 

4.  Ceph读写操作过程

Ceph的去中心化设计意味着所有组件都可以之间交流,而没有集中的瓶颈。

Ceph的OSD Daemons之间是互相感知的,每个Ceph OSD守护程序都知道集群中的其他Ceph OSD Daemon。这使得Ceph OSD守护程序可以直接与其他Ceph OSD Daemon交互,完成数据的复制(备份)。

Ceph客户端可以直接与Ceph OSD守护进程进行读写交互,而无需从中心接口二次调度。对于任何读写操作请求,Client端从Ceph Monitor获取Cluster Map之后,Client将直接与OSD进行I/O操作的交互,而不再需要Ceph Monitor干预,这使得数据读写过程更为迅速。

 

                          Ceph读写过程

                                     以Object的形式存储

                                         OSD数据复制

 

posted @ 2024-08-09 14:21  dachenyi  阅读(51)  评论(0编辑  收藏  举报