Sistema de archivos lleno, excepto que no lo está

Sistema de archivos lleno, excepto que no lo está

Tengo un cuadro de Solaris 8 que informa que un sistema de archivos está lleno:

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

Pero df dice que no se han quedado sin bloques libres, y tampoco se han quedado sin inodos libres:

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

Entonces pensé que tal vez algún proceso mantiene los descriptores de archivos abiertos en más de 20 GB de archivos eliminados. Pero lsof, al ordenar por tamaño, no informa nada de más de 2 GB, y ese es un archivo legítimo:

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%

Agradecería cualquier sugerencia sobre cualquier otro recurso, excepto bloques e inodos libres cuyo agotamiento pueda llenar un sistema de archivos, o alguna otra forma de "ocultar" bloques/inodos usados, o cualquier otra idea que alguien tenga. Reiniciar este cuadro o cerrar Oracle no es una opción de investigación válida.

Editar: Khaled, no pude en ese momento. No puedo publicar el resultado porque uno de los administradores de bases de datos ha liberado aproximadamente 4 GB, lo que significa que la máquina puede seguir funcionando, y si lo "lleno" nuevamente como prueba, todo se romperá. Pero esta es la segunda vez en 24 horas que llega aproximadamente al 92% de su capacidad y "lleno" (es decir, no se pueden crear archivos nuevos y /var/adm/messagesreporta "sistema de archivos lleno"), y sí, cuando sucede definitivamente interrumpe la creación o extensión de archivos en ese FS.

Respuesta1

Comprueba el nbfreevalor con

fstyp -v | head -18

Si eso dice algún valor bajo,esta publicación de blog que encontrépodría ayudarte. Cito el comienzo del post:

En el trabajo tenemos un Solaris 8 con un UFS que le dijo a la aplicación que no puede crear archivos nuevos. El comando df mostró muchos inodos libres y también había suficiente espacio libre en el FS. La razón por la que la aplicación recibió el error fue que, aunque todavía había muchos fragmentos libres, ya no había ningún bloque libre disponible. No puedes crear un archivo nuevo sólo con fragmentos, necesitas tener al menos un bloque libre para cada archivo nuevo.

Para ver el número de bloques libres de una UFS puedes llamar a “fstyp -v | diríjase -18 ″ y observe el valor detrás de “nbfree”.

información relacionada