NFS mostrando arquivos no diretório, mas não pode abrir ou stat

2

Estou usando uma rede de máquinas Linux (Debian Squeeze no kernel 2.6.32), compartilhando arquivos usando o NFS (v3). O cenário é que um processo em execução no cliente A criará um arquivo por meio do NFS no servidor de arquivos Z. Depois que o processo for concluído em A (liberando sua saída e fechando o arquivo), o cliente B tentará acessar o arquivo. 99,9% das vezes não há problema com essa abordagem.

O problema é que raramente o cliente B ao tentar ler emitirá um erro dizendo que o arquivo não existe. A ruga é que B sempre mostra o arquivo quando um "ls" ou readdir é feito no diretório contendo. No entanto, ao tentar abrir, ou até mesmo chamar "stat" no arquivo o erro não existe é lançado.

Alguns pontos adicionais:

  • Os arquivos são gravados apenas uma vez em um único cliente, mas podem ser lidos muitas vezes por muitos clientes diferentes (WORM). Os arquivos também nunca são excluídos no processo.
  • Quando os erros aparecem, eles parecem afetar apenas alguns dos clientes (aleatoriamente). Outros clientes podem abrir e ler os arquivos sem nenhum problema. Além disso, quando o problema ocorre, ele tende a ocorrer repetidamente. A reinicialização do servidor de arquivos e a montagem novamente nos clientes parece eliminar o problema
  • O arquivo pode ser lido após um tempo suficiente. Pode ser de alguns segundos a dez minutos. Às vezes, ele desaparece imediatamente após um readdir no diretório que o contém, às vezes não.
  • Inicialmente suspeitei que fosse um problema de coerência de cache de atributo do NFS. Então eu remontei com a opção noac ativada. O problema continuou aparecendo (além de ser lento).
  • O problema só aparece durante o tráfego pesado do NFS quando muitos arquivos grandes são criados, gravados e lidos.
  • Nada indicando um problema aparece em qualquer um dos syslogs ou dmesg no lado do cliente ou do servidor.

Eu suspeito strongmente que este é um problema de coerência de cache NFS de algum tipo. Mas não consigo descobrir qual é a causa exata ou a possível solução. A menos que eu esteja interpretando mal o manual do NFS, esse tipo de comportamento deve ser impedido pela coerência do cache próximo ao aberto. Alguém já teve experiência com esse problema de arquivos NFS que existem para a chamada de sistema "readdir", mas não existem para a chamada de sistema "stat"? Qualquer insight seria muito apreciado. Obrigado.

    
por user79126 25.07.2013 / 06:42

0 respostas