nfs常見問題解決辦法

2021-08-09 07:59:25 字數 3227 閱讀 6576

感謝原文作者分享。

之前開發時就碰到過nfs客戶端卡住的情況,umount -f /mnt提示device is busy,並且嘗試訪問掛載目錄、df -h等操作都會使終端卡住,ctrl+c也不能強行退出。

當時忙著趕進度,沒研究這個問題。最近倒出功夫研究一下,順便學習一下nfs的優化。

造成這種現象的原因是nfs伺服器/網路掛了,nfs客戶端預設採用hard-mount選項,而不是soft-mount。他們的區別是

soft-mount: 當客戶端載入nfs不成功時,重試retrans設定的次數.如果retrans次都不成功,則放棄此操作,返回錯誤資訊 "connect time out"

hard-mount: 當客戶端載入nfs不成功時,一直重試,直到nfs伺服器有響應。hard-mount 是系統的預設值。在選定hard-mount 時,最好同時選 intr , 允許中斷系統的呼叫請求,避免引起系統的掛起。當nfs伺服器不能響應nfs客戶端的 hard-mount請求時, nfs客戶端會顯示

"nfs server hostname not responding, still trying"

下面列出

mount關於nfs相關的引數

(1)-a:把/etc/fstab中列出的路徑全部掛載。

(2)-t:需要mount的型別,如nfs等。

(3)-r:將mount的路徑定為read only。

(4)-v mount:過程的每乙個操作都有message傳回到螢幕上。

(5)rsize=n:在nfs伺服器讀取檔案時nfs使用的位元組數,預設值是4096個位元組。

(6)wsize=n:向nfs伺服器寫檔案時nfs使用的位元組數,預設值是4096個位元組。

(7)timeo=n:從超時後到第1次重新傳送占用的1/7秒的數目,預設值是7/7秒。

(8)retry=n:在放棄後台mount操作之前可以嘗試的次數,預設值是7 000次。

(9)soft:使用軟掛載的方式掛載系統,若client的請求得不到回應,則重新請求並傳回錯誤資訊。

(10)hard:使用硬掛載的方式掛載系統,該值是預設值,重複請求直到nfs伺服器回應。

(11)intr:允許nfs中斷檔案操作和向呼叫它的程式返回值,預設不允許檔案操作被中斷。

(12)fg:一直在提示符下執行重複掛載。

(13)bg:如果第1次掛載檔案系統失敗,繼續在後台嘗試執行掛載,預設值是失敗後不在後台處理。

(14)tcp:對檔案系統的掛載使用tcp,而不是預設的udp。

如#mount -t nfs -o soft 192.168.1.2:/home/nfs /mnt

至於傳輸尺寸的選擇

,可以進行實際測試:

time dd if=/dev/zero of=/mnt/nfs.dat bs=16k count=16384

即向nfs伺服器上的nfs.dat檔案裡寫入16384個16kb的塊(也有經驗說檔案大小可以設定為nfs伺服器記憶體的2倍)。

得到輸出如:

輸出了 16384+0 個塊

user    0m0.200s

輸出了 66535+0 個塊

user    0m0.420s

192.168.1.4:/mnt  /home/nfs  nfs   rsize=8192,wsize=8192,timeo=10,intr

重新掛載nfs伺服器,調整讀寫塊大小後重複上述過程,可以找到最佳傳輸尺寸。

nfs伺服器的故障排除

故障排除思路:

nfs出現了故障,可以從以下幾個方面著手檢查。

(1)nfs客戶機和伺服器的負荷是否太高,伺服器和客戶端之間的網路是否正常。

(2)/etc/exports檔案的正確性。

(3)必要時重新啟動nfs或portmap服務。

執行下列命令重新啟動portmap和nfs:

service portmap restart

service nfs start

(4)檢查客戶端中的mount命令或/etc/fstab的語法是否正確。

(5)檢視核心是否支援nfs和rpc服務。

普通的核心應有的選項為config_nfs_fs=m、config_nfs_v3=y、config_ nfsd=m、config_nfsd_v3=y和config_sunrpc=m。

我們可以使用常見的網路連線和測試工具ping及tracerroute來測試網路連線及速度是否正常,網路連線正常是nfs作用的基礎。rpcinfo命令用於顯示系統的rpc資訊

使用nfsstat命令檢視nfs伺服器狀態

nfsstat命令顯示關於nfs和到核心的遠端過程呼叫(rpc)介面的統計資訊,也可以使用該命令重新初始化該資訊。如果未給定標誌,預設是nfsstat -csnr命令。使用該命令顯示每條資訊,但不能重新初始化任何資訊。

nfsstat命令的主要引數如下。

(1)-b:顯示nfs v4伺服器的其他統計資訊。

(2)c:只顯示客戶機端的nfs和rpc資訊,允許使用者僅檢視客戶機資料的報告。nfsstat命令提供關於被客戶機傳送和拒絕的rpc和nfs呼叫數目的資訊。

要只顯示客戶機nfs或者rpc資訊,將該引數與-n或者-r引數結合。

(3)-d:顯示與nfs v4授權相關的資訊。

(4)-g:顯示rpcsec_gss資訊。

(5)-m:顯示每個nfs檔案系統的統計資訊,該檔案系統和伺服器名稱、位址、安裝標誌、當前讀和寫大小,以及重新傳輸計數

(6)-n:為客戶機和伺服器顯示nfs資訊。要只顯示nfs客戶機或伺服器資訊,將該引數與-c和-s引數結合。

(7)-r:顯示rpc資訊。

(8)-s:顯示伺服器資訊。

(9)-t:顯示與nfs標識對映子系統的轉換請求相關的統計資訊,要只顯示nfs客戶機或伺服器資訊,將-c和-s選項結合。

(10)-4:當與-c、-n、-s或-z引數組合使用時,將包含nfs v4客戶機或伺服器的資訊,以及現有的nfs v2和v3資料。

(11)-z:重新初始化統計資訊。該引數僅供root使用者使用,並且在顯示上面的標誌後可以和那些標誌中的任何乙個組合到統計資訊的零特殊集合。

要顯示關於客戶機傳送和拒絕的rpc和nfs呼叫數目的資訊,輸入:

nfsstat -c

要顯示和列印與客戶機nfs呼叫相關的資訊,輸入如下命令:

nfsstat -cn

要顯示和列印客戶機和伺服器的與rpc呼叫相關的資訊,輸入如下命令:

nfsstat -r

要顯示關於伺服器接收和拒絕的rpc和nfs呼叫數目的資訊,輸入如下命令:

nfsstat –s

nfs常見問題解決辦法

造成這種現象的原因是nfs伺服器 網路掛了,nfs客戶端預設採用hard mount選項,而不是soft mount。他們的區別是 soft mount 當客戶端載入nfs不成功時,重試retrans設定的次數.如果retrans次都不成功,則放棄此操作,返回錯誤資訊 connect time ou...

windows 常見問題解決辦法

windows 服務管理命令sc 出現這種情況的解決辦法是在dos命令視窗中輸入如下命令 cmd mstsc v 192.168.0.101 3389 admin 在日常操作windows伺服器的時候,會經常用到遠端桌面的複製 貼上功能,但是有時候還是無法windows伺服器上覆制內容到本地,也無法...

pycaffe 搭建 常見問題解決辦法

配置pycaffe 安裝依賴庫 sudo apt get install python numpy python scipy python matplotlib python sklearn python skimage python h5py python protobuf python leve...