linux kernel 自 2.6.28 開始正式支援新的檔案系統 ext4。 ext4 是 ext3 的改進版,修改了 ext3 中部分重要的資料結構,而不僅僅像 ext3 對 ext2 那樣,只是增加了乙個日誌功能而已。ext4 可以提供更佳的效能和可靠性,還有更為豐富的功能:
1. 與 ext3 相容。
2. 更大的檔案系統和更大的檔案。
較之 ext3 目前所支援的最大 16tb 檔案系統和最大 2tb 檔案,ext4 分別支援 1eb(1,048,576tb, 1eb=1024pb, 1pb=1024tb)的檔案系統,以及 16tb 的檔案。
3. 無限數量的子目錄。
ext3 目前只支援 32,000 個子目錄,而 ext4 支援無限數量的子目錄。
4. extents。
ext3 採用間接塊對映,當操作大檔案時,效率極其低下。比如乙個 100mb 大小的檔案,在 ext3 中要建立 25,600 個資料塊(每個資料塊大小為 4kb)的對映表。而 ext4 引入了現代檔案系統中流行的 extents 概念,每個 extent 為一組連續的資料塊,上述檔案則表示為「該檔案資料儲存在接下來的 25,600 個資料塊中」,提高了不少效率。
5. 多塊分配。
當 寫入資料到 ext3 檔案系統中時,ext3 的資料塊分配器每次只能分配乙個 4kb 的塊,寫乙個 100mb 檔案就要呼叫 25,600 次資料塊分配器,而 ext4 的多塊分配器「multiblock allocator」(mballoc) 支援一次呼叫分配多個資料塊。
6. 延遲分配。
ext3 的資料塊分配策略是盡快分配,而 ext4 和其它現代檔案作業系統的策略是盡可能地延遲分配,直到檔案在 cache 中寫完才開始分配資料塊並寫入磁碟,這樣就能優化整個檔案的資料塊分配,與前兩種特性搭配起來可以顯著提公升效能。
7. 快速 fsck。
以前執行 fsck 第一步就會很慢,因為它要檢查所有的 inode,現在 ext4 給每個組的 inode 表中都新增了乙份未使用 inode 的列表,今後 fsck ext4 檔案系統就可以跳過它們而只去檢查那些在用的 inode 了。
8. 日誌校驗。
日誌是最常用的部分,也極易導致磁碟硬體故障,而從損壞的日誌中恢復資料會導致更多的資料損壞。ext4 的日誌校驗功能可以很方便地判斷日誌資料是否損壞,而且它將 ext3 的兩階段日誌機制合併成乙個階段,在增加安全性的同時提高了效能。
9. 「無日誌」(no journaling)模式。
日誌總歸有一些開銷,ext4 允許關閉日誌,以便某些有特殊需求的使用者可以藉此提公升效能。
11. inode 相關特性。
ext4 支援更大的 inode,較之 ext3 預設的 inode 大小 128 位元組,ext4 為了在 inode 中容納更多的擴充套件屬性(如納秒時間戳或 inode 版本),預設 inode 大小為 256 位元組。ext4 還支援快速擴充套件屬性(fast extended attributes)和 inode 保留(inodes reservation)。
12. 持久預分配(persistent preallocation)。
13. 預設啟用 barrier。
磁 盤上配有內部快取,以便重新調整批量資料的寫操作順序,優化寫入效能,因此檔案系統必須在日誌資料寫入磁碟之後才能寫 commit 記錄,若 commit 記錄寫入在先,而日誌有可能損壞,那麼就會影響資料完整性。ext4 預設啟用 barrier,只有當 barrier 之前的資料全部寫入磁碟,才能寫 barrier 之後的資料。(可通過 "mount -o barrier=0" 命令禁用該特性。)
ext2 ext3與ext4的區別
ext2與ext3 linux ext2 ext3檔案系統使用索引節點來記錄檔案資訊,作用像windows的檔案分配表。索引節點是乙個結構,它包含了乙個檔案的長度 建立及修改時間 許可權 所屬關係 磁碟中的位置等資訊。乙個檔案系統維護了乙個索引節點的陣列,每個檔案或目錄都與索引節點陣列中的唯一乙個元...
Ext4,Ext3的特點和區別
2.更大的檔案系統和更大的檔案。較之 ext3 目前所支援的最大 16tb 檔案系統和最大 2tb 檔案,ext4 分別支援 1eb 1,048,576tb,1eb 1024pb,1pb 1024tb 的檔案系統,以及 16tb 的檔案。3.無限數量的子目錄。ext3 目前只支援 32,000 個子...
顯示 Ext2 Ext3 Ext4 結構資訊
要顯示乙個 ext2 ext3 ext4 資訊,可以使用 e2fsprogs 中的dumpe2fs或tune2fs l命令,例如 dumpe2fs dev sda1 或者tune2fs l dev sda1 dumpe2fs 會顯示 superblock 上的資訊和每個區塊組 block group...