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

Почему отказано в разрешении с помощью NFS после перезагрузки?

У меня есть клиенты Ubuntu и CentOS nfsv3, монтируемые в ящик FreeBSD, который был перезагружен при подключении клиентов nfs. Теперь клиенты получают отказ в разрешении при попытке доступа к точкам монтирования.

На клиенте пробовал

# umount /nobackup/dat
umount.nfs: /nobackup/dat: device is busy
umount.nfs: /nobackup/dat: device is busy

# fuser /nobackup/dat
Cannot stat file /proc/1660/fd/473: Stale NFS file handle
Cannot stat file /proc/1660/fd/475: Stale NFS file handle
Cannot stat file /proc/1660/fd/476: Stale NFS file handle
Cannot stat file /proc/1660/fd/478: Stale NFS file handle
Cannot stat file /proc/1660/fd/479: Stale NFS file handle
Cannot stat file /proc/14509/fd/1: Stale NFS file handle
Cannot stat file /proc/14674/fd/1: Stale NFS file handle
Cannot stat file /proc/14871/fd/1: Stale NFS file handle
Cannot stat file /proc/27872/fd/436: Stale NFS file handle
Cannot stat file /proc/27872/fd/444: No such file or directory

# umount -f /nobackup/dat
umount2: Device or resource busy
umount.nfs: /nobackup/dat: device is busy
umount2: Device or resource busy
umount.nfs: /nobackup/dat: device is busy

Обновить

Теперь убил все процессы и успешно размонтировал /nobackup/dat, но по какой-то причине я все еще получаю сообщение об отказе в разрешении.

# fuser -m /nobackup/dat 2>&1 | awk -F'/' '{print $3}' | xargs -n 1 kill
# fuser -m /nobackup/dat
# umount -l /nobackup/dat
# ll /nobackup/dat
ls: cannot open directory /nobackup/dat: Permission denied

# mount /nobackup/dat
mount.nfs: access denied by server while mounting (null)

Вопрос

Есть предложения, как это отладить?

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

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

umount -l

Вы также можете попробовать перемонтировать файловую систему, используя

mount -o remount 

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

После того, как вы успешно избавились от устаревших дескрипторов файлов, перемонтируйте файловые системы:

mount nobackup/dat