GFS分布式技术架构进阶.docxVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

?

?

分布式存储技术解读系列之四:

GFS分布式技术架构进阶

?

?

1.什么是GFS?

首先,我们从GFS的定义:“GoogleFileSystem(GFS)isascalabledistributedfilesystem(DFS)createdbyGoogleInc.anddevelopedtoaccommodateGoogle’sexpandingdataprocessingrequirements.GFSprovidesfaulttolerance,reliability,scalability,availabilityandperformancetolargenetworksandconnectednodes.”。当中我们可以非常明确看到GFS区别于Ceph和SWift的核心在于它是一个文件系统,但是这个文件系统又是区别于我们Linux操作系统上普通的EXT文件系统,它具有分布式架构,因此它被赋予了以下特性:

(1)扩展性(Scalability):它具备较强的架构扩展性,可以使得数据规模很容易扩展到PB级别;

(2)高可用(availability):它具备较强的集群高可用性,能解决节点故障对集群的可用性影响;

(3)容错性(FaultTolerance):它具备很强的数据容错性,能解决数据错误的问题;

除此之外,我们还要知道它的来源,它是谷歌的杰出作品,是谷歌三驾马车(GFS、BigTable、Mapreduce)三个当中的一个,而且对应着谷歌著名的三篇论文当中的一篇,支持所有谷歌服务的基石。接下来,我们从各个维度来分析究竟是什么样的架构和原理使它具备了这样的分布式特性。

2.GFS?架构原理

2.1?GFS物理架构

从物理节点角度看GFS的架构,它主要分为三个部分:Client、MasterServer、ChunkServer。应用的数据读写请求从Client端发起,先经过MasterServer查询元数据信息,得到元数据信息之后再到ChunkServer寻找数据本身或者写入数据本身。如图2.1:

图2.1GFS物理拓扑图

Client:是GFS提供给应用程序的访问接口,它是一组专用接口,以库文件的形式提供。应用程序直接调用这些库函数来获取数据的访问。它的输入仅仅需要文件名称及其在GFS系统当中的全路径。

Master:是GFS的集群管理节点,可以是主备模式,当然也可以是AA模式的集群。但是它的数据空间只有一个。它主要负责保存GFS的元数据及集群的协调管理。

Chunk:它是存储数据的节点,它可以扩展为很多。它主要负责响应客户端的实际数据读写,数据以文件的形式存储在ChunkServer上,文件组织的粒度为Chunk(默认为64M)。既然是文件系统的存储管理方式,那必然是Chunk_ID+Chunk_Address的组织管理模式。

2.2?GFSMaster

既然Master是GFS的核心管理节点,那么搞清楚Master里面的运作机制就是搞清楚GFS的必要条件,首先我们来看MasterServer存储的元数据是什么样的?我们在文章前面内容当中曾经说过,GFS排除它的分布式而言,它就是一个文件系统。既然是文件系统就会遵循文件存取的基本规则:客户端按照全路径文件名称存放或者读取文件。如图2.2.1:

图2.2.1Master命名空间图

对于MasterServer上保存的Metadata来讲,主要包含两个维度的数据,一个是文件的命名空间,它是一个树状的数据结构,也就是文件目录树。另外一方面,对于这个目录树的每一个叶子节点,也就是对应的每一个文件的元数据,它是一组Key-Value(Chunk标识,Chunk_Servers)。还有一点非常重要,那就是以上所述的Metadata,会在Master节点的内存当中保留缓存,其主要目的是为了快速返回客户端的元数据请求。

除了元数据的管理,Master还有比较重要的工作就是对ChunkServer的管理。如图2.2.2:

图2.2.2GFSMasterandChunk

Master需要和ChunkServer进行交互,从而收集一些必要信息(ChunkServer上的文件映射关系更新版本、ChunkServer节点本身以及它的磁盘及数据副本健康状况)。另外,根据收集的信息决定其下一步对ChunkServer的控制操作,包括更新自己的元数据信息,告诉ChunkServer从别的ChunkServer副本来复制完成对损坏数据的恢复,定期对数据分布的平衡性进行评估并通知ChunkServer去做数据

文档评论(0)

180****1080 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档