ceph存储组件
- 一、ceph存储介绍
- 1、ceph介绍
- 2、ceph提供的存储接口
- 二、ceph的核心组件
- 三、crush算法
一、ceph存储介绍
分布式存储/文件系统,数据按特定的算法分散存储到不同的设备上
存在数据副本机制,保证数据的可靠性
典型的开源软件: ceph、glusterfs、hadoop、fastdfs
1、ceph介绍
基于CRUSH算法数据定位
高性能, 支持上千个节点、支持PB级数据
高扩展性
高可用性
为虚拟化平台、云平台提供后端存储
2、ceph提供的存储接口
ceph是统一的分布式文件系统
同时提供三种接口:
文件系统存储
块级别的存储
对象存储, 每个文件被称为一个对象,每个文件有一个唯一的访问地址,快速访问;适用于非结构化数据(图片、视图、音频、动画)
二、ceph的核心组件
-
Mon
作为ceph存储的访问入口
负责集群管理维护操作 -
OSD
实际负责数据读写,真实的存储设备 -
PG
OSD的分组,简化数据对象、OSD的管理 -
MDS
元数据服务,为文件系统存储提供元数据的管理 -
cephFS
文件系统存储 -
RBD
块存储 -
RadosGW
对象存储
三、crush算法
File用户需要读写的文件。File->Object映射:
ino (File的元数据,File的唯一id)。
ono(File切分产生的某个object的序号,默认以4M切分一个块大小)。
oid(object id: ino + ono)。
Object是RADOS需要的对象。Ceph指定一个静态hash函数计算oid的值,将oid映射成一个近似均匀分布的伪随机值,然后和mask按位相与,得到pgid。Object->PG映射:
hash(oid) & mask-> pgid 。
mask = PG总数m(m为2的整数幂)-1 。
PG(Placement Group),用途是对object的存储进行组织和位置映射, (类似于redis cluster里面的slot的概念) 一个PG里面会有很多object。采用CRUSH算法,将pgid代入其中,然后得到一组OSD。PG->OSD映射:
CRUSH(pgid)->(osd1,osd2,osd3) 。