O servidor NFS é um SLES11SP3, aqui está a declaração de exportação:
/media/data *domain.com(rw,sync,no_root_squash,fsid=1)
Eu suspeito que isso é um problema de cache no cliente (RHEL6), mas acredito que eu desliguei todo o cache, ainda assim o problema continua.
Como os problemas são exibidos:
No servidor eu faço um touch /media/data/test
. O arquivo não é exibido no cliente, mesmo que eu aguarde alguns minutos.
Se eu touch /media/data
(o diretório) no servidor, ele mostra. Também aparece quando eu touch /data/test2
do cliente.
O que eu tentei no cliente:
# original
server:/media/data /data nfs rw,soft,vers=3,rsize=1048576,wsize=1048576,mountvers=3,sync,lookupcache=none
# mod 1 (remove parameters which have defaults: size, mountvers; add noac)
server:/media/data /data nfs rw,soft,vers=3,sync,lookupcache=none,noac 0 0
Eu também tentei montar usando hard
e especifique actimeo=1
, sem efeito.
Eu vi este e este . Não ajuda também.
Atualização # 1
Parece que o sistema de arquivos subjacente é especial.
O sistema de arquivos subjacente no servidor é um volume do Novell NSS.
O NSS tem certas propriedades exclusivas, como mapear o tempo de criação do arquivo para o ctime no Linux (que nativamente é o tempo mudança lá) ).
Significado: Ao modificar o conteúdo do diretório, somente o mtime é atualizado e não o ctime. Aparentemente, o cliente RHEL NFS não considera este um motivo suficiente para atualizar seu cache, enquanto os clientes SuSE NFS parecem ser corrigidos para isso.
Quais são as opções?
- Altere as propriedades no volume NSS (que pode, opcionalmente, mapear ctime para Change Time e não Creation Time, embora seja necessário investigar as repercussões dessa configuração em todo o sistema de arquivos)
- Consiga que o Redhat considere apenas o mtime e não o ctime (por que eles estão mesmo assim?)
- Solução alternativa: toque nos diretórios antes de listá-los .......