Google文件系统

编辑
本词条由“匿名用户” 建档。
Google文件系统(GFS或GoogleFS)是Google内部开发的基于Linux系统的专有分布式文件系统,用于存储和处理主要来自Google搜索索引以及后来来自Gmail的大量数据。 Google文件系统知道两种类型的组件:主服务器和块服务器。前者仅保存有关文件的元信息,而后者将实际数据保存在经典Linux文件系统上。 Google文件系统将文件分成块,这样一个文件就可以在多个服务器之间共享...

Google文件系统

编辑

Google 文件系统(GFS 或 GoogleFS)是 Google 内部开发的基于 Linux 系统的专有分布式文件系统,用于存储和处理主要来自 Google 搜索索引以及后来来自 Gmail 的大量数据

Google 文件系统知道两种类型的组件:主服务器和块服务器。 前者仅保存有关文件的元信息,而后者将实际数据保存在经典 Linux 文件系统上。

Google 文件系统将文件分成块,这样一个文件就可以在多个服务器之间共享。 在第 一个版本中,每个块为 64 兆字节,而后来将大小更新为 1 MB(截至 2009 年)。

Google 文件系统的工作抽象级别高于典型的文件系统,并且只负责分发,确保数据的可用性和一致性。 它针对高吞吐量进行了优化,可以在数千台机器上的数千个硬盘上管理数百 TB 的数据。

结构

编辑

谷歌文件系统适用于网络搜索的必要要求,它会产生大量需要存储的数据。

数据连续存储在非常大的文件中,有时甚至有几千兆字节,只有在极少数情况下才会被删除、覆盖或压缩;通常附加或读出数据。

该文件系统还经过设计和优化,可以在谷歌的计算集群上运行,其节点由现成的 PC 组成。然而,这也意味着个别网络节点的高故障率和相关数据丢失必须被视为正常现象。

这也体现在不区分正常(关机)和非正常终止(崩溃):服务器进程默认使用kill命令终止。其他设计决策依赖于高数据吞吐率,即使这是以延迟为代价的。

一个 GFS 集群由一个 master 和成百上千个块服务器组成。块服务器存储文件,每个文件分成 64MB 块,类似于普通文件系统中的簇或扇区。

默认情况下,GFS 在每个集群中至少存储每个文件 3 次以防止数据丢失。如果块服务器出现故障,在文件恢复其默认副本数之前会有极小的延迟。

根据要求,数量也可以更高,例如对于可执行文件。为每个块分配一个唯 一的 64 位标识符,并保留文件到各个块的逻辑映射。

Google文件系统

master 不存储块,而是存储它们的元数据,例如文件名、文件大小、它们的存储位置和它们的副本、当前正在访问哪个块的进程等。master 接收对文件的所有请求并响应关联的块服务器并授予它们适当的进程锁。

但是,客户端可能会将块服务器的地址缓存一段时间。 当可用的副本数低于正常值时,也是主节点发起创建新的块副本。 元数据通过主节点向块服务器发送定期更新请求(“心跳消息”)来保持最新。

GFS 的设计和实现每个集群只有一个主节点。 这似乎是系统中限制其可扩展性和可靠性的缺陷,因为最 大 大小和正常运行时间取决于主服务器的能力和正常运行时间,因为它对元数据进行编目并且几乎所有请求都通过它;

然而,谷歌的技术人员通过测量表明情况并非如此(至少到目前为止)并且 GFS 的可扩展性很强。主节点通常是网络中最 强大的网络节点。为确保可靠性,有几个镜像主计算机的“影子主控”,如有必要,在主控出现故障时立即介入。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/358211/

(5)
词条目录
  1. Google文件系统
  2. 结构

轻触这里

关闭目录

目录
尊敬的全球百科用户,全球百科新系统上线了!新增排名保障卡、词条年卡,更有增值功能——百度排名保障包年服务,详情访问“glopedia.cn/261472/”关注公众号可联系人工客服。