题 Linux - 帮助,我用完了inode!


我有一个包含许多小文件的文件系统。目前大约80%的inode被使用(我检查过 df -i但是,只使用了60%的磁盘空间。我怎样才能“增加”inode的数量?如果它只是磁盘空间,我知道我可以增加磁盘的大小(这个磁盘在LVM上)。如果我增加磁盘的大小,这会让我有更多的inode吗?

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


16
2018-02-11 10:58






答案:


男人mke2fs

您将看到-N为inode的数量

因此,您可以在格式化新分区时对其进行规范。现在没那么有用,对吧?

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

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

所以现在你有一个选择:备份,重新格式化分区,还原。


14
2018-02-11 11:03



是的,这很好,但不是因为它是reiserfs,而是因为它支持动态inode分配(由每个体面的新文件系统支持)
Reiser非常适合大量的小文件。我会选择那个。 - Xorlev
但是,我会确保您在使用Reiser时有备份。由于早期的reiserFS,我(我自己)和其他人已经丢失了数据。我不再相信了。 - Anony-Mousse
ext3似乎没办法 - kagali-san


要回答原始问题,即使提问者可能迟到了 - 是的,增加LVM2上的EXT2 / 3也会增加inode限制。

只有1G大小的分区,65k inode限制。后

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

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


15
2017-07-31 16:08



哇,我几乎绝望了,但找到了你的答案并决定尝试,并且它有效。这肯定是公认的答案!适用于LVM以及虚拟机:) - vadipp


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

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


12
2018-02-14 16:24



如果你知道小文件会占用你的磁盘空间,你应该知道 做了一些调整。每个文件系统都有优缺点。 - Franklin Piat


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

然后根据保罗的建议制作一个新的fs,并转移到那个。


3
2018-02-11 12:11



当然你可以在两个文件系统之间使用mv文件 - 对于cp + rm,mv实际上是语义糖。您不能在两个文件系统之间进行硬链接。你的意思是什么? - Daniel Lawson
@Daniel:我的意思是rename()系统调用,我认为使用mv作为cp / rm的糖是一种草率的做法,因为符号链接的语义问题。我应该编辑这个答案 - 有一些地方并不是很清楚。 - Charles Stewart


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 *,文件系统随着时间的推移会变得分散并且变慢。


2
2018-02-12 13:48





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

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

0
2017-11-08 16:11