Die Bereitstellung schlägt fehl: „Auf dem Gerät ist kein Speicherplatz mehr vorhanden“. „df -h“ zeigt 35 % frei auf „/var“. Niemand schaut auf „df -i“: 100 % Inodes werden in „storage/framework/sessions“ verwendet – 4 Millionen 100-Byte-Dateien.
Inodes sind die unsichtbare Decke kleiner Dateien.
Inodes verstehen
Jede Datei, jeder Symlink, jeder Socket = 1 Inode (vereinfacht). Erstellung unmöglich, wenn die Inode-Tabelle voll ist, selbst mit freien GB.
df -i vor jedem „Leerzeichen“-Vorfall.
Diagnose
for d in /*; do echo $(find $d -xdev | wc -l) $d; done — langsam, aber aufschlussreich.
Schneller: find /var/www -xdev -type f | cut -d/ -f1-5 | sort | uniq -c | sort -n.
Klassische Web-Ursachen
Sitzungsdateitreiber, Cache für kompilierte Ansichten, fehlgeschlagene Warteschlangenjobs, temporärer ZIP-Extrakt, Protokolle mehrerer Dateien pro Anfrage.
| Fix | Aktion |
|---|---|
| Sitzungen | Redis/Datenbanktreiber |
| Cache | TTL + Pflaume geplant |
| Warteschlange fehlgeschlagen | Horizont/Bereinigungsjob |
| Temp hochladen | cron tmpwatch |
Aufräumen ohne Bruch
Stoppen Sie das Schreiben (Wartungsmodus), gezielte Löschung, kein blindes rm -rf bei aktiven Sitzungen.
Überprüfen Sie die rechtliche Aufbewahrungspflicht/Überprüfung, bevor Sie Protokolle löschen.
Architektur
Trennen Sie „/var/cache“ oder Sitzungen auf einem dedizierten Volume. Sharding-Hash-Unterverzeichnisse (aa/bb/file). Überwachen Sie Inode % als Datenträger %.
Kontinuierliche Prävention
Alarm-Inode 85 % als Festplatte 85 %. Cron Plum Cache jede Nacht mit metrisch gelöschten Dateien.
Sitzungen: Redis vor Inode-Vorfall migrieren – dringende Nachrüstung kostet mehr.
Vermeiden Sie Millionen Flatfiles: Hash-Unterverzeichnisse „ab/cd/ef123“.
Container: Begrenzen Sie die maximale Größe der JSON-Datei des Protokollrotationstreibers.
Support für Shared-Quota-Inode-Tickets: Fordern Sie vor dem Upgrade-Plan eine Zahl an – manchmal kostenlos.
Migrationssitzungsdatei → Redis
Plan: temporäre Dual-Write-Sitzungen, Flip-Config, Löschdateisitzungen nach 24 Stunden TTL max.
Mess-Inode vorher/nachher – Proof-Fix.
Framework-Cache-Präfix: Versions-Cache-Schlüssel (v2_) für massensichere Löschung.
Tausende Maildir-Dateien: Migration in die Datenbank oder in ein Objekt für Anhänge – vorübergehende Bereinigung des Inodes, nicht dauerhaft.
Lokaler CI-Artefakt-Cache: Bereinigung veralteter Zweige – jeder Zweig = Tausende Dateien.
Diagnosetools
Interaktives „ncdu“ zum Durchsuchen von Millionen kleiner Dateien. Nur „debugfs“-Experte.
E-Mail-Warteschlange exim/qmail: jede Nachrichtendatei – Warteschlange löschen, wenn ein Spam-Angriff eingeht.
Kapazität planen: Inode-Anzahl bei mkfs, wenn FS neu erstellt wird – „mkfs.ext4 -N“-Optimierung.
Betriebszusammenfassung
Erschöpfte Inodes weisen eher auf ein ungeeignetes Design (Dateisitzungen, unbegrenzter Cache) als auf einen Mangel an GB-Speicherplatz hin. df -i systematisch auf „kein Platz mehr übrig“. Migration von Redis-Sitzungen, Plum-Cache, Sharding von Hash-Verzeichnissen.
Container und gemeinsam genutzte Inode-Panel-Kontingente – Support-Ticket vor der Sättigung.
48-Stunden-Sanierungsplan
Tag 1: Bestätigen Sie df -i, suchen Sie das oberste Verzeichnis, aktivieren Sie bei Bedarf die Wartung, bereinigen Sie die Cache-sichere Teilmenge. Tag 2: Redis-Sitzungen migrieren, Cron Prune bereitstellen, Inode-Warnung hinzufügen 85 %. Woche: Cache-Strategie umgestalten, Hash-Unterverzeichnisse, Kapazitätsüberprüfung mit Host-Unterstützung.
Interne Kommunikation: Inode-Vorfall ≠ Festplatte voll – klare Botschaft vermeidet schlechte finanzielle Maßnahmen „Buy Go“.
Führen Sie ein datiertes Runbook, Vorher-/Nachher-Kennzahlen und eine Überprüfung nach dem Vorfall – kumulative Disziplin vermeidet Panik am Freitagabend.
Führen Sie ein datiertes Runbook, Vorher-/Nachher-Kennzahlen und eine Überprüfung nach dem Vorfall – kumulative Disziplin vermeidet Panik am Freitagabend.
Führen Sie ein datiertes Runbook, Vorher-/Nachher-Kennzahlen und eine Überprüfung nach dem Vorfall – kumulative Disziplin vermeidet Panik am Freitagabend.
Führen Sie ein datiertes Runbook, Vorher-/Nachher-Kennzahlen und eine Überprüfung nach dem Vorfall – kumulative Disziplin vermeidet Panik am Freitagabend.
Führen Sie ein datiertes Runbook, Vorher-/Nachher-Kennzahlen und eine Überprüfung nach dem Vorfall – kumulative Disziplin vermeidet Panik am Freitagabend.
Führen Sie ein datiertes Runbook, Vorher-/Nachher-Kennzahlen und eine Überprüfung nach dem Vorfall – kumulative Disziplin vermeidet Panik am Freitagabend.
Inode-Prävention
Alarm 85 %. Migration von Redis-Sitzungen. Hash-Unterverzeichnisse. Cron-Pflaume. Unterstützung von Inode-Kontingenten vor dem Upgrade-Plan nicht erforderlich.
Training: Inode ≠ freie GB. Vorlagen-Repo-Sitzungen Redis-Standard.
Container und Cache
Maximale Größe des JSON-Dateiprotokolls. Cache-Präfix versioniert v2 für sicheres Löschen.
Führen Sie ein datiertes Runbook, Vorher-/Nachher-Kennzahlen und eine Überprüfung nach dem Vorfall – kumulative Disziplin vermeidet Panik am Freitagabend.
Entscheide dich und gehe ohne blinden Fleck voran
- Bestätigen Sie mit „df -i“ – nicht zu verwechseln mit „Festplatte voll in GB“; klare Botschaft an die Finanzwelt.
- Suchen Sie das fehlerhafte Verzeichnis – Cache-Sitzungen, Miniaturansichten, fragmentierte Protokolle, Millionen kleiner Dateien.
- Sitzungen zu Redis migrieren – möglichst vor dem Vorfall; Eine dringende Nachrüstung kostet mehr.
- Hash-Unterverzeichnisse – „ab/cd/ef123“ anstelle von Millionen von Flatfiles.
- Alarm-Inode bei 85 % – als Festplatte 85 %; Cron Plum jeden Abend mit Metrik.
Fordern Sie vor dem Upgrade das Inode-Kontingent beim Shared Support an – vergleichen Sie es über das Verzeichnis und den Vergleicher.
Häufig gestellte Fragen
Unterschied zwischen Speicherplatz und Inodes?
Die Festplatte zeigt möglicherweise freie GB an, während das Dateisystem keine Inodes mehr zum Erstellen einer Datei hat – was bei Millionen kleiner Cache-Dateien oder Sitzungen häufig vorkommt.
Was ist dringend zu tun?
Bestätigen Sie „df -i“, identifizieren Sie das oberste Verzeichnis, leeren Sie den sicheren Cache oder migrieren Sie Sitzungen nach Redis. Kaufen Sie keine zusätzlichen GB – das Problem ist nicht die Blockkapazität.
Wenn Ihr Cache eine Datei pro Anfrage schreibt, kommt die Inode-Obergrenze vor der Festplattenobergrenze – Zählung.
