2018-04-09 21:53:29 +08:00
|
|
|
|
如何解决 “mount.nfs: Stale file handle”错误
|
2018-03-23 08:55:49 +08:00
|
|
|
|
======
|
2018-04-09 21:53:29 +08:00
|
|
|
|
|
|
|
|
|
> 了解如何解决 Linux 平台上的 `mount.nfs: Stale file handle` 错误。这个 NFS 错误可以在客户端或者服务端解决。
|
2018-03-23 08:55:49 +08:00
|
|
|
|
|
|
|
|
|
_![][1]_
|
|
|
|
|
|
|
|
|
|
当你在你的环境中使用网络文件系统时,你一定不时看到 `mount.nfs:Stale file handle` 错误。此错误表示 NFS 共享无法挂载,因为自上次配置后有些东西已经更改。
|
|
|
|
|
|
2018-04-09 21:53:29 +08:00
|
|
|
|
无论是你重启 NFS 服务器或某些 NFS 进程未在客户端或服务器上运行,或者共享未在服务器上正确输出,这些都可能是导致这个错误的原因。此外,当这个错误发生在先前挂载的 NFS 共享上时,它会令人不快。因为这意味着配置部分是正确的,因为是以前挂载的。在这种情况下,可以尝试下面的命令:
|
2018-03-23 08:55:49 +08:00
|
|
|
|
|
|
|
|
|
确保 NFS 服务在客户端和服务器上运行良好。
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
# service nfs status
|
|
|
|
|
rpc.svcgssd is stopped
|
|
|
|
|
rpc.mountd (pid 11993) is running...
|
|
|
|
|
nfsd (pid 12009 12008 12007 12006 12005 12004 12003 12002) is running...
|
|
|
|
|
rpc.rquotad (pid 11988) is running...
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
如果 NFS 共享目前挂载在客户端上,则强制卸载它并尝试在 NFS 客户端上重新挂载它。通过 `df` 命令检查它是否正确挂载,并更改其中的目录。
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
# umount -f /mydata_nfs
|
|
|
|
|
|
|
|
|
|
# mount -t nfs server:/nfs_share /mydata_nfs
|
|
|
|
|
|
|
|
|
|
#df -k
|
|
|
|
|
------ output clipped -----
|
|
|
|
|
server:/nfs_share 41943040 892928 41050112 3% /mydata_nfs
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
在上面的挂载命令中,服务器可以是 NFS 服务器的 IP 或[主机名][4]。
|
|
|
|
|
|
|
|
|
|
如果你在强制取消挂载时遇到像下面错误:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
# umount -f /mydata_nfs
|
|
|
|
|
umount2: Device or resource busy
|
|
|
|
|
umount: /mydata_nfs: device is busy
|
|
|
|
|
umount2: Device or resource busy
|
|
|
|
|
umount: /mydata_nfs: device is busy
|
|
|
|
|
```
|
2018-04-09 21:53:29 +08:00
|
|
|
|
|
2018-03-23 08:55:49 +08:00
|
|
|
|
然后你可以用 `lsof` 命令来检查哪个进程或用户正在使用该挂载点,如下所示:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
# lsof |grep mydata_nfs
|
|
|
|
|
lsof: WARNING: can't stat() nfs file system /mydata_nfs
|
|
|
|
|
Output information may be incomplete.
|
|
|
|
|
su 3327 root cwd unknown /mydata_nfs/dir (stat: Stale NFS file handle)
|
|
|
|
|
bash 3484 grid cwd unknown /mydata_nfs/MYDB (stat: Stale NFS file handle)
|
|
|
|
|
bash 20092 oracle11 cwd unknown /mydata_nfs/MPRP (stat: Stale NFS file handle)
|
|
|
|
|
bash 25040 oracle11 cwd unknown /mydata_nfs/MUYR (stat: Stale NFS file handle)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
如果你在上面的示例中看到共有 4 个 PID 正在使用该挂载点上的某些文件。尝试杀死它们以释放挂载点。完成后,你将能够正确卸载它。
|
|
|
|
|
|
2018-04-09 21:53:29 +08:00
|
|
|
|
有时 `mount` 命令会有相同的错误。接着使用下面的命令在客户端重启 NFS 服务后挂载。
|
2018-03-23 08:55:49 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
# service nfs restart
|
|
|
|
|
Shutting down NFS daemon: [ OK ]
|
|
|
|
|
Shutting down NFS mountd: [ OK ]
|
|
|
|
|
Shutting down NFS quotas: [ OK ]
|
|
|
|
|
Shutting down RPC idmapd: [ OK ]
|
|
|
|
|
Starting NFS services: [ OK ]
|
|
|
|
|
Starting NFS quotas: [ OK ]
|
|
|
|
|
Starting NFS mountd: [ OK ]
|
|
|
|
|
Starting NFS daemon: [ OK ]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
另请阅读:[如何在 HPUX 中逐步重启 NFS][5]
|
|
|
|
|
|
2018-04-09 21:53:29 +08:00
|
|
|
|
即使这没有解决你的问题,最后一步是在 NFS 服务器上重启服务。警告!这将断开从该 NFS 服务器输出的所有 NFS 共享。所有客户端将看到挂载点断开。这一步将 99% 解决你的问题。如果没有,请务必检查 [NFS 配置][6],提供你修改的配置并发布你启动时看到的错误。
|
2018-03-23 08:55:49 +08:00
|
|
|
|
|
|
|
|
|
上面文章中的输出来自 RHEL6.3 服务器。请将你的评论发送给我们。
|
|
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
via: https://kerneltalks.com/troubleshooting/resolve-mount-nfs-stale-file-handle-error/
|
|
|
|
|
|
|
|
|
|
作者:[KernelTalks][a]
|
|
|
|
|
译者:[geekpi](https://github.com/geekpi)
|
2018-04-09 21:53:29 +08:00
|
|
|
|
校对:[wxy](https://github.com/wxy)
|
2018-03-23 08:55:49 +08:00
|
|
|
|
|
|
|
|
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
|
|
|
|
|
|
|
|
|
[a]:https://kerneltalks.com
|
|
|
|
|
[1]:http://kerneltalks.com/wp-content/uploads/2017/01/nfs_error-2-150x150.png
|
|
|
|
|
[2]:https://www.clouddesktoponline.com/
|
|
|
|
|
[3]:http://www.apps4rent.com
|
|
|
|
|
[4]:https://kerneltalks.com/linux/all-you-need-to-know-about-hostname-in-linux/
|
|
|
|
|
[5]:http://kerneltalks.com/hpux/restart-nfs-in-hpux/
|
|
|
|
|
[6]:http://kerneltalks.com/linux/nfs-configuration-linux-hpux/
|