У меня четыре компьютера, и на двух из них (скажем, 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 для каждого экспорта на каждом сервере.