4

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

4

2 回答 2

2

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

于 2010-11-24T11:40:37.760 回答
1

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

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

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

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

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

于 2010-11-24T11:42:46.563 回答