首页 理论教育 Google文件系统:云计算中的重要成果

Google文件系统:云计算中的重要成果

时间:2023-11-26 理论教育 版权反馈
【摘要】:GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。GFS的设计思想不同于传统的文件系统,是针对大规模数据处理和Google应用特性而设计的。表6-3GFS与传统分布式文件系统的区别1)GFS的构成GFS采用主/从模式,一个GFS由一个主服务器和大量的块服务器构成,并被许多客户访问。Client不通过Master读取数据,可避免大量读操作使Master成为系统瓶颈。

Google文件系统:云计算中的重要成果

GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它为Google云计算提供海量存储,并且与Chubby、MapReduce以及Bigtable等技术结合十分紧密,处于所有核心技术的底层。

GFS的设计思想不同于传统的文件系统,是针对大规模数据处理和Google应用特性而设计的(表6-3)。它运行于廉价的普通硬件上,但可以提供容错功能,它可以给大量的用户提供总体性能较高的服务。

表6-3 GFS与传统分布式文件系统的区别

1)GFS的构成

GFS采用主/从模式,一个GFS由一个主服务器(Master)和大量的块服务器(Chunk)构成,并被许多客户(Client)访问。GFS的系统架构如图6-8所示。

GFS将整个系统的节点分为三类角色:客户端(Client)、主服务器(Master)和数据块服务器(Chunk)。

①Client是GFS提供给应用程序的访问接口。它是一组专用接口,不遵守POSIX规范,以库文件的形式提供。应用程序直接调用这些库函数,并与该库链接在一起

②Master是GFS的管理节点。在逻辑上只有一个,它存放文件系统的所有元数据,包括名字空间、存取控制、文件分块信息、文件块的位置信息等,是GFS文件系统中的“大脑”。

③Chunk负责具体的存储工作。数据以文件的形式存储在Chunk上,Chunk的个数可以有多个,它的数目直接决定了GFS的规模。GFS将文件按照固定大小进行分块,默认是64 MB,每一块称为一个Chunk,每个Chunk都有一个对应的索引号(Index),并且每个Chunk都会在整个分布式系统被复制多次,默认为3次。

GFS将写操作控制信号和数据流分开,如图6-9所示。Client在获取Master的写授权后,将数据传输给所有的数据副本,在所有的数据副本都收到修改的数据后,Client才发出写请求控制信号。在所有的数据副本更新完数据后,由主副本向Client发出写操作完成控制信号。Client不通过Master读取数据,可避免大量读操作使Master成为系统瓶颈。

图6-8 GFS的架构图(www.xing528.com)

图6-9 写操作控制信号和数据流

2)GFS的特点

在设计上,GFS主要有8个特点:

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

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

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

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

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

⑥扩展能力强。因为元数据偏小,使一个Master节点能控制上千个存储数据的Chunk节点。

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

⑧用户空间。虽然用户空间在运行效率方面稍差,但是更便于开发和测试,还能更好地利用Linux自带的一些POSIC API。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