Redhat

showmount -e nfs_server_hostname 不顯示客戶端的所有可用掛載,但為什麼呢?

  • November 3, 2017

NFS_Server 是一個 DataDomain 客戶端是 RHEL 7.3

我執行以下命令來顯示 NFS_server 為我的客戶端系統共享的可用 NFS,但是,我沒有看到所有可掛載的共享。

# showmount -e nfs_server_hostname
/test myclientsIP

# showmount -e nfs_server_IP
/test myclientsIP

就我而言,我想要一個未顯示在上述命令結果中的特定掛載。

仍然像 DataDomain(在我們這裡的例子中是 NFS_Server)人告訴我掛載特定共享,即使您在上面的 showmount 命令的輸出中看不到它。

令我驚訝的是,它被安裝了,因此我再次執行上面的命令,但它仍然沒有顯示在列表中。但是當我檢查以下命令的輸出時,這讓我感到驚訝。

# df -h
.
.
.
NFS_Server_IP:/test_Rep /mnt

我想知道它發生的原因,還有其他命令可以列出這些隱藏的掛載點嗎?

提前感謝並為糟糕的英語道歉,如果這不是解決此類問題的正確網站。

showmount命令專門使用 NFSv3 協議的某些方面來查詢伺服器並返回可用共享列表。有兩種方法可以執行 showmount:

showmount -a- 來自 showmount 的手冊頁:

-a or --all List both the client hostname or IP address and mounted directory in host:dir format. This info should not be considered reliable. See the notes on rmtab in rpc.mountd(8).

在這種情況下,showmount 正在查詢伺服器上的 rpc.mountd,它可能會或可能不會返回可靠的掛載點列表。rpc.mountd 提到的問題是 rmtab 文件中可能會留下陳舊的條目,這意味著它可能不是一個準確的掛載點列表。

showmount -e- 雖然 showmount 的文件表明這是查詢伺服器的更可靠方式,但它專門使用了 NFSv3 協議的這一部分:

https://www.rfc-editor.org/rfc/rfc1813#section-5.2.5

這是 NFSv3 協議的一部分,但在 NFSv4 中不存在。許多伺服器會將 NFS 共享配置為通過 NFSv3 和 NFSv4 同時可用,因此它們使用 showmount 工具顯示。但是,如果將共享配置為純 NFSv4,則 showmount 將無法獲取列表,因為該協議不提供支持此功能的方法。

即使共享不是純 NFSv4,遠端伺服器也必須知道以上述兩種方式中的一種(或兩種)返回導出showmount才能返回。但是,這不會阻止它像您所經歷的那樣被安裝。

引用自:https://serverfault.com/questions/877266