分布式文件系统--GFS

分布式文件系统

     Google File System:是由google开发并设计的一个面向大规模数据处理的一个分布式文件系统。

我们首先来简单的说明一下这个分布式,我们都知道现在要存储的数据量越来越大,但是一台电脑的存储能力是有限的,尽管我们可以通过提高某台电脑的存储能力来解决这个问题,但是这是无法根本解决这个问题,所以我们通过很多很多台廉价的电脑来分布式存储这些数据。简单说就是把要存的文件分割成一份一份存到许多台电脑上。

为了满足Google迅速增长的数据处理需求,Google设计并实现了Google文件系统。它是有几百甚至几千台普通的廉价设备组装的存储机器。以下是一些介绍说明。

1)我们知道有这么多机器,那么这些设备中的某些机器出现故障是很常见的事情,所以在GFS集成了持续的监控、错误侦测、灾难冗 余以及自动恢复的机制。

2)我们要存的数据大小是很大,所以要是按照以往的存储文件块大小,那么就要管理数亿个KB大小的小文件,这是很不合理的,所以在这个系统里面他们定义一个文件块的大小是64M。

3)绝大部分的大数据都是采用在文件尾部追加数据的,而不是覆盖数据的。对大文件的随机写入基本上是不存在的。

     架构设计:GFS采用主/从模式,一个GFS包括一个master服务器r和多个chunk服务器。当然这里的一个master是指逻辑上的一个,物理上可以有多个(就是可能有两台,一台用于以防万一,一台用于正常的数据管理)。并且我们可以把客户端以及chunk服务器放在同一台机器上。

我们先来说明一下数据是如何存储的。我们上面说过大数据会被切分,并且单位是64M。所以在GFS中,存储的文件会被切分成固定大小的block,每当一个block被创建的时候都会由master为它分配一个全球固定的标识。chunk服务器把block以linux文件存储的形式存储在本地系统。为了可靠性,每块block可能会复制成多份存放在不同的机器节点上。并且master服务器存储着文件和block之间的位置映射已经其他一些元数据信息。

 master(就是在hadoop里面的namenode)

master管理者所有文件的元数据,比如说名字空间,block的映射位置等等。Master节点使用心跳信息周期地和每个Chunk服务器通讯,发送指令到各个Chunk服务器并接收Chunk服务器的状态信息。我们知道master是单一节点的(逻辑上)。这个是可以大大简化系统的设计。单一的master可以通过全局信息精确的定位每个block在哪个chunk服务器上以及进行复制决策。由于只有一台master,所以我们要减少对master的读写操作,避免master成为系统的瓶颈。而且master的元数据都是存储在内存当中的,这样速度处理快,但是也导致了存储的数据是有限制的。

要注意的是,客户端对数据的读写不是在master上,而是通过master获取block在chunk的位置信息,直接和chunk服务器进行数据交互读写的。我们说master是逻辑上只有一个节点,物理可能有两个。就行hadoop里面的hdfs一样,有一个namenode和secondarynamenode。另外一个正常情况下不去用,当master服务器宕机了,它就体现价值了。有点映像的感觉,当然它还有其他好多功能。

Chunk(就是hadoop里面datanode):这个才是用于存储数据的机器,文件大小为64MB,这个尺寸远远大于一般文件系统的Block size。每个block的副本都以普通Linux文件的形式保存在Chunk服务器上。Master服务器并不保存持久化保存哪个Chunk服务器存有指定block的副本的信息。Master服务器只是在启动的时候轮询Chunk服务器以获取这些信息。Master服务器能够保证它持有的信息始终是最新的,因为它控制了所有的block位置的分配,而且通过周期性的心跳信息监控 Chunk服务器的状态。

       流程:首先,客户端把文件名和程序指定的字节偏移,根据固定的block大小,转换成文件的block索 引。然后,它把文件名和block索引发送给Master节点。Master节点将相应的block标识和副本的位置信息发还给客户端。客户端用文件名和 block索引作为key缓存这些信息。之后客户端发送请求到其中的一个副本处,一般会选择最近的。请求信息包含了block的标识和字节范围。在对这个block的后续读取操作中, 客户端不必再和Master节点通讯了,除非缓存的元数据信息过期或者文件被重新打开。实际上,客户端通常会在一次请求中查询多个block信息。

hadoop是的hdfs是基于GFS设计实现的。因此它们的原理是一样。现在hadoop到处都是,所以对于GFS就总结这些,具体的介绍留着在hadoop的HDFS中说明。

参考:http://www.open-open.com/lib/view/open1328763454608.html

分布式文件系统--GFS,布布扣,bubuko.com

时间: 2024-10-11 16:55:42

分布式文件系统--GFS的相关文章

分布式文件系统之——mogilefs

