Ext4(The fourth extended file system)
<a href="http://baike.baidu.com/view/2220807.htm#" target="_blank">編輯本段</a>
最近安裝使用CentOS6.0,發現6.0系統新增了ext4檔案系統,想了解一下ext4檔案系統的特性,于是,在網上搜尋了一下.相對于以前的ext3,ext2功能更豐富了很多.以下來自百度百科:
相對于Ext3,特點如下:
1. 與 Ext3 相容。 執行若幹條指令,就能從 Ext3 線上遷移到 Ext4,而無須重新格式化磁盤或重新安裝系統。原有 Ext3 資料結構照樣保留,Ext4 作用于新資料,當然,整個檔案系統是以也就獲得了 Ext4 所支援的更大容量。
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 允許關閉日志,以便某些有特殊需求的使用者可以借此提升性能。
10. 線上碎片整理。 盡管延遲配置設定、多塊配置設定和 extents 能有效減少檔案系統碎片,但碎片還是不可避免會産生。Ext4 支援線上碎片整理,并将提供 e4defrag 工具進行個别檔案或整個檔案系統的碎片整理。
11. inode 相關特性。 Ext4 支援更大的 inode,較之 Ext3 預設的 inode 大小 128 位元組,Ext4 為了在 inode 中容納更多的擴充屬性(如納秒時間戳或 inode 版本),預設 inode 大小為 256 位元組。Ext4 還支援快速擴充屬性(fast extended attributes)和 inode 保留(inodes reservation)。
12. 持久預配置設定(Persistent preallocation)。 P2P 軟體為了保證下載下傳檔案有足夠的空間存放,常常會預先建立一個與所下載下傳檔案大小相同的空檔案,以免未來的數小時或數天之内磁盤空間不足導緻下載下傳失敗。 Ext4 在檔案系統層面實作了持久預配置設定并提供相應的 API(libc 中的 posix_fallocate()),比應用軟體自己實作更有效率。
13. 預設啟用 barrier。 磁 盤上配有内部緩存,以便重新調整批量資料的寫操作順序,優化寫入性能,是以檔案系統必須在日志資料寫入磁盤之後才能寫 commit 記錄,若 commit 記錄寫入在先,而日志有可能損壞,那麼就會影響資料完整性。Ext4 預設啟用 barrier,隻有當 barrier 之前的資料全部寫入磁盤,才能寫 barrier 之後的資料。(可通過 "mount -o barrier=0" 指令禁用該特性。)
本文轉自vcdog 51CTO部落格,原文連結:http://blog.51cto.com/255361/837692,如需轉載請自行聯系原作者