对 Ceph/GlusterFS/HDFS 分布式文件系统的理解

栏目: 服务器 · 发布时间: 7年前

内容简介:对 Ceph/GlusterFS/HDFS 分布式文件系统的理解

##HDFS&glusterfs&ceph 个人理解对比

  • glusterfs: 无元数据节点,兼容PAXOS接口的文件系统,可以理解无分片(无建条带层情况下),目录层次,ls等获取列表很卡,架构特点像网络协议栈,一层层处理后数据传到下一层。

  • ceph:基于RADOS,无元数据节点,基于CRUSH算法, 分片和二级映射 ,底层默认存储单位4M。个人觉得最优雅在于:monitor存储的各种表(类似kubernetes,swamkit的desired state一样), 客户端和OSD 获取这状态(单异常时,monitor会更新,主动或被动通知他们),osd和客户端就会以新表 数据自动迁移,自动修复,自动获取,即客户端和OSD之间无需通信 以规定的协议 来就好了,问题也导致了当有节点掉了,OSD之间自动不受控制的数据修复,很可能导致性能下降,甚至整个集群时间内不可用。

  • HDFS:设计目的是:大文件;商用硬件;追加写 ,少随机写;多顺序读,少随机读; 优化带宽而非延迟 等,可见应用场景不适合做docker,KVM等镜像文件这样有随机读写的。有MASTER节点来控制数据迁移,修复等,整体设计相对简单些,控制都由master。

  • 都要要回答的问题是:

    • 添加/删除节点的数据负载均衡的问题
    • 文件数据以 何种方式如何分布c存储在集群节点中,是否有元数据节点
    • 数据的多副本策略 与 一致性
    • IO读写流程

参考: 杨锦涛:主流开源存储方案孰优孰劣

ceph

介绍框架: architecture & Ceph架构剖析

  • 客户端 (无元数据节点,直接根据计算获取读写位置): client通过monitor获取CRUSH map等集群信息,用户看到的文件 根据文件位置 进行 分片 (ceph集群默认存储object:4M):通过librados库根据CRUSH算法( 二级映射 : object(ceph集群里的object)->PG->OSDS; CRUSH :根据一棵主机拓扑树,递归算出osd列表),映射到具体的OSDs 上,客户端 直接与osd通信,读写数据。
  • RADOS :Ceph Monitor 和 Ceph OSD Daemon集群核心,monitor基于paxos等维护表信息,osds状态等,类似协调系统,数据修复以PG为单位。Block Devices,Object Storage,Filesystem都在这RADOS上封装,
  • osd目前通过filestore机制,主备通过plog协议来保证一致性;因写log,多一次IO,写放大问题,下个版本默认将是 Newstore: ceph存储引擎bluestore解析 & Ceph Jewel 版本预览 : 即将到来的新存储BlueStore & BlueStore: a new, faster storage backend for Ceph 参考:
  • Ceph的IO模式分析
  • Ceph对象存储运维惊魂72小时

主要资源

HDFS&GFS

主要参考

  • 《大数据日知录》第八章 分布式文件系统
  • google论文:GFS
  • HADOOP权威指南 第三章 分布式Hadoop文件系统

####google论文 GFS要点 ####

  • 技术需求

    • 组件失败成为一种常态而不是异常
    • 文件是巨大的。大部分的文件更新模式是通过在尾部追加数据而不是覆盖现有数据,文件内部的随机写操作几乎是不存在的。 一旦写完,文件就是只读的,而且通常是顺序读。
  • 设计假设

    • 系统是由廉价的经常失败的商品化组件构建而来。
    • 系统存储了适度个数的大文件
    • 工作负载主要由两种类型的读组成:大的顺序流式读取和小的随机读取
    • 追加写 ,少随机写;多顺序读,少随机读 :工作负载有很多大的对文件数据的 append 操作,系统必须为多个客户端对相同文件并行 append 操作的定义良好。
    • 持续的高带宽比低延时更重要。
  • 设计原理

    • 数据路由分片 :分片:文件被划分成固定大小的 chunk,默认地我们存储三个备份,master记录位置;路由:client向master获取位置。
    • 简化设计 :采用元数据节点,Master 维护所有的文件系统元数据。包括名字空间,访问控制信息,文件与 chunk的映射信息, chunk 的当前位置。它也控制系统范围内的一些活动,比如 chunk租约管理, 无效 chunk 的垃圾回收, chunkserver 间的 chunk 迁移。 Master 与chunkserver 通过心跳信息进行周期性的通信,以发送指令和收集chunkserver 的状态。
    • 大的 chunk size : 降低了 client 与 master 的交互需 求,减少应用产生的负载是非常明显的,很有可能在一个给定的 chunk 上执行更多的操作,允许我们将元数据存放在内存中。
    • Master 存储了三个主要类型的元数据:文件和 chunk 名字空间,文件到 chunk的映射信息,每个 chunk 的备份的位置。
    • 租约机制 : 我们使用租约机制来保持多个副本间变更顺序的一致性。 Master 授权给其中的一个副本一个该 chunk 的租约,我们把它叫做主副本(primary)。
    • 元数据存储在内存里, master 的操作是很快的; Master 并没有永久保存 chunk 的位置信息,而是在 master启动或者某个 chunkserver 加入集群时,它会向每个 chunkserver 询问它的 chunks信息。
    • 操作日志包含了关键元数据改变的历史记录,Master 通过重新执行操作日志来恢复它的文件系统。

####HDFS####

  • 作为GFS的开源版,整体框架,使用场景类似:大文件;商用硬件;追加写 ,少随机写;多顺序读,少随机读; 优化带宽而非延迟 等。

  • 主控服务器 当点失效问题:**HA方案(NFS备份)**或 NameNode 联盟(二级名称节点)

  • HDFS详解 && 【漫画解读】HDFS存储原理英文版

  • Hdfs Design(官网)


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

大师之路

大师之路

赵鹏 / 人民邮电出版社 / 2007-12 / 79.00元

《大师之路:Photoshop中文版完全解析》以介绍Photoshop选区、图层、路径3大基础为主线,从色彩原理入手,注重基础知识,辅以大量实例,全面剖析了Photoshop的应用。对于其他内容,如色彩调整和各类工具的应用,也均采用与实际操作相结合的方式进行讲解。另外,还简单明了地介绍了扩展应用的领域。所附教学光盘的内容可自成一套独立的视频教学体系。本书完全按照初学者的认知角度编写,重点介绍图像原......一起来看看 《大师之路》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码