Два идентичных общих ресурса NFS, но только один из двух дает ошибки обработки файлов Stale - PullRequest
0 голосов
/ 04 марта 2020

У меня есть Linux (raspbian) сервер:

$ uname -a
Linux hester 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux

С двумя каталогами с одинаковыми пользователем / группой / разрешениями:

$ ls -ld /mnt/storage/gitea/ /mnt/storage/hester/
drwxr-xr-x 2 nobody nogroup 26 Mar  2 10:20 /mnt/storage/gitea/
drwxr-xr-x 3 nobody nogroup 21 Feb 21 11:26 /mnt/storage/hester/

Эти два каталога экспортируются с теми же параметрами в файле экспорта:

$ cat /etc/exports
/mnt/storage/hester     192.168.1.15(rw,sync,no_subtree_check)
/mnt/storage/gitea      192.168.1.15(rw,sync,no_subtree_check)

На другом компьютере (упомянутом в файле экспорта 192.168.1.15) я смонтировал оба успешно:

$ mount /mnt/storage/gitea/
$ echo $?
0
$ mount /mnt/storage/hester/
$ echo $?
0

Но теперь странно вещи происходят:

$ ls -l /mnt/storage/
ls: cannot access '/mnt/storage/gitea': Stale file handle
total 0
d????????? ? ?      ?        ?            ? gitea
drwxr-xr-x 3 nobody nogroup 21 Feb 21 11:26 hester

Я действительно не могу понять

  • в чем причина ошибки, и прежде всего
  • , где я мог бы найти разницу между двумя.

Я открыт для предложений о дальнейших исследованиях или ответов на мои сомнения. Заранее благодарим за любой полезный вклад!

1 Ответ

0 голосов
/ 05 марта 2020

Я наконец нашел решение, которое заключалось в явном добавлении опции fsid в экспорт:

$ cat /etc/exports
/mnt/storage/hester     192.168.1.15(rw,sync,fsid=20,no_subtree_check)
/mnt/storage/gitea      192.168.1.15(rw,sync,fsid=21,no_subtree_check)

Я не совсем уверен, почему это работает. Со страницы man я получаю, что «NFS должна иметь возможность идентифицировать каждую файловую систему, которую она экспортирует. Обычно она использует UUID для файловой системы (если в файловой системе есть такая вещь) или номер устройства, содержащего файловую систему ( если файловая система хранится на устройстве). "

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

Еще одно замечание: / mnt / storage - это файловая система XFS поверх RAID3, так что это также может привести к путанице в NFS. о UUID устройств.

...