溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

showmount -e 輸出不正確記錄,包含歷史掛載cli

發布時間:2020-06-18 11:40:58 來源:網絡 閱讀:2107 作者:rabbittony 欄目:系統運維

問題:

一臺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)對返回值進行可能的轉換后,客戶程序存根最終返回客戶函數




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女