Опрос общего ресурса NFS из файловой системы - PullRequest
0 голосов
/ 14 марта 2011

У нас есть два сервера, каждый из которых имеет каталог, сопоставленный через NFS.

Процесс на сервере A (сценарий оболочки) помещает файл в подключенный диск.

Java-процесс на сервере B регулярно опрашивает подключенный диск и обрабатывает файл, как только он найден. После обработки файла - он переименовывается (и впоследствии удаляется процессом cron'а на сервере A)

Файл представляет собой небольшой файл .properties. Все работает хорошо на пару циклов. После этого сервер A и сервер B начинают видеть содержимое подключенного диска по-разному. Мы отключили кеширование NFS и поиск атрибутов. Проблема все еще там.

Если я захожу на сервер, у которого нарушен вид, и делаю:

ls

Я посмотрю заблокированные файлы. НО, если я сделаю это снова - будет напечатан правильный список файлов.

Мы будем признательны за любую помощь по этому вопросу.

Ответы [ 3 ]

1 голос
/ 17 марта 2011

Моя проблема заключалась в том, что при зацикливании с таймером команда, приведенная ниже, перестает видеть фактическое содержимое каталога.Он не синхронизирован с NFS-сервером.

File[] files = dir.listFiles(new MyFileFilter() );

Решение, которое я получил, это запрос заведомо несуществующего файла.Я предполагаю, что это заставляет клиента NFS исправлять или обновлять свое состояние.

// Key point is here: we ask NFS client to obtain unexisting file. Since the client
// cannot find it locally - it will make a call to the NFS server which will 
// fix client cache or whatever it uses locally when cache is disabled.
File temp = new File(dir, "unexisting.file");
temp.exists();

Если вы знаете механизм этого обходного пути - пожалуйста, поделитесь!

0 голосов
/ 07 декабря 2011

Какой тип кэширования вы отключили? NFS поддерживает кэширование записей каталога, см. Параметры acdirmin и acdirmax на справочной странице nfs Linux . Или глава «Согласованность данных и метаданных» в том же руководстве.

0 голосов
/ 14 марта 2011

Какой сервер NFS используется? Если этот сервер поддерживает уведомление об изменении файла, вы можете использовать его вместо опроса.

...