简介
Google文件系统是构建在廉价服务器之上的大型分布式文件系统。它将服务器故障视为正常现象,通过软件的方式自动容错,在保证系统可靠性和可用性的同时,大大降低系统的成本
系统架构
GFS系统的节点可以分为三种角色
- GFS Master(主控服务器)
- GFS ChunkServer(CS,数据块服务器)
- GFS客户端
GFS文件被分为固定大小的数据块(chunk),由主控服务器在创建时分配一个64位全局唯一的chunk句柄。CS以普通的Linux文件的形式将chunk存储在磁盘中。为了保证可靠性,chunk在不同的机器中复制多份,默认为三份
主控服务器维护了系统的元数据,包括文件以及chunk命名空间、文件到chunk之间的映射、chunk位置信息。它也负责整个系统的全局控制,如chunk租约管理、垃圾回收无用chunk、chunk的复制等。主控服务器会定期与CS通过心跳的方式交换信息
客户端是GFS提供给应用程序的访问接口,它是一组专用接口,不遵循POSIX规范,以库文件的形式提供。客户端访问GFS时,首先访问主控服务器节点,获取与之进行交互的CS信息,然后直接访问CS,完成数据的存取工作。</