案例:某客戶服務(wù)器因機房斷電,導(dǎo)致多臺設(shè)備無法進入 Linux 操作系統(tǒng)蚓哩,報錯 XFS 文件系
統(tǒng)損壞构灸。如圖:
故障原因:
維護 Linux 服務(wù)器時會面臨這樣一種錯誤,即顯示文件系統(tǒng)變成(Read Only System)岸梨,即
文件系統(tǒng)變成只讀的方式喜颁,產(chǎn)生這一問題的原因可能有兩種,一種是多機寫入時同步機制出
現(xiàn)問題曹阔,另一種方式是單機寫入時出現(xiàn)服務(wù)器掉電的情況
而本案例故障演員則為后者:單機寫入時出現(xiàn)服務(wù)器掉電的情況半开。
名稱解析:
XFS 文件系統(tǒng):
????????????文件系統(tǒng)的定義:
????????????????????????文件系統(tǒng)是操作系統(tǒng)用于明確存儲設(shè)備(常見的是磁盤,也有基于 NAND Flash
的固態(tài)硬盤)或分區(qū)上的文件的方法和數(shù)據(jù)結(jié)構(gòu)赃份;即在存儲設(shè)備上組織文件的方法寂拆。
????????????xfs 文件系統(tǒng):
????????????????????????????????是一個日志型文件系統(tǒng)
日志文件系統(tǒng)?加一個日志來記錄文件系統(tǒng)的更改,即使在斷電或者是操作系
統(tǒng)崩潰的情況下也能保證文件系統(tǒng)一致性
怎么保持的?
要向磁盤寫數(shù)據(jù)的時候腹侣,肯定要改變元數(shù)據(jù),日志就要在這之前記錄要怎么去
改元數(shù)據(jù)的尝江,當發(fā)生異常掉電或者文件系統(tǒng)崩潰后,進行修復(fù)時會檢查文件系統(tǒng)的一致性英上,
當出現(xiàn)不一致時茂装,可通過它來恢復(fù)怠蹂。
故障處理方法:
第一步:使用#lsblk 查找掛載路徑,用#umount 將其卸載少态;確保分區(qū)處于 umount 狀態(tài)
(xfs_check /dev/sdb(盤符); echo $?返回 0 表示正常),進行下一步易遣;
第二步:檢測文件系統(tǒng)是否損壞:執(zhí)行 xfs_repair -n彼妻,檢查文件系統(tǒng)是否損壞。
第三步:修復(fù)文件系統(tǒng):
xfs_repair /dev/sdb 以本案例為例豆茫。
注: XFS 文件系統(tǒng)在異常斷電后發(fā)生文件系統(tǒng)報錯概率很高侨歉。若僅僅因為斷電導(dǎo)致文件系統(tǒng)
報錯,通常是可以通過命令修復(fù)的揩魂。執(zhí)行以上 repair 操作不會對數(shù)據(jù)產(chǎn)生進一步損壞風險幽邓,
如發(fā)生修復(fù)失敗是由于文件系統(tǒng)損壞嚴重,而不是此操作導(dǎo)致
第四步:強制修復(fù)(會造成文件丟失,需要與客戶說明數(shù)據(jù)安全&得到客戶允許下才能操作火脉。)
先執(zhí)行 xfs_repair -L /dev/sdb(清空日志牵舵,會丟失文件),再執(zhí)行 xfs_repair
/dev/sdb倦挂,再執(zhí)行 xfs_check /dev/sdb 檢查文件系統(tǒng)是否修復(fù)成功
說明:-L 是修復(fù) xfs 文件系統(tǒng)的最后手段畸颅,慎重選擇,它會清空日志方援,會丟失用戶數(shù)據(jù)和文
件没炒。
備注:在執(zhí)行 xfs_repair 操作前,最好使用 xfs_metadump 工具保存元數(shù)據(jù)犯戏,一旦修復(fù)失敗送火,
最起碼可以恢復(fù)到修復(fù)之前的狀態(tài)
注:僅用作經(jīng)驗分享。
參考文獻:
https://blog.csdn.net/yuanfang_way/article/details/78700089
https://www.cnblogs.com/yuzhaoxin/p/4083582.html