
我有一個案例,我的一台機器有許多 NFS 安裝。有時,其中一台 NFS 伺服器會因為硬體問題而遺失其設備,需要重新啟動才能修復。
然後,使用者透過 ftp 等方式進入目錄,在目錄上執行 ls 操作,目錄就會掛起。然後他們通常會感到沮喪並再次嘗試。這最終會耗盡所有 ftp 會話而掛起客戶端電腦。
有沒有辦法讓 NFS 直接刪除掛載,這樣當他們執行 ls 時,他們只會得到一個空目錄?或者有什麼方法可以讓我檢測 NFS 主機何時未正確回應並刪除它? ……或者當驅動器消失時我可以以某種方式從伺服器端執行此操作嗎?
答案1
您首先需要將您的 nfs 掛載變更為可中斷選項(大多數風格都是 intr)。這將允許您使用 Ctl-C 退出通常會掛起等待從核心返回的應用程序,而這種情況永遠不會發生。
答案2
如果您在用戶端上使用 autofs、軟安裝和短 timeo 值,將會有所幫助。
答案3
從客戶端的角度來看,上面的答案非常好,但您也應該考慮伺服器端。
在我們的環境中,我們使用 nfs 伺服器在多台電腦之間共用 Web 內容。這些機器還使用pacemaker/openais 來確定誰應該運行NFS 伺服器進程、安裝光纖通道磁碟區以及nfs 伺服器的IP 位址。
當我們需要重新啟動一台機器時,pacemaker會偵測到這一點並將活動的NFS伺服器移到另一個節點,以便服務不會中斷。