Linux

無法掛載 nfs 卷 - 超時

  • November 14, 2020

我有一個來自 Linux 文件伺服器的 NFSv3 導出,它曾經可以正常掛載。文件伺服器不得不停機進行硬體維護。恢復伺服器後,Linux 客戶端無法再掛載 nfs 導出。

伺服器或客戶端上的配置沒有更改。在第一次掛載失敗後,我確實進行了軟體更新並重新啟動了客戶端,但這並沒有幫助。

[root@client ~]# showmount -e ark
Export list for ark:
/mnt/bigraid *

[root@client ~]# mount -t nfs ark:/mnt/bigraid raid

它只是掛在這一點上。在另一個終端…

[root@client ~]# dmesg | tail
[ 2526.676437] nfs: server ark not responding, timed out
[ 2529.183107] nfs: server ark not responding, timed out
[ 2531.689778] nfs: server ark not responding, timed out
[ 2538.196432] nfs: server ark not responding, timed out
[ 2540.703107] nfs: server ark not responding, timed out
[ 2543.209767] nfs: server ark not responding, timed out
[ 2545.716436] nfs: server ark not responding, timed out
[ 2548.223098] nfs: server ark not responding, timed out
[ 2550.729775] nfs: server ark not responding, timed out
[ 2557.236435] nfs: server ark not responding, timed out

…好的,但是我可以通過 showmount 看到導出…

[root@client ~]# ping ark
PING ark.homebase (10.10.10.2) 56(84) bytes of data.
64 bytes from ark.homebase (10.10.10.2): icmp_seq=1 ttl=64 time=0.067 ms
64 bytes from ark.homebase (10.10.10.2): icmp_seq=2 ttl=64 time=0.043 ms
64 bytes from ark.homebase (10.10.10.2): icmp_seq=3 ttl=64 time=0.048 ms
64 bytes from ark.homebase (10.10.10.2): icmp_seq=4 ttl=64 time=0.042 ms
^C
--- ark.homebase ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms

所以我不明白。

伺服器正在執行 OpenSUSE。我確保防火牆已關閉(而不是曾經打開)並且網路連接似乎很好。

ark:/etc # cat exports
/mnt/bigraid    *(rw,root_squash,insecure,no_subtree_check,sync)

編輯:這是正在使用的 RPC 埠列表

ark:/etc/init.d # rpcinfo -p
program vers proto   port
100000    2   tcp    111  portmapper
100005    1   udp  37599  mountd
100005    1   tcp  33880  mountd
100005    2   udp  37599  mountd
100005    2   tcp  33880  mountd
100005    3   udp  37599  mountd
100005    3   tcp  33880  mountd
100024    1   udp  49522  status
100024    1   tcp  41314  status
100003    2   udp   2049  nfs
100003    3   udp   2049  nfs
100003    4   udp   2049  nfs
100021    1   udp  51887  nlockmgr
100021    3   udp  51887  nlockmgr
100021    4   udp  51887  nlockmgr
100003    2   tcp   2049  nfs
100003    3   tcp   2049  nfs
100003    4   tcp   2049  nfs
100021    1   tcp  49804  nlockmgr
100021    3   tcp  49804  nlockmgr
100021    4   tcp  49804  nlockmgr
100000    2   udp    111  portmapper

編輯 2:得到一些 tcpdump 資訊

(編輯 3:刪除了 tcpdump 輸出,因為它可能不相關。)

我完全不熟悉適當的 nfs 協商是什麼樣的。如果您想查看數據段,我還轉儲了一個 pcap 文件。它在filedropper

編輯3:我可能會遇到這個問題

我在下面遵循@CIA 的建議,並這樣做了:

ark:/etc/init.d #  ./nfsserver stop
Shutting down kernel based NFS server: nfsd statd mountd idmapd       done
ark:/etc/init.d # ./portmap stop
Shutting down RPC portmap daemon                                      done
ark:/etc/init.d # ./portmap start
Starting RPC portmap daemon                                           done
ark:/etc/init.d # ./nfsserver start
Starting kernel based NFS server: idmapdexportfs: Warning: /mnt/bigraid does not support NFS export.
mountd statd nfsd sm-notify                                          done

儘管有警告,但現在導出似乎可以安裝。

因此,NFS 很奇怪,它依賴於 portmapper 來執行,因此它可以將特定埠映射到 RPC 埠。(我想這並不奇怪。這只是它的工作方式。)如果 NFS 在 portmapper 之前啟動,NFS 不知道如何路由請求,因為它會在程序開始時檢查 portmapper。如果在 NFS 之前 portmapper 未啟動,則 NFS 不知道如何將埠映射到 rpc。

這裡有更多關於這個過程的文件(即使它適用於 CentOS,它仍然是相關的):http ://www.centos.org/docs/5/html/Deployment_Guide-en-US/s2-nfs-methodology-portmap.html

至於您的新錯誤消息,請重新啟動您正在安裝的盒子並重新安裝以查看錯誤是否再次出現。

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