Linuxkernel 自2.6.28開始正式支持新的文件系統(tǒng)Ext4。Ext4是Ext3的改進(jìn)版,,修改了Ext3中部分重要的數(shù)據(jù)結(jié)構(gòu),,而不僅僅像Ext3對(duì)Ext2那樣,只是增加了一個(gè)日志功能而已,。Ext4可以提供更佳的性能和可靠性,,還有更為豐富的功能: [color="#3333ff"]1.與[color="#3333ff"]Ext3兼容,。執(zhí)行若干條命令,就能從Ext3在線遷移到Ext4,,而無須重新格式化磁盤或重新安裝系統(tǒng),。原有Ext3數(shù)據(jù)結(jié)構(gòu)照樣保留,Ext4作用于新數(shù)據(jù),,當(dāng)然,,整個(gè)文件系統(tǒng)因此也就獲得了Ext4所支持的更大容量。 [color="#3333ff"]2.更大的文件系統(tǒng)和更大的文件,。較之Ext3目前所支持的最大16TB文件系統(tǒng)和最大2TB文件,,Ext4分別支持1EB(1,048,576TB,1EB=1024PB,,1PB=1024TB)的文件系統(tǒng),,以及16TB的文件。 [color="#3333ff"]3.無限數(shù)量的子目錄,。Ext3目前只支持32,000個(gè)子目錄,,而Ext4支持無限數(shù)量的子目錄。 [color="#3333ff"]4.Extents,。Ext3采用間接塊映射,,當(dāng)操作大文件時(shí),效率極其低下,。比如一個(gè)100MB大小的文件,,在Ext3中要建立25,600個(gè)數(shù)據(jù)塊(每個(gè)數(shù)據(jù)塊大小為4KB)的映射表。而Ext4引入了現(xiàn)代文件系統(tǒng)中流行的extents概念,,每個(gè)extent為一組連續(xù)的數(shù)據(jù)塊,,上述文件則表示為“該文件數(shù)據(jù)保存在接下來的25,600個(gè)數(shù)據(jù)塊中”,提高了不少效率,。 [color="#3333ff"]5.多塊分配,。當(dāng)寫入數(shù)據(jù)到 Ext3文件系統(tǒng)中時(shí),Ext3的數(shù)據(jù)塊分配器每次只能分配一個(gè)4KB的塊,,寫一個(gè)100MB文件就要調(diào)用25,600次數(shù)據(jù)塊分配器,,而Ext4的多塊分配器“multiblockallocator”(mballoc)支持一次調(diào)用分配多個(gè)數(shù)據(jù)塊。 [color="#3333ff"]6.延遲分配,。Ext3的數(shù)據(jù)塊分配策略是盡快分配,,而Ext4和其它現(xiàn)代文件操作系統(tǒng)的策略是盡可能地延遲分配,直到文件在cache中寫完才開始分配數(shù)據(jù)塊并寫入磁盤,,這樣就能優(yōu)化整個(gè)文件的數(shù)據(jù)塊分配,,與前兩種特性搭配起來可以顯著提升性能。 [color="#3333ff"]7.快速[color="#3333ff"]fsck,。以前執(zhí)行fsck第一步就會(huì)很慢,,因?yàn)樗獧z查所有的inode,,現(xiàn)在Ext4給每個(gè)組的inode表中都添加了一份未使用inode的列表,今后fsckExt4 文件系統(tǒng)就可以跳過它們而只去檢查那些在用的inode了,。 [color="#3333ff"]8.日志校驗(yàn),。日志是最常用的部分,也極易導(dǎo)致磁盤硬件故障,,而從損壞的日志中恢復(fù)數(shù)據(jù)會(huì)導(dǎo)致更多的數(shù)據(jù)損壞,。Ext4的日志校驗(yàn)功能可以很方便地判斷日志數(shù)據(jù)是否損壞,而且它將Ext3的兩階段日志機(jī)制合并成一個(gè)階段,,在增加安全性的同時(shí)提高了性能,。 [color="#3333ff"]9.“無日志”([color="#3333ff"]NoJournaling)模式。日志總歸有一些開銷,,Ext4允許關(guān)閉日志,,以便某些有特殊需求的用戶可以借此提升性能。 [color="#3333ff"]10.在線碎片整理,。盡管延遲分配,、多塊分配和extents能有效減少文件系統(tǒng)碎片,但碎片還是不可避免會(huì)產(chǎn)生,。Ext4支持在線碎片整理,,并將提供e4defrag工具進(jìn)行個(gè)別文件或整個(gè)文件系統(tǒng)的碎片整理。 [color="#3333ff"]11.inode 相關(guān)特性,。Ext4支持更大的inode,較之Ext3默認(rèn)的inode大小128字節(jié),,Ext4為了在inode中容納更多的擴(kuò)展屬性(如納秒時(shí)間戳或inode版本),,默認(rèn)inode大小為256字節(jié)。Ext4還支持快速擴(kuò)展屬性(fastextended attributes)和inode保留(inodesreservation),。 [color="#3333ff"]12.持久預(yù)分配([color="#3333ff"]Persistentpreallocation),。P2P軟件為了保證下載文件有足夠的空間存放,常常會(huì)預(yù)先創(chuàng)建一個(gè)與所下載文件大小相同的空文件,,以免未來的數(shù)小時(shí)或數(shù)天之內(nèi)磁盤空間不足導(dǎo)致下載失敗,。Ext4在文件系統(tǒng)層面實(shí)現(xiàn)了持久預(yù)分配并提供相應(yīng)的API(libc中的posix_fallocate()),比應(yīng)用軟件自己實(shí)現(xiàn)更有效率,。 [color="#3333ff"]13.默認(rèn)啟用[color="#3333ff"]barrier,。磁盤上配有內(nèi)部緩存,以便重新調(diào)整批量數(shù)據(jù)的寫操作順序,,優(yōu)化寫入性能,,因此文件系統(tǒng)必須在日志數(shù)據(jù)寫入磁盤之后才能寫commit記錄,若commit記錄寫入在先,,而日志有可能損壞,,那么就會(huì)影響數(shù)據(jù)完整性,。Ext4默認(rèn)啟用barrier,只有當(dāng)barrier之前的數(shù)據(jù)全部寫入磁盤,,才能寫barrier之后的數(shù)據(jù),。(可通過"mount-o barrier=0" 命令禁用該特性。) Ext4隨Linuxkernel 2.6.28 正式發(fā)布已有數(shù)周,,一直苦于找不到測(cè)試用的磁盤,,正巧年前Intel送來幾塊SSD測(cè)試樣品,這兩天就順帶把SSD也測(cè)了,。測(cè)試所使用的Linux內(nèi)核版本為2.6.28.2,,測(cè)試工具為IOzone3.318。 IOzone 測(cè)試命令為: time/opt/iozone/bin/iozone -a -s 4G -q 256 -y 4>|/root/ext4-iozone-stdout.txt 上述命令的說明如下: AutoMode File size set to 4194304 KB Using Maximum Record Size 256KB Using Minimum Record Size 4 KB Command line used:/opt/iozone/bin/iozone -a -s 4G -q 256 -y 4 Output is inKbytes/sec Time Resolution = 0.000001 seconds. Processor cachesize set to 1024 Kbytes. Processor cache line size set to 32bytes. File stride size set to 17 * record size. 測(cè)試結(jié)果除了表明IntelSSD 的讀寫速度快得令人咋舌之外,,還可以說明Ext4的各方面性能都超過了上一代Ext3,,甚至在大多數(shù)情況下,比沒有日志功能的Ext2還要快出不少: 注: 1.關(guān)于IOzone測(cè)試方法,,參考BenMartin 的文章: IOzonefor filesystem performance benchmarking 2.關(guān)于Ext4的相關(guān)內(nèi)容,,參考KernelNewbies 專頁: http:///Ext4 自上面的測(cè)試報(bào)告發(fā)布以來,社會(huì)各界紛紛來電來函,,給出了“Ext4我看行”,,“Ext4牛牛牛”,,“用了Ext4,,嘿,還真對(duì)得起這塊盤”,,“Ext4,,碎片去無蹤,性能更出眾”等等熱情洋溢的評(píng)論,,兄弟我深受鼓舞,。在對(duì)Ext4頗不低俗的性能進(jìn)行表揚(yáng)的同時(shí),人民群眾還提出了新的要求,,希望看到與現(xiàn)有同類文件系統(tǒng)性能橫向比拼的結(jié)果,。為了滿足廣大群眾的熱切需求,今天做了Ext2,、Ext3,、Ext4、XFS,、JFS,、ReiserFS和Btrfs的全面性能測(cè)試,對(duì)比結(jié)果如下: [color="#000000"]本次測(cè)試所使用的Linuxkernel 版本為2.6.29-rc3,文件系統(tǒng)性能測(cè)試工具為IOzone3.318,。 [color="#000000"]從測(cè)試結(jié)果可以看出,,Ext4的綜合性能位居現(xiàn)有文件系統(tǒng)之首,JFS,、ReiserFS在讀性能方面亦有不俗表現(xiàn),。Btrfs的小塊數(shù)據(jù)讀寫性能與平均水平相差甚遠(yuǎn),是導(dǎo)致其本次測(cè)試總時(shí)間超出平均時(shí)間兩倍的主要原因,。較之其它成熟的文件系統(tǒng),,Btrfs投入生產(chǎn)系統(tǒng)運(yùn)作可能尚需時(shí)日。 [color="#000000"]至于一小撮不明真相別有用心的群眾提出還要測(cè)NTFS,、Vfat,、MSDOS等“文件系統(tǒng)”,恕時(shí)間有限,,不予受理,。 |
|