云计算关键技术系列之二——GFS

  由于搜索引擎需要处理海量的数据,所以Google的两位创始人Larry Page和Sergey Brin在创业初期设计一套名为“BigFiles”的文件系统,而GFS(全称为“Google File System”)这套分布式文件系统则是“BigFiles”的延续。

  技术概览

  首先,介绍它的架构,GFS主要分为两类节点:其一是Master节点,其主要存储与数据文件相关的元数据,而不是Chunk(数据块)。元数据包括一个能将64位标签映射到数据块的位置及其组成文件的表格,数据块副本位置和哪个进程正在读写特定的数据块等。还有Master节点会周期性地接收从每个Chunk节点来的更新(“Heart-beat”)来让元数据保持最新状态;其二是Chunk节点,它主要用于存储数据。在每个Chunk节点上,数据文件会以每个默认大小为64MB Chunk的方式存储,而且每个Chunk有唯一一个64位标签,并且每个Chunk都会在整个分布式系统被复制多次,默认次数为3。下图就是GFS的架构图:

  GFS的架构图

  接着,在设计上,GFS主要有八个特点:

  1.大文件和大数据块:数据文件的大小普遍在GB级别,而且其每个数据块默认大小为64MB,这样做的好处是减少了元数据的大小,从而能使Master节点能够非常方便地将元数据都放置在内存中以提升访问效率。

  2.操作以添加为主:文件很少会被删减或者覆盖,通常只是进行添加或者读取操作,这样能充分考虑到硬盘线性吞吐量大,但随机读写慢的特点。

  3.支持容错:首先,虽然当时为了设计方便,采用了单Master的方案,但是整个系统会保证Master节点会有其相对应的替身(Shadow),以便于当Master节点出现问题时进行切换。其次,在Chunk层,GFS已经在设计上将节点失败视为常态,所以能非常好地处理Chunk节点失效的问题。

  4.高吞吐量:虽然以单个节点来看,GFS的性能无论是从吞吐量还是延迟都很普通,但因为其支持上千的节点,所以总的数据吞吐量是非常惊人的。

  5.保护数据:文件被分割成固定尺寸的数据块以便于保存,而且每个数据块都会被系统至少复制三份。

  6.扩展能力强:因为元数据偏小,使得一个Master节点能控制和管理上千个存数据的Chunk节点。

  7.支持压缩:对于那些稍旧的文件,可以通过对它进行压缩,来节省硬盘空间,并且压缩率非常惊人,有时甚至接近90%。

  8.基于用户空间:GFS主要运行于系统的用户空间(User Time),虽然在效率方面,用户空间比内核空间略低,但是更便于开发和测试,还有,就是能更好利用Linux的自带的一些POSIX API。

  优劣点

  由于GFS主要是为了存储海量搜索数据而设计的,所以它在吞吐量(Throughput)和伸缩性(Scalability)这两方面表现非常优异,可谓业界的“翘楚”,但是由于其主要以64MB数据块形式存储,所以在随机访问方面速度并不优秀,虽然这点可谓是它的“软肋”,但是这本身也是其当初为了吞吐量和伸缩性所做的权衡。

  相关产品

  和MapReduce相似的是,GFS在开源界也有其对应的产品,最出名的是HDFS分布式文件系统,在功能和设计上,HDFS从GFS身上借鉴了很多东西,而且由于其本身就是Hadoop系列的一部分,所以它为了更好Hadoop这个MapReduce框架做了很多优化。

  实际用例

  现在Google内部至少运行着200多个GFS集群,最大的集群有几千台服务器,数据量是PB级别的,并且服务于多个Google服务,包括Google搜索和Google Earth等。同时,在最近几年,由于上面提到的高延迟问题,所以GFS并不很适合新的一些Google产品,比YouTube、Gmail和非常强调实时性的Caffeine搜索引擎等,所以Google已经在开发下一代GFS,代号为“Colossus”,并且在设计方面有许多不同,比如,支持分布式Master节点来提升高可用性并支撑更多文件和chunk节点能支持1MB大小的chunk以支撑低延迟应用的需要等,希望等Colossus成熟的时候,Google也能像当初GFS那样,将其设计的细节和经验拿出来和大家分享。

时间: 2024-10-12 08:35:29

云计算关键技术系列之二——GFS的相关文章

南方电网云计算关键技术项目通过阶段性验收

近日,南方电网云计算关键技术项目通过阶段性验收.项目提交了<云计算关键技术研究.验证报告>.<云计算平台总体架构设计报告>.<云计算基础设施即服务(IAAS)设计报告>.<软硬件平台架构和资源分配指导意见>等研究报告. 该项目搭建了技术验证平台,完成了虚拟化技术.平台架构技术.云管理技术等相关技术测试,为未来南方电网企业云建设技术选型提供了参考依据:提出"物理分散.管理集中"的网省两级企业云建设模式和实施规划建议,可有效指导公司IAAS层

云计算关键技术

