LOADING

加载过慢请开启缓存 浏览器默认开启

初识ceph

2025/3/12 云存储 分布式
  1. 主要架构组件
  2. 主要存储流程

Ceph /sɛf/ 一种分布式存储系统
浅薄认识:云存储的一种实现方式,多个节点分布数据。

主要架构组件

MDS (Metadata Server):负责管理文件系统的元数据(如目录结构、文件属性等)。

OSD (Object Storage Daemon):负责存储实际的文件数据,将文件分割为对象并分布到集群中。

Monitors (MON):维护集群的状态信息,如 OSD 和 MDS 的映射关系。

Clients:通过内核模块或用户空间客户端(如 FUSE)访问 CephFS。

其他:

Object:Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。

PG(Placement Grouops):逻辑概念,一个PG包含多个OSD。引入PG概念能更好的分配数据和定位数据。

RADOS(Reliable Autonomic Distributed Object Store):Ceph集群的精华,用户实现数据分配、Failover等集群操作。

Libradio:Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。

CRUSH:Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方

RBD(RADOS block device):Ceph对外提供的块设备服务。

RGW(RADOS gateway):Ceph对外提供的对象存储服务,接口与S3和Swift兼容。

CephFS(Ceph File System):是Ceph对外提供的文件系统服务。

主要存储流程

1.客户端发起写入请求

  • 客户端通过挂载的 CephFS 文件系统发起文件写入请求。

  • 请求首先发送到 MDS,获取文件的元数据信息(如文件是否存在、权限等)。

    2.MDS 处理元数据

  • MDS 检查文件的元数据:

    • 如果文件是新的,MDS 会为其分配一个唯一的 inode 号,并更新目录结构。

    • 如果文件已存在,MDS 会更新文件的元数据(如大小、修改时间等)。

  • MDS 将元数据操作记录到日志中,确保一致性。

3.数据分片和分布

  • 文件数据被分割为多个对象(默认大小为 4MB)。

  • 每个对象通过 CRUSH 算法映射到多个 OSD 上,确保数据分布均匀和冗余。

4.数据写入 OSD

  • 客户端将数据对象直接写入对应的 OSD。

  • OSD 将数据写入本地磁盘,并根据配置的副本数(如 3 副本)将数据复制到其他 OSD。

  • OSD 确认数据写入成功后,向客户端返回成功响应。

5.元数据更新完成

  • 客户端通知 MDS 文件写入完成。

  • MDS 更新文件的元数据(如文件大小、修改时间等),并确保元数据的一致性。