本节我们将来认识下分布式文件系统,不过我主要讲的是关于其中的一个比较流行的mogilefs进行介绍,好了其他的不多说了,下面我们就开始吧. 什么是分布式文件系统? 什么是分布式文件系统(Distributed File System)?顾名思义,就是分布式+文件系统.它包含了2方面,从文件系统的客户端的角度来看,他就是一个标准的文件系统,提供了API,由此可以进行文件的创建.删除.读写等操作:从内部来看的话,分布式文件系统则与普通的文件系统不同,它不在是本地的磁盘中,它的内容和目录都不是存储在本

分布式文件系统架构GFS、HDFS、TFS、Haystack

分布式文件系统架构GFS.HDFS.TFS.Haystack 分布式文件系统很多,包括GFS,HDFS,淘宝开源的TFS,Tencent用于相册存储的TFS (Tencent FS,为了便于区别,后续称为QFS),以及Facebook Haystack. 分布式文件系统通常可以作为底层存储,如GFS作为Google bigtable的底层,EBS作为 Amazon RDS的底 层,HDFS作为HBase的底层文件系统 其中,TFS,QFS以及Haystack需要解决的问题以及架构都很类似,这三个

分布式文件系统比较出名的有HDFS? 和 GFS

分布式文件系统比较出名的有HDFS  和 GFS,其中HDFS比较简单一点.本文是一篇描述非常简洁易懂的漫画形式讲解HDFS的原理.比一般PPT要通俗易懂很多.不难得的学习资料. 1.三个部分: 客户端.nameserver(可理解为主控和文件索引,类似Linux的inode).datanode(存放实际数据) 在这里,client的形式我所了解的有两种,通过Hadoop提供的api所编写的程序可以和hdfs进行交互,另外一种就是安装了hadoop的datanode其也可以通过命令行与hdfs系

GFS分布式文件系统集群(实例!!!)

GFS分布式文件系统集群项目 群集环境 卷类型 卷名称 卷类型 空间大小 Brick dis-volume 分布式卷 40G node1(/b1).node2(/b1) stripe-volume 条带卷 40G node1(/c1).node2(/c1) rep-volume 复制卷 20G node3(/b1).node4(/b1) dis-stripe 分布式条带卷 40G node1(/d1).node2(/d1).node3(/d1).node4(/d1) dis-rep 分布式复制卷

搭建 GFS 分布式文件系统-----实操

一.GlusterFS 简介: GFS是一个可扩展的分布式文件系统,用于大型的.分布式的.对大量数据进行访问的应用.它运行于廉价的普通硬件上,并提供容错功能.它可以给大量的用户提供总体性能较高的服务. 开源的分布式文件系统:由存储服务器.客户端以及 NFS/Samba 存储网关组成:(1)GlusterFS 特点: 扩展性和高性能:高可用性:全局统一命名空间:弹性卷管理:基于标准协议(2)模块化堆栈架构: 1.模块化,堆栈式结构:2.通过对模块的组合,实现复杂的功能:3.GlusterFS 工作

KVM+GFS分布式文件系统高可用群集

GlusterFS概述 GFS是一个可扩展的分布式文件系统,用于大型的.分布式的.对大量数据进行访问的应用.它运行于廉价的普通硬件上,并提供容错功能.它可以给大量的用户提供总体性能较高的服务.开源的分布式文件系统:由存储服务器.客户端以及 NFS/Samba 存储网关组成: GlusterFS 特点: 扩展性和高性能: 高可用性: 全局统一命名空间: 弹性卷管理: 基于标准协议 模块化堆栈架构 模块化,堆栈式的结构 通过对模块的组合,实现复杂的功能 GlusterFS工作原理(流程) 弹性 HA

GFS分布式文件系统集群(理论篇)

GlusterFS概述 GlusterFS简介 开源的分布式文件系统 由存储服务器,客户端以及NFS/Samba存储网关组成 无元数据服务器 GlusterFS的特点 扩展性和高性能 高可用性 全局统一的命名空间 弹性卷管理 基于标准协议 GlusterFS术语 Brick : 存储节点 Volume : 卷 FUSE : 内核模块,用户端的交互模块 VFS : 虚拟端口 Glusterd : 服务 模块化堆栈架构 模块化.堆栈式的架构 通过对模块的组合,实现负责的功能 GlusterFS工作模

分布式文件系统---GlusterFS介绍

GlusterFS概述 GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够 支持数PB存储容量和处理数千客户端.GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据.GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提 供优异的性能. GlusterFS支持运行在任何标准IP网络上标准应用程序的标准客户端,如图2所

分布式文件系统元数据服务模型[转]

随着非结构化数据的爆炸,分布式文件系统进入了发展的黄金时期,从高性能计算到数据中心,从数据共享到互联网应用,已经渗透到数据应用的各方各面.对于大多数分布式文件系统(或集群文件系统,或并行文件系统)而言,通常将元数据与数据两者独立开来,即控制流与数据流进行分离,从而获得更高的系统扩展性和I/O并发性.因而,元数据管理模型显得至关重要,直接影响到系统的扩展性.性能.可靠性和稳定性等.存储系统要具有很高的Scale-Out特性,最大的挑战之一就是记录数据逻辑与物理位置的映像关系即数据元数据,还包括诸如