您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页云计算中的分布式文件系统

云计算中的分布式文件系统

来源:好走旅游网
2012年第2期 命性技术:GFS、MapReduce和BigTable,即所谓的 代码的全文检索引擎工具包。Lucene的目标是为软 件开发人员提供一个简单易用的工具包,以实现在 Google三驾马车。Google提供了这3项技术的详细 设计论文.给业界吹来了一阵凉爽的风,为大家勾勒 出了分布式存储和计算的一个基本蓝图,从中已可 窥见其几分风韵。但终究还是由于缺少一些实现的 代码和示例,色彩有些斑驳,缺少些感性认识。 2003年1O月,Google在美国纽约召开的第19 目标系统中进行全文检索的功能。2006年3月, MapReduce和Nutch分布式文件系统(NDFS)分别 被纳入到Hadoop项目中。 吃水不忘挖井人。Hadoop是Apache软件基金 会Lucene项目创始人道・卡廷开发的。Hadoop不是 届ACM操作系统原理研讨会(SOSP)上,发表了论 缩写,它是一个虚构的名字。道・卡廷如此解释 Hadoop的由来:“这个名字是我的孩子给一头吃饱 了的棕黄色大象取的。我的命名标准就是简短、容易 发音和拼写.没有太多的意义.并且不会被用于别 文((Google文件系统》,系统介绍了Google面向大 规模数据密集型应用的、可伸缩的分布式文件系 统——GFS。由于搜索引擎需要处理海量的数据.因 而Google的两位创始人布林和佩奇在创业初期设 计了一套名为“BigFiles”的文件系统,而GFS分布 式文件系统则可以看作是“BigFiles”的延续。 2004年12月,Google在美国旧金山召开的第 处。小孩子是这方面的高手。Google就是由小孩命 名的。”Google是英文单词“Googol”按照通常的英 语拼法改写而来的,而Googol则是由美国数学家 Edward Kasner九岁的侄子Milton Sirotta发明的。 Nutch项目始于2002年.一个可以运行的网页 6届操作系统设计与实现研讨会(OSDI)上,发表了 论文((MapReduce:超大集群的简单数据处理》,向全 世界介绍了MapReduce系统的编程模式、实现、技 巧、性能和经验。 爬取工具和搜索引擎系统很快“浮出水面”。但后来, 开发者认为这一架构的可扩展性不高,无法解决数 十亿网页的搜索问题。Google公司发表的GFS论文 帮了他们大忙。文中描述的Google产品架构可以解 决他们在网页爬取和索引过程中产生的超大文件存 储需求。更为重要的是。GFS能够节省系统管理所 花的大量时间。2004年,他们开始着手开发GFS的 一2006年11月,Google在美国西雅图召开的第 7届操作系统设计与实现研讨会(OSDI)上,发表了 论文(BigTable:结构化数据的分布式存储系统》,分 析了设计用于处理海量数据的分布式结构化数据存 储系统BigTable的工作原理。 这3篇重量级论文的发表,不仅使大家理解了 Google搜索引擎背后强大的技术支撑。而且论文和 个开源实现,即Nutch分布式文件系统(NDFS)。 2004年.Google发表了与MapReduce有关的 论文。2005年初,Nutch项目开发人员在Nutch上实 现了一个MapReduce系统。2005年年中.Nutch的 所有主要算法均完成移植,可以用MapReduce和 NDFS来运行,从而成为非常优秀的分布式系统基 础架构。 相关的开源技术极大地普及了云计算中非常核心的 分布式技术。随后,克隆这3项技术的开源产品如雨 后春笋般涌现,Hadoop就是其中的一个。 作为这个领域最富盛名的开源项目之一, Hadoop的使用者也是大牌如云,包括了雅虎、亚马 逊、Facebook等。此外.Hadoop不是一个人在战斗, Nutch的NDFS和MapReduce不只适用于搜索 领域。2006年1月,道・卡廷加入了宣称“从来就不 它包含一系列扩展项目,包括分布式文件数据库 HBase(与Google的BigTable相对应,2010年5月 成为顶级Apache项目)、分布式协同服务ZooKeeper 是一家搜索公司”的雅虎.雅虎为此组织了一个专门 的团队和资源.将Hadoop发展成一个能够处理 Web数据的系统。2006年2月.开发人员将NDFS 和MapReduce移出Nutch。形成Lucene的一个子项 (与Google的Chubby相对应,由Facebook贡献)等。 Hadoop最先受到由Google开发的MapReduce 目,称为Hadoop。2008年2月,雅虎宣布其搜索引 擎使用的索引是在一个拥有1万个内核的Hadoop 集群上构建的。2009年8月,雅虎收到一个坏消息 和一个好消息:坏消息是资深搜索与基础架构工程 师道・卡廷离开雅虎,好消息是他没去Google,也没 去微软,而是加入了云计算创始人克里斯托夫・比希 和GFS的启发,由Apache软件基金会(ASF)于 2005年秋天作为Lucene的子项目Nutch的一部分 正式引入。ASF是专门为支持开源软件项目而成立 的一个非盈利性组织.而Lucene则是Apache软件 基金会jakarta项目组的一个子项目,是一个开放源 4 T零 ck(・ l1,_ 'a —一,1IlllrnmIJo‘ 2012年第2期 利亚和杰弗・哈梅联合创立的Cloudera公司。 这样,一对史上最强的黄金搭档浮出水面。 Google的论文+Hadoop的实现,顺着论文的框架看 具体的实现,用实现来进一步理解论文的逻辑.至少 看上去很美。GFS和HDFS属于两个海量分布式文 只负责宏观管理。手里握有一本全体员工的“辛德勒 名单”。 每一份文件被切分成若干个数据块,采取冗余 备份的方式存储在数据服务器中。通常,每个数据块 大小设定为64 MB。遵循西班牙人塞万提斯在《堂 件系统,而分布式文件系统在整个云计算平台中处 于最底层、最基础的地位。存储嘛,没了数据,再好的 吉诃德》中的格言:“不要把鸡蛋放在一个篮子里”, 系统将每份文件在3台数据服务器上进行冗余存 储,原文件放在一台本地数据服务器上.一份副本放 在同一机架中的另一台数据服务器上。还有一份副 本放在另一个不同机架中的一台数据服务器上.目 计算平台、再完善的数据库系统都将变成无源之水、 无本之木 的是为了提高系统的可靠性和可用性。这个64 MB, 什么是分布式文件系统?拆开来说,就是分布 式+文件系统。它包含两个方面的含义:从客户使 用角度来看,它就是一个标准的文件系统,提供了一 系列API(应用程序编程接口).能够完成文件的创 建、读写、删除和移动等操作:从内部实现角度来看, 与单机文件系统不同,它不是将数据存储在一台服 务器上,由上层操作系统来管理,而是将数据存储在 一不是随便拍脑瓜想出来的,而是经过反复实践检验 得出的。取值太大易造成热点堆叠,使得大量操作集 中在一台数据服务器上:太小又会提高附加的控制 信息传输成本。数据服务器是典型的四肢发达、头脑 简单的苦力,其主要的工作模式就是定期向主控服 务器汇报工作状况,然后等待并处理命令,更快、更 安全地做好数据的存储工作。其角色相当于公司的 台服务器集群上.由集群中的服务器来为客户提 总体来看,HDFS基本上是按照GFS架构来实 部门经理。 整个分布式文件系统还有一个重要角色是客户 端。与主控服务器和数据服务器不同,它在一个 的进程中提供服务,只是以一个类库(包)的模式存 在,为用户提供文件读写、目录操作等API。当用户 需要使用分布式文件系统进行文件读写时,只需在 客户端配置相关包就可以通过它来享受分布式文件 供服务。 现的。为了避免陷入“抄袭门”,彰显其不走寻常路的 本性,HDFS为GFS中的大部分术语都起了外号, 力求与GFS划清界限。明明都是一个菜畦撒下的种 子,GFS叫西红柿,它偏叫番茄;GFS叫土豆,它偏 叫山药蛋,搞得总是八月十五吃元宵——与众不同。 最后真正苦了我们这些菜鸟。这不,主控服务器在 GFS中叫主服务器,在HDFS中叫命名节点;数 据服务器在GFS中叫块服务器.在HDFS中叫数据 节点。 分布式文件系统的服务器包括主控服务器、数 系统提供的各项服务了。 基本的文件操作可以分成两类,一个是对文件 目录结构的操作,比如文件目录的创建、删除、移动、 重命名等;另一个是对文件数据流的操作,包括读取 和写入文件数据。在GFS中,文件的读取由大数据 量的连续读取和小数据量的随机读取组成。文件的 写入则基本上都是批量地追加写和偶尔地插入写。 GFS支持对文件进行追加写和插入写.但HDFS仅 支持追加写,从而大大降低了复杂性。 据服务器和客户端。主控服务器是整个文件系统的 大脑,它提供整个文件系统的目录信息.并且负责对 各个数据服务器的常态管理。主控服务器在整个集 群中唯我独尊,同时提供服务的只能是一个。如果它 不幸挂掉的话,会有后备军前赴后继地跟上。但在同 一由于文件目录信息全部存储在主控服务器上, 因而对文件目录的所有操作只与主控服务器和客户 时刻,需要确保一山不容二虎,这样就会免去多台 端有关。不论是文件读取,还是文件写入,主控服务 服务器间即时同步数据的麻烦,显然这也易使主控 服务器成为整个架构的瓶颈。因此.应当尽量为主控 器扮演的都是中介角色。客户端将需求提交给主控 服务器,主控服务器选择合适的数据服务器,介绍给 客户端,让客户端和数据服务器单聊,要读要写随你 们便。 文件读取是个一对一的过程。一个客户端只需 服务器减负,不让它做太多的事情.这自然而然地成 为分布式文件系统的一项设计要求。主控服务器的 角色类似于公司总经理,他是公司至高无上的领导, T睾c1c( 。一 f一 1/厂iI 衙Hn- ・而石 5 2012年第2期 与一个数据服务器建立联系,就能获得所需的内容。 但是。写入操作是个一对多的流程。一次写入,需要 彻底瘫痪、罢工。如何在主控服务器牺牲后提拔新的 主控服务器.并迅速使其进人工作状态,就成了系统 必须考虑的问题。解决策略就是日志。在HDFS中, 所有日志文件和镜像文件都是本地文件.这就相当 于主控服务器把日志锁在自家的保险柜中,一旦主 控服务器牺牲了,其他服务器无法拿到这些日志和 在所有存储相关数据块的数据服务器间都保持同步 更新。一旦有任何闪失,整个流程就会宣告失败。 如果将单机文件系统比喻成“一杯茶,一根烟, 一份参考看半天”的普通公务员。那么分布式文件系 统就是赤胆忠诚、出生入死的叔叔。在分布式环 境中,有太多的意外和无数的可能。数据随时可能发 生传输错误,服务器时刻可能牺牲,很多平时称为异 常的现象,在这里都需要按照平常事来对待。因此, 对分布式文件系统而言.仅仅满足正常状况下文件 镜像来继承王位.但主控服务器有一个备份命名节 点。作为主控服务器的替补,备份命名节点厚积薄发 随时为继位做准备,其中心工作就是定期下载并处 理日志和镜像。一旦主控服务器牺牲了,备份命名节 点即被扶正。利用其日志和镜像,恢复文件目录,并 系统的各项服务要求还不够,还需要保证各种意外 场景下健康持续的服务。否则,系统将一无是处。 在分布式环境中,服务器挂掉都是常见的事情。 牺牲不可怕,可怕的是服务器还没有料理好身后事就 已经牺牲。作为一个合格的分布式系统,HDFS当然 时刻准备好了前赴后继、奋勇向前了。HDFS有3类服 务器,每一类服务器出错了,都有相应的应急策略。 逐步接受各数据服务器的注册.最终提供稳定的文 件服务。 相比之下。GFS比较喜欢。没有过早选择 人。它在写日志时.并不局限在本地,而是同时 书写网络日志(类似于写博客或微博),即在若干个 远程服务器上生成同样的El志。然后,在某些场合, 主控服务器通过自己生成镜像,降低日志规模。当主 控服务器牺牲后,可以在拥有网络日志的服务器上 启动主控服务,使其升级成为主控服务器。 最轻如鸿毛的当属客户端了。作为文件系统的 使用者。它们属于那种放到大街上迅速就能被人流 淹没的类型,实在太普通不过了。大部分时候,客户 端牺牲了就牺牲了,没人哀泣,无人同情,追悼会也 没得开。只有在辛勤写入的时候不幸辞世(机器挂了 或者网络断了),才会引起大家的恐慌。因为此时此 刻,主控服务器上对应的文件正被该客户端独占着, 在HDFS中,即使每台服务器都健健康康地活 着,也可能会出现网络传输中的数据丢失或者错误, 且在分布式文件系统中,同一份文件的数据存在大 量冗余备份。系统必须要维护所有的数据块内容的 完全同步。否则,不同客户端读取同一个文件时会得 到不同数据,用户非得疯了不可。为了保证数据的正 确性和同一份数据的一致性,每个数据块都有一个 版本标识.一旦数据块上的数据有所变化.此版本号 将持续更新。在主控服务器上,保存有每个数据块的 最新版本.一旦出现数据服务器上相关数据块版本 与其不一致,将会触发相关的恢复流程。 负载均衡是分布式系统的一个永恒话题.目的 要让大家人尽其才,发挥优势,平衡工作量.不能忙 的忙死闲的闲死,影响战斗力。但均衡本身是一个模 糊的概念.如在分布式文件系统中,总共300个数据 块,平均分配到10台数据服务器上,就算均衡吗?不 一其他客户端无法染指.导致该文件孤孤单单守寡终 身,而客户端依然会占着茅坑不拉屎。为了解决这个 问题,租约应运而生。它是指当客户端需占用某文件 时,要与主控服务器签订一个短期合同。这个合同有 一个期限,在这个期限内,客户端可以延长合同期 限,一旦超过期限,主控服务器会强行终止此租约, 将这个文件的享用权.分配给他人。 当然,会牺牲的不只是客户端,海量的数据服务 器也随时面临崩溃的危险。一旦某数据服务器牺牲 了,且主控服务器被蒙在鼓中。它就会变相地欺骗客 户端,为客户端提供无法连接的读写服务器列表.导 致客户端处处碰壁,无法工作。因此,为了整个系统 的稳定,数据服务器必须时刻向主控服务器汇报,使 定!因为每个数据块需要若干个备份,各个备份的 分布应该充分考虑到机架的位置。同一个机架的服 主控服务器能够随时了解其健康状况。这种机制就 是心跳消息。用于证明数据服务器有生命体征.还在 喘气。 务器间通信速度更快,而分布在不同机架则更具有 安全性,不会在一棵树上吊死。因此,这里的负载均 衡,只是宽泛意义上的均衡过程。主要涵盖两个阶段 作为整个系统的核心和单点.含辛茹苦的主控 服务器如果驾鹤西去.整个分布式文件服务系统将 的工作:一是在任务初始分配时尽可能合理,二是在 (下转第24页) 6 毒 /il I l 2012年第2期 a)宿舍沿走廊两侧分布时,需在走廊两侧分别 安装水平线槽;宿舍沿走廊单侧分布时,则只需安装 一排水平线槽;考虑到成本因素,水平线槽宜采用 b)自走廊进入宿舍采用阻燃硬塑管,沿墙明敷 高校学生群体对于宽带上网的需求量极大,是 运营商争夺十分激烈的高端优质客户之一。校园网 带宽的提升既有利于提升运营商服务质量.同时可 为推动社会的信息化作出更大的贡献。 参考文献 1杨丰瑞,刘辉,张勇.通信网络规划[M].北京:人 PVC线槽。 至用户接入设备安装处。 C)在楼内原有垂直桥架旁或楼层分路箱旁等合 适位置安装垂直线槽;考虑到安全因素,垂直线槽宜 采用金属线槽。 d)对槽、管尺寸的选择可采用以下简易方式: 槽(管)截面积=(N X线缆截面积)/(70%x (40%~50%)) 民邮电出版社.2005. 2信息产业部电信研究院.YD/T 1034.2000接入网名词术 语[S],2000. 3贺 平.网络综合布线技术[M].北京:人民邮电出版 社.2010. 其中:N表示用户所要安装的多少条线(已知 数),槽(管)截面积=表示要选择的槽(管)截面积, 线缆截面积表示选用的线缆横截面积.70%表示布 线标准规定允许的空间大小,40% ̄50%表示线缆 之间浪费的空间大小。 贾 明(198l一),男,硕士,工程师,主要从事网 络规划与优化方面的工作。 收稿日期:201l一1l一16 -・・・・・_l ・ ・・・。。:・-・-一一,-・・ ・・ 、・ ’・・ ;、 :・、 ! ; 0;、!( 1_\ 一 膏 \!; 、 、 : 、 、 、 ^ ,,。 ・ ll・ ・・・・・・・ ・t・-・ (上接第6页) 既包含诸多服务器,同时又要为多个用户服务。为确 事后时刻监督,及时调整。 对于垃圾,大家都耳熟能详。在分布式文件系统 中,没有利用价值的数据块备份就是垃圾。在现实生 活中,我们提倡垃圾分类,为了更好地理解分布式文 件系统的垃圾收集,搞个分类也是非常必要的。所有 垃圾大致分为两类:一类是由系统正常逻辑产生的, 如删除某个文件后.所有与之相关的数据块都沦为 保高可靠性、经济性和可用性.云计算通常使用分布 式文件系统来存储数据,采用冗余备份的方法来提 高数据存储的可靠性。在云计算系统中,常用的数据 存储系统包括Google公司的GFS(Google文件系 统)和Hadoop团队开发的开源系统——HDFS。可 以说,分布式文件系统是整个云计算的基石,能够为 上层数据库系统(如BigTable和HBase)提供高效 可靠的数据存储。 参考文献 1 郎为民.大话云计算[M].北京:人民邮电出版社,2011. 2郎为民.大话物联网[M].北京:人民邮电出版社,2011. 垃圾:某个数据块被负载均衡器移动了,原始数据块 也不幸成了垃圾。第一类垃圾最大的特点主要体现 在主控服务器是生成垃圾的罪魁祸首。即主控服务 器完全了解哪些垃圾需要处理。另一类垃圾,是由系 统异常症状产生的.如某个数据服务器停机了一段 时间.重启后发现其他服务器上新增了某数据块的 3李德毅.云计算技术发展报告[M].北京:科学出版社, 20l1. 备份。则该数据服务器上那个过期的备份就失去了 价值,不幸沦为垃圾。此类垃圾的特点恰恰相反,主 控服务器无法直接了解到垃圾状况,需要以曲线救 国的方式来处理 郎为民(1976一),男,副教授,博士,教研室副主 任.中国通信学会会员,现为美国田纳西大学访问学 者。主要研究方向为物联网、无线认知传感器网络和 下一代移动通信系统。 收稿日期:201l一12—09 可以将云计算系统看作是一个服务器农场,它 T 患 i — 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有 赣ICP备2024042798号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务