ceph相关的基础知识记录
# ceph基本组件
# Object
- Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。
# OSD
- OSD全称Object Storage Device,用于集群中所有数据与对象的存储。处理集群数据的复制、恢复、回填、再均衡。并向其他osd守护进程发送心跳,然后向Mon提供一些监控信息,当Ceph存储集群设定数据有两个副本时(一共存两份),则至少需要两个OSD守护进程即两个OSD节点,集群才能达到active clean状态。
# PG
- PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。
# Monitor
- 一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。
# RADOS
- RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。
# Libradio
- Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C 支持。
# CRUSH
- CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。
# RBD
- RBD全称RADOS block device,是Ceph对外提供的块设备服务。
# RGW
- RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。
# MDS
- MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。
# CephFS
- CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。
- 存储池( Pool ): Ceph 在存储池内存储数据,它是对象存储的逻辑组;存储池管理着归置组数量、副本数量、和存储池规则集。要往存储池里存数据,用户必须通过认证、且权限合适,存储池可做快照。
- 归置组( Placement Group ): Ceph 把对象映射到归置组( PG ),归置组是一逻辑对象池的片段,这些对象组团后再存入到 OSD 。归置组减少了各对象存入对应 OSD 时的元数据数量,更多的归置组(如每 OSD 100 个)使得均衡更好。
- CRUSH 图( CRUSH Map ): CRUSH 是重要组件,它使 Ceph 能伸缩自如而没有性能瓶颈、没有扩展限制、没有单点故障,它为 CRUSH 算法提供集群的物理拓扑,以此确定一个对象的数据及它的副本应该在哪里、怎样跨故障域存储,以提升数据安全。