ext3 fsck 時間與分割區大小

ext3 fsck 時間與分割區大小

我正在為一個大型儲存場進行設置,為了避免需要長達一個月的 fsck,我的計劃是將儲存分成許多較小的檔案系統(這很好,因為我有一個儲存良好的檔案樹,這樣我就可以輕鬆地將單獨的檔案系統安裝在1/2/3/4/等上)。

我的困難在於找到任何檔案系統「合理」大小的枚舉,以保持 fsck 時間同樣「合理」。雖然我完全意識到給定大小的絕對時間在很大程度上取決於硬件,但我似乎找不到任何關於不同文件系統大小的 ext3 fsck 時間曲線形狀的描述,以及其他變量是什麼(一個目錄中充滿檔案的檔案系統是否比樹中數千個目錄中每個檔案有10 個檔案的檔案系統花費的時間更長;完整的檔案系統與空檔案系統;等等)。

有人參考過有關此問題的任何經過深入研究的數字嗎?如果做不到這一點,任何有關這些問題的軼事至少應該有助於指導我自己的實驗,如果需要的話。

編輯:澄清一下:無論檔案系統如何,如果元資料出現問題,都需要進行檢查。是否啟用或需要基於時間或基於安裝的重新 fsck 不是問題,我要求提供專門與 ext3 相關的數字的唯一原因是因為這是最有可能選擇的檔案系統。如果您知道一個具有特別快的 fsck 進程的檔案系統,我願意接受建議,但它確實需要是一個強大的選項(聲稱“檔案系統 X 永遠不需要 fscking!”會被嘲笑和嘲笑) 。我也意識到備份的必要性,並且 fsck 的願望並不能替代備份,但是,只是丟棄檔案系統並在出現故障時從備份中恢復,而不是對其進行 fsck,這似乎是一個真正的,真的愚蠢的權衡。

答案1

根據一個Mathur 等人的論文。(第 29 頁),在某一點之後,e2fsck 時間隨著檔案系統上 inode 的數量線性增長。如果從圖表中可以看出,使用多達 1,000 萬個 inode 的檔案系統會更有效率。

切換到 ext4 會有所幫助 - 在您的檔案系統未載入到邊緣的情況下,效能增益(由於不檢查標記為未使用的 inode)沒有明顯的效果。

答案2

我認為你必須自己進行基準測試。在 google 上快速搜尋沒有發現任何訊息,只是 ext4 fsck 比 ext3 快得多。

因此,建立一些 ext3 分割區,100GB、200GB 等,直到您將使用的磁碟大小。然後用數據填充它們。如果您可以使用類似於生產資料的資料(每個目錄的檔案、檔案大小分佈等),那麼這將是最好的。請注意,簡單地從另一個分割區或備份裝置複製檔案會將它們完美地放置在磁碟上並進行碎片整理,因此您的測試將缺少大量來自大量寫入/修改/刪除的磁碟頭尋道時間。

您還需要考慮並行 fsck。查看 /etc/fstab 中的最後幾個欄位。同一實體磁碟上的分割區應按順序進行;同一控制器上的多個磁碟可以並行完成,但請注意不要使控制器過載並減慢它們的速度。

答案3

http://lmgtfy.com/?q=fsck+benchmark

看起來 ext4 檔案系統上的 fsck 明顯快於 ext3,有些報告指出 ext4 fsck 比 ext3 快 10 倍甚至更多。

該搜尋中的兩篇非常有趣的文章是:

http://thunk.org/tytso/blog/2008/08/08/fast-ext4-fsck-times/http://thunk.org/tytso/blog/2009/02/26/fast-ext4-fsck-times-revisited/

答案4

有沒有原因導致您無法使用在重新啟動時不強制執行基於時間或安裝計數的 fsck 的檔案系統?

(基於時間的 fsck 確實讓我煩惱 - 對於長時間正常運行的伺服器來說,它幾乎可以保證每當您升級核心時都必須執行完整的 fsck)。

無論如何,XFS 是不強制執行 fsck 的日誌檔案系統之一。值得一看。

相關內容