У меня проблема с кэшированием атрибутов на стороне клиента NFS. Я использую несколько серверов, один из которых является NFS сервером, а другие - NFS клиентскими серверами.
Все серверы - Debian (lenny, 2.6.26-2-amd64 Linux) и версии следующие.
% dpkg -l | grep nfs
ii libnfsidmap2 0.20-1 An nfs idmapping library
ii nfs-common 1:1.1.2-6lenny1 NFS support files common to client and server
ii nfs-kernel-server 1:1.1.2-6lenny1 support for NFS kernel server
На сервере NFS, /etc/exports написан следующим образом:
/export-path 192.168.0.0/255.255.255.0(async,rw,no_subtree_check)
На клиентах NFS, /etc/fstab написан следующим образом:
server:/export-path /mountpoint nfs rw,hard,intr,rsize=8192,async 0 0
Как вы видите, опция "async" используется для повышения производительности доступа нескольких клиентов. Однако иногда это может вызвать ошибки ложного кэширования.
Поскольку я обслуживаю много серверов (и у меня не так много прав на изменение опций монтирования), я не хочу изменять /etc/exports и /etc/fstab. Я думаю, будет достаточно, если у меня будет инструмент командной строки, который "чистит" кэш атрибутов NFS на стороне клиента с правами пользователя.
Пожалуйста, дайте мне знать, если есть такие команды.
Thanks,
Я имею в виду "ошибки ложного кэширования",
% ls -l /data/1/kabe/foo
ls: cannot access /data/1/kabe/foo: No such file or directory
% ssh another-server 'touch /data/1/kabe/foo'
% ls -l /data/1/kabe/foo
ls: cannot access /data/1/kabe/foo: No such file or directory
Иногда такие случаи случаются. Проблема не в содержимом файла, а в атрибутах файла (=информации о дентри), поскольку NFS говорит, что гарантирует согласованность Close-to-Open.