Voller Serverdatenträger: Schreibzugriffe ohne Datenverlust wiederherstellen
Wo Sie suchen sollten, wenn ein Dienst nicht mehr schreiben kann. Freier Platz, Inodes, offene gelöschte Dateien und ein vorsichtiges Vorgehen bei PostgreSQL.

Die Startseite lädt noch, aber die Anwendung speichert kein Formular mehr und ein Hintergrundjob scheitert beim Schreiben. Eine mögliche Ursache ist ausgeschöpfter Speicherplatz. Das Löschen einer beliebigen großen Datei kann nur kurz helfen oder Daten entfernen, die für die Wiederherstellung nötig sind. Prüfen Sie zuerst, wohin der Dienst schreibt und welche Ressource auf diesem Dateisystem fehlt. Die folgenden Prüfungen gelten für Linux-Server mit GNU-Werkzeugen.
Prüfen Sie Speicherplatz und Inodes auf dem richtigen Volume
Beginnen Sie mit dem Pfad, an dem der Schreibzugriff scheitert. Für ein Logverzeichnis könnte die Prüfung df -h /var/log lauten; für eine Datenbank verwenden Sie ihr tatsächliches Datenverzeichnis. Die Ausgabe zeigt den freien Platz auf dem Dateisystem dieses Pfads. Freier Speicher auf einem anderen Volume behebt diesen Engpass nicht.
Ergänzen Sie df -i für denselben Pfad. Ein Dateisystem kann freie Blöcke, aber keine freien Inodes haben, also keine verfügbaren Datensätze für Dateimetadaten. Viele kleine Dateien können dann das Anlegen weiterer Dateien verhindern. Sind beide Prüfungen unauffällig, untersuchen Sie Quotas, Berechtigungen und die genaue Fehlermeldung der Anwendung.
Finden Sie wachsende Verzeichnisse und offene Dateien
Auf einem GNU-System zeigt etwa du -x -h --max-depth=1 /var Verzeichnissummen an, ohne auf andere Dateisysteme zu wechseln. Bei fehlenden Inodes verwenden Sie du --inodes --max-depth=1 für das betroffene Verzeichnis. Passen Sie den Pfad an die erste Prüfung an. Suchen Sie gezielt: Ein großer Verzeichnisbaum kann das Speichersystem während eines Vorfalls zusätzlich belasten.
Meldet df deutlich mehr belegten Platz, als du erklärt, prüfen Sie mit lsof +L1 auch gelöschte Dateien, die noch geöffnet sind. Das Entfernen eines Dateinamens gibt den Platz nicht unbedingt frei, solange ein Prozess die Datei offen hält. Ermitteln Sie den zuständigen Prozess und planen Sie gemäß Dienstdokumentation ein erneutes Öffnen des Logs oder einen kontrollierten Neustart.
Schützen Sie die Daten für die Datenbankwiederherstellung
PostgreSQL warnt, dass ein voller Datenträger mit WAL-Dateien zur Panic und zum Herunterfahren des Datenbankservers führen kann. WAL protokolliert Änderungen, die zur Wiederherstellung nach einem Absturz benötigt werden. Löschen Sie den Inhalt von pg_wal deshalb nicht manuell wie einen gewöhnlichen Cache.
Ein praktisches Vorgehen ist, vorübergehend entbehrliche Stapelverarbeitung mit Schreibzugriffen zu reduzieren, nachweislich unnötige Dateien außerhalb des Datenbankverzeichnisses zu entfernen oder die Kapazität sicher zu erweitern. Beachten Sie bei Logs die Aufbewahrungsregeln und erhalten Sie die für die Untersuchung benötigten Einträge. Prüfen Sie vor dem Entfernen von Backups, welche noch zur Wiederherstellung nötig sind und welche weiteren Kopien vorliegen.
Prüfen Sie Schreibzugriffe und beobachten Sie das weitere Wachstum
Messen Sie nach dem Eingriff erneut freien Platz und Inodes. Prüfen Sie einen sicheren Testvorgang, der tatsächlich schreibt, sowie Logs, Datenbankzustand und wartende Jobs. Eine funktionierende Startseite allein bestätigt nicht, dass Daten wieder gespeichert werden können.
Richten Sie Alarme nach der benötigten Reaktionszeit und der Wachstumsrate aus. Derselbe Belegungsgrad kann bei unterschiedlichen Schreibraten unterschiedlich dringend sein. Jede Meldung sollte das betroffene Volume nennen und erkennen lassen, wer den Vorfall bearbeiten kann.
- Ermitteln Sie den genauen Pfad und den Schreibfehler.
- Prüfen Sie freie Blöcke und Inodes.
- Identifizieren Sie wachsende Verzeichnisse und offene gelöschte Dateien.
- Prüfen Sie danach Schreibzugriffe und überwachen Sie das weitere Wachstum.
Was Sie mitnehmen
Unterscheiden Sie bei einem vollen Datenträger zwischen fehlendem Speicherplatz und erschöpften Inodes und ermitteln Sie die Ursache des Wachstums. Ein erfolgreicher Eingriff ermöglicht wieder Schreibzugriffe, erhält die Wiederherstellbarkeit und verschafft Zeit, die Ursache zu beheben.


