文件系统块大小如何工作?

时间:2015-06-28 09:34:42

标签: linux filesystems storage

所有Linux文件系统都有4kb的块大小。假设我有10mb的硬盘存储空间。这意味着我有2560块可用,假设我复制了2560个文件,每个文件大小为1kb。每个1 kb块将占用1个块,但它不会填满整个块。

所以我的整个磁盘现已填满,但我仍有2560x3kb的可用空间。如果我想存储另一个说1mb的文件,文件系统是否允许我存储?它会写在各个块中剩下的可用空间吗?有没有解决这个问题的概念?

我希望得到一些澄清。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

确实,如果要存储的文件比文件系统的最小块大小小得多,那么就会浪费磁盘空间。

块大小约为4kb的原因是与块关联的元数据量。块大小越小,与实际数据相比,有更多关于块位置的元数据,更糟糕的是最坏情况。

但是,有些文件系统具有不同的块大小,大多数文件系统允许您定义块大小,通常最小块大小为512字节。如果要存储大量具有较小块大小的非常小的文件可能是有意义的。

http://www.tldp.org/LDP/sag/html/filesystems.html

XFS Filesystem文档对如何选择文件系统块大小有一些注释 - 也可以定义目录块大小:

http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=linux&db=bks&srch=&fname=/SGI_Admin/LX_XFS_AG/sgi_html/ch02.html

  

您应该考虑为文件系统设置逻辑块大小   目录大于的逻辑块大小   filesystem如果您支持读取目录的应用程序   (多次使用readdir(3C)或getdents(2)系统调用)   关系到它创建和删除文件的程度。使用小   文件系统块大小可节省磁盘空间和I / O吞吐量   小文件。