Sistema de arquivos cheio - exceto que não está

Sistema de arquivos cheio - exceto que não está

Eu tenho uma caixa do Solaris 8 que informa que um sistema de arquivos está cheio:

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

Mas df diz que não está sem blocos livres, e também não está sem inodes livres:

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

Então pensei que talvez algum processo estivesse mantendo descritores de arquivos abertos em mais de 20 GB de arquivos excluídos. Mas lsof, classificando por tamanho, não informa nada acima de 2 GB, e esse é um arquivo 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%

Eu apreciaria qualquer indicação para qualquer outro recurso, exceto blocos e inodes livres cujo esgotamento possa preencher um sistema de arquivos, ou alguma outra maneira de "ocultar" blocos/inodes usados, ou qualquer outra idéia que alguém tenha. Reiniciar esta caixa ou desligar o Oracle não é uma opção de investigação válida.

Editar: Khaled, eu não pude naquele momento. Não posso postar a saída, porque um dos DBAs liberou cerca de 4 GB, o que significa que a máquina pode continuar funcionando, e se eu "preenchê-la" novamente como teste, as coisas vão quebrar. Mas esta é a segunda vez em 24 horas que chega a cerca de 92% cheio e "preenchido" (como em, novos arquivos não podem ser criados e /var/adm/messagesrelata "sistema de arquivos cheio"), e sim, quando isso acontece, definitivamente interrompe a criação ou extensão de arquivos nesse FS.

Responder1

Confira o nbfreevalor com

fstyp -v | head -18

Se isso diz algum valor baixo,esta postagem do blog que encontreipode ajudá-lo. Cito o início do post:

No trabalho temos um Solaris 8 com UFS que informa ao aplicativo que não é possível criar novos arquivos. O comando df mostrou muitos inodes livres e também havia espaço livre suficiente no FS. A razão pela qual o aplicativo recebeu o erro foi que, embora ainda houvesse muitos fragmentos livres, nenhum bloco livre estava mais disponível. Você não pode criar um novo arquivo apenas com fragmentos, é necessário ter pelo menos um bloco livre para cada novo arquivo.

Para ver o número de blocos livres de um UFS você pode chamar “fstyp -v | head -18″ e observe o valor atrás de “nbfree”.

informação relacionada