Linux ext4文件系統(tǒng):性能和兼容性
大多數(shù)主流Linux版本都配置了對完整 ext4 文件系統(tǒng)的支持功能。所以有必要探討一下 ext4文件系統(tǒng)在升級和企業(yè)決策實施方面帶來的影響。
2008年以來,主要的Linux版本都支持ext4文件系統(tǒng)。ext4支持很大的文件(可以達到16TB),也可以支持容量極大的文件卷(支持大小為1,048,576 TB的文件系統(tǒng))。 而且,ext4還支持就地升級,只需運行一些命令(tune2fs 和e2fsck)就可以將現(xiàn)有的 ext2 或ext3升級為ext4。就地升級功能不需要將大容量文件卷進行備份就可以完成升級,不過,將文件備份始終是穩(wěn)妥的做法。
使用ext4可兼容引導程序
每次啟動電腦時,都要有一個啟動過程,首先是 BIOS(基本輸入輸出系統(tǒng)),還有硬盤上的啟動磁區(qū)。對于Linux來說,下一步操作是LILO(LInux載入程序)或GRUB。當前的大多數(shù)Linux版本都使用了GRUB程序。GRUB2具有支持ext4啟動分區(qū)的功能。這項功能有一定的好處,可以避免在一個啟動分區(qū)上同時運行兩個不同的文件系統(tǒng)。經過標準化處理后,只運行一個文件系統(tǒng),可以使工作簡化,也不用將硬盤分為多個啟動分區(qū)。另外,多個啟動分區(qū)共用一個磁盤轉軸會降低系統(tǒng)的性能。
Fedora的最新版本利用升級后的GRUB,可以直接支持ext4上的啟動分區(qū)功能。 Ubuntu 9.10也支持ext4的啟動分區(qū)功能,不過需要用戶在就地升級后運行grub-install命令(詳見Ubuntu 9.10發(fā)行公告)。用戶如果沒有運行grub-install命令,會發(fā)現(xiàn)系統(tǒng)處于不穩(wěn)定狀態(tài)。
ext4的性能
安裝使用了ext4的系統(tǒng),在某些情形下,使用標準檢查程序進行檢測時,會出現(xiàn)性能降低的情況(例如PostgreSQL和Linux 2.6.31之后的內核版本)。這是由以下原因產生:為了進一步提高整個文件系統(tǒng)的可靠性,核心層上進行了額外的工作。理解特定的標準檢測程序使用什么樣的測試來評估性能,以及關注那些與自己的特殊要求相關的結果,都是很重要的。文件的數(shù)量、文件的大小和應用(比如,大型的數(shù)據(jù)庫和為網頁服務相適應)在密閉環(huán)境下進行的測驗與實際環(huán)境中相比相差甚大。
了解ext4的一些新性能有利于做出合理的升級決定。核對總和日記是ext4的一項新功能,在執(zhí)行寫入過程時,該功能可以確保磁盤區(qū)域的完整性。這也讓檢驗日志塊是否犯錯誤成為可能(這些錯誤會破壞文件提交進程)。此外,該過程是一個單向事件,可以將文件系統(tǒng)性能提高20%。如果用戶對增強的可靠性和性能都不感興趣的話,可以將寫入功能關閉。Barriers是另一項關閉后可以提高性能的可靠性功能,但是如果磁盤不能處理該部分數(shù)據(jù)的話,用戶會有潛在的資料損壞風險。
與較早版本的文件系統(tǒng)相比,ext4在運行fsck(文件系統(tǒng)檢查)時顯得格外優(yōu)越。在ext3和更早版本的文件系統(tǒng)中,fsck 需要穿越許多索引節(jié)點來確定文件系統(tǒng)是不是完好的。利用 ext4,可以越過已知為空的索引節(jié)點。可以觀察到,在一些為Linux系統(tǒng)設計的ext4標準檢查程序中,系統(tǒng)性能提高了100% 以上。
文件系統(tǒng)決策
是否要將現(xiàn)有的Linux版本升級為ext4,要視具體情況而定。如果要支持大的文件 (> 2TB),文件系統(tǒng)(> 16 TB)或一定數(shù)目的子目錄(ext3限制為32000),那么用戶肯定要升級了。而且,新的安裝程序或許在使用ext4的情況下才有意義。現(xiàn)有的生產系統(tǒng)不存在容量超限情況的,可以選擇延緩升級。
想要了解關于ext4的更多信息,可以閱讀 IBM開發(fā)工作上的一篇關于擴展 (ext)文件系統(tǒng)的綜述文章。那篇文章還對Linux文件系統(tǒng)的歷史做了簡要介紹。對ext4提供的強大功能,用戶要確信自己已經做到全部了解。
【編輯推薦】