为什么Google文件系统将文件分成块?

时间:2013-08-05 09:52:38

标签: cloud distributed gfs

在文章The Google File System第2.3节中,它说:

  

文件分为固定大小的块。

但不要说明原因。这有什么好处?

3 个答案:

答案 0 :(得分:1)

据我所知,有几个原因

  1. 存储在GFS中的文件非常大,即使是PB,也没有这么大的磁盘可以存储它。
  2. 固定大小的块不是可变大小,而是易于索引和查询。
  3. 实际上,每个块的大小不小,大约64MB,也是一个很大的大小,这样就可以减少GFS所需的元数据数量。

答案 1 :(得分:1)

易于复制。 与整个文件相比,复制几个块更容易。如果在复制期间发生任何错误,则只需要再次复制失败的块。

平衡服务器加载。 读写操作都可以在所有块服务器之间分开。

提高阅读和写作的吞吐量。 由于数百台服务器可以同时处理请求,因此可以增强读取和写入吞吐量。应用程序从主服务器获取文件块的元数据,然后直接从块服务器获取这些块。

更好的磁盘利用率。 如果你的文件往往很大,那么一个块和磁盘只有一些空间,就可以更容易地为一个块而不是整个文件找到足够的空间。

易于完整性检查。 计算块的校验和比整个文件快。当检测到损坏的块时,更容易修复块而不是整个文件。

答案 2 :(得分:0)

这个概念似乎与底层操作系统以及DBMS完全一致,在DBMS中,他们使用大小固定的页面/块来存储虚拟内存以及将数据放置在磁盘上。具有固定大小的块有助于碎片处理,这意味着如果删除文件,空间将不可用,因此很难重用它,因此,块的大小也保持较小。 GFS实际上仅用于后处理,因此没有很多删除操作。但是,使用较小的固定大小的块也很容易在其上运行map reduce作业。

这样,客户端可以请求特定的块,因为他们知道每个大小只能增加64mb,因此也可以更好地利用缓存。