Google 文件系统
摘要
我们设计并实现了 Google 文件系统,一个为数据中心的大规模分布应用设计
的可伸缩的分布文件系统。Google 文件系统虽然运行在廉价的普遍硬件上,但
是可以提供容错能力,为大量客户机提供高性能的服务。
我们的系统与许多以前的分布文件系统拥有许多相同的目标,但我们的设计还
受到我们对我们的应用负载和技术环境观察的影响,不管现在还是将来,我们
和早期文件系统的假设都有明显的不同。所以我们重新审视了传统的选择,发
展了完全不同的设计观点。
Google 文件系统成功的满足了我们的存储需求。它作为存储平台被广泛的部署
在 Google 内部,用在我们的服务中产生和处理数据,还用于那些需要大规模
数据集的研究和开发。目前为止最大的集群利用数千台机器内的数千个硬盘,
提供了数百 T 的存储空间,同时为数百个客户机服务。
在这篇论文中,我们展现如果用文件系统接口扩展设计去支撑分布应用,讨论
我们设计的许多方面,最后报告在小规模性能测试以及真实世界中系统的性能
测试结果。
1. 简介
我们设计并实现了 Google 文件系统(Google File System - GFS),用来满足
Google 迅速增长的数据处理需求。GFS 与过去的分布文件系统拥有许多相同
的目标,例如性能,可伸缩性,可靠性以及可用性。然而,它的设计还受到我
们对我们的应用负载和技术环境观察的影响,不管现在还是将来,我们和早期
文件系统的假设都有明显的不同。所以我们重新审视了传统的选择,采取了完
全不同的设计观点。
首先,组件失效不再被认为是意外,而是被看做正常的现象。这个文件系统包
括几百甚至几千台普通廉价部件构成的存储机器,又被相应数量的客户机访问。
组件的数量和质量几乎保证,在任何给定时间,某些组件无法工作,而某些组
件无法从他们的目前的失效状态恢复。我们发现过,应用程序 bug 造成的问题,
操作系统 bug 造成的问题,人为原因造成的问题,甚至硬盘、内存、连接器、
网络以及电源失效造成的问题。所以,常量监视器,错误侦测,容错以及自动
恢复系统必须集成在系统中。
其次,按照传统的标准来看,我们的文件非常巨大。数 G 的文件非常寻常。每
个文件通常包含许多应用程序对象,比如 web 文档。传统情况下快速增长的数
据集在容量达到数 T,对象数达到数亿的时候,即使文件系统支持,处理数据
评论0
最新资源