【问题标题】:How file system block size works?文件系统块大小如何工作?
【发布时间】:2015-06-28 18:13:37
【问题描述】:

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

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

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

【问题讨论】:

    标签: linux filesystems storage


    【解决方案1】:

    确实,如果您要存储大量文件,而这些文件远小于文件系统的最小块大小,那么您在某种程度上就是在浪费磁盘空间。

    块大小在 4kb 左右的原因是与块相关的元数据量。块大小越小,与实际数据相比,关于块位置的元数据就越多,最坏的情况是碎片越多。

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

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

    XFS 文件系统文档有一些关于如何选择文件系统块大小的 cmets - 也可以定义目录块大小:

    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

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

    【讨论】:

      猜你喜欢
      • 2013-12-05
      • 1970-01-01
      • 2023-03-29
      • 2010-12-02
      • 2020-09-12
      • 1970-01-01
      • 2013-07-29
      • 2015-07-03
      相关资源
      最近更新 更多