問題:
一臺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後再關閉服務器。