Назад | Перейти на главную страницу

Клиенты NFS видят устаревшее состояние

У меня есть сервер, экспортирующий раздел как:

/data/foo     *.example.com(rw,sync,all_squash,anonuid=502,anongid=502,subtree_check)

... и клиент монтирует его как:

myhost:/data/foo     /home/myuser/foo  nfs     auto,soft,intr,timeo=60       0    0

У клиента есть процесс, который перемещает некоторые файлы из каталога с именем in к error, и на сервере есть процесс, который перемещает их обратно в in.

По какой-то причине часто клиент не видит актуального состояния. Задержка достаточно велика, чтобы ее можно было заметить при выполнении команд в оболочке вручную.

$ mv in/foo.txt error/foo.txt
mv: `in/foo.txt' and `error/foo.txt' are the same file

Но этого файла нет в error больше:

$ ls error/foo.txt
"No such file or directory"

Попробуем удалить:

$ rm error/foo.txt
rm: cannot remove `error/foo.txt': No such file or directory

Ну а теперь ты жестяная банка собственно переместить файл.

В других случаях я могу столкнуться с любопытством:

$ mv in/foo.txt error/foo.txt; find . | grep foo
mv: cannot stat `in/foo.txt': No such file or directory
./in/foo.txt

Что тут происходит? Как я могу это исправить?