云计算导论 第6章 分布式文件系统

上传人:知** 文档编号:183715018 上传时间:2021-06-11 格式:PPTX 页数:44 大小:1.04MB
返回 下载 相关 举报
云计算导论 第6章 分布式文件系统_第1页
第1页 / 共44页
云计算导论 第6章 分布式文件系统_第2页
第2页 / 共44页
云计算导论 第6章 分布式文件系统_第3页
第3页 / 共44页
云计算导论 第6章 分布式文件系统_第4页
第4页 / 共44页
云计算导论 第6章 分布式文件系统_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《云计算导论 第6章 分布式文件系统》由会员分享,可在线阅读,更多相关《云计算导论 第6章 分布式文件系统(44页珍藏版)》请在金锄头文库上搜索。

1、第6章 分布式文件系统,本章介绍的是分布式文件系统,分布式文件系统是实现云计算的关键技术。本章内容包括分布式文件系统的简单介绍,以及分布式文件系统的基本架构,包含服务器、数据分布以及服务器间的协议;其次重点介绍两种分布式文件系统,分别是GFS和HDFS,包括它们的基本概念、架构设计、实现流程以及特点分析。然后提到协调器zookeeper,用来协调分布式系统的实现。最后讲解云存储的基本概念、分类、结构模型以及典型应用。通过对本章的学习,可以对分布式文件系统形成系统的认识。,第1节 概述,1、本地文件系统 文件系统是操作系统用来组织磁盘文件的方法和数据结构。 传统的文件系统指各种UNIX平台的文件

2、系统,包括UFS等,它们管理本地的磁盘存储资源,提供文件到存储位置的映射,并抽象出一套文件访问接口供用户使用。通常包含的四类信息如下。 超级块 含有整个文件系统中数据块和inode的相关信息 Inode 用来描述文件和目录的属性和文件块在块设备上的位置信息 文件内容 用户的数据,是无结构 目录内容 是目录项,是有结构,2、分布式文件系统,分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。 分布式文件系统使得分布在多个节点上的文件如同位于网络上的一个位置一样便于动态扩展和维护。,分布式文件系统发展历程,分布式文件系统的发展主要经历如下四个阶段:

3、 19801990年,早期的分布式文件系统一般以提供标准接口的远程文件访问为目的,更多地关注访问的性能和数据的可靠性; 19901995年,面对广域网和大容量存储需求,出现了xFS、Tiger Shark并行文件系统及Frangipani等分布式文件系统; 19952000年,网络技术的发展和普及极大地推动了网络存储技术的发展,基于光纤通道的SAN(存储区域网络)、NAS(网络附属存储)得到了广泛应用; 2000年以后,随着SAN和NAS两种体系结构逐渐成熟,研究人员开始考虑如何将这两种体系结构结合起来,以充分利用两者的优势。,分布式文件系统实现方法,实现分布式文件系统一般有两种方法:共享文件

4、系统(shared file system approach)和共享磁盘(shared disk approach)。 共享文件系统是实现分布式文件系统单一映象功能的传统方法,它把文件系统的功能分布到客户主机和服务器上来完成这一任务。 在共享磁盘模型中,系统中没有文件服务器,而代之以共享磁盘。共享磁盘往往是一种专用的高端存储设备,如IBM SSA 磁盘。 常见的分布式文件系统有: GFS 、 HDFS 、 Hadoop 、 Lustre 、 Ceph 、GridFS 等等,当前比较流行的包括GFS、HDFS。本章重点介绍这两种分布式文件系统。,第2节 基本架构,1、服务器介绍 分布式文件系统的

