Linux文件系統(tǒng):Ext、XFS、Btrfs等,選擇適合自己的文件系統(tǒng)
作為 Windows 或 macOS 系統(tǒng)用戶(hù),人們一般不會(huì)去考慮他們的磁盤(pán)使用了什么文件系統(tǒng),因?yàn)槲④浐吞O(píng)果已經(jīng)幫他們選定了 NTFS 和 APFS。而對(duì)于 Linux 用戶(hù),受益于自由開(kāi)源軟件,文件系統(tǒng)選擇非常多,從常見(jiàn)的 Ext 4 文件系統(tǒng)到先進(jìn)的 Btrfs 文件系統(tǒng),以及專(zhuān)門(mén)為閃存設(shè)計(jì)的 F2FS 文件系統(tǒng)。在了解各個(gè)文件系統(tǒng)特性的基礎(chǔ)上,大家可以根據(jù)自己的需求和使用場(chǎng)景來(lái)選擇。
本文介紹了常見(jiàn)的 Linux 文件系統(tǒng)和它們的優(yōu)缺點(diǎn),以及使用場(chǎng)合。
Ext
Ext 是最為流行的 Linux 文件系統(tǒng),最新版本 Ext 4 已非常穩(wěn)定,是過(guò)去幾年中大多數(shù) Linux 發(fā)行版的默認(rèn)選擇。從 Android 2.3 版開(kāi)始,Ext 4 取代之前的 YAFFS 成為默認(rèn)文件系統(tǒng)。由于使用廣泛,加上 Google 等大公司背書(shū),Ext 4 被認(rèn)為是成熟穩(wěn)定的文件系統(tǒng),適合大多數(shù)使用場(chǎng)合,包括 Linux 桌面用戶(hù)。
作為 Ext 3 文件系統(tǒng)的升級(jí)版本,Ext 4 速度和容量都有很大提升,并且 fsck 所需時(shí)間大大減少。容量方面,Ext 4 支持最大分區(qū) 1EB、最大文件 16TB、最大文件數(shù)量 40 億。作為日志文件系統(tǒng),Ext 4 文件系統(tǒng)對(duì)文件在磁盤(pán)中的位置以及磁盤(pán)的任何更改做記錄,并使用校驗(yàn)和來(lái)提高文件系統(tǒng)的可靠性。不過(guò),Ext 4 不支持透明壓縮、透明加密、快照等高級(jí)功能。
Ext 文件系統(tǒng)的核心開(kāi)發(fā)者 Theodore Ts'o 是一位華裔,目前在 Google 工作,他也是 Linux 內(nèi)核和 Debian 系統(tǒng)資深開(kāi)發(fā)者。
XFS
XFS 是一種高性能日志文件系統(tǒng),由 SGI 設(shè)計(jì)開(kāi)發(fā),是業(yè)界最先進(jìn)的、最具擴(kuò)展性的文件系統(tǒng)之一,是目前 CentOS 的默認(rèn)文件格式。XFS 擅長(zhǎng)處理大文件,在大型文件系統(tǒng)上提供非常高的吞吐量和平滑的數(shù)據(jù)傳輸,適合擁有海量數(shù)據(jù)的用戶(hù),在企業(yè)應(yīng)用、大數(shù)據(jù)領(lǐng)域有著廣泛應(yīng)用。
XFS 文件及目錄索引采用 B+ 樹(shù)結(jié)構(gòu),查詢(xún)與分配存儲(chǔ)空間非常快,性能不受目錄及文件數(shù)量的限制。XFS 文件系統(tǒng)能連續(xù)提供快速的反應(yīng)時(shí)間,以接近裸設(shè)備 I/O 的性能存儲(chǔ)數(shù)據(jù),在大多數(shù)場(chǎng)景下整體 IOPS 表現(xiàn)要比 Ext 4 來(lái)得更高、更穩(wěn)定,延遲也更小,在高 I/O 壓力下尤其明顯。XFS 因其基于分配組 (allocation group) 的設(shè)計(jì)而特別擅長(zhǎng)并行 IO,當(dāng)該文件系統(tǒng)跨越多個(gè)存儲(chǔ)設(shè)備時(shí),這種設(shè)計(jì)使得 IO 線程數(shù)、文件系統(tǒng)帶寬、文件和文件系統(tǒng)大小都具有極大的可伸縮性。
XFS 最大支持 8EB 單個(gè)文件。XFS 格式化和掛載非常快,并提供了在線碎片整理功能。XFS 文件系統(tǒng)也有一些不足,例如它不能直接壓縮,不支持透明壓縮,缺少校驗(yàn)保護(hù)等。
ReiserFS
ReiserFS 文件系統(tǒng)曾是 Linux 操作系統(tǒng)上設(shè)計(jì)最先進(jìn)、性能最好的文件系統(tǒng)。ReiserFS 作為 SuSE Linux Enterprise 的默認(rèn)文件系統(tǒng),曾受到 Novell 公司的力推。
ReiserFS 文件系統(tǒng)使用 B* 樹(shù)存儲(chǔ)文件,查找定位文件非常快,用來(lái)處理大量小文件非常有優(yōu)勢(shì),一些場(chǎng)合比 Ext 4 快上數(shù)倍。 表現(xiàn)在個(gè)人桌面系統(tǒng),使用 ReiserFS 文件系統(tǒng)能達(dá)到更快的開(kāi)機(jī)速度,載入文檔、圖片也更加快捷。
ReiserFS 的作者 Hans Reiser 是俄裔美國(guó)人,他領(lǐng)導(dǎo)的 Namesys 公司致力于開(kāi)發(fā)和維護(hù) ReiserFS 文件系統(tǒng)。本來(lái) ReiserFS 是 Linux 平臺(tái)最有前途的文件系統(tǒng),不過(guò) 2006 年 Hans Reiser 由于殺妻案入獄,ReiserFS 的開(kāi)發(fā)陷入停滯,錯(cuò)過(guò)了最好的發(fā)展機(jī)會(huì)。不過(guò),一小部分開(kāi)發(fā)者仍在進(jìn)行 ReiserFS 后續(xù)版本的開(kāi)發(fā),Reiser 4 經(jīng)過(guò)全新設(shè)計(jì),具備了很多領(lǐng)先的文件系統(tǒng)特性,不過(guò)目前還未進(jìn)入 Linux 內(nèi)核。
Btrfs
Btrfs 是一種支持寫(xiě)入時(shí)復(fù)制(COW)的文件系統(tǒng), 與 ZFS 非常類(lèi)似,被認(rèn)為是 Linux 未來(lái)最有希望的文件系統(tǒng),將替代目前廣泛使用的 Ext 4 文件系統(tǒng)。Btrfs 也宣稱(chēng)專(zhuān)注于「容錯(cuò)、修復(fù)及易于管理」。
Oracle 于 2007 年對(duì)外宣布這項(xiàng)計(jì)劃,并發(fā)布源代碼,2014 年 8 月發(fā)布穩(wěn)定版。目標(biāo)是取代 Linux 當(dāng)時(shí)主流的 Ext 3 文件系統(tǒng),擺脫 Ext 3 的一些限制,特別是單文件大小,文件系統(tǒng)總大小和文件校驗(yàn),并加入 Ext3 不支持的一些功能,比如可寫(xiě)快照(writable snapshots)、快照的快照(snapshots of snapshots)、內(nèi)建磁盤(pán)陣列(RAID),以及子卷(subvolumes)。
Btrfs 是少數(shù)專(zhuān)門(mén)對(duì) SSD 進(jìn)行優(yōu)化的文件系統(tǒng),Btrfs 用戶(hù)可以使用 mount 參數(shù)打開(kāi)對(duì) SSD 的特殊優(yōu)化處理。Btrfs 的 COW 技術(shù)從根本上避免了對(duì)同一個(gè)物理單元的反復(fù)寫(xiě)操作,如果用戶(hù)打開(kāi)了 SSD 優(yōu)化選項(xiàng),Btrfs 將在底層的塊空間分配策略上進(jìn)行優(yōu)化:將多次磁盤(pán)空間分配請(qǐng)求聚合成一個(gè)大小為 2M 的連續(xù)的塊。大塊連續(xù)地址的 IO 能夠讓固化在 SSD 內(nèi)部的微代碼更好的進(jìn)行讀寫(xiě)優(yōu)化,從而提高 IO 性能。
另外還有專(zhuān)門(mén)為 NAND 閃存設(shè)計(jì)的 F2FS、YAFFS 等文件系統(tǒng),源自 Solaris 號(hào)稱(chēng)終極文件系統(tǒng)的 ZFS(ZFS On Linux)等。


















