赞
踩
数据分为元数据和数据
分布式数据存储的实现: 元数据即是文件的属性信息(文件名、权限(属主、属组)、大小、更新时间等),元数据就是有一种路由机制,即当客户端或者应用程序产生的客户端数据被写入到分布式存储系统的时候,会有一个服务(NameNode)提供文件元数据的路由功能,即告诉应用程序去哪个服务器去请求文件内容,然后再有(DataNode)提供数据的读写请求及数据的高可用功能。
存储分类
块存储(RBD:RADOS BLOCK DEVICE):需要格式化,将文件直接保存到磁盘上。
文件存储(Ceph FS):提供数据存储的接口,是由操作系统针对块存储的应用,即由操作系统提供存储 接口,应用程序通过调用操作系统将文件保存到块存储进行持久化。
对象存储(RADOS:Reliable Automatic Distributed Object Store):也称为基于对象的存储,其中的文件被拆分成多个部分并散布在多个存储服务器, 在对象存储中,数据会被分解为称为“对象”的离散单元,并保存在单个存储库中,而不是 作为文件夹中的文件或服务器上的块来保存,对象存储需要一个简单的 HTTP 应用编程接 口 (API),以供大多数客户端(各种语言)使用。
Ceph 是一个开源的分布式存储系统,功能包括对象存储、块设备、文件系统
Ceph 是一个对象(object)式存储系统,它把每一个待管理的数据流(文件等数据)切分为一到多 个固定大小(默认 4 兆)的对象数据,并以其为原子单元(原子是构成元素的最小单元)完成数 据的读写。
对象数据的底层存储服务是由多个存储主机(host)组成的存储集群,该集群也被称之为 RADOS(reliable automatic distributed object store)存储集群,即可靠的、自动化的、分布式的 对象存储系统。
librados 是 RADOS 存储集群的 API,支持 C/C++/JAVA/python/ruby/php 等编程语言客户端。
如果做Ceph,一般底层就不做raid,直接raid 0
Pool:存储池、分区,存储池的大小取决于底层的存储空间。
PG(placement group):一个 pool 内部可以有多个 PG 存在,pool 和 PG 都是抽象的逻辑概念,一个 PG 内通常有三个盘(一主两备)(盘又称OSD)
一个 pool 中有多少个 PG 可以通过公式计算。
OSD(Object Storage Daemon):每一块磁盘叫做 osd,多个 osd 组成一个主机
存储池要先创建才能往 ceph 保存数据,文件在向 ceph 保存之前要先进行一致性 hash 计算, 计算后会把文件保存在某个对应的 PG 的,某个文件一定属于某个 pool 的 PG,在通过 PG 保存在 OSD 上。
CRUSH MAP:运行图,记录着PG与OSD的对应关系
数据对象在写到主 OSD 之后再同步对从 OSD 以实现数据的高可用。
存储文件过程:
第一步:把文件对象映射给 PG
第二步: 把文件对象映射被 OSD
第三步:通过 OSD 写入到硬盘
监视器 mon 维护 OSD 和 PG 的集群状态,用于发现磁盘损坏,及时更新数据
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。