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後再關閉服務器。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章