Подтвердить что ты не робот

Команда очистки кеша NFS?

У меня возникли проблемы с кэшированием атрибутов клиентской стороны 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 с разрешения пользователя.

Пожалуйста, дайте мне знать, есть ли такие команды.

Спасибо,


(Приложена)

Я имею в виду "ошибки ложного кэширования",

 % 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 заявляет, что он гарантирует согласованность между концами.

4b9b3361

Ответ 1

В зависимости от того, что вы подразумеваете под "ошибками ложного кэширования", запуск sync может дать вам то, что вам нужно. Это приведет к сбросу всех буферов файловой системы.

При необходимости вы также можете очистить тайники VM в ядре, используя /proc/sys/vm/drop_caches.

# To free pagecache
echo 1 > /proc/sys/vm/drop_caches

# To free dentries and inodes
echo 2 > /proc/sys/vm/drop_caches

# To free pagecache, dentries and inodes
echo 3 > /proc/sys/vm/drop_caches

Ответ 2

В рамках данного процесса вызов opendir и closedir в родительском каталоге файла приводит к недействительности кеша NFS. Я использовал это при программировании планировщика заданий. Очень, очень полезно. Попробуйте!

Ответ 3

AFAIK, параметры sync и async не являются источником кэширования атрибутов. async позволяет серверу задерживать сохранение данных в файловой системе сервера, например. это влияет на долговечность записи в случае сбоев сервера NFS, но если сервер NFS стабилен, то async не влияет на клиентов NFS.

Существует опция lookupcache=positive NFS mount, которая может использоваться для предотвращения кэширования с отрицательным поиском, например. NFS возвращает "Нет такого файла или каталога", когда файл действительно существует на сервере. См. Directory entry caching в man nfs.

Ответ 4

файл clear/var/lib/nfs/rmtab на сервере nfs.

Следующие команды используются для устранения проблем, связанных с памятью. и это тоже очень опасно. soem раз это приведет к сбою приложения ur, размещенного на поле

# sync

# To free pagecache
echo 1 > /proc/sys/vm/drop_caches

# To free dentries and inodes
echo 2 > /proc/sys/vm/drop_caches

# To free pagecache, dentries and inodes
echo 3 > /proc/sys/vm/drop_caches

Ответ 5

Вы видите эффекты кеша атрибутов NFS. См. man nfs и проверьте DATA AND METADATA COHERENCE.

NFS по умолчанию кэширует атрибуты не менее 30 секунд (acregmin и acdirmin) и максимум 60 секунд (acregmax и acdirmax). Вы можете переопределить все это вместе с actimeo или полностью отключить кеш атрибутов с помощью noac. С опцией noac mount поведение, описанное OP исчезает, но достигает производительности.

lookupcache=positive полезен, если вы просто ищете внешний вид новых файлов, но удаления по-прежнему будут проходить через кеш атрибутов.