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

Ошибка «Устаревший дескриптор файла NFS» при попытке доступа к каталогу

У меня четыре компьютера, и на двух из них (скажем, n1 и n2) я установил сервер NFS4 и экспортировал:

/export   10.0.0.0/16(rw,fsid=0,no_subtree_check,async,insecure,no_root_squash)
/export/home 10.0.0.0/16(rw,fsid=0,no_subtree_check,async,insecure,no_root_squash)

Теперь и n1, и n2 имеют одинаковую конфигурацию, и я могу без ошибок монтировать и отключать эти ресурсы на любом из моих компьютеров (в / home / n1 и / home / n2), но я могу получить доступ только к ресурсам с n1. Когда я пытаюсь ls каталог из n2 я получаю сообщение об ошибке: «Устаревший дескриптор файла NFS».

Моя сеть работает правильно, у меня нет брандмауэра, оба имеют одинаковую конфигурацию и одинаковую версию сервера Ubuntu 10.04.

На клиентских машинах в логах я получаю такую ​​ошибку:

[585039.584017] NFS: server 10.0.1.4 error: fileid changed
[585039.584019] fsid 0:16: expected fileid 0x1ba54e2, got 0x3f20001

Я проверил его на сервере, и этот 0x3f20001 является идентификатором /export каталог и 0x1ba54e2 /export/home.

Мой fstab выглядит так:

10.0.1.4:/home /home/n2 nfs4    _netdev,auto 0 0

IP 10.0.1.4 принадлежит хосту n2.

Любая идея?

Похоже, это проблема с неправильным связыванием в fstab. Раньше, когда я настраивал его, я случайно поменял местами src и dest в fstab на n2, когда я привязал его к /home/n2 затем я переместил несколько домашних каталогов и изменил эту привязку на правильную. Но, наверное, не перемонтировал (наверное, забыл).

Я пробовал обновлять пакеты и после перезапуска заметил, что /export/home был пуст, и все данные были в /home/n2 на n2. Итак, я снова переместил его в /export/home и все работало правильно.

Итак, я предполагаю, что у NFS были проблемы с экспортом каталога, который был привязан к другому каталогу.

Fsid должен быть разным для каждого экспорта, и в вашей конфигурации он установлен на 0.

Вам следует попытаться установить разные fsid для каждого экспорта на каждом сервере.