猞猁的選擇:升級(jí)Ubuntu 9.10選擇Ext3還是Ext4
原創(chuàng)
【51CTO獨(dú)家翻譯】Ext3是一種日志式文件系統(tǒng),是對(duì)ext2系統(tǒng)的擴(kuò)展,它兼容ext2。日志式文件系統(tǒng)的優(yōu)越性在于:由于文件系統(tǒng)都有快取層參與運(yùn)作,如不使用時(shí)必須將文件系統(tǒng)卸下,以便將快取層的資料寫(xiě)回磁盤(pán)中。因此每當(dāng)系統(tǒng)要關(guān)機(jī)時(shí),必須將其所有的文件系統(tǒng)全部shutdown后才能進(jìn)行關(guān)機(jī)。如果在文件系統(tǒng)尚未shutdown前就關(guān)機(jī) (如停電) 時(shí),下次重開(kāi)機(jī)后會(huì)造成文件系統(tǒng)的資料不一致,故這時(shí)必須做文件系統(tǒng)的重整工作,將不一致與錯(cuò)誤的地方修復(fù)。然而,此一重整的工作是相當(dāng)耗時(shí)的,特別是容量大的文件系統(tǒng),而且也不能百分之百保證所有的資料都不會(huì)流失。為了克服此問(wèn)題,使用所謂‘日志式文件系統(tǒng) (Journal File System) ’。此類文件系統(tǒng)最大的特色是,它會(huì)將整個(gè)磁盤(pán)的寫(xiě)入動(dòng)作完整記錄在磁盤(pán)的某個(gè)區(qū)域上,以便有需要時(shí)可以回溯追蹤。由于資料的寫(xiě)入動(dòng)作包含許多的細(xì)節(jié),像是改變文件標(biāo)頭資料、搜尋磁盤(pán)可寫(xiě)入空間、一個(gè)個(gè)寫(xiě)入資料區(qū)段等等,每一個(gè)細(xì)節(jié)進(jìn)行到一半若被中斷,就會(huì)造成文件系統(tǒng)的不一致,因而需要重整。然而,在日志式文件系統(tǒng)中,由于詳細(xì)紀(jì)錄了每個(gè)細(xì)節(jié),故當(dāng)在某個(gè)過(guò)程中被中斷時(shí),系統(tǒng)可以根據(jù)這些記錄直接回溯并重整被中斷的部分,而不必花時(shí)間去檢查其他的部分,故重整的工作速度相當(dāng)快,幾乎不需要花時(shí)間。
Ext4是Karmic Koala的默認(rèn)文件系統(tǒng)。Ext4是一種針對(duì)ext3系統(tǒng)的擴(kuò)展日志式文件系統(tǒng),是專門(mén)為 Linux 開(kāi)發(fā)的原始的擴(kuò)展文件系統(tǒng)(ext 或 extfs)的第四版。
相對(duì)于Ext3,特點(diǎn)如下:
兼容性
Ext3升級(jí)到ext4能提供系統(tǒng)更高的性能,消除存儲(chǔ)限制,和獲取新的功能,并且不需要重新格式化分區(qū),ext4會(huì)在新的數(shù)據(jù)上用新的文件結(jié)構(gòu),舊的文件保留原狀。以ext3 文件系統(tǒng)的方式mount到ext4上會(huì)不用新的磁盤(pán)格式,而且還能再用ext3來(lái)重新掛載,這樣僅僅失去了ext4的優(yōu)勢(shì)。
大文件系統(tǒng)/文件大小
現(xiàn)在ext3支持最大16TB的文件系統(tǒng)。單個(gè)文件最大2TB。Ext4增加了48位塊地址,最大支持1EB文件系統(tǒng),和單個(gè)16TB的文件。
1EB = 1024PB = 2^50;
1PB = 1024TB = 2^40;
1TB = 1024GB = 2^30。
子目錄可伸縮性
EXT3每個(gè)目錄最大包含32000個(gè)子目錄。減去.和..也就是31998
ext4打破了這個(gè)限制可以無(wú)限制數(shù)量的子目錄
Extents
傳統(tǒng)的Unix派生文件系統(tǒng),使用間接塊映射方案,以跟蹤每塊用于塊相應(yīng)的數(shù)據(jù)文件,這對(duì)大文件來(lái)說(shuō)是低效率的?,F(xiàn)代文件系統(tǒng)使用不同的方法稱為“extends” 。extends基本上指一串連續(xù)的物理快。通常叫做數(shù)據(jù)在下面的N個(gè)塊中。一個(gè)100MB的文件可以分配到一extends中。而不需要?jiǎng)?chuàng)建一個(gè)間接映射表為256000個(gè)blocks,(每個(gè)block 4kb)大文件被分割為很多范圍。Extends改進(jìn)了性能并且減少了碎片。因?yàn)閑xtends鼓勵(lì)在磁盤(pán)上連續(xù)布局。
Multiblock 分配
ext4使用了一個(gè)多塊分配來(lái)在一次調(diào)用中分配很多塊。替換掉每次分配一個(gè)塊,減少系統(tǒng)開(kāi)銷。在延時(shí)分配和extends上十分有用。
延遲分配
延遲分配是一個(gè)性能特性(它不修改磁盤(pán)格式)。現(xiàn)代文件系統(tǒng)例如XFS,ZFS,btrfs or Reiser 4 并且它盡可能多的延時(shí)塊的分配。相對(duì)于傳統(tǒng)文件系統(tǒng)(例如Ext3 reiser3 etc)所做的立刻分配塊提供了更好的性能。
日志校驗(yàn)和
日志是磁盤(pán)中最常用的一部分,組成日志的這部分也是最容易出現(xiàn)硬件故障的。并且從一個(gè)受損的日志上恢復(fù)數(shù)據(jù)會(huì)導(dǎo)致巨大的數(shù)據(jù)損壞。Ext4 校驗(yàn)和提供了改進(jìn),它允許將EXt3的雙向提交日志格式轉(zhuǎn)換為單向的,加速文件系統(tǒng)操作,在某些情況下達(dá)到20%---因此可靠性和性能同時(shí)被改進(jìn)。
在線碎片整理
當(dāng)延遲分配,extents 和 multiblock 分配 幫助減少碎片的時(shí)候,使用中的文件系統(tǒng)依然會(huì)產(chǎn)生碎片。為了解決這個(gè)問(wèn)題,Ext4 將會(huì)支持在線碎片整理,并且有一個(gè)e4defrag工具可以整理個(gè)別文件在整個(gè)文件系統(tǒng)中。
索引節(jié)點(diǎn)-關(guān)聯(lián)
擁有大索引節(jié)點(diǎn),納秒時(shí)間戳,快速擴(kuò)展屬性,索引節(jié)點(diǎn)保留的特點(diǎn)。Ext3 支持 可設(shè)置的索引節(jié)點(diǎn)大?。ㄍㄟ^(guò) mkfs -l參數(shù))但是默認(rèn)索引節(jié)點(diǎn)大小是128字節(jié)。Ext4將默認(rèn)為256字節(jié)。這需要適應(yīng)一些額外的字段(比如納秒時(shí)間戳或者索引節(jié)點(diǎn)版本)并且剩余索引節(jié)點(diǎn)空間會(huì)被用于存放擴(kuò)展屬性為那些足夠小的對(duì)象來(lái)適合空間。這樣使訪問(wèn)那些屬性更快,提高那些使用擴(kuò)展屬性的應(yīng)用程序性能3-7倍。在目錄創(chuàng)建的時(shí)候保留若干索引節(jié)點(diǎn)在里面,預(yù)期它們?cè)谖磥?lái)使用。這樣改進(jìn)性能,因?yàn)樾挛募粍?chuàng)建在目錄中他們可以使用保留索引節(jié)點(diǎn)。文件創(chuàng)建和刪除因此更高效。納秒時(shí)間戳意味著索引節(jié)點(diǎn)字段例如修改時(shí)間可以用納秒分辨率替代Ext3中的秒。
持續(xù)預(yù)分配
這個(gè)特性在ext3最新的內(nèi)核版本中已經(jīng)可用了,由glic仿真來(lái)實(shí)現(xiàn)文件系統(tǒng)不支持的功能,允許應(yīng)用程序預(yù)分配磁盤(pán)空間:應(yīng)用程序告訴文件系統(tǒng)來(lái)預(yù)分配空間,文件系統(tǒng)預(yù)分配需要的塊和數(shù)據(jù)結(jié)構(gòu)。
默認(rèn)啟用 barrier
磁盤(pán)上配有內(nèi)部緩存,以便重新調(diào)整批量數(shù)據(jù)的寫(xiě)操作順序,優(yōu)化寫(xiě)入性能,因此文件系統(tǒng)必須在日志數(shù)據(jù)寫(xiě)入磁盤(pán)之后才能寫(xiě) commit 記錄,若 commit 記錄寫(xiě)入在先,而日志有可能損壞,那么就會(huì)影響數(shù)據(jù)完整性。Ext4 默認(rèn)啟用 barrier,只有當(dāng) barrier 之前的數(shù)據(jù)全部寫(xiě)入磁盤(pán),才能寫(xiě) barrier 之后的數(shù)據(jù)。(可通過(guò) "mount -o barrier=0" 命令禁用該特性。)
關(guān)于Ext4文件系統(tǒng)更多詳細(xì)信息可以參看:下一代Linux文件系統(tǒng)前瞻:是BTRFS還是ext4
#p#也許你注意到了,現(xiàn)在已經(jīng)可以在Ubuntu Jaunty(9.04)上使用Ext4系統(tǒng)。Ext4文件系統(tǒng)對(duì)于Ext3文件系統(tǒng)來(lái)說(shuō)是一次巨大的升級(jí)。它向下兼容Ext3,因此它非常的穩(wěn)定。但是近期這個(gè)文件系統(tǒng)出現(xiàn)了幾個(gè)問(wèn)題,因此使用的時(shí)候需要小心翼翼。
堅(jiān)持使用Ext3的理由:
1.Ext3是*buntus的的默認(rèn)文件系統(tǒng)
2.Ext3十分穩(wěn)定,不必?fù)?dān)心由于系統(tǒng)崩潰造成的文件丟失
3.Ext3是Ubuntu工作站的推薦系統(tǒng)
Ext4的一些問(wèn)題:
1.有時(shí)在Ext4系統(tǒng)中會(huì)產(chǎn)生更多的配置文件崩潰報(bào)告
2.問(wèn)題大部分出現(xiàn)在kernel 2.6.30中,因此它不會(huì)對(duì)Ubuntu Jaunty造成影響,但是會(huì)影響Ubuntu Karmic及后續(xù)產(chǎn)品
3.其它的一些問(wèn)題可以參看:http://www.ubuntu.com/getubuntu/releasenotes/904
因此,雖然Ext4是非常出色的文件系統(tǒng),但是它仍然存在一些缺陷有待解決。但是總體而言,這個(gè)系統(tǒng)對(duì)于桌面用戶來(lái)說(shuō)還是非常穩(wěn)定的。如果你采用定期備份的方法,就不會(huì)有什么后顧之憂。另外文件丟失的問(wèn)題也不能完全歸罪與Ext4文件系統(tǒng),這個(gè)問(wèn)題很大程度上來(lái)源于不規(guī)范的I/O磁盤(pán)設(shè)備。關(guān)于文件丟失的詳細(xì)說(shuō)明可以參看這里:當(dāng)心: Ext4 可能造成數(shù)據(jù)丟失
【編輯推薦】