Dateisystem voll - außer es ist nicht

Dateisystem voll - außer es ist nicht

Ich habe eine Solaris 8-Box, die meldet, dass ein Dateisystem voll ist:

db% tail -2 /var/adm/messages
Nov 22 08:32:27 db ufs: [ID 845546 kern.notice] NOTICE: alloc: /u03: file system full
Nov 22 08:34:51 db last message repeated 12 times

Aber df sagt, dass noch genügend freie Blöcke vorhanden sind und auch noch nicht genügend freie Inodes:

db% df -k /u03
Filesystem            kbytes    used   avail capacity  Mounted on
/dev/md/dsk/d6       282330903 254957403 24550191    92%    /u03
db% df -o i /u03
Filesystem             iused   ifree  %iused  Mounted on
/dev/md/dsk/d6      29663278 4230866    88%   /u03

Ich dachte also, dass vielleicht ein Prozess offene Dateideskriptoren für über 20 GB gelöschte Dateien hält. Aber lsof meldet beim Sortieren nach Größe nichts über 2 GB, und das ist eine legitime Datei:

db% lsof /u03 | sort -n +6
COMMAND     PID     USER   FD   TYPE DEVICE   SIZE/OFF     NODE NAME
[...]
oracle     1257   oracle  278u  VREG   85,6 2097160192  9685782 /u03/oradata/(redacted)/data/foo_tab_14.dbf
db%

Ich würde mich über alle Hinweise auf andere Ressourcen freuen, abgesehen von freien Blöcken und Inodes, deren Erschöpfung ein Dateisystem füllen kann, oder über eine andere Möglichkeit, verwendete Blöcke/Inodes zu „verstecken“, oder über jede andere Idee, die jemand hat. Das Neustarten dieser Box oder das Herunterfahren von Oracle ist keine gültige Untersuchungsoption.

Bearbeiten: Khaled, das konnte ich damals nicht. Ich kann die Ausgabe nicht posten, weil einer der DBAs etwa 4 GB freigegeben hat, was bedeutet, dass die Maschine weiter funktionieren kann, und wenn ich sie testweise noch einmal „auffülle“, wird es kaputtgehen. Aber das ist das zweite Mal in 24 Stunden, dass sie zu etwa 92 % voll und „aufgefüllt“ ist (d. h., es können keine neuen Dateien erstellt werden und es /var/adm/messageswird „Dateisystem voll“ gemeldet), und ja, wenn das passiert, wird die Erstellung oder Erweiterung von Dateien auf diesem FS definitiv unterbrochen.

Antwort1

Überprüfen Sie den nbfreeWert mit

fstyp -v | head -18

Wenn das einen niedrigen Wert anzeigt,diesen Blog-Beitrag habe ich gefundenkönnte dir helfen. Ich zitiere den Anfang des Beitrags:

Bei der Arbeit haben wir ein Solaris 8 mit einem UFS, das der Anwendung mitteilte, dass es keine neuen Dateien erstellen kann. Der df-Befehl zeigte viele freie Inodes an, und im FS war auch genügend freier Speicherplatz vorhanden. Der Grund für den Fehler bei der Anwendung war, dass zwar noch viele Fragmente frei waren, aber kein freier Block mehr verfügbar war. Sie können keine neue Datei nur mit Fragmenten erstellen, Sie müssen für jede neue Datei mindestens einen freien Block haben.

Um die Anzahl der freien Blöcke eines UFS zu sehen kann man „fstyp -v | head -18“ aufrufen und sich den Wert hinter „nbfree“ anschauen.

verwandte Informationen