unixFreeBSD中的块分配

时间:2009-04-19 18:28:13

标签: unix

来自 FreeBSD UNIX (高尔文),

  

假设数据以1 KB字节的传输大小写入文件,并且   文件系统的块和片段大小为4 KB和512字节。文件   系统将分配1 KB片段以包含第一次传输的数据。   下一次传输将导致分配新的2 KB片段。数据   从原始片段必须复制到这个新片段,然后   通过第二次1 KB转移。分配例程确实试图找到   紧跟现有片段的磁盘上所需的空间   不需要复制,但如果不能复制,最多可以复制七份   在片段成为块之前需要。已经制定了规定   程序发现文件的块大小,以便传输该大小   可以制作,以避免碎片重新复制。

你能解释一下作者在这里想说的话吗?为什么不应该分配4 kB块来写入然后分配512字节片段?作者正在讨论UNIX中的通用文件系统。

1 个答案:

答案 0 :(得分:0)

FreeBSD文件系统显然正在做一些中等聪明的特殊处理,以防止“小文件占用太多空间,因为每个人使用磁盘块”问题,这个问题曾经在磁盘变大后困扰unix盒,但是文件系统仍然生活在80年代。

这很好。

但是如果你把一个大到大的文件写成小块,你就可以欺骗文件系统以浪费的方式使用“小文件”黑客。

这很糟糕。而且很慢。在坚固的“磁盘”设备上很难。

如果您使用至少与磁盘块一样大的chuck中写入大到大的文件,则不会调用“小文件”黑客。这些问题都不会发生。

这样更好。