Linux – 帮助,我用尽了inodes!

我有一个有很多小文件的文件系统。 目前,大约80%的inode被使用(我使用df -i进行了检查),但是只有60%的磁盘空间被使用。 我如何“增加”inode的数量? 如果只是磁盘空间,我知道我可以增加磁盘的大小(这个磁盘在LVM上)。 如果我增加磁盘的大小,这将使我有更多的inode?

我愿意增加这个磁盘所在的文件系统,如果有帮助的话。

男人mke2fs

你会看到一个-N数量的inode

所以你可以在格式化一个新分区的时候指定它。 现在不是很有帮助吧?

调整文件系统的tune2fs似乎没有办法添加更多的inode。

但也许ext3或4这样做,其他人知道….?

所以现在你有一个select:备份,重新格式化分区,恢复。

为了回答最初的问题,即使提问者可能迟到了 – 是的,在LVM2上增加EXT2 / 3也会增加inode的限制。

只是有一个1G大小的分区与65k的inode限制。 后

 lvextend -L+1G /dev/vg/var umount /var resize2fs /dev/vg/var mount /var 

…我的inode限制现在是128k。

如果您知道小文件会占用您的磁盘空间,那么您应该使用dynamicinode分配的FS,如ReiserFS或任何新的现代FS(XFS,JFS),而不是EXT2 / 3/4(我假设您正在使用,你不是这么说的)。

在您的情况下,文件系统迁移可能是一个不错的select。

作为一个权宜之计,安装一个新的文件系统,并在那里安装一些fs层次结构的cp / rm / ln -s。 现在你有一些备用inode! 你不能在两个文件之间mv文件,所以要小心破坏那些需要做的事情,但是对于许多应用程序来说,这可能是透明的。

然后根据保罗的build议做一个新的fs,然后转移到那个。

Ext4遇到同样的问题,如果你创build一个小的分区,并有大量的小文件,你将用完inode,如果你有flex_bg的function,你不能使用tune2fs来增加信息节点。

就个人而言,我会在任何版本的rieserfs上使用ext4,只需在格式化时执行以下操作:

 mkfs.ext4 -I 512 /dev/foo tune2fs -i0 -c0 -o journal_data_writeback /dev/foo 

格式化这种方式会给你一个512M启动分区上的33160 inode。

我说这是一个使用reiserfs多年的人,内核支持不及ext *,文件系统随着时间的推移而变得分散,并且变慢。

去resiserfs或没有inode限制的任何其他fs。 特别是关于日志文件,可能你可以把一些未使用的小文件放到一个更大的tar文件中,以便释放大量的inode =)

 $ find /path -iname "pattern" | xargs tar rvf output_file.tar