5、典型架构,其中重要的服务器包括:主控服务器(Master/Namenode)、数据服务器(ChunkServer/Datanode)和客户服务器。,主控服务器,存储目录结构的主控服务器,在GFS中称为master,在HDFS中称为namenode。 主控服务器在整个集群中,同时提供服务的只存在一个,这种设计策略,避免了多台服务器间即时同步数据的代价;而同时,它也使得主控服务器很可能成为整个架构的瓶颈所在。主要功能如下: 命名空间的维护 数据服务器管理 服务调度 主备容灾,数据服务器,每一个文件的具体数据,被切分成若干个数据块,冗余地存放在数据服务器。 数据服务器的主要工作模式就是定期向主控服务

6、器汇报其状况,然后等待并处理命令,更快更安全的存放好数据。主要功能如下: 数据本地存储 状态维护 副本管理,客户端,客户端是以一个类库(包)的模式存在,为用户提供文件读写、目录操作等APIs。当用户需要使用分布式文件系统进行文件读写的时候,可以配置客户端的相关包。客户端主要的两个功能如下: 接口 用户最终通过文件系统提供的接口来存取数据,linux环境下,提供POSIX接口的支持 缓存 为了加速文件存取过程,同时减小主控服务器的负担,可将元信息进行缓存,数据可根据业务特性缓存在本地内存或磁盘上,也可缓存在远端的cache系统上。维护缓存需考虑如何解决一致性问题及缓存替换算法,2、数据分布,在一

7、个文件系统中,最重要的数据就是整个文件系统的目录结构和具体每个文件上的数据。 具体的文件数据被切分成数据块,存放在数据服务器上。每一个文件数据块,在数据服务器上都表示为一对文件(这是普通的Linux文件),一个是数据文件,另一个是附加信息的元文件,简称为数据块文件。 数据块文件存放在数据目录下,它有一个名为current的根目录,Block类用于表示数据块,而FSDataset类是数据服务器管理文件块的数据结构。,3、服务期间协议,在Hadoop的实现中,部署了一套RPC(Remote Procedure Call Protocol ,远程过程调用协议)机制,用来实现各服务间的通信协议。,第3

8、节 GFS,GFS(Google File System)是由Google开发并设计的一个面向大规模数据处理的分布式文件系统。 集成了持续的监控、错误侦测、灾难冗余以及自动恢复的机制; 一个文件块的大小是64M; 绝大部分的大数据都是采用在文件尾部追加数据的方式。,1、架构设计,GFS采用主/从模式,一个GFS 包括一个Master服务器和多个Chunk服务器。,Master服务器,Master(主服务器)作为管理节点,保存系统的元数据,负责整个文件系统的管理。 Master节点使用心跳信息周期地和每个Chunk服务器通讯,发送指令到各个Chunk服务器并接收Chunk服务器的状态信息。 Cl

9、ient对数据的读写不是在Master上,而是通过Master获取block在chunk上的位置信息,直接和Chunk服务器进行数据交互读写。,Chunk服务器,Chunk是真正用于存储数据的机器,用来存储的文件大小为64MB,每个block的副本都以普通Linux文件的形式保存在Chunk服务器上。 Master服务器并不是持久化地保存Chunk服务器保存的指定block的副本信息。Master服务器只是在启动的时候轮询Chunk服务器以获取这些信息。,2、实现流程,Client将文件名和程序指定的字节偏移,根据固定的block大小,转换成文件的block索引; Client把文件名和blo

10、ck索引发送给master节点。Master节点将相应的block标识和副本的位置信息发还给Client。Client用文件名和 block索引作为key缓存这些信息; Client发送请求到其中的一个Chunk处,一般会选择最近的。请求信息包含了block的标识和字节范围。在对这个block的后续读取操作中,Client不必再和Master进行节点通讯,除非缓存的元数据信息过期或者文件被重新打开。实际上,Client通常会在一次请求中查询多个block信息; Chunk服务器返回给Client要读取的chunk数据。,数据的布局,GFS将文件条带化,按照类似RAID0的形式进行存储,可以提高

