【linux】伺服器異常down機NFS掛載失敗
工作中遇到的一個案例,由於rac1 異常dang 機導致nfs 掛載失敗,具體環境如下
nfs server端 als_mybak4 10.251.134.205
nfs client端 rac1 10.250.7.225
在rac1上使用掛載nfs 失敗 使用showmount檢視,報timeout錯誤!
root@rac1#showmount -e 10.251.134.205
mount clntudp_create: RPC: Port mapper failure – RPC: Timed out
在nfs服務端檢視埠資訊
root@als_mybak4 # netstat -ltpn | more
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:42251 0.0.0.0:* LISTEN 6451/rpc.mountd
tcp 0 0 0.0.0.0:875 0.0.0.0:* LISTEN 6435/rpc.rquotad
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1361/rpcbind
tcp 0 0 0.0.0.0:51954 0.0.0.0:* LISTEN 1379/rpc.statd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1514/sshd
tcp 0 0 0.0.0.0:57949 0.0.0.0:* LISTEN –
tcp 0 0 0.0.0.0:20351 0.0.0.0:* LISTEN 1578/python
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN –
tcp 0 0 :::111 :::* LISTEN 1361/rpcbind
tcp 0 0 :::22 :::* LISTEN 1514/sshd
tcp 0 0 :::38359 :::* LISTEN –
tcp 0 0 :::12865 :::* LISTEN 26721/netserver
tcp 0 0 :::42918 :::* LISTEN 1379/rpc.statd
執行nfs所需要的後臺程式:
rpc.nfsd管理clinet是否有許可權登入,以及判別登入者的uid等;
rpc.mountd讀取/etc/exports的許可權,對檔案訪問許可權進行控制;
rpc.lockd檔案的互斥鎖,保證檔案在同一時間只有一個人訪問,需要nfslockd服務;
rpc.statd檢查檔案的一致性,需要nfslockd服務。
網路方面的acl配置
3970 permit tcp host 10.250.7.225 host 10.251.134.205 eq sunrpc
3980 permit tcp host 10.250.7.225 host 10.251.134.205 eq 2049
3990 permit tcp host 10.250.7.225 host 10.251.134.205 eq 38520
4000 permit tcp host 10.250.7.225 host 10.251.134.205 eq sunrpc
4010 permit tcp host 10.250.7.225 host 10.251.134.205 eq 2049
4020 permit tcp host 10.250.7.225 host 10.251.134.205 eq 38520
伺服器上面的埠和網路配置的ACL的埠不對應,造成了兩個伺服器之間不可連線,從而超時!
這裡還要說說NFS
網路檔案系統(NFS,Network File System)是一種將遠端主機上的分割槽(目錄)經網路掛載到本地系統的一種機制,通過對網路檔案系統的支援,客戶可以在本地系統上像操作本地分割槽一樣來對遠端主機的共享分割槽(目錄)進行操作。因為NFS支援的功能很多,而不同的功能會使用不同的方式來啟動,每啟動一個功能就會啟用一些port來傳輸資料!因此, NFS的功能所對應的port是不固定的,而是採用隨機取用一些未被使用的小於1024的埠口來作為傳輸之用。此時我們就得需要遠端程式呼叫(RPC)的服務。RPC最主要的功能就是在指定每個NFS功能所對應的port number ,並且回報給客戶端,讓客戶端可以連結到正確的埠口上去。那RPC又是如何知道每個NFS的埠口呢?這是因為當伺服器在啟動NFS時會隨機取用數個埠口,並主動的向RPC註冊,因此RPC可以知道每個埠口對應的NFS功能,然後RPC又是固定使用port 111 來監聽客戶端的需求並回報客戶端正確的埠口!
portmap 程式的主要功能是把RPC程式號轉化為Internet的埠號
當一個RPC伺服器啟動時,會選擇一個空閒的埠號並在上面監聽(每次啟動後的埠號各不相同),同時它作為一個可用的服務會在portmap程式註冊。一個RPC伺服器對應惟一一個RPC程式號,RPC伺服器告訴portmap程式它在哪個埠號上監聽連線請求和為哪個RPC程式號提供服務。經過這個過程,portmap程式就知道了每一個已註冊的RPC伺服器所用的Internet埠號,而且還知道哪個程式號在這個埠上是可用的。portmap程式維護著一張RPC程式號到Internet埠號之間的對映表,它的欄位包括程式號、版本號、所用協議、埠號和服務名,portmap程式通過這張對映表來提供程式號-埠號之間的轉化功能。如果portmap程式停止了執行或異常終止,那麼該系統上的所有RPC伺服器必須重新啟動。首先停止NFS伺服器上的所有NFS服務程式,然後啟動portmap程式,再啟動伺服器上的NFS程式。但portmap只在第一次建立連線的時候起作用,幫助網路應用程式找到正確的通訊埠,但是一旦這個雙方正確連線,埠和應用就繫結,portmap也就不起作用了。但對其他任何第一次需要找到埠建立通訊的應用仍然有用。
nfs 伺服器端和客戶端連線的步驟:
1 客戶端會向伺服器端的RPC (port 111)發出NFS檔案存取功能的詢問要求;
2 伺服器端找到對應的已註冊的NFS daemon埠口後,會回報給客戶端;
3 客戶端了解正確的埠口後,就可以直接與NFS daemon來連線。
由於NFS的各項功能都必須要向RPC來註冊,如此一來RPC才能瞭解NFS這個服務的各項功能之port number, PID, NFS在主機所監聽的IP等等,而客戶端才能夠透過RPC的詢問找到正確對應的埠口。也就是說,NFS必須要有RPC存在時才能成功的提供服務,因此我們稱NFS為RPC server的一種。
我的環境是客戶端從 伺服器端的111埠獲取nfs 正在監聽的埠,再向伺服器端發起連線的時候被acl訪問控制限制導致不可連線!重新配置acl的埠號,或者將10.250.7.225 到 10.251.134.205 之間的ip 全部埠開放~!這樣當下次rac1 down機 重啟之後,就不會因為網路ACL的埠限制而不能正常使用nfs服務了~!
相關文章
- linux swap掛載失敗問題處理Linux
- Spring 自動注入失敗異常Spring
- 雲伺服器顯示異常登入失敗是什麼原因伺服器
- AIX掛載NFSAINFS
- Pod掛載Volume失敗問題分析
- C++ NFS掛載C++NFS
- 以失敗為機制:奇異人生中的真實失敗與虛構性失敗
- Feign失敗重試與全域性異常捕獲
- 解決一次gitlab因異常關機導致啟動失敗Gitlab
- linux-掛載NFS網路檔案系統教程LinuxNFS
- Linux伺服器---配置nfsLinux伺服器NFS
- Linux伺服器—配置nfsLinux伺服器NFS
- 快速失敗機制&失敗安全機制
- 如何使用 autofs 掛載 NFS 共享NFS
- ubifs根檔案系統掛載失敗可能原因
- Linux伺服器---安裝nfsLinux伺服器NFS
- Jenkins外掛安裝失敗Jenkins
- gradle包下載失敗Gradle
- 阿里雲伺服器Ubuntu 14.04.2和centos7.5實現nfs掛載阿里伺服器UbuntuCentOSNFS
- 精講RestTemplate第7篇-自定義請求失敗異常處理REST
- macOS 下NFS 檔案系統掛載MacNFS
- CentOS 6 NFS 共享檔案與掛載CentOSNFS
- Oracle RAC NFS掛載檔案系統OracleNFS
- centos6.x 多伺服器資料夾掛載共享伺服器nfs配置教程CentOS伺服器NFS
- 網路賭博提款失敗系統財務清算資料異常該如何追回損失?
- Linux伺服器更換主機板後,網路卡識別失敗的處理方法Linux伺服器
- 天融信TopSAG堡壘機-下載更新配置失敗[1]
- Linux下python pip install失敗LinuxPython
- Linux靜態Ip配置失敗Linux
- Android studio下載安裝後常見問題中的gradle下載失敗AndroidGradle
- 排查伺服器異常伺服器
- linux/mac下一鍵刪除下載失敗的maven jar包LinuxMacMavenJAR
- Android sdk 下載/更新失敗Android
- 詭異!std::bind in std::bind 編譯失敗編譯
- 使用HTTP代理失敗的常見原因HTTP
- Linux掛載--什麼是掛載Linux
- 解決Nessus外掛更新失敗問題
- 解決linux rz傳輸失敗Linux
- linux sshd服務異常Linux