Linux-帮助,我的inode快用完了!


16

我有一个包含许多小文件的文件系统。当前使用了大约80%的inode(我用进行了检查df -i),但是只使用了60%的磁盘空间。如何“增加” inode的数量?如果只是磁盘空间,我知道我可以增加磁盘的大小(此磁盘位于LVM上)。如果增加磁盘大小,那会使我有更多的索引节点吗?

如果愿意,我愿意增加该磁盘所在的文件系统。

Answers:


14

男子mke2fs

您将看到-N表示inode的数量

因此,您可以在格式化新分区时指定它。现在不是那么有用,是吗?

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

但是,也许ext3或4可以做到这一点,其他人也知道....?

因此,现在您可以选择:备份,重新格式化分区,还原。


1
是的,这很好,但这不是因为它是reiserfs,而是因为它支持动态inode分配(每个不错的新文件系统都支持)

1
Reiser非常适合处理大量的小文件。我会去的。
Xorlev

但是,我将确保您在使用Reiser时都有备份。我(我自己)和其他人由于早期的reiserFS而丢失了数据。从那以后,我不再信任它。
Anony-Mousse-恢复Monica 2012年

ext3似乎
无能为力

15

为了回答最初的问题,即使发问者可能来晚了-是的,在LVM2上增加EXT2 / 3也会增加inode的限制。

刚好有1G大小的分区,其inode限制为65k。后

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

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


1
哇,我快要绝望了,但找到了答案,决定尝试,它奏效了。这绝对应该是公认的答案!适用于LVM和虚拟机:)
vadipp

12

如果您知道小文件会占用磁盘空间,则应该使用具有动态索引节点分配的FS,例如ReiserFS或任何新的现代FS(XFS,JFS),而不要使用EXT2 / 3/4(我假设您正在使用) ,您不必这么说)。

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


1
如果您知道小文件会占用磁盘空间,则应该进行一些调整。每个文件系统都有优点和缺点。
Franklin Piat

3

作为权宜之计,请安装新的文件系统,并在其中使用一些FS层次结构的cp / rm / ln-s。现在您有一些备用的inode!您不能在两个文件之间转换文件,因此请注意破坏需要这样做的内容,但是对于许多应用程序来说,这可能是透明的。

然后根据Paul的建议创建一个新的fs,并迁移到该fs上。


1
当然,您可以在两个文件系统之间创建mv文件-mv实际上是cp + rm的语义糖。您不能在两个文件系统之间进行硬链接。你还有什么意思吗
丹尼尔·劳森

@Daniel:我的意思是rename()系统调用,由于符号链接的语义存在问题,我认为将mv用作cp / rm的糖是一种草率的做法。我应该编辑此答案-在某些地方不清楚。
查尔斯·斯图尔特

2

Ext4也会遇到同样的问题,如果您创建一个小的分区并拥有大量的小文件,您将用尽inode,而如果具有某些flex_bg功能,则无法使用它tune2fs来增加inode。

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

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

以这种方式格式化将为您提供512M引导分区上的33160个inode。

我说这是一个使用reiserfs多年的人,内核支持不如ext *,并且文件系统随着时间的流逝而变得支离破碎并且变慢。


-1

寻找resiserfs或其他没有inode限制的fs。特别是关于日志文件,可能您可以将几吨未使用的小文件打包到一个较大的tar文件中,以释放大量的inode =)

$ find /path -iname "pattern" | xargs tar rvf output_file.tar
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.