Linuxのディスク容量・inode不足を切り分ける手順
Linuxで「ディスクがいっぱい」と見える場合は、空き容量の不足とinodeの不足を分けて確認します。このガイドは原因を安全に絞るための読み取り中心の確認手順であり、空き容量を作る削除やサービス操作は扱いません。
原因確認と復旧操作を明確に分け、まず表示結果と確認時刻を記録してください。コマンドのoptionや表示は環境ごとに異なるため、導入されている版のman pageを優先します。
「ディスクがいっぱい」の意味を容量とinodeで分ける
filesystemは、ファイル内容を保存するblockと、ファイルの属性や配置を管理するinodeを使います。容量に空きがなくても、inodeを使い切っても、新しいファイルを作成できない症状が起こり得ます。アプリケーションのエラー文だけで決めず、両方の使用状況を同じ時刻に確認します。
1. 対象filesystemとmount pointを確認する
df -hT
df -idf -hT ではfilesystem、種別、容量、使用量、空き、使用率、mount pointを確認します。df -i では同じfilesystemのinode総数、使用数、空き、使用率を確認します。エラーが出たパスがどのmount pointに属するかを照合し、別のfilesystemの数値と取り違えないようにします。
容量とinodeの読み方
容量使用率が高い
df -hT の使用量と空きを確認し、対象mount pointの容量不足かを判断します。しきい値は一律に決めず、組織の監視基準と増加傾向も確認します。
inode使用率が高い
df -i の使用数と空きを確認します。容量が残っていても、inodeの空きがなければ多数の小さなファイルを新規作成できない場合があります。
2. 特定ディレクトリの使用量を確認する
du -x -h --max-depth=1 /var/log | sort -hこの例は、/var/log が調査対象の場合に、その直下の使用量を読みやすい単位で集計し、並べ替える例です。-x で開始位置とは異なるfilesystemを走査対象から外し、--max-depth=1 で表示範囲を直下までに絞ります。対象パスは、最初に確認したmount pointと症状に合わせて選びます。
du はファイルを書き換えないread-onlyの確認ですが、対象filesystemを走査するためI/O負荷を生みます。大規模ディレクトリで無条件に実行せず、影響を確認したうえで調査範囲を狭くしてください。
3. 削除済みだがprocessがopen中のfileを確認する
lsof +L1directory entryがなくなってもprocessがfileをopenしたままなら、領域が使用中のまま残る場合があります。lsof +L1 はlink countが1未満のopen fileを表示し、該当processと使用量を確認する手掛かりになります。表示されたことだけで操作を決めず、filesystem、process、サイズ、発生時刻を記録します。
lsof が導入されていない環境では実行できません。また、権限不足やfile種別、network filesystemなどの条件により、取得できる情報が限定される場合があります。
4. journalとlogの使用量を確認する
journalctl --disk-usagesystemd journalを使う環境では、activeとarchivedを含むjournal file全体の現在のディスク使用量を確認します。この表示値をdf やdu の結果と照合し、journalが対象filesystemの使用量にどの程度関係するかを整理します。systemdを使わない環境や権限が不足する環境では、利用できるlog管理方法と表示範囲を記録します。
症状別に観測結果を整理する
容量不足
対象mount pointの容量使用率が高い場合は、範囲を絞ったdu、削除済みopen file、journal使用量の順に、表示値が容量の内訳と対応するか確認します。
inode不足
inode使用率だけが高い場合は、どのmount pointで発生しているか、どの処理が多数のファイルを作成している可能性があるかを、アプリケーションlogや監視時系列と照合します。
dfとduの差が大きい
対象filesystemと走査範囲が一致しているかを再確認し、削除済みopen fileや権限不足で集計できていない範囲がないかを確認します。単一の結果だけで原因を断定しません。
原因確認と復旧操作を分離する
この手順で行うのは、対象filesystemと使用量の観測、原因候補の絞り込みまでです。空き容量を作る操作やprocess・serviceの状態を変える操作は、影響範囲、保持要件、組織の承認手順を確認してから、権限を持つ管理者が別の復旧計画として判断します。
観測結果を記録して管理者へ引き継ぐ
- 確認時刻とタイムゾーン、hostname、対象パス、mount point、filesystem種別
- 容量とinodeの総数・使用数・空き・使用率
- 範囲を限定したduの対象、実行時間、上位ディレクトリ
- 削除済みopen fileの有無、process、サイズと、journal使用量
- 利用できなかったコマンド、権限不足、表示されなかった範囲
観測した事実、原因の推測、未確認事項を分けて記録します。増加傾向が分かる監視データや同時刻のアプリケーションlogがあれば添え、復旧判断を行う管理者へ引き継ぎます。
共有前に機密情報をマスクする
コマンド結果にはhostname、ユーザー名、process名、file path、サービス名などが含まれる場合があります。第三者へ共有する前に、組織の規程に従って認証情報、個人情報、内部構成を示す値をマスクしてください。元の記録は変更せず、共有用のコピーを分けて確認します。
コマンド仕様の参照先
optionや表示内容は導入環境のman pageを優先し、以下の一次情報も参照してください。
- GNU Coreutils: df invocation
- GNU Coreutils: du invocation
- lsof: official man page
- lsof: official tutorial
- systemd: journalctl
関連ガイドと商品
- サーバー障害の一次切り分け手順 — CPU・メモリ・ネットワーク・サービスを含めた確認順序
- サーバー障害一次切り分けキット — Windows/Linuxの確認結果とインシデント記録を整理