Google File System(GFS)
go back to home Paper link Proceedings of the 19th ACM Symposium on Operating Systems Principles, ACM, Bolton Landing, NY (2003), pp. 20-43 Last Edit: Jan 18, 2023 GFS 有非常多的东西,这里只写了一些重要的部分。像是snapshot,文件删除,高可用机制,Replica管理等没有具体提及。 Introduction GFS是google提出的一个可扩展分布式文件系统,为大型分布式数据密集型应用提供服务。可以在大规模的消费级机器集群上提供不错的容错能力。GFS在设计的时候主要依据6个假设(观察得出的): 节点失效经常发生。系统由非常多的消费级机器组成,大量用户同时进行访问,这使得节点很容易因为程序bug、磁盘故障、内存故障等原因失效。 存储以大文件为主。每个文件通常100MB或几GB。系统需要支持小文件,但不需要对其进行特殊的优化。 大容量连续读,小容量随机读取是文件系统中的常态。 写入也已大容量为主,小容量无需特殊优化。 支持原子的文件追加操作。使得大量用户可以并行追加文件,而不需要额外的加锁机制。 高吞吐量比低延时更重要 为什么设计一个优秀的分布式存储系统非常的困难: Performance. 当数据量非常大的时候,数据分片(Sharding)是非常重要的。 Fault Tolerance. 但是由于数据在多台服务器上分片。由于多台服务器,整个系统出现故障的概率会大很多。因此需要容错机制 Replication. 复制数据副本到多台服务器上,但是为了用户能够拿到一致的数据,需要考虑一致性 Consistency. 为了一致性,不得不使用网络(极慢的数据交互方式)进行确认和同步。这又会影响性能(Performance)!!! 世界因此变成了一个美妙的环。:-)。这也是分布式的挑战之处。 GFS讨论了上述的这些主题和在实际生产场景中的应用。 Architecture Fig 1. GFS ArchGoole File System. Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung. Proceedings of the 19th ACM Symposium on Operating Systems Principles, ACM, Bolton Landing, NY (2003), pp....