Google File System II: Dawn of the Multiplying Master Nodes

谷歌定制的文件系统迫于前所未有的压力,因此谷歌酝酿着一个替代产品。

很明显,作为早些时候宣布的“caffeine”架构的一部分,GFS的全面修改正处于测试阶段。

在ACM的一次访谈中,Google的Sean Quinlan说,GFS诞生近10年来已经做了许多超出其预期的工作。

“考虑到Google的操作的数量级已经远远超过其设计能力,它的持久力是极为突出的。尽管谷歌目前支持的应用程序组合不是在90年代末期所能想象的到的。”Quinlan说道。Quinlan是曾任职GFS的技术leader两年,目前是Google的首席工程师。

然而GFS可以更好的支持一部分应用。GFS设计用于处理诸如web抓取和索引等批量作业,因此并不适用于Gmail和YouTube等需要与用户实时交互数据的应用。

“高带宽比低延迟更加重要”,GFS论文中提到。“大多数目标应用是以较高速率处理大量数据,极少有对单个读写操作的严格的响应时间需求。”但是这种情况在过去10年中发生了变化,退一步说,虽然Google一直致力于其面向公众的应用程序以使GFS的缺点最小化,但是Quinlan 和公司正重新研发一种新的文件系统。

GFS中,一个主节点(master node)监督数据在一系列分布式chunkservers之间的传播。Chunkservers中存储着数据块,每块64MB。

问题是(至少是对于要求低延迟的应用)只有一个主节点。Quinlan指出,“GFS的一个缺点与其原始设计有关,单个点的故障对于批量处理的应用来说未必造成严重后果,但是对于对延迟要求较高的应用(如视频服务)是不可接受的。”

最开始,GFS甚至没有针对主节点崩溃的故障恢复机制。必须收工恢复主节点,以致服务中断达一个小时。后来添加了自动故障恢复机制,仍存在明显的服务中断。据Quinlan所说,中断开始时有几分钟,目前已降到大约10秒钟。

这仍然很高。

“尽管这几个实例(必须提供故障恢复和错误恢复)对于批处理情况是可接受的,但是从面向用户的应用的延迟的角度来看确实不可接受的。”

甚至系统正常运行,仍存在延迟。“在设计时,有些地方为了提高吞吐量,我们把成千上万的操作加入队列中并处理它们。这样有较高的吞吐量,却牺牲了延迟。经常会遇到等待几秒钟才执行作业的情况。”

GFS与MapReduce(Google的分布式数据分析平台)吻合很好。但是看来Google已经直接跳到BigTable(Google的实时分布式数据库)了。目前,BigTable处理大多数负载。

“我们的用户基础正从基于MapReduce的世界向基于BigTable的交互世界迁移。Gmail就是一个明显的例子。就GFS而言,视频应用倒是显得没那么严重,因为视频使用流数据,这意味着可以缓存。尽管如此,试图在一个设计用于批处理环境的文件系统的基础上建立一个交互式的数据库总是不合时宜的。”

另一个问题是,单个主节点只能处理有限数量的文件。主节点中存储着chunkservers中文件的元数据,其上限是主节点的存储大小。换句话说,一个主节点可容纳的文件数是有限的。

Google在其新的文件系统GFS II中解决了这两个问题。Quinlin和他的团队正在研发一个不仅拥有分布式从节点(slaves),而且拥有分布式主节点的系统。它的从节点可以存储更小的文件。块从64MB减小到1MB。

这主要考虑了单点故障,但在某种程度上也解决了文件数量问题。更多的主节点不仅意味着提供了冗余,同时还可以存储更多的元数据。Quinlan提到:“分布式主节点允许你增加文件数量,这与机器数量一致。

Quinlan提出,文件缩小至1MB让我们可以适应未来10年的变化。“我的直觉是平均1MB的文件大小要比平均64MB文件大小适用于更多的情况。理论上讲,你可能会想到一个拥有更小文件大小的设计方案,但是1MB在我们的环境中貌似一个不错的折中选择。”

为什么Google一开始不把GFS设计成分布式主节点呢?Quinlan认为这并不是疏忽。

Quinlan说:“单主节点方案是最初决定中的一个,主要是为了简化整体设计。也就是说,从一开始就研发一种拥有分布式主节点的文件系统是非常困难的且研发周期将非常长。”

“同时,单主节点方案对工程师们来说可以简化许多问题。集中控制同步(replication)和垃圾回收,许多其他活动也更加简单。”

因此,Google短期内研发了GFS。10年过去了,GFS的升级不可避免。

Quinlan说,“毫无疑问,GFS当前面临许多挑战。Google的工程师们在过去的两年中致力于研发一种基于BigTable的分布式主节点系统,以解决GFS所面临的棘手问题。

除了Google帝国(the Google empire)之外,GFS、MapReduce和BigTable还导致了开源项目Hadoop的诞生。Hadoop以应用于Yahoo!,Facebook和Microsoft Bing等众多项目中。

Quinlan相信,GFS II将超越GFS。“现在看来,尽管GFS在不停地调整以适应新的需求,但是GFS II将在未来几年中迅速发展。”


原文地址:Google File System II

你可能感兴趣的:(mapreduce,mapreduce,Google,Google,GFS,GFS)