我花了 3 個晚上和部分時間,谷歌搜尋並重新配置家庭網路的伺服器,其中兩台 nfs vers=3 伺服器突然停止工作。
他們使用 3-4 個客戶端的自動掛載解決了零問題。這沒什麼成效,我把它們放在家裡只是為了測試一些東西,但有一些照片和電影,所以坐在一台或另一台伺服器上的 ZFS 上。
沒有任何突然起作用,也沒有取得任何進展..既沒有rm /etc/default/nfs-* apt-get purge&install,也沒有各種嘗試啟動rpc.mountd 或statd 並觀察其輸出..好吧,但是還有第三台有nfs3 的機器伺服器,有 OpenWRT 的路由器,僅提供 USB 金鑰服務。不管那兩台 Ubuntu 伺服器死掉了,這台電腦確實可以在所有電腦上實現零故障。我發現幾個月前 nfs-utils 軟體包被刪除了..而且我不確定它什麼時候停止工作。
症狀:showmount -e server 需要 2 到 3 分鐘才能顯示答案,但答案是正確的。 rpcinfo -p server 需要大約一分鐘或更長時間,顯示正確的輸出。 mount.nfs xx:/x/x /mnt/test -o vers=3 在一兩分鐘後結束並出現錯誤。這些伺服器的 ping 或 mount samba 運作正常,iperf 表示大約 1gigabit(或更少,但當客戶端使用 wifi 時仍然很好)。 telnet 到 portmapper 連接埠和 nfs 連接埠開啟一個會話。防火牆已關閉。甚至將 ALL:lanip 添加到 Hosts.allow 中。 - 每個問題都只涉及 Ubuntu 伺服器,OpenWrt 會在不到一秒的時間內回應,並按照所有客戶端的預期工作。但不支持nfs4。 - 其中一台伺服器是 12.04.5 LTS,具有 Trusty HWE 堆疊, - 第二台伺服器是 14.04 LTS Trusty。已安裝所有更新。其中一個使用兩個介面的網路卡綁定(mode0),第二個則不使用。
原因,不解釋:
長話短說,幾分鐘前,我有了一個瘋狂的想法要嘗試,並將我的新 ZyXel GS1900-8 託管交換機換成舊的廉價(但也是千兆位元)tplink。我瘋了,因為我的 NFS 伺服器在那一刻開始工作。
看著開關,我不知道他出了什麼問題。現在我記得我確實啟用了 LLTP 並在所有電腦上安裝了 lltpd,只是為了在連接埠清單中看到它們的名字。我使用803.ad LACP 進行了一些綁定測試,舊交換機不支援該協議,並且正在開發新交換機,但我將其關閉(返回模式0),因為它避免了我正在使用常規交換機並認為有必要的WoL ..
請告訴我要檢查什麼,或者猜測可能是什麼原因。我很好奇。
答案1
最後發現具有 DoS(拒絕服務)功能的託管交換器啟用、偵測 SYN<1024 連接埠對映請求並開始封鎖它們。關閉此功能即可徹底解決問題。
除了嘗試 rpcinfo -p 或 showmount -e 之外,我無法檢測到問題,因為在嘗試 telnet 時所有連接埠都可以存取。
在我已經知道要搜尋什麼之後,谷歌找到了常見的訊息,例如https://serverfault.com/questions/367107/cant-mount-nfs-share-over-tcp 也提到了不同品牌的交換器(我的是 ZyXel、他們的 PoweConnect 以及 Cisco)。
恕我直言,隨著託管交換器變得便宜和普遍,這個問題可能會多次出現,並且可能是 askubuntu 上提到的另一個 nfs 問題的原因。