非 nfs 卷上的 umount -f 總是邪惡的嗎?
編輯:執行摘要(下面的詳細版本):由於電池壽命短,我需要一台機器在停電時快速關閉。是否有任何理由我不應該在其 IO 阻止關機的暫存驅動器上使用“umount -f”(嵌入在電源故障案例腳本中),並且我不關心其數據是否工作已死反正?
來自新手 SysAdmin(長期 *nix 使用者)的問題。
我最近設置了一個 CentOS 計算伺服器,並讓 apcupsd 與我的 UPS 通信,這樣一旦我們斷電,它就會優雅地關閉(這就是我有錢的全部)。當地的電力公司在我有勇氣拔掉插頭之前就開始測試這個(天哪!)。這為我提供了一些非常緊張的時刻,解除安裝文件系統需要 10 分鐘左右,電池電量達到 12%,然後才最終關閉。
花了這麼長時間,因為我塞滿了繁重的 IO 作業,以準備更簡單的測試,即發出“停止”命令,看看關機需要多長時間。繁重的 IO 全部進入 RAID0 中專用驅動器上的暫存空間。如果這份工作死了,我就不會關心那些驅動器上的東西了。在這樣的失敗之後,我什至可以重新製作文件系統。如果在關機完成之前電池沒電了,如果任何使用較輕的驅動器(家庭目錄)損壞,那將是一件痛苦的事。
也就是說,apcupsd 有一個地方供系統管理員插入一個 bash 腳本,該腳本在滿足某些條件時執行。如果這種情況是電源故障,並且我真的不在乎為了快速關機而損壞暫存數據,那麼’umount -f’是我的朋友嗎?
有什麼我不考慮的嗎?在此之後我是否一定需要重新製作文件系統,或者只是刪除驅動器上最肯定損壞的文件?
假設您確實找到了長時間關機的根本原因,並且您對特定文件系統上的數據完整性缺乏關注,那麼您絕對應該嘗試執行
umount -f
.但是,我認為它不太可能解決您的問題: umount -f 將解決無響應的 NFS 伺服器和打開文件句柄,但它仍會將緩衝數據寫入文件系統。如果你已經有這麼多的數據在執行,你的解除安裝腳本仍然需要很長時間。
最好同時殺死(或殺死 -9)在臨時文件系統上執行繁重 I/O 的作業,以確保沒有額外的 I/O 排隊。