为什么重启后 NFS 权限被拒绝?

为什么重启后 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)

问题

关于如何调试这个问题有什么建议吗?

答案1

问题是客户端没有意识到 nfs 服务器已经消失,因此他们仍在尝试访问上次挂载文件系统时最初创建的文件句柄。

通常,重新启动客户端是确保其重新挂载文件系统的一种可靠方法。但是,如果您不想这样做,请先终止所有尝试使用 NFS 文件系统的进程。之后,您可以尝试使用以下命令进行“延迟卸载”

umount -l

您也可以尝试重新挂载文件系统,使用

mount -o remount 

否则,旧文件处理将要在某个时候超时,尽管我不知道要花多长时间。

一旦成功摆脱了陈旧的文件句柄,请重新挂载文件系统:

mount nobackup/dat

相关内容