孤立したiノードとは何ですか?[閉まっている]


16

iノードとは何かを理解していますが、孤立したiノードの正確な定義は何ですか?私は本当にそれが何を意味するのか分かりません。

更新

私が管理していたサーバーがiノードを使い果たしたことがありましたが、df -hを実行すると、サーバーの使用領域が60%しかなかったことがわかりました。これは孤立したiノードのせいだと思います。すべてのiノードを使い果たすことはできますが、サーバーにまだ「スペース」が残っていますか?あなたの答えでこれに対処できますか?


1
更新は、ファイルシステムのストレージ容量とそこに含めることができるiノードの数の違いに関係する、本当に別の質問です。別の質問として質問してください。
スティーブンキット

実行df -iすると、iノードに対応する情報が表示されます。
クサラナナンダ

ディスクの空き/使用領域は、空き/使用中のiノードとわずかに相関しています。多くの小さなファイルを含むディスクは、スペースを使い果たす前にiノードを使い果たします。
クサラナナンダ

回答:


17

孤立したiノードは、ファイルシステム内のディレクトリエントリに接続されていないiノードであり、到達できないことを意味します。

孤立したiノードは、いくつかの理由で表示されます。

  • 削除されているが開いたままになっている一時ファイル(一般的な方法)は、ファイルシステム上のiノードを占有します。システムを適切にシャットダウンせずに再起動すると、これらのiノードは残り、孤立します
  • ファイルシステムの破損により、ディレクトリに含まれるファイルのiノードに影響を与えずにディレクトリが破損する場合があります。これらのiノードはその後孤立します

fsckで孤立したiノードの新しいディレクトリエントリを作成しlost+foundます。


@ stephen-kittにご回答いただきありがとうございます。私が管理していたサーバーがiノードを使い果たしたことがありましたが、そうするとdf -hサーバーが60%の領域しか使用していないことがわかりました。これは孤立したiノードのせいだと思います。すべてのiノードを使い果たすことはできますが、サーバーにまだ「スペース」が残っていますか?
ninjacoder

3

孤立したiノードは「半削除」されたファイルです。ディレクトリエントリはありませんが、何らかのプロセスでまだ開いているため、データはディスク上に残っています。このファイルを開いている最後のプロセスが閉じると、ファイルは完全に削除され、孤立したiノードは消えます。

孤立したiノードの使用iノードと、ファイルを保存し、両方のようにするために、ディスク領域の両方dfdf -i使用されるように、それを数えます。したがって、ディスクがいっぱいであると報告されたが、dfいくらかのスペースが残っている場合、これは孤立したiノードに関連することはできません。孤立したiノードは、レポートされるファイルシステムの使用量とレポートされるdf合計ファイルサイズduが異なる場合がある理由の1つです。見るのはなぜそこにディスク使用量を測定するので、多くの異なる方法がありますか?このトピックの詳細については。

多くのファイルシステムでは、ファイルシステムの作成時に一定数のiノードが予約されています。つまり、ファイルシステム上に最大でその数のファイルを保持できます。iノードの数は、iノードが使用するスペースと多くのファイルを作成する機能の妥協点です。ファイルシステムにスペースがない場合は、既存のファイルを拡大したり、新しいファイルを作成したりすることはできません(おそらく、部分的に使用されているブロックだけを埋めて、新しいブロックを割り当てる必要があります)。空きiノードがなくなったら、既存のファイルを増やすことはできますが、新しいファイルを作成することはできません。

カーネルは、データスペースの不足やiノードの不足が原因でファイルシステムがいっぱいになっても、アプリケーションに同じエラーを報告します。そのため、操作に新しいiノードが必要で、iノードテーブルがいっぱいの場合、データスペースが残っていても「ディスクがいっぱい」というエラーが発生する可能性があります。実行df -iして、使用されているiノードの数と残っているiノードの数を確認します。


1
  • 孤立したiノードは、リンク解除されているが、別のプロセスでまだ開いているiノードです。たとえばtail -f {file}、あるシェルで実行した後rm {file}、別のシェルで実行します。ファイルシステムはこれらを追跡し、プロセスが終了したときにクリーンアップできるようにします。

  • 汚れた降車があるときはいつでも完全に正常です。これらは単に削除されたファイルですが、fsが読み取り専用で再マウントされたときにまだ開いていました。それらは原因ではなく、単なる症状です。


iノードの問題については、このクエリを実行して、すべてのディレクトリで使用されているiノードの量のリストを取得します

for i in `find . -type d `; do echo `ls -a $i | wc -l` $i; done | sort -n

確認する方法については、これこれを参照してください。


@ninjacoderあなたのinodeの問題のために私の更新の答えを確認することができます
ラーフル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.