有熟悉nfs的沒?過來一起討論個問題
在Linux上使用nfs時,如果服務端的down掉了(或者僅僅是服務端的IP掉了),這時客戶端掛載的那個目錄也就不能使用了,並且,在客戶端任何涉及到這個目錄的操作都將掛死,如:
執行df、mount命令都不能結束;cd 、ls或者rm那個目錄更不用說了。
如果此時想讓這個目錄umount掉,也不能umount掉。
要是服務端我沒有許可權去做任何操作或者一時半會解決不了,那麼客戶端也就玩完了。不知道大家有沒有遇到過這樣的情況?
這種情況是NFS的問題還是OS的問題呢 ? 比如掛載的那個IP都不通了,能不能自動umount掉呢 ?
有沒有什麼好的NFS替代方案 ?
《解決方案》
寫個腳本判斷nfs連接狀態,出現問題就umount。
《解決方案》
回復 2# chenzhj
如果服務端出問題了,客戶端umount不掉的 ,只能任由掛載的那個目錄死在那兒
《解決方案》
回復 3# godymoon
利用autofs實現自動掛載,設置auto.master中的timeout值
《解決方案》
追憶的風箏 發表於 2012-06-01 10:21 static/image/common/back.gif
回復 3# godymoon
利用autofs實現自動掛載,設置auto.master中的timeout值
能在服務斷掉的時候自動umount嗎 ?
《解決方案》
回復 5# godymoon
可以,比如你掛載到/data目錄,當/data沒有讀寫數據的時候,會自動卸載掉,你嘗試下就知道了。:sleepy:
《解決方案》
你umount 不掉 是因為有用戶或者進程在使用吧 fuser 查看那些用戶在使用
《解決方案》
typuc 發表於 2012-06-01 11:55 static/image/common/back.gif
你umount 不掉 是因為有用戶或者進程在使用吧 fuser 查看那些用戶在使用
不是啊,我實驗的現象是這樣的,當服務端down了之後,任何操作 客戶端那個掛載目錄的進程都將掛死,
查詢到對應的進程都殺掉之後,umount還是不行的。
比如客戶端執行df -h看到的掛載點是這樣的:
Filesystem Size Used Avail Use% Mounted on
192.168.1.33:/tmp/test 10G 3G 7G 30% /tmp/test
當192.168.1.33不通的時候,在客戶端umount /tmp/test 操作是不會有效果的
《解決方案》
當掛死的時候你dmesg看看就知道了,NFS是會自己嘗試恢復的,而且這個恢複次數是可以自己設定的,其次你也不能umount掉,因為就算能umount掉你讀寫數據也是異常的。
按我以往的經驗來看,把NFS伺服器的網卡重啟一下都沒事,因為客戶端會嘗試重連恢復,好了之後繼續寫入。所以這個你不需要太擔心。
反倒要解決這個問題,你最好通過伺服器端去解決,比如做多網卡的綁定,或者走多通道。
《解決方案》
當掛死的時候你dmesg看看就知道了,NFS是會自己嘗試恢復的,而且這個恢複次數是可以自己設定的,其次你也不能umount掉,因為就算能umount掉你讀寫數據也是異常的。
按我以往的經驗來看,把NFS伺服器的網卡重啟一下都沒事,因為客戶端會嘗試重連恢復,好了之後繼續寫入。所以這個你不需要太擔心。
反倒要解決這個問題,你最好通過伺服器端去解決,比如做多網卡的綁定,或者走多通道。
...
嗯,如果從服務端解決是比較快速的,其實我想了解的是,有沒有在客戶端解決此問題的方案。因為有時候我們是沒有許可權去動服務端的環境的