什麼是日誌文件系統?node
所謂日誌文件系統是在傳統文件系統的基礎上,加入文件系統更改的日誌記錄,它的設計思想是:跟蹤記錄文件系統的變化,並將變化內容記錄入日誌。日誌文件系統在磁盤分區中保存有日誌記錄,寫操做首先是對記錄文件進行操做,若整個寫操做因爲某種緣由(如系統掉電)而中斷,系統重啓時,會根據日誌記錄來恢復中斷前的寫操做。在日誌文件系統中,全部的文件系統的變化都被記錄到日誌,每隔必定時間,文件系統會將更新後的元數據及文件內容寫入磁盤。在對元數據作任何改變之前,文件系統驅動程序會向日志中寫入一個條目,這個條目描述了它將要作些什麼,而後它修改元數據。linux
Ext文件系統結構
ide
MBR:spa
MBR全稱Master Boot record,即硬盤的主引導記錄。前446字節爲引導器,64字節分區表,2字節校驗,大小一共512字節。設計
Linux文件系統以「Block」作爲存儲單元。日誌
Block一般有若干個連續的扇區組成,一般爲1KB,2KB,4KB,8KB,此值大小一般記錄在位於文件系統2-3號扇區的superblock中;orm
全部的block都被賦予地址,由0開始編號,0號起始於文件系統的第一個扇區;xml
全部blok被劃分若干個相等的塊組,每一個塊組中包含相同數量的block,但因爲文件系統可能不是塊大小的整數倍,因此最有一個塊組可能小於其餘塊組;blog
若是superblock定義了文件系統開始出保留的區域,則此區域不屬於任何block,0號block也在保留區域後開始。get
SuperBlock:
superblock位於系統的1024字節處,爲其分配空間爲1024字節,但其中部分字節並沒使用
由基本信息組成,如塊大小,總塊數,每組塊數以及第一個快前保留塊數,還有inode數量和每塊組inode數量;
還有一些非實質性的數據,如卷名,最後寫入時間,文件系統是否乾淨,是否須要一致性檢查。2使用dumpe2fs可查看信息。dump2fs /dev/sda1;
日誌文件系統會把SuperBlock在datablock裏作一個備份,當SuperBlock更新時,備份也一樣更新;
superblock和backup block之間同步的時間15s或30s;
GDT(組描述符表):
組描述符表,位於superblock以後,每一個組描述符佔用32字節,一般組描述符不會超過一個塊組;記錄block bitmap和inode bitmap等起始位置的信息;
block bitmap(塊位圖):
管理塊組中的塊的分配狀況;
inode bitmap(Inode位圖):
位於block bitmap以後,大小隻佔用一個block;
管理組中inode的分配狀況;
起始位置在GDT中給出,一般inode數量小於組中的塊數,不過能夠手動更改;
Inode Table(inode表):
inode大小爲128字節;
全部inode存放在inode table中,每一個塊組都有一個本地組的inode table
1-10號inode被用做保留,並在inode table中設置爲已分配;
1號inode節點用於代表壞塊,但在linux內核中沒有標定的值;
8號節點一般爲日誌使用,但能夠在superblock中從新定義;
第一個用戶文件一般使用11號節點,但此通常被lost+found目錄使用;