GFS:为大规模分布式应用程序设计的可扩展的分布式文件系统
1.引言
2.设计概述
-
2.1假设
- 系统由众多廉价的设备组成,他们会经常发生故障,所以系统应该有持续自我检测,故障检测,容错,以及从设备故障中恢复的能力
- 系统存储一定数量的大文件,我们期望有数十上百TB大小的文件,且系统需要对这些文件进行高效的管理
- 系统的负载主要来源于两种读操作:大规模的流式读取与小规模的随机读取,前者通常读取数百KB或者1MB以上的字节,来自同一客户端的读操作可能会连续读文件的某个区域,小规模的随机读取则是读文件的任意偏移量开始的数KB,对于性能敏感的应用程序会批量的随机读取排序后处理,这样可以读连续的文件而不是来回遍历文件
- 系统的负载同样还来源对文件的大规模追加写入,文件一旦被写入就几乎不再会发生修改,系统同样支持小规模的随机写入,但并不需要高效执行
- 数百个客户端并发向一个文件中追加数据的操作是有可能的,所以最小化原子性需要的同步开销是很重要的
- 持续的高吞吐比低延迟更加重要,我们大多数应用程序更注重处理数据,而不是对某个操作有严格的时间限制
-
2.2接口
- 提供常见的文件接口:create,delete, open, close, write, read,同时还支持快照与record append,即前面所提到的并发写入文件
-
2.3架构

- 一个GFS文件系统由一个master与多个chunkserver组成,有诸多客户端进行访问
- 文

GFS是一种为大规模分布式应用设计的可扩展的分布式文件系统。系统由廉价设备组成,具有自我检测、故障恢复能力,支持大文件的高效管理和大规模流式、随机读写操作。采用单master设计,文件被划分为64MB的chunk,存储多副本以确保可靠性。元数据存储在内存中,操作日志用于宕机恢复和一致性保证。系统通过租约和数据流水线优化性能,支持原子性追加写入和快照功能。
最低0.47元/天 解锁文章
7364

被折叠的 条评论
为什么被折叠?



