由異常掉電問題---談xfs文件系統


本文皆是作者自己的學習總結或感悟(linux環境),如有不對,歡迎提出一起探討!!

目錄結構

  一.相關知識

  二.問題提出

  三.處理方法

  四.最終結果

 

一、相關知識

1.xfs文件系統(概念性知識網上很多,自己去查嘍)

  文件系統的定義:

    文件系統是操作系統用於明確存儲設備(常見的是磁盤,也有基於NAND Flash的固態硬盤)或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。

  xfs文件系統:

    是一個日志型文件系統

    日志文件系統?加一個日志來記錄文件系統的更改,即使在斷電或者是操作系統崩潰的情況下也能保證文件系統一致性

    怎么保持的?

    要向磁盤寫數據的時候,肯定要改變元數據,日志就要在這之前記錄要怎么去改元數據的,當發生異常掉電或者文件系統崩潰后,進行修復時會檢查文件系統的一致性,當出現不一致  時,可通過它來恢復。

                                                      (在數據下刷到磁盤之前,會先將對元數據的變動存放在日志中)

2.VM參數

  1.Vm( virtual memory )是什么

    1).不同的linux 內核版本,VM的參數是不一樣的,本文介紹的kernel 3.4.24-v64

    2).VM的相關參數位於/proc/sys/vm,用來優化虛擬內存的

    3)./proc這個目錄?  Linux 內核提供了一種通過 /proc 文件系統,在運行時訪問內核內部數據結構、改變內核設置的機制。proc文件系統是一個偽文件系統,它只存在內存當中,而     不占用外存空間。它以文件系統的方式為訪問系統內核數據的操作提供接口。用戶和應用程序可以通過proc得到系統的信息,並可以改變內核的某些參數。由於系統的信息,如進程,    是動態改變的,所以用戶或應用程序讀取proc文件時,proc文件系統是動態從系統內核讀出所需信息並提交的。

    4). /proc/sys包含了系統信息和內核參數

    5). /etc/sysctl.conf所有內核配置信息,可做永久性修改

  注:由於VM參數較多,感興趣的話可參考我的另一篇隨筆《vm參數簡介》

 

3.XFS文件系統參數

  1.這個網上內容比較少,我做如下幾點介紹

    1)xfs文件系統各個參數只有在xfs文件系統被掛載到linux系統上時,我們才能獲取到。

    2)xfs文件系統的參數位於/proc/sys/fs/xfs里,可以實時查看或調試各個參數

  注:XFS參數較多,感興趣的話可以參考我的另一篇隨筆《XFS參數簡介》

 

4.我的理解:VM參數和XFS參數是兩套控制緩存的參數,他們應該具有以下的關系:

  vm參數與xfs參數影響的階段不同:

  這里面涉及到的是linux的緩存機制,詳細信息請參考《Linux 內核的文件 Cache 管理機制介紹》

 與《Linux 文件系統剖析》這里我做簡單的介紹:linux在具體文件系統(ext3,xfs,fat32等等)之上,存在了虛擬文件系統。虛擬文件系統對具體文件系統進行了‘封裝’,這也使得linux可以掛載多種文件系統,但只使用同一套的函數或者命令。對於文件系統的緩存,這里細分了page cache和buffer cache。他們都存在於內存中,但是page cache主要用於緩存文件的內容,用於頻繁的讀取,buffer cache則用於將數據下刷到磁盤。通過實驗可以發現,當用dd寫裸設備時,buffer cache增長迅速,當像文件系統里copy數據時,page cache增長迅速。具體請參考文檔

二、問題的提出

寫這篇文章是因為帶有xfs文件系統的機器上,在有IO的情況下出現異常掉電時,文件系統會出現損壞(不一致,數據丟失等)。當對這個xfs文件進行修復時,文件系統為十幾T的情況下,修復時間非常慢,我們最終也沒有解決這個問題,估計現階段除了使用PMBUS電池或者UPS,還沒有更好的方法來解決xfs文件系統異常掉電問題。

 

三、處理方法

我們主要針對以下變量進行了測試:

1.VM參數的dirty_radio與dirty_background_radio

2.xfs參數的age_buffer_centisecs、xfsbufd_centisecs、xfssyncd_centisecs

3.mkfs.xfs參數

4.mount參數

5.內存大小

6.cpu多線程

 

注:詳細的測試結果和處理方法由於商業機密,不能泄露

 

四、最終結果

這里我給大家展示一下華為公司針對xfs修復的一個流程:

 

結束:希望提出更多關於xfs文件系統修復相關的建議,謝謝!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM