我有一个 nfs 服务器,它有时会半途挂起。在服务器 l 上,此方法有效:
# uname -a
Linux l 3.2.0-0.bpo.1-amd64 #1 SMP Sat Feb 11 08:41:32 UTC 2012 x86_64 GNU/Linux
# showmount -e l
Export list for l:
/disk/l 192.168.0.0/16
# mount l:/disk/l /mnt/disk/
# ls /mnt/disk
因此看起来 nfs 从服务器 l 到服务器 l 都可以工作。
在服务器e上:
# uname -a
Linux e 3.2.0-0.bpo.1-amd64 #1 SMP Sat Feb 11 08:41:32 UTC 2012 x86_64 GNU/Linux
# showmount -e l
Export list for l:
/disk/l 192.168.0.0/16
# mount l:/disk/l /mnt/disk/
<<hangs>>
我已经在服务器 l 上停止并启动了/etc/init.d/nfs-kernel-server
,并且在另一个目录上安装 l:/disk/l 仍然挂在服务器 e 上。
启动服务器 l 后,我可以在服务器 e 上安装,一切正常。但我想避免重新启动,因为这会打扰用户。
我怎样才能大力启动 nfs-kernel-server 以使其真正完全重新启动而不是像上面那样只是半途重新启动?
编辑:
我还重新启动了端口映射。
当我重新启动 nfs-kernel-server 时,它在打印“nfsd”后花费了大量时间。它似乎挂在:/usr/bin/rpcinfo -u localhost nfs 3
# /usr/bin/rpcinfo -u localhost nfs 3
rpcinfo: RPC: Timed out
program 100003 version 3 is not available
我的其他 NFS 服务器说:
program 100003 version 3 ready and waiting
这可能与问题有关。
编辑2:
我尝试删除并重新安装 portmap 和 nfs-kernel-server。没有成功。
所以我随便弄了一下rpcinfo
,rpcinfo -d <<all services>> <<all versions>>
结果现在是这样的:
# rpcinfo -p
program vers proto port
100000 2 tcp 111 portmapper
100024 1 udp 58796 status
100024 1 tcp 48139 status
100005 1 udp 48989 mountd
100005 1 tcp 52848 mountd
100005 2 udp 48989 mountd
100005 2 tcp 52848 mountd
100000 2 udp 111 portmapper
重新启动 nfs-kernel-server 不再在 /usr/bin/rpcinfo -u localhost nfs 3 期间暂停:
# /usr/bin/rpcinfo -u localhost nfs 3
rpcinfo: RPC: Program not registered
program 100003 version 3 is not available
此外,我无法再在本地机器上安装本地 nfs。我想我需要以某种方式在 rpcinfo 中注册 nfs。重新启动 nfs-kernel-server 不会执行此操作(或者即使执行,也不起作用)。showmount -e
仍然有效。