这是我第一次阅读学术论文,文章中充斥的一些学术名词给我的阅读带来了一些困难,因为此前没有接触过这方面的内容,在同学的帮助下,查阅了一些资料,终于对GFS有了一点认识,写出这一些感悟,文章措辞不严谨之处,希望谅解。

提到分布式系统,就算是外行人的我都知道Google的三驾马车,GFS正是之一。GFS是一个大型的分布式文件系统,它为Google 的云计算提供海量的存储,成为所有核心技术的底层。GFS将整个系统的节点分为三类:Client(客户端)、Master(主服务器)和Chunk Server(数据块服务器)。Client是GFS提供给应用程序的访问接口,它是一组专用接口,以库文件的形式提供。应用程序直接调用这些库函数,并与该库链接在一起。Master是GFS的管理节点,在逻辑上只有一个,它保存系统的元数据,负责整个文件系统的管理,是GFS文件系统中的核心。Chunk Server负责具体的存储工作。数据以文件的形式存储在Chunk Server上,Chunk Server的个数可以有多个,它的数目直接决定了GFS的规模。GFS将文件按照固定大小进行分块,默认是64MB,每一块称为一个Chunk,每个Chunk都有一个对应的索引号,且是唯一不变的。

与传统的分布式系统一样,GFS 同样追求高性能、高可靠性、高可用性,但同时 Google 基于自身的生产环境、技术环境,有一些自身独有的特点。首先,组件失效是常态化的,而非意外。在 GFS 成百上千的集群中,随时随地都可能发生故障导致机器无法恢复,所以,有一定的容灾、自动恢复能力是必须要整合在 GFS 中的。其次,文件巨大,GB 级别的数据非常普遍。第三,绝大多数文件的写操作都是追加,而非修改,通常的文件场景是顺序写,且顺序读。第四,应用程序和文件系统 API 的协同设计提高了整个系统的灵活性。

一个GFS集群由一个master和大量的chunkserver构成,并被许多Client访问,只要资源和可靠性允许,chunkserver和client可以运行在同一个机器上。与每个应用相联的GFS客户代码实现了文件系统的API并与master和chunkserver通信以代表应用程序读和写数据 。client与master的交换只限于对metadata的操作,所有数据方面的通信都直接和chunkserver联系 。client和chunkserver都不缓存文件数据,由于数据太多无法缓存。不缓存数据简化了客户程序和整个系统,因为不必考虑缓存的一致性问题,但用户缓存metadata。Chunkserver 也不必缓存文件,因为块是作为本地文件存储的。只有一个master也极大的简化了设计并使得master可以根据全局情况作出先进的块放置和复制决定。但是我们必须要将ma ster对读和写的参与减至最少,这样它才不会成为系统的瓶颈。Client从来不会从master读和写文件数据。client只是询问master它应该和哪个chunkserver联系。client在一段限定的时间内将这些信息缓存,在后续的操作中client直接和chunkserver交互。

当今的时代,是大数据的时代,截止到2012年,数据量已经从TB级别跃升到PB、EB乃至ZB级别,人类生产的所有印刷材料的数据量是200PB,全人类历史上说过的所有话的数据量大约是5EB,而到了2020年,全世界所产生的数据规模将达到今天的44倍,因此,可以说没有GFS就没有今天的大数据时代。

以上就是一只菜鸡对一篇论文的简单认识,如有错误之处,希望大佬们帮忙指正。

阅读GFS的一点总结的更多相关文章

  1. android rss阅读器开发一点小技巧

    这几天一直在学习开发Rss阅读器,遇到一个很坑的问题,InputSource这里总是出错.弄了好久,终于让我找到一个解决方法----看代码: new Thread(){ @Override publi ...

  2. [译]基于GPU的体渲染高级技术之raycasting算法

    [译]基于GPU的体渲染高级技术之raycasting算法 PS:我决定翻译一下<Advanced Illumination Techniques for GPU-Based Volume Ra ...

  3. Linux中检索文件

    1 , Use locate command It is a fast way to find the files location, but if a file just created ,it w ...

  4. linux管道命令grep命令参数及用法详解---附使用案例|grep

    功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...

  5. R语言:用简单的文本处理方法优化我们的读书体验

    博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 前言 延续之前的用R语言读琅琊榜小说,继续讲一下利用R语言做一些简单的文本处理.分词的事情.其实 ...

  6. Material Design学习笔记

    Wiki->移动开发->Android->Material Design-原质化设计 (友情链接:http://wiki.jikexueyuan.com/project/materi ...

  7. grep 命令操作

    linux grep命令 1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressi ...

  8. Linux grep总结(转)

    源自:http://www.cnblogs.com/end/archive/2012/02/21/2360965.html 1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表 ...

  9. C++宏和枚举

    宏 我们的计算器程序,用1234对应加减乘除,对于人阅读很产生一点障碍.隔一个月后再看此代码可能想不起是0123还是1234了,还得去代码中查找,如果能为代表四则运算的四个数取个有意义的别名就好了,一 ...

随机推荐

  1. 创建,查看,删除pool,查看,修改pool参数命令总结

    标签(空格分隔): ceph,ceph运维,pool 1. 创建pool命令: ceph的pool有两种类型,一种是副本池,一种是ec池,创建时也有所区别 1.1 创建副本池: $ sudo ceph ...

  2. Mycat-server-1.6.5 常见分片方式

    Mycat-server-1.6.5 常见分片方式 1 安装 [root@hongquan1 soft]# tar zxvf Mycat-server-1.6.5-release-2018012222 ...

  3. handlebars中的partial

    高级玩家:partial 比较推崇使用分页来实现组件化.分页跟helper一样需要先注册.在hbs模块中可以批量注册,比较简单. hbs.registerPartials(__dirname + '/ ...

  4. a(+;-;*;/)b-----demo----bai

    页面: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&qu ...

  5. web 应用 及 补充

    Highcharts 绘图配置 的函数及参数 web页面文本框修饰器 --- KindEditor web页面 之 超人性的点赞与狂踩 web页面 之 图片上传 web页面 之 评论盖楼 jQuery ...

  6. suse 源的添加与删除,以及源地址

    地址 一个是上海交大的,http://ftp.sjtu.edu.cn/opensuse/update/ 葡萄牙的: http://ftp.nux.ipb.pt/pub/dists/opensuse/u ...

  7. web.config中namespace的配置(针对页面中引用)

    1,在页面中使用强类型时: @model GZUAboutModel @using Nop.Admin.Models//命名空间(注意以下) 2,可以将命名空间提到web.config配置文件中去,此 ...

  8. jackson 进行json与java对象转换 之四

    jackson简单使用,对象转json,json转对象,json转list   POJO序列化为json字符串: 准备一个POJO: @JsonIgnoreProperties(ignoreUnkno ...

  9. mysql如何开启远程连接(默认未开启,即使密码正确,仍然无法访问)

    mysql如何开启远程连接 | 浏览:1846 | 更新:2015-03-11 20:19 1 2 3 4 5 6 分步阅读 百度经验:jingyan.baidu.com 大家在公司工作中,经常会遇到 ...

  10. List里将某字段相同的元素合并

    工作中遇到将List中某字段相同的元素合并,笔者觉得有必要记录下来,以备以后参考,好了,直接上代码 import java.util.ArrayList; import java.util.List; ...