インデックスノードの再利用を防止

インデックスノードの再利用を防止

Logstashを使用してログを抽出していますが、inodeが再利用されるため、いくつかの問題に直面しています。私たちは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 の制限に達する際に問題が発生するとは予想されません。

ありがとう

答え1

与えられたinode番号を持つファイルの生成を防ぐ唯一の方法は、ファイルがすでに存在する場合(またはinodeの値がファイルシステムで使用されていない値の場合)です。 inode値を保存できません。これは通常のインターフェース(つまり、特定のファイルシステムタイプに限定されないインターフェースを介して)に対応し、ほとんどのファイルシステム(つまり、ほとんどはinode番号を保存する排他的な方法はありません)に対応します。これは特にXFSに当てはまるという疑いはありません。

ファイルが削除された直後に新しいファイルが作成されると、ほとんどのファイルシステムでは、新しいファイルは削除したばかりのファイルと同じinodeを持ちます。しかし、これは決して保証されません。

inodeを引き続き使用する場合は、このファイルを削除しないでください。必要に応じて、それを切り取ることで(truncate -s0 /path/to/fileまたは)ディスク容量を節約できます。: >|/path/to/fileツールがディレクトリを閲覧していてツールでファイルを表示できないようにするには、そのツールを同じファイルシステム上の他のディレクトリに移動できます。

関連情報