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底层提供了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