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

сбой монтирования nfs из-за того же дескриптора файла

В / etc / exports:

/tmp/test    *(rw)

/dev/sda1 (файловая система ext4) смонтирована в /tmp/test

команда для монтирования nfs:

mount -o vers=3 $HOST:/tmp/test $NFS_DIR

(где HOST - это IP-адрес сервера nfs, NFS_DIR - локальная точка монтирования на клиенте)

В первый раз nfs монтируется успешно. А потом я размонтировал.

Затем я командую запись в / etc / exports (без экспорта nfs) и делаю exportfs -r.

Затем я раскомментирую запись / tmp / test в / etc / exports (как и раньше) и делаю exportfs -r очередной раз

И я монтирую общий ресурс nfs, используя ту же команду. Но на этот раз крепление зависнет и истечет время ожидания.

Однако, когда я проверял журнал nfs, я получил следующее:

/tmp and /tmp/test have same filehandle for *, using first
qword_eol: fflush failed: errno 22 (Invalid argument)
Cannot export /tmp, possibly unsupported filesystem or fsid= required" 

Ошибка с жалобой на export / tmp имеет смысл, потому что это tmpfs.

Но почему / tmp и / tmp / test имеют одинаковый дескриптор файла?

Я знаю, что проблема вызвана тем, что / tmp и / tmp / test имеют один и тот же дескриптор файла, поэтому nfs возвращает первый из них / tmp. Я хочу экспортировать / tmp / test (ext4 fs), а не / tmp (tmpfs).

Проблема решается перезапуском rpc.mountd.

  1. почему / tmp / tmp / test получают тот же дескриптор файла?
  2. почему перезапуск rpc.mountd решает проблему?
  3. как решить эту проблему без перезапуска rpc.mounts?

Похоже, это ошибка в самой nfs-utils. И эта ошибка исправлена ​​в версии 1.3.3. Я также пробовал использовать nfs-utls 1.3.2, но проблема все еще существует. Использование nfs-utils 1.3.3 решит эту проблему.