Z.S.K.'s Records

Ceph学习(架构)

Ceph简介

Ceph is a unified, distributed storage system designed for excellent performance, reliability and scalability.
Ceph是统一分布式存储系统,具有优异的性能、可靠性、可扩展性.

  • 存储系统: 提供对象存储,块存储,文件系统接口等服务
  • 分布式: 无中心节点(Monitor-Paxos,类zookeeper)
  • 统一: 所有服务基于统一的Rados

Ceph的底层是RADOS(可靠、自动、分布式对象存储),可以通过LIBRADOS直接访问到RADOS的对象存储系统。
同时基于Rados提供RBD(块设备接口)、RADOS Gateway(对象存储接口)、Ceph File System(POSIX接口)等服务。

架构介绍

ceph-c2-1

Ceph底层提供了Rados存储,用于支撑上层的librados和Rgw,Rbd,cephfs等服务.

概念介绍

  • CRUSH算法: 类一致性哈希,Ceph的基础算法,用于动态计算数据块的存储位置(一个set)因为通过算法动态计算,不需要保存所有数据块和存储位置的对应关系
  • Rados: Reliable, Autonomic Distributed Object Store, Ceph的核心存储,由Monitor及OSD组成.
  • Librados: 访问Rados的底层库,C/C++ 实现,提供Java/Python等的包装
  • OSD: Object Storage Device, Rados数据读写进程.一般每个Disk或分区对应一个OSD进程.
  • Rados Object: 任意保存至OSD的文件
  • Pool: 逻辑概念,Rados Object读写操作都是针对Pool的.
  • PG: Placement Group 放置组,Rados操作的最小粒度,由多个PG组成Pool,Object写入Pool时被指定到PG,具体由CRUSH算法计算.PG对应一到多个OSD.
  • Monitor: Ceph中的zookeeper,维护Cluster集群映射关系和配置/Auth等.当各模块有up/down等变化时,通知mon修改对应映射(osdmap,pgmap,poolmap等).这些映射和配置保存于Mon本地(leveldb),供客户端CRUSH计算

  • Rgw: Rados gateway,使Ceph对象存储兼容S3/Swift接口的进程
  • Rbd: Rados block device,Ceph对外提供的块设备服务(无实际进程),基于librados的服务协议
  • Librbd: 基于Librados的库,用于访问Ceph 块服务
  • MDS: Ceph Metadata Server,CephFS依赖的元数据处理进程
  • CephFS: Ceph File System,Ceph对外提供的文件系统服务

  • Mgr: Manager 将底层C/C++库封装为Python调用,旨在提供Plugin机制,鼓励用户开发插件满足特定需求.Dashboard/Restful-API

ceph-c2-2

Z.S.K. wechat
Scan Me To Read on Phone
I know you won't do this,but what if you did?