11、聚合带宽,将文件按固定长度切分为数据块。 创建一个数据块时,主要考虑的几个因素有以下三个方面: 优先考虑存储利用率低于平均水平的结点; 限制单个结点同时创建副本的数量; 副本尽量跨子网。,3、特点,特点,控制流和数据流的分离 Client首先访问master节点,获取交互的chunk服务器信息,然后访问这些chunk服务器,完成数据读取工作。 降低master的负载 Client和master之间只有控制流,而无数据流,这极大地降低了master的负载。 性能提高 文件被分成多个chunk进行分布式存储,client可以同时访问多个chunk服务器,从而使得整个系统的I/O高度并行 在用户态下

12、实现 GFS和操作系统是运行在不同的空间中,大大减低了两者的耦合性。,第4节 HDFS,HDFS(Hadoop Distributed File System)是Hadoop的核心子项目,是基于流数据模式进行访问和处理超大文件的需求而开发的,它可以运行于廉价的商用服务器上,为超大数据集(Large Data Set)的应用处理带来了很多便利。,1、基本概念,数据块 大文件会被分割成多个block进行存储。每一个block会在多个datanode上存储多份副本,默认是3份。HDFS默认的最基本的存储单位是64M的数据块,这个数据块可以理解和一般的文件里面的分块是一样的。 不同于普通文件系统的是,

13、HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间。,1、基本概念,元数据节点和数据节点 元数据节点(namenode)用来管理文件系统的命名空间,它将所有的文件和文件夹的元数据保存在一个文件系统树中,并且它管理文件目录、文件和block的对应关系以及block和datanode的对应关系。 数据节点(datanode)就是用来存储数据文件的。大部分容错机制都是在datanode上实现的。 从元数据节点(secondary namenode)主要的功能就是周期性地将元数据节点的命名空间镜像文件和修改日志合并,以防日志文件过大。,设计目标,错误检测和快速、自动地恢复是HDF

14、S的核心架构目标 比起关注数据访问的低延迟问题,HDFS的设计更关键的着重于数据访问的高吞吐量 HDFS应用对文件要求的是write-one-read-many访问模型 移动计算的代价比移动数据的代价要低,2、架构设计,HDFS是一个主/从体系结构,从最终用户的角度来看,它就像传统文件系统一样,可以通过目录路径对文件进行CRUD操作。,文件写入,文件读取,3、优缺点分析,优点 处理超大文件 流式地访问数据 运行与廉价的商用机器集群上,缺点 不适合低延迟数据访问; 流式地访问数据;无法高效存储大量的小文件; 不支持多用户写入及任意修改文件。,第5节 分布式应用协调器Zookeeper,1、基本概

15、念 ZooKeeper 是Hadoop 的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。,角色,领导者(leader) 学习者(learner) 跟随者(follower) 观察者(observer) 客户端(client),设计目的,ZooKeeper 的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户使用。 最终一致性 可靠性 实时性 等待无关 原子性 顺序性,2、工作原理,Zookeeper的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。

16、 Zab协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。 每个server在工作过程中有如下三种状态。 LOOKING:当前Server不知道Leader是谁,正在搜寻Leader; LEADING:当前Server即为选举出来的Leader; FOLLOWING:Leader已经选举出来,当前Server与之同步。,同步流程,3、Zookeeper对HDFS的改进,利用zookeeper可以对HDFS中namenode单点失败进行如下改进: 在HDFS 系统中配置多个namenode, 每个namenode与所有的datanode 均有联系,且向Zookeeper 注册自己的存在; 架构中加入一个角色Dispatcher,负责将读、写请求传递给活跃的namenode 执行、处理多个namenode 的同步以及互斥问题。,4、主要应用场景,配置管理 集中式的配置管理在应用集群中是非常常见的,一般商业公司内部都会实现一套集中的配置管理中心,应对不同的应用集群对于共享各自配置的需求,并且在配置变更时能够通知到集群中的每一个机器上。 Zookeeper很容易实现这种集中式的配置

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号