一篇理解Ext-Ext4文件系統(tǒng)_日志JBD2
1.使用Ext3文件系統(tǒng)的Linux內(nèi)核中實(shí)現(xiàn)三個(gè)級(jí)別的日志記錄:日記journal(最低風(fēng)險(xiǎn),效率低),順序ordered和回寫writeback(提供較好的性能,但有較大的風(fēng)險(xiǎn))。 日志文件系統(tǒng)的3種日志方法
一、Ext4文件系統(tǒng)特性
Ext4是第四代擴(kuò)展文件系統(tǒng),是Linux系統(tǒng)下的日志文件系統(tǒng),是Ext3文件系統(tǒng)的后繼版本。內(nèi)核2.6.28引入Ext4文件系統(tǒng)稱為穩(wěn)定版。
更大的文件系統(tǒng)和更大的文件
更多的子目錄數(shù)量:EXT4理論上支持無(wú)限個(gè) 更多的塊和i-節(jié)點(diǎn)數(shù)量 多塊分配 持久性預(yù)分配 延遲分配 盤區(qū)結(jié)構(gòu) 日志校驗(yàn)功能 支持無(wú)日志模式 在線碎片整理 支持快速fsck 支持納秒級(jí)時(shí)間戳
二、Ext4文件系統(tǒng)磁盤布局結(jié)構(gòu)

Ext4文件系統(tǒng)被分成一系列塊組,為減少磁盤碎片產(chǎn)生的性能瓶頸,塊分配器盡量保持每個(gè)文件的數(shù)據(jù)塊都在同個(gè)塊組中,從而減少尋道時(shí)間。以4KB數(shù)據(jù)塊為準(zhǔn),一個(gè)塊組可以包含32768個(gè)數(shù)據(jù)塊,也就是128M。 當(dāng)格式化磁盤成為Ext4文件系統(tǒng)時(shí),mkfs將在塊組描述符表后面分配預(yù)留GDT表數(shù)據(jù)塊(主要作用用于將擴(kuò)展文件系統(tǒng))。
【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【891587639】整理了一些個(gè)人覺(jué)得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。。。ê曨l教程、電子書、實(shí)戰(zhàn)項(xiàng)目及代碼)? ??


三、Ext4文件系統(tǒng)數(shù)據(jù)結(jié)構(gòu)
1.超級(jí)塊
專門用于描述文件系統(tǒng)的全部配置信息:比如inode數(shù)量,數(shù)據(jù)塊個(gè)數(shù),管理信息等。

2.塊組描述符(GDT)
塊組描述符用保存元祖的信息,其占用一個(gè)或多個(gè)數(shù)據(jù)塊,具體取決于文件系統(tǒng)的大小,他主要包含塊位圖,inode位圖和inode表位置等。

3.節(jié)點(diǎn)表(inode Table)
inode存儲(chǔ)了inode號(hào),文件屬性元數(shù)據(jù),指向文件占用的block的指針,每一個(gè)inode占用128字節(jié)或者256字節(jié)。

4.數(shù)據(jù)塊位圖
用于描述該塊組所管理的塊的分配狀態(tài)。
5.inode位圖
用于描述該塊組所管理的inode分配狀態(tài)
6.Extent樹(shù)
Ext4中用extent樹(shù)代替邏輯塊映射,用一個(gè)struct ext4_extent結(jié)構(gòu)就可以映射多個(gè)數(shù)據(jù)塊,減少元數(shù)據(jù)塊的使用。

