1. 程式人生 > 實用技巧 >NFS服務端與客戶端斷網,導致作為NFS客戶端的Oracle主機hang住

NFS服務端與客戶端斷網,導致作為NFS客戶端的Oracle主機hang住

問題現象:AIX環境,作為NFS客戶端,有一個/backup目錄,作為Oracle異地備份使用。 網路安全,將NFS客戶端與服務端的網路斷開後,Oracle生產環境主機hang住,新的連線報錯,資料庫監控軟體告警,DB無法連線。

排查檢查問題現象:

grid$crsctl stat res -t
NFS Server ip_addr not responding still trying  無法連線NFS機器
oracle$sqlplus / as sysdba
NFS Server ip_addr not responding still trying  無法連線NFS機器

解決:

讓網路工程師最塊速度恢復網路連線。

疑問? 為什麼NFS 服務端與客戶端斷開網路? 讓主機hang???

http://www.voidcn.com/article/p-aoeeuhzi-cr.html

mount nfs的其它可選引數:   HARD mount和SOFT MOUNT:HARD: NFS CLIENT會不斷的嘗試與SERVER的連線(在後臺,不會給出任何提示資訊,在LINUX下有的版本仍然會給出一些提示),
直到MOUNT上。   例如:mount
-F nfs -o hard 192.168.0.10:/nfs /nfs   
對於到底是使用hard還是soft的問題,這主要取決於你訪問什麼資訊有關。例如你是想通過NFS來執行X PROGRAM的話,你絕對不會希望由於一些意外的情況(如網路速度一下子變的很慢,
插拔了一下網絡卡插頭等)而使系統輸出大量的錯誤資訊,如果此時你用的是HARD方式的話,系統就會等待,直到能夠重新與NFS SERVER建立連線傳輸資訊。另外如果是非關鍵資料的話也可以使用SOFT方式,
如FTP資料等,這樣在遠端機器暫時連線不上或關閉時就不會掛起你的會話過程。 本次節選的資訊非AIX官網資訊,但是可以借鑑參考。 https:
//www.talkwithtrend.com/Question/31767

Linux測試

nfs,客戶端與伺服器端網路斷開後。
客戶端主機測試:
#for ((i=1;i<100000;i++));do (df -h &);done
讓大量的程序執行df 
-h在後臺執行,此時同時執行df -h的程序數量遠遠超出邏輯cpu數量,此時系統非常卡,但是並未出現 NFS xxx報錯,與生產環境的報錯。 但是也導致了主機非常卡,因為此時CPU 忙不過來了。
#pkill -9 df
#ps -ef|grep df

生產環境遇到這個問題可以
#tail -200f /var/log/messsage 讀取NFS 服務端

Mar 24 20:40:11 test02 kernel:nfs:server 192.168.16.98notresponding,still trying

#umount -f /nfstest  如果知道路徑,可以強力解除安裝

總結:1.建議NFS配置特別是AIX主機環境,使用soft 屬性,無法連線報錯,而非無限期程序hang住連線,直到連線成功(預設).

       soft           If an NFS file operation has a major timeout then report an  I/O  error  to  the
                      calling program.  The default is to continue retrying NFS file operations indef-
                      initely.

       hard           If an NFS file operation has a major timeout then report "server not responding"
                      on the console and continue retrying indefinitely.  This is the default.

2.提前準備應急預案

AIX 未測試
# fuser -km /rsync_bk # umount /rsync_bk
Linux已測試
#umount -f /nfstest