Nat*_*han 12 linux filesystems nfs mount
我有一个来自 Linux 文件服务器的 NFSv3 导出,它曾经可以很好地安装。文件服务器不得不停机进行硬件维护。重新启动服务器后,Linux 客户端无法再挂载 nfs 导出。
服务器或客户端上的配置没有改变。在第一次挂载失败后,我确实进行了软件更新并重新启动了客户端,但这并没有帮助。
[root@client ~]# showmount -e ark
Export list for ark:
/mnt/bigraid *
[root@client ~]# mount -t nfs ark:/mnt/bigraid raid
Run Code Online (Sandbox Code Playgroud)
它只是挂在这一点上。在另一个终端...
[root@client ~]# dmesg | tail
[ 2526.676437] nfs: server ark not responding, timed out
[ 2529.183107] nfs: server ark not responding, timed out
[ 2531.689778] nfs: server ark not responding, timed out
[ 2538.196432] nfs: server ark not responding, timed out
[ 2540.703107] nfs: server ark not responding, timed out
[ 2543.209767] nfs: server ark not responding, timed out
[ 2545.716436] nfs: server ark not responding, timed out
[ 2548.223098] nfs: server ark not responding, timed out
[ 2550.729775] nfs: server ark not responding, timed out
[ 2557.236435] nfs: server ark not responding, timed out
Run Code Online (Sandbox Code Playgroud)
...好的,但我可以看到 showmount 的导出...
[root@client ~]# ping ark
PING ark.homebase (10.10.10.2) 56(84) bytes of data.
64 bytes from ark.homebase (10.10.10.2): icmp_seq=1 ttl=64 time=0.067 ms
64 bytes from ark.homebase (10.10.10.2): icmp_seq=2 ttl=64 time=0.043 ms
64 bytes from ark.homebase (10.10.10.2): icmp_seq=3 ttl=64 time=0.048 ms
64 bytes from ark.homebase (10.10.10.2): icmp_seq=4 ttl=64 time=0.042 ms
^C
--- ark.homebase ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
Run Code Online (Sandbox Code Playgroud)
所以我不明白。
服务器正在运行 OpenSUSE。我确保防火墙关闭(不是一直打开)并且网络连接似乎很好。
ark:/etc # cat exports
/mnt/bigraid *(rw,root_squash,insecure,no_subtree_check,sync)
Run Code Online (Sandbox Code Playgroud)
编辑:这是正在使用的 RPC 端口列表
ark:/etc/init.d # rpcinfo -p
program vers proto port
100000 2 tcp 111 portmapper
100005 1 udp 37599 mountd
100005 1 tcp 33880 mountd
100005 2 udp 37599 mountd
100005 2 tcp 33880 mountd
100005 3 udp 37599 mountd
100005 3 tcp 33880 mountd
100024 1 udp 49522 status
100024 1 tcp 41314 status
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100021 1 udp 51887 nlockmgr
100021 3 udp 51887 nlockmgr
100021 4 udp 51887 nlockmgr
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100021 1 tcp 49804 nlockmgr
100021 3 tcp 49804 nlockmgr
100021 4 tcp 49804 nlockmgr
100000 2 udp 111 portmapper
Run Code Online (Sandbox Code Playgroud)
编辑 2: 得到一些 tcpdump 信息
(编辑 3:删除了 tcpdump 输出,因为它可能不相关。)
我完全不熟悉适当的 nfs 谈判是什么样的。如果您想查看数据段,我还转储了一个 pcap 文件。它在filedropper
编辑 3:我可能遇到了这个问题
我遵循了@CIA 的以下建议,并这样做了:
ark:/etc/init.d # ./nfsserver stop
Shutting down kernel based NFS server: nfsd statd mountd idmapd done
ark:/etc/init.d # ./portmap stop
Shutting down RPC portmap daemon done
ark:/etc/init.d # ./portmap start
Starting RPC portmap daemon done
ark:/etc/init.d # ./nfsserver start
Starting kernel based NFS server: idmapdexportfs: Warning: /mnt/bigraid does not support NFS export.
mountd statd nfsd sm-notify done
Run Code Online (Sandbox Code Playgroud)
尽管有警告,但现在导出似乎可以安装。
所以,NFS 的奇怪之处在于它依赖于 portmapper 来运行,因此它可以将特定端口映射到 RPC 端口。(我想这并不奇怪。这只是它的工作方式。)如果 NFS 在端口映射器之前启动,则 NFS 不知道如何路由请求,因为它在进程开始时检查端口映射器。如果portmapper在NFS之前没有启动,NFS不知道如何将端口映射到rpc。
以下是有关该过程的更多文档(尽管它适用于 CentOS,但仍然相关):http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s2-nfs-methodology-portmap.html
至于您的新错误消息,请重新启动您正在安装的盒子并重新安装以查看错误是否再次出现。