-
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?)
参考资料
- https://blog.csdn.net/sunwukong54/article/details/45669017
f2fs的journal机制
2.https://github.com/RiweiPan/F2FS-NOTES/blob/master/Outline.md