Додавання як відповідь на основі вашого коментаря.
Рішення полягає в тому, щоб додати lookupcache=none
до своїх параметрів кріплення nfs.
Що трапляється, що перший раз, коли ваш клієнт читає файл, він здійснює пошук NFS, щоб отримати файл NFS. Потім він кешує файловий файл NFS, а коли ви повернетесь, щоб відкрити файл, він використовує кеш. Зазвичай це не проблема, як при оновленні файлу, його fileid залишається таким же. Але чомусь старий файл видаляється, а новий створюється (або перейменовується, або щось там, де його не той самий файл).
Зараз зазвичай це не проблема, як тоді, коли ваш клієнт намагається відкрити файл, який там не знаходиться, він отримає помилку від сервера і зробить інший пошук, щоб отримати новий файлід. Але чомусь сервер NFS дозволяє клієнту відкрити цей старий файлід. Можливо, інший клієнт відкрив файл, і тому його ще не видалено, я не знаю.
У будь-якому випадку спосіб вирішити це - сказати клієнту завжди робити nfslookup перед відкриттям файлу, використовуючи опцію монтажу nfs lookupcache=none
. Мінус цього полягає в тому, що це може бути дорого, якщо ви часто відкриваєте файли, оскільки це додає більше трафіку на сервер NFS.
ls -i
клієнт, перш ніж редагувати файл на сервері, а потім знову після. Подивіться, чи змінюються цифри. Якщо вони роблять це через те, що сервер замінює файл, і клієнт цього не помічає, поки він не скасує каталог. Якщо так, спробуйте встановити параметр кріпленняlookupcache=none
і побачити, чи зміниться поведінка.