ext2/3/4:
- superblock:記錄此 filesystem 的總體信息,包括inode/block的總量、使用量、剩餘量,
以及文件系統的格式與相關信息等;node
- inode:記錄文件的屬性,一個文件佔用一個inode,同時記錄此文件的數據所在的 block
號碼;spa
- block:實際記錄文件的內容,若文件太大時,會佔用多個 block 。
因爲整個分區都使用一套inode和superblock的話,會使inode和block數量過於龐大,所以系統會將inode和block分組:block group。指針
boot sector | block group 1| block group2| block group3 ......日誌
對於每一個block group,包含6個部分:ip
- data block (1k,2k,4k):每一個block只能存儲一個文件,若是block太大文件過小會浪費大量空間。一樣,block過小會形成inode過多。
- inode table: 存儲rwx權、owner、group、文件大小、SUID,SGID,SBIT、mtime,ctime,atime、以及指向data block的指針。
- superblock:記錄inode和data block的總量,使用量,空閒量,大小,是否掛載(valid bit),寫入數據時間,校驗時間。(一般只有block group1有superblock,即整個文件系統只有一個superblock,其餘group裏通常爲第一個的備份)
- Filesystem Description:記錄每一個groupblock的位置,以及這6個部分的位置
- block bitmap:記錄空閒block的表
- inode bitmap:記錄空閒inodede表
xfs
xfs分爲:it
一個數據區 (data section)io
一個文件系統活動登陸區 (log section)table
一個實時運行區 (realtime section)登錄
- 數據區:一樣分爲block group,存儲了(1)整個文件系統的 superblock、 (2)剩餘空間的管理機制、 (3)inode的分配與追蹤。可是 inode 與 block 是動態產生,不是一開始就分配的。
- 實時運行區:當有文件要被建立時,xfs 會在這個區段裏面找一個到數個的 extent 區塊,將文件放置在這個區塊內,等到分配完畢後,再寫入到 data section 的 inode 與 block 去