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

NFS показывает файлы в каталоге, но не может открыть или просмотреть

Я использую сеть машин Linux (Debian Squeeze на ядре 2.6.32), обмениваюсь файлами с помощью NFS (v3). Сценарий состоит в том, что процесс, запущенный на клиенте A, создаст файл через NFS на файловом сервере Z. Затем после того, как процесс завершится на A (очистка его вывода и закрытие файла), клиент B попытается получить доступ к файлу. В 99,9% случаев с этим подходом проблем нет.

Проблема в том, что очень редко клиент B при попытке чтения выдает ошибку, говоря, что файл не существует. Сложность в том, что B всегда показывает файл, когда для содержащего его каталога создается «ls» или readdir. Однако при попытке открыть или даже вызвать команду "stat" для файла выдается ошибка "не существует".

Некоторые дополнительные моменты:

Я сильно подозреваю, что это какая-то проблема с согласованностью кэша NFS. Но я не могу понять, какова точная причина или возможное решение. Если я не неправильно понимаю руководство по NFS, этот тип поведения должен быть предотвращен с помощью близкой к открытому согласованности кеша. Кто-нибудь еще сталкивался с этой проблемой файлов NFS, которые существуют для системного вызова "readdir", но не существуют для системного вызова "stat"? Приветствуется любое понимание. Спасибо.