欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
Google File System
Google File System
Google File System (简称GFS) 是由 Google Inc. 设计并实现的一个分布式文件系统,基于大量安装有Linux操作系统的普通PC构成的集群系统。整个集群系统由一台Master(通常有几台备份)和若干台TrunkServer构成。GFS中文件备份成固定大小的Trunk分别存储在不同的TrunkServer上,每个Trunk有多份(比如3)拷贝,也存储在不同的TrunkServer上。Master负责维护GFS中的 Metadata,即文件名及其Trunk信息。客户端先从Master上得到文件的Metadata,根据要读取的数据在文件中的位置与相应的 TrunkServer通信,获取文件数据。
高可靠性是GFS最重要的特点。GFS使用的是可靠性较差的普通PC,节点失效属于正常现象,起中很大一部分设计就是要解决单节点甚至双节点同时实效的问题。
鉴于Google Inc. 的特殊应用环境,需要处理海量数据,经常有大文件(几十G)的操作,而且常是多台机器同时数据输出到一个大文件中,供后面的流程使用。GFS也对这种特殊的应用需求做了很多优化,保证往大文件并发追写数据时的可靠和高效。(来源: 灵感点滴 )
GFS 以64M为一个Chunk(Block),每个Chunk至少存在于三台机器上,交互的简单过程见图:
目前Google拥有超过200个的GFS集群,其中有些集群的计算机数量超过5000台。Google现在拥有数以万计的连接池从GFS集群中获取数据,集群的数据存储规模可以达到5个PB,并且集群中的数据读写吞吐量可达到每秒40G。