所有Linux文件系统都有4kb的块大小。假设我有10mb的硬盘存储空间。这意味着我有2560块可用,假设我复制了2560个文件,每个文件大小为1kb。每个1 kb块将占用1个块,但它不会填满整个块。
所以我的整个磁盘现已填满,但我仍有2560x3kb的可用空间。如果我想存储另一个说1mb的文件,文件系统是否允许我存储?它会写在各个块中剩下的可用空间吗?有没有解决这个问题的概念?
我希望得到一些澄清。 提前谢谢。
答案 0 :(得分:0)
确实,如果要存储的文件比文件系统的最小块大小小得多,那么就会浪费磁盘空间。
块大小约为4kb的原因是与块关联的元数据量。块大小越小,与实际数据相比,有更多关于块位置的元数据,更糟糕的是最坏情况。
但是,有些文件系统具有不同的块大小,大多数文件系统允许您定义块大小,通常最小块大小为512字节。如果要存储大量具有较小块大小的非常小的文件可能是有意义的。
http://www.tldp.org/LDP/sag/html/filesystems.html
XFS Filesystem文档对如何选择文件系统块大小有一些注释 - 也可以定义目录块大小:
您应该考虑为文件系统设置逻辑块大小 目录大于的逻辑块大小 filesystem如果您支持读取目录的应用程序 (多次使用readdir(3C)或getdents(2)系统调用) 关系到它创建和删除文件的程度。使用小 文件系统块大小可节省磁盘空间和I / O吞吐量 小文件。