Google文件系统(Google File System,GFS)是构建在廉价的服务器之上的大型分布式系统。它认为组件失效(注:可理解为服务器故障)是常态事件,而不是意外事件,通过自身对可能失效组件的持续的监控、错误侦测、灾难冗余以及自动恢复的机制,保证系统的可靠性,也降低了系统的设计成本。
系统架构
一个GFS集群包含三个角色:一个单独的GFS Master总控制服务器
,
多台GFS Chunkserver(数据块服务器,简称CS)和多个GFS Client客户端.GFS存储的文件都被分割成固定大小的Chunk。 Chunk服务器把Chunk以linux文件的形式保存在本地硬盘上,并且根据指定的Chunk标识和字节范围来读写块数据。为了保证可靠性,Chunk在不同的机器中复制多份,缺省情况下,使用3个存储复制节点,不过用户可以为不同的文件命名空间设定不同的复制级别。
Master中维护了系统的元数据(SQL中的说法是:数据的数据),这些元数据包括Chunk名字空间、访问控制信息、文件和Chunk的映射信息、以及当前Chunk的位置信息.。Master还管理着系统范围内的活动,比如, Chunk租用
管理
无用Chunk的回
收、以及
Chunk在Chunk服务器之间的迁移。 Master节点使用心跳信息周期地和每个Chunk
服务器通
讯,发送指令到各个Chunk服务器并接收Chunk服务器的状态信息。
Client代码实现了GFS文件系统的API