文件系统开发

时间:2010-11-24 11:14:41

标签: unix filesystems inode

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

在一些实际由系统管理员决定的Unix文件系统(例如ext * fs)中,谁在创建文件系统时设置相对参数。

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

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

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

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