我们正在使用Logstash来摄取我们的日志,并且我们面临着一些需要重用的问题。我们在Logstash端尝试了所有可能的选项,所以我们正在探索操作系统端。
据我所见,如果我创建一个文件,删除它,然后创建一个新的文件,大部分时间它将得到相同的inode。
[root@XXXX~]# touch a.txt
[root@XXXX~]# stat -c%i a.txt
671092802
[root@XXXX~]# rm a.txt
rm: remove regular empty file ‘a.txt’? y
[root@XXXX~]# touch a.txt
[root@XXXX~]# stat -c%i a.txt
671092802
[root@XXXX~]# rm a.txt
rm: remove regular empty file ‘a.txt’? y
[root@XXXX~]# touch b.txt
[root@XXXX~]# stat -c%i b.txt
671092802如何防止使用XFS的操作系统为新文件重用最近使用的inode?
理想情况下,我们希望定义文件之间的一段时间被删除,直到inode被重用。磁盘很大,所以我们不期望问题达到inode的极限。
谢谢
发布于 2021-12-07 13:14:22
防止创建具有给定inode编号的文件的唯一方法是,如果已经有一个(当然,如果inode值是文件系统不会使用的)。您不能保留一个inode值。通过通用接口(即通过不特定于特定文件系统类型的接口),这一点在大多数文件系统(即大多数文件系统都没有保留inode编号的专有方法)中是正确的,而据我所知,XFS尤其如此。
如果在删除一个文件后立即创建一个新文件,那么在许多文件系统上,大多数情况下,新文件将具有与刚刚删除的文件相同的inode。但这从来没有得到保证。
如果希望inode继续使用,请不要删除该文件。如果需要,可以截断它(例如truncate -s0 /path/to/file或: >|/path/to/file)以节省磁盘空间。如果某个工具正在探索某个目录,并且不希望该工具再看到该文件,则可以将其移动到同一文件系统上的另一个目录。
https://unix.stackexchange.com/questions/680487
复制相似问题