Linuxサーバーで「ディスク容量は空いているのにファイルが作れない」 という障害が発生した場合、真っ先に疑うべきなのがinode枯渇です。
本記事では、inode枯渇障害を即座に見抜く方法から、 その場で復旧する手順・再発防止策まで、現場対応レベルで解説します。
🚑 Linux障害の初動対応を整理したい方へ
障害発生時の確認ポイントや典型パターンをまとめた総合ガイドです。
▶ Linux障害 初動対応チェックリスト
目次
inodeとは何か?(最重要ポイント)
inodeとは、Linuxファイルシステムにおいて ファイルやディレクトリ1つにつき必ず1個消費される管理情報です。
- ファイルサイズ
- 所有者
- パーミッション
- 保存場所(ブロック)
inodeが尽きる=新しいファイルを一切作れない状態になります。
あわせて読みたい


Linux 権限の基本と変更方法|chmod・chown・umask を図解でわかりやすく解説
Linuxを使う上で、ファイルやディレクトリの権限と所有権を適切に管理することは非常に重要です。この記事では、初心者でもわかりやすく、chmod、chown、umaskといった…
inode枯渇時の典型的な症状
- touch や echo が失敗する
- ログが突然出力されなくなる
- アプリが設定ファイルを生成できず異常終了
- 「No space left on device」と表示される
特に厄介なのは、df -h では空きがある点です。
inode枯渇を一発で見抜く確認コマンド
① inode使用率の確認
df -i
出力例:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 5242880 5242880 0 100% /
IUse% が 100% なら inode枯渇確定です。
② 容量とinodeの違いを確認
df -h
容量は空いているのに inode が枯渇しているケースが典型です。
あわせて読みたい


dfとduの結果が一致しない理由|Linuxディスク使用量のズレを完全解説
Linux運用で必ずと言っていいほど遭遇するのが、df と du の結果が合わない問題です。 df -h du -sh / 「dfでは空きがないのに、duではそんなに使っていない」 この状態…
あわせて読みたい


df で空き容量があるのに書き込みエラーになる原因(inode不足など)
Linux でファイルを書き込もうとした際に、 No space left on device というエラーが出ることがあります。 しかし df -h を実行すると、空き容量がまだ十分にあるように…
inodeが枯渇する主な原因
- 大量の小さなログファイル
- 一時ファイルの削除漏れ
- メールキューの滞留
- 監視エージェントの暴走
- アプリのバグによるファイル無限生成
「小さいファイルが大量」が最大の特徴です。
あわせて読みたい


ファイルディスクリプタ枯渇時の症状と対処
Linuxサーバーで突然アプリケーションが不安定になったり、 「ファイルが開けない」「接続できない」といったエラーが多発する場合、 ファイルディスクリプタ(FD)枯渇…
inodeを大量消費しているディレクトリの特定
① ディレクトリ単位でinode数を調査
find / -xdev -type f | wc -l
特定ディレクトリを調べる場合:
find /var/log -type f | wc -l
② 上位ディレクトリから切り分ける
for dir in /var/*; do echo "$dir: $(find $dir -type f | wc -l)"; done
inodeを大量消費しているディレクトリが一目で分かります。
あわせて読みたい


find コマンドで Permission denied が大量に出るときの抑制方法
Linuxで find コマンドを使ってファイル検索をしていると、以下のように Permission denied が大量に表示されてしまうことがあります。 find / -name test.txt find: ‘/…
今すぐできるinode枯渇の解消手順
① 不要ファイルの削除(最優先)
rm -f /var/log/*.old
ログ削除後は必ず再確認します。
df -i
② 古いファイルを日付で削除
find /var/log -type f -mtime +30 -delete
③ メールキューの確認(Postfix例)
mailq
postsuper -d ALL
あわせて読みたい


ログローテーション設定(logrotate)が動かない/古いログが消えないときの修正
概要 Linux サーバーではログファイルの肥大化を防ぐために、logrotate による定期的なローテーションが行われます。しかし設定ミスや権限、cron の不具合などにより、…
削除してもinodeが解放されない場合
削除したはずなのに inode が減らない場合、 プロセスがファイルを掴んだままの可能性があります。
開いている削除済みファイルを確認
lsof | grep deleted
該当プロセスを再起動すると inode が解放されます。
あわせて読みたい


lsofの実務的な使い方まとめ|Linux障害調査で必須の活用パターン
lsof(List Open Files)は、Linux障害対応において 原因特定のスピード 再現性のある調査 「なぜ起きているか」の説明力 を一気に引き上げてくれる必須コマンドです。 …
inode枯渇を防ぐための再発防止策
- logrotateの適切な設定
- 一時ファイルディレクトリの定期清掃
- 監視による inode 使用率アラート
- ファイル大量生成アプリの見直し
inode監視の実務ポイント
ディスク容量だけでなく、必ず以下も監視対象に含めます。
- inode使用率(df -i)
- /var, /tmp, /var/tmp
inode監視がない環境は、事故が起きる前提と考えるべきです。
まとめ
inode枯渇は、気づいた時には業務停止につながる典型障害です。
しかし、
- df -i で即見抜ける
- 原因はほぼ「小ファイル大量生成」
- 設計と運用で確実に防げる
という対処しやすい障害でもあります。
本記事の手順を、ぜひ障害対応手順書に組み込んでください。
