【问题标题】:File System Development文件系统开发
【发布时间】:2011-05-15 01:07:15
【问题描述】:

在设计使用inode 结构指向文件/块的文件系统时,实际需要的inode 数量是如何确定的?

【问题讨论】:

    标签: unix filesystems inode


    【解决方案1】:

    一些现代文件系统(其中之一是 XFS)根据需要动态分配 inode。没有该功能的文件系统会选择一个与磁盘大小相关的基于经验的值(例如,ext2/3/4 每 4KB 磁盘空间 IIRC 创建 1 个 inode),并且通常有一种方法可以在创建文件系统时调整该值。

    【讨论】:

      【解决方案2】:

      在某些 Unix 文件系统(例如 ext*fs)中,实际上取决于系统管理员,他们在创建文件系统时设置相关参数。

      如果文件系统将托管大量小文件(新闻和邮件服务器是典型示例),则需要大量 inode,因为每个对象(文件或目录)都需要一个 inode。

      另一方面,如果文件系统将托管较大的文件(例如视频服务器),则您不需要那么多 inode。

      由于 inode 占用空间,因此在性能/效率与为您的目的拥有足够的 inode 之间取得平衡非常重要。一种简单的方法是计算具有相似使用模式的活动文件系统上的平均文件大小,并将该数字用作新 FS 上字节/inode 比率的基值。只要使用模式没有发生剧烈变化,这将允许 FS 在容量填满时保持功能。

      如果您实际上是在设计一个新的文件系统,而不仅仅是创建一个卷,您应该考虑像其他一些常见的 Unix 文件系统(例如 JFS、XFS、Reiserfs)一样动态分配 inode 的想法。这将使您的文件系统更加灵活,尽管通常认为动态 FS 结构使得从损坏问题中恢复变得更加困难。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-06
        • 1970-01-01
        • 2021-08-03
        • 2015-01-02
        • 2017-05-14
        • 2014-09-27
        • 2014-09-02
        • 1970-01-01
        相关资源
        最近更新 更多