当前位置:   article > 正文

分布式存储概述

分布式存储

一、数据分类及存储分类

数据分为元数据和数据
分布式数据存储的实现: 元数据即是文件的属性信息(文件名、权限(属主、属组)、大小、更新时间等),元数据就是有一种路由机制,即当客户端或者应用程序产生的客户端数据被写入到分布式存储系统的时候,会有一个服务(NameNode)提供文件元数据的路由功能,即告诉应用程序去哪个服务器去请求文件内容,然后再有(DataNode)提供数据的读写请求及数据的高可用功能。
在这里插入图片描述
存储分类
块存储(RBD:RADOS BLOCK DEVICE):需要格式化,将文件直接保存到磁盘上。

文件存储(Ceph FS):提供数据存储的接口,是由操作系统针对块存储的应用,即由操作系统提供存储 接口,应用程序通过调用操作系统将文件保存到块存储进行持久化。

对象存储(RADOS:Reliable Automatic Distributed Object Store):也称为基于对象的存储,其中的文件被拆分成多个部分并散布在多个存储服务器, 在对象存储中,数据会被分解为称为“对象”的离散单元,并保存在单个存储库中,而不是 作为文件夹中的文件或服务器上的块来保存,对象存储需要一个简单的 HTTP 应用编程接 口 (API),以供大多数客户端(各种语言)使用。

二、Ceph 介绍

Ceph 是一个开源的分布式存储系统,功能包括对象存储、块设备、文件系统

Ceph 是一个对象(object)式存储系统,它把每一个待管理的数据流(文件等数据)切分为一到多 个固定大小(默认 4 兆)的对象数据,并以其为原子单元(原子是构成元素的最小单元)完成数 据的读写。

对象数据的底层存储服务是由多个存储主机(host)组成的存储集群,该集群也被称之为 RADOS(reliable automatic distributed object store)存储集群,即可靠的、自动化的、分布式的 对象存储系统。

librados 是 RADOS 存储集群的 API,支持 C/C++/JAVA/python/ruby/php 等编程语言客户端。
在这里插入图片描述

三、Ceph 架构

如果做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 的集群状态,用于发现磁盘损坏,及时更新数据
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/407870
推荐阅读
相关标签
  

闽ICP备14008679号