GFS(Google File System),Big Table,Map Reduce作为google的三宝技术,是Google诸多服务的基石。我想就自己的理解对GFS文件系统作一个分析。
GFS首先是属于分布文件系统,但作为Google公司用作存储平台的系统,必然与传统的分布式文件系统有不同之处。
1、GFS的储存性能符合Google公司的负载要求、数据处理要求
2、认为组件失效是一种常态,提供了容错机制,自动负载均衡,使得分布式文件系统可以在廉价机器上运行。
3、面向大文件存储,系统主要的工作负载是大规模的流式读取,写操作主要是追加方式写,而不是覆盖原有数据的方式。
4、应用程序和文件系统 API 的协同设计提高了整个系统的灵活性。
GFS的新颖之处并不在于它采用了多么令人惊讶的新技术,而在于它采用廉价的商用计算机集群构建分布式文件系统,在降低成本的同时经受了实际应用的考验。系统持续监控自身的状态,能够快速的侦测并回复失效的组件。按照传统的标准,数据文件都非常大。长度达几个GB的文件是很普遍的。每个文件又通常包含很多应用对象。当经常要处理快速增长的、包含数以万计的对象、长度达几TB的数据集时,传统分布式文件系统很难管理成千上万的KB规模的文件块,即使底层文件系统提供支持。因此,操作的参数、块的大小必须要重新设计。对大型的文件的管理要能做到高效,对小型的文件也必须支持。大部分文件的更新是通过添加新数据完成的,而不是改变已存在的数据。在一个文件中随机的操作在实践中几乎不存在。一旦写完,文件就只可读,很多数据都有这些特性。一些数据可能组成一个大仓库以供数据分析程序扫描。有些是运行中的程序连续产生的数据流。有些是档案性质的数据,有些是在某个机器上产生、在另外一个机器上处理的中间数据。由于这些对大型文件的访问方 式,添加操作成为性能优化和原子性保证的焦点。而在客户机中缓存数据块则失去了吸引力。
围绕设备去建立可用性,而不是在设备本身是GFS系统相对于传统文件系统不同之处。