Google文件系统块大小

时间:2014-10-16 05:50:13

标签: gfs

为什么 GFS 64Mb中的块大小虽然在文件大小不是64的倍数时可能会导致内部碎片

2 个答案:

答案 0 :(得分:3)

在目标应用程序中,文件更可能很大。块服务器可以执行大量顺序读取而不是许多小读取,从而提高吞吐量。

政府飞行服务队文件中提到的三个理由:

  1. 降低主人的负荷。 GFS的主服务器仅提供块的元数据而不是块内容。因此,如果块相对较大,则将向主服务器发送较少的请求。
  2. 减少网络开销,它鼓励应用程序在单个块和持久网络连接上完成许多操作。应用程序也可以用更少的请求获取数据。
  3. 减少存储在主服务器中的元数据大小。 GFS的设计中只有一台主服务器。块的所有元数据都存储在主服务器的内存中,以减少延迟并提高吞吐量。较大的块意味着较少的元数据,较少的元数据意味着较少的元数据加载时间。
  4. 此外,元数据分布在块服务器上以用于关注位置而不是主服务器。主服务器启动时,它会从所有块服务器加载元数据。因此,较少的元数据意味着较少的启动时间。

    为了限制大块大小的影响,GFS使用惰性空间分配,即如果文件大小只有1 MB,GFS只要求文件系统1 MB而不是64 MB,以避免浪费空间到期内部分裂。

    值得一提的是,GFS的继任者名为Colossus,将数据块大小从64MB减少到1MB。

答案 1 :(得分:0)

这些系统是为处理大文件而开发的。默认情况下,HDFS使用128 MB。