NFS服務端與客戶端斷網,導致作為NFS客戶端的Oracle主機hang住
阿新 • • 發佈:2020-08-19
問題現象: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