f2fs学习笔记 - 5. f2fs基本类图
-
f2fs_nat_entry
f2fs node address table entry, 可以認為是main area區域的node block的描述符。version?
ino為node所對應的inode number,block_addr為node block的索引(這個索引是從CP區域開始計數嗎?)
f2fs_nat_entry的作用就是根據nid來查找對應的node block的塊號,通過nid也可以確定其所屬的ino, 進而找到對應的f2fs_inode -
f2fs_nat_block
node address table區域的一個block,一個f2fs nat block包含有NAT_ENTRY_PER_BLOCK個f2fs nat entry -
nat_journal_entry
用于記錄一個f2fs nat entry日志,nid為node block id(從main area開始計數?) -
nat_journal
包含了NAT_JOURNAL_ENTRIES個nat_journal_entry -
f2fs_sit_entry
f2fs segment info table entry, 可以認為是對main area區域一個segment的描述符
vblocks的低10位包含了一個segment中有效block的數目,高6位包含了segment的類型,node or data;mtime記錄了segment的年齡,也就是子上次清理以來到現在的時間 -
f2fs_sit_block
segment info table區域的一個block, 一個f2fs sit block包含有SIT_ENTRY_PER_BLOCK個f2fs sit entry -
sit_journal_entry
用于記錄一個f2fs sit entry日志,segno為segment 的索引號 -
sit_journal
包含了SIT_JOURNAL_ENTRIES個sit_journal_entry -
f2fs_summary
一個summary entry對應segment中一個4K大小的block.它主要用來描述main area區域的node segment。其中nid成員用于表示node block的id, version用于表示node的版本號?ofs_in_node為parent node的block index -
summary_footer
主要對f2fs_summary_block進行一些腳注說明,其中entry_type表示為SUM_TYPE_NODE/SUM_TYPE_DATA,可以看出一個segment要么是node,要么data -
f2fs_summary_block
包含了ENTRIES_IN_SUM(512)個f2fs_summary, 因此一個f2fs_summary_block與一個segment相對應。它既可以是對nat segment的summary描述,也可以是對sit segment區域的描述,通過union來指定。f2fs_summary_block的空閑區域會用來存放sit_journal或sit_journal;footer是對當前segment的注釋 -
seg_entry
是對segment的描述符(針對main area?);valid_blocks表示segment的有效block數目,cur_valid_map為有效block的bitmap;ckpt_valid_blocks為存儲在cp區域的有效block數目,ckpt_valid_map為存儲在cp區域的有效block的bitmap;type為segment的類型(cold data/hot data/cold node / hot node…);mtime為segment的最后修改時間 -
sit_info
描述了整個segment info table 的信息(只針對main area?)
參考資料
f2fs的journal機制
2.https://github.com/RiweiPan/F2FS-NOTES/blob/master/Outline.md
總結
以上是生活随笔為你收集整理的f2fs学习笔记 - 5. f2fs基本类图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【案例】中国银联、光大银行基于区块链的可
- 下一篇: Liferay