ext3日誌掠影

2021-05-28 08:39:06 字數 918 閱讀 7583

草草瀏了一遍jbd源**分析,對日誌機制的原理和實現有了些粗略的印象,一些細節問題不想深究了,只有在動手實踐之後才能有更深入的理解,這是不可取代的途徑。

為了是這一上午和乙個晚上的工作留下些許印象,記錄一些片段士的理解。

1.日誌的實現是加在在檔案系統的各種操作流程中的,比如

ext3_fill_super() 讀入檔案系統的超級

ext3_load_journal() 讀入對應日誌的inode資訊

ext3_get_journal() 根據日誌inode資訊構建乙個journal_t結構

journal_load() 進行日誌的恢復操作

load_superblock() 讀入日誌的超級塊

journal_recover() 進行實際的日誌恢復操作。

2.日誌系統在磁碟中開闢了一塊區域,想檔案系統一樣有超級塊,但是是以事務(transaction)的形式存在的,transaction包含若干原子操作(handle)。

3.日誌系統有三種模式:journal ;ordered;writeback。常用的是ordered,只對元資料塊的操作進行日誌

4.日誌系統包含描述符塊和資料塊,分別儲存操作描述和被操作的資料塊。

5在記憶體中有日誌系統的緩衝區,通常每隔5秒,將記憶體中快取commit到磁碟上(對這個時間,我頗有疑問:日誌存在的意義在於當意外宕機時候,記憶體的資料沒有寫到磁碟,但是日誌系統卻有記錄,也就是說日誌的塊已經回刷到磁碟。若一次寫更新已經到了記憶體緩衝,但是還沒寫入日誌的磁碟空間,日誌的恢復功能就不能實現。而5秒的間隔,應該很可能出現這中情況吧?不就結了,動手做完demo再來研究)

基本就這些吧,具體的內容還是要參照

ext3日誌檔案系統工作原理理解

ext3檔案系統是在ext2檔案系統的基礎上增加了日誌功能。具體的做法就是,在向檔案系統中的檔案寫入資料的時候,會先產生乙個journal log日誌,這個journal log日誌是生成在記憶體中的。系統中有乙個後台程序kjournald2,會定時檢視這些journal log日誌對應的磁碟操作是...

關於ext3日誌檔案系統的一點淺見

ext3新增了日誌功能,下面是研究通過日誌恢復檔案時的一點心得,工作需要,未作深入研究。只言片語,不成體系,個人理解,可能不對!jbd日誌過程 ordered為例 1.對元資料的修改 以塊為單位 先記錄到日誌中 這時的資料應該還在記憶體 2.對檔案內容進行相應操作 3.進行commit操作,表示此次...

Ext3 學習 3 表單驗證

a 表單驗證,是要顯示錯誤提示資訊,所以加上 necessary when to show tips ext.quicktips.init set the location of tips,default qtip ext.form.field.prototype.msgtarget side b ...