showmount-e输出不正确记录,包含历史挂载cli-创新互联

问题:

成都创新互联主要企业基础官网建设,电商平台建设,移动手机平台,小程序定制开发等一系列专为中小企业定制网站制作产品体系;应对中小企业在互联网运营的各种问题,为中小企业在互联网的运营中保驾护航。

一台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后再关闭服务器。

参考文档2:
    https://blog.csdn.net/wangpeng138375/article/details/8169071
   
    Sun的RPC服务
    ONC RPC(Open Network Computing Remote Procedure Call)是一个由Sun   Microsystem公司开发的开源的RPC框架。它是用于UNIX系统的RPC事实标准。ONC   RPC已经被证明是一项高性能的技术。包括Solaris,AIX,HP UX,Linux等在内的大多数UNIX平台都支持RPC服务。
    RPC其实也是种C/S的编程模式,其工作过程如图2-3所示,大致包含以下几个步骤:
    (0)    服务器启动,它向所在主机上的端口映射器(port   mapper)注册自身。客户然后启动,它调用clnt_create,该函数则与服务器主机上的端口映射器联系,以找到服务器的临时端口。clnt_create函数还建立一个与服务器的TCP连接。
    (1)    客户调用一个称为客户端存根(Client   stub)的本地过程(存根由rpcgen工具生成)。对于客户来说,客户程序存根看起来像是它想要调用的真正的服务器过程。存根的目的在于把待传递给远程过程的参数打包,可能的话把它们转换成某种标准格式,然后构造一个或多个网络消息。把客户提供的参数打包成一个网络消息的过程称为集结(marshaling)。客户程序的各个例程和存根通常调用RPC运行时函数库中的函数。
    (2)      这些网络消息由客户程序存根发给远程系统。通常需要一次陷入本地内核的系统调用(例如write或是sendto)。
    (3)    这些消息传送到远程系统,通常使用TCP或UDP协议。
    (4)    一个服务器存根(server   stub)过程一直在远程系统上等待客户的请求。它从这些网络消息中解散(unmarshaling)出参数。
    (5)      服务器程序存根执行一个本地过程调用以激活真正的服务器函数,传递给该函数的参数是它从来自客户的网络消息中解散出来的。
    (6)      当服务器过程完成时,它向服务器程序存根返回其返回值。
    (7)      服务器存根在必要时对返回值作转换,然后把它们集结到一个或多个网络消息中,以便发送回客户
    (8)    这些消息通过网络传送回客户。
    (9)      客户程序存根从本地内核中读出这些网络消息(如read或recvfrom)。
    (10)对返回值进行可能的转换后,客户程序存根最终返回客户函数

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:showmount-e输出不正确记录,包含历史挂载cli-创新互联
标题URL:http://hbruida.cn/article/dghdji.html