showmount -e 输出不正确记录,包含历史挂载client

问题:

一台Solaris 10主机用户已经不再使用,服务器关机前检查NFS共享状况,确保已经没有用户连接到该主机。
通过命令"showmount -e"检查客户端服务器的连接,发现还有大量的连接列表。但是与用户确认,用户说已经断开了连接。


解决方法:

=======================================================

Solaris主机

/etc/rmtab文件中会记录用户连接的状况。NFS Client异常中断可能造成了umount nfs共享点失败,导致/etc/rmtab中留存了不正确的记录。
可以通过下列命令,重启NFS服务并清空记录。

svcadm disable svc:/network/nfs/server:default
cat /dev/null > /etc/rmtab
svcadm enable svcs:/network/nfs/server:default
svcs|grep nfs 检查服务启动状态

=======================================================

在Linux平台也会发生类似的问题。

man rpc.mountd(8) says:
The rmtab File ... 
Note, however, that there is little to guarantee that the contents of /var/lib/nfs/rmtab are accurate. 
A client may continue accessing an export even after invoking UMNT. 
If the client reboots without sending a UMNT request, stale entries remain for that client in /var/lib/nfs/rmtab.

可以通过下列命令解决。

# service nfs stop
# cat /dev/null > /var/lib/nfs/rmtab
# service nfs start

=======================================================

替代检查方案

因为nfs client的意外重启,可能造成”showmount -a”命令的输出不可信。
为了确保用户已无连接,需要寻找其他命令进行检查。
NFS协议是通过RPC机制进行文件传输的,RPC在文件传输发包阶段还是会使用TCP/UDP进行传输。
尝试通过"netstat -an|grep IP"命令检查所以网络连接,检查输出列表,确定对端IP地址没有用户IP后再关闭服务器。



猜你喜欢

转载自blog.51cto.com/386134/2315954
E
e'e