云计算的关键技术有三大点: ⑴虚拟化技术:云计算的虚拟化技术不同于传统的单一虚拟化,它是涵盖整个IT架构的,包括资源.网络.应用和桌面在内的全系统虚拟化,它的优势在于能够把所有硬件设备.软件应用和数据隔离开来,打破硬件配置.软件部署和数据分布的界限,实现IT架构的动态化,实现资源集中管理,使应用能够动态地使用虚拟资源和物理资源,提高系统适应需求和环境的能力. 对于信息系统仿真,云计算虚拟化技术的应用意义并不仅仅在于提高资源利用率并降低 成本,更大的意义是提供强大的计算能力.众所周知,信息系统仿真

数据库防火墙关键特性系列之二丨高性能和可扩缩性

作为一个技术人,对于文字的造诣远不及对代码的掌控,笔者不擅长用华丽的辞藻表达数据库防火墙所背负的重任,在大部分人眼中,它只是一个冰冷的盒子,但笔者依然希望依靠有限的语言能力,用技术人的思维把这样一个盒子的自我进阶之路讲给你们听. 实现了高可用性,解决了最基本的能不能串接部署的问题,数据库防火墙的"人生"可以说成功了一小半,下一个人生挑战随之而来:高性能和可扩缩性. 在这里,我们还是有必要先介绍一下数据库防火墙和传统网络防火墙的根本性差异: 一.关于深度协议解析和内容分析的复杂性挑战 传

云关键技术及基于Hadoop的云计算模型研究

引言 云计算是由企业界开始发展,然后才进入学术界引起重视的,这与网格计算相反.经过对迄今为止的云计算相关学术论文进行统计分析后,显示学术界对于云 计算的研究主要集中在云技术关键技术方面.云计算研究的关键技术包括虚拟机.安全管理.数据管理.云监测.能耗管理和计算模型等.云计算的计算模型是研究 如何针对某类应用特点提出效率更高的编程方式,目前云计算模型众多,而Hadoop是一个开源的分布式系统基本架构,正日益成为具有较强实用性的开发平 台.淘宝就是国内率先使用Hadoop的公司之一. 1 云计算关键

云计算中的关键技术是什么?

云计算是一种新型的计算模式,其主要特点是在互联网存在的基础上通过动态可伸缩的虚拟化资源来进行计算.随者云计算的兴起,世界着名的IT企业如Microsoft(微软).Google(谷歌)等公司都加入到了云计算的开发当中,这对云计算的发展带来了重大的促进作用.近些年来我国也对云计算技术的开发也越来越重视,比如清华大学与谷歌公司进行合作提出了云计算学术合作计划,这项计划将能够为云计算带来更大的使用范围,同时也促进了我国云计算技术的发展.据有关数据显示,在未来云计算所占IT成本的比例将会超过30%,在各

中国云计算关键在落地

IT大佬只"云"自家"云" 云计算已经被行业IT业的大佬炒N年,现在连国家高层都开始重视.据说,云计算是科技部"十二五"期间重点关注的领域,而且科技部已经组织各方面专家着手"中国云"科技专家规划,并在"十二五".863计划中优先启动云计算关键技术与重大项目,以推动中国云计算技术发展. 云计算相关的全球全国的各类会议不知道开了多少次,各大公司提出各种解决方案,但大多各说各的,公有云.私有云,各企业有各自的解决

云计算发展进程中的六大关键技术

云计算是以数据为中心的一种数据密集型的超级计算.在数据存储.数据管理.编程模式.并发控制.系统管理等方面具有自身独特的技术. 海量分布式存储技术 为保证高可用.高可靠和经济性,云计算采用分布式存储的方式来存储数据和冗余存储的方式来保证存储数据的可靠性,从而提供廉价可靠的系统.为了满足大量用户的需求,数据存储技术必须具有高吞吐率和高传输率的特点. 云计算的数据存储系统主要有Google GFS(Google File System)和Hadoop开发团队的开源系统HDFS(Hadop Distri

云计算中心网络大容量交换机关键技术与系统”课题通过验收

近日,"十二五"863计划信息技术领域"云计算中心网络大容量交换机关键技术与系统"课题通过技术验收. 该课题由华为技术有限公司承担.该二课题取得了以下成果: 第一,创造性地采用正交架构设计,突破技术难点,省去背板走线,极大提升系统的带宽和演进能力:第二,采用创新的散热设计方案,严格的前后风道,线卡和交换网采用完全独立的风道,无级联散热,大幅提升散热效率,提升整个设备系统绿色节能水平:第三,实现独一无二的整网虚拟化功能,支持一台物理交换机虚拟成16台虚拟交换机,还支持

解析:云计算发展进程中的六大关键技术

云计算是以数据为中心的一种数据密集型的超级计算.在数据存储.数据管理.编程模式.并发控制.系统管理等方面具有自身独特的技术. 云计算六大关键技术 海量分布式存储技术 为保证高可用.高可靠和经济性,云计算采用分布式存储的方式来存储数据和冗余存储的方式来保证存储数据的可靠性,一高可靠软件来ibuyingjian呃不可靠,从而提供廉价可靠的系统.为了满足大量用户的需求,数据存储技术必须具有高吞吐率和高传输率的特点. 云计算的数据存储系统主要有Google GFS(Google File System)