如何選擇檔案系統 EXT4 Btrfs 和 XFS

2021-07-25 18:08:06 字數 3520 閱讀 3265

老實說,人們最不曾思考的問題之一是他們的個人電腦中使用了什麼檔案系統。windows 和 mac os x 使用者更沒有理由去考慮,因為對於他們的作業系統,只有一種選擇,那就是 ntfs 和 hfs+。

相反,對於 linux 系統而言,有很多種檔案系統可以選擇,現在預設的是廣泛採用的 ext4。然而,現在也有改用一種稱為 btrfs 檔案系統的趨勢。那是什麼使得 btrfs 更優秀,其它的檔案系統又是什麼,什麼時候我們又能看到 linux 發行版作出改變呢?

首先讓我們對檔案系統以及它們真正幹什麼有個總體的認識,然後我們再對一些有名的檔案系統做詳細的比較

檔案系統是幹什麼的?

如果你不清楚檔案系統是幹什麼的,一句話總結起來也非常簡單。檔案系統主要用於控制所有程式在不使用資料時如何儲存資料、如何訪問資料以及有什麼其它資訊(元資料)和資料本身相關,等等。聽起來要程式設計實現並不是輕而易舉的事情,實際上也確實如此。檔案系統一直在改進,包括了更多的功能、更高效地完成它需要做的事情。總而言之,它是所有計算機的基本需求、但並不像聽起來那麼簡單。

為什麼要分割槽?

由於每個作業系統都能建立或者刪除分割槽,很多人對分割槽都有模糊的認識。linux 作業系統即便使用標準安裝過程,在同一塊磁碟上仍使用多個分割槽,這看起來很奇怪,因此需要一些解釋。擁有不同分割槽的乙個主要目的就是為了在災難發生時能獲得更好的資料安全性。

通過將硬碟劃分為分割槽,資料會被分隔以及重組。當事故發生的時候,只有儲存在被損壞分割槽上的資料會被破壞,很大可能上其它分割槽的資料能得以保留。這個原因可以追溯到 linux 作業系統還沒有日誌檔案系統、任何電力故障都有可能導致災難發生的時候。

使用分割槽也考慮到了安全和健壯性原因,因此作業系統部分損壞並不意味著整個計算機就有風險或者會受到破壞。這也是當前採用分割槽的乙個最重要因素。舉個例子,使用者建立了一些會填滿磁碟的指令碼、程式或者 web 應用,如果該磁碟只有乙個大的分割槽,如果磁碟滿了那麼整個系統就不能工作。如果使用者把資料儲存在不同的分割槽,那麼就只有那個分割槽會受到影響,而系統分割槽或者其它資料分割槽仍能正常執行。

記住,擁有乙個日誌檔案系統只能在掉電或者和儲存裝置意外斷開連線時提供資料安全性,並不能在檔案系統出現壞塊或者發生邏輯錯誤時保護資料。對於這種情況,使用者可以採用廉價磁碟冗餘陣列的方案。

為什麼要切換檔案系統?

ext4 檔案系統由 ext3 檔案系統改進而來,而後者又是從 ext2 檔案系統改進而來。雖然 ext4 檔案系統已經非常穩定,是過去幾年中絕大部分發行版的預設選擇,但它是基於陳舊的**開發而來。另外, linux 作業系統使用者也需要很多 ext4 檔案系統本身不提供的新功能。雖然通過某些軟體能滿足這種需求,但效能會受到影響,在檔案系統層次做到這些能獲得更好的效能。

ext4 檔案系統

ext4 還有一些明顯的限制。最大檔案大小是 16 tebibytes(大概是 17.6 terabytes),這比普通使用者當前能買到的硬碟還要大的多。使用 ext4 能建立的最大卷/分割槽是 1 exbibyte(大概是 1,152,921.5 terabytes)。通過使用多種技巧, ext4 比 ext3 有很大的速度提公升。類似一些最先進的檔案系統,它是乙個日誌檔案系統,意味著它會對檔案在磁碟中的位置以及任何其它對磁碟的更改做記錄。縱觀它的所有功能,它還不支援透明壓縮、重複資料刪除或者透明加密。技術上支援了快照,但該功能還處於實驗性階段。

btrfs 有很多不同的叫法,例如 better fs、butter fs 或者 b-tree fs。它是乙個幾乎完全從頭開發的檔案系統。btrfs 出現的原因是它的開發者起初希望擴充套件檔案系統的功能使得它包括快照、池化、校驗以及其它一些功能。雖然和 ext4 無關,它也希望能保留 ext4 中能使消費者和企業受益的功能,並整合額外的能使每個人,尤其是企業受益的功能。對於使用大型軟體以及大規模資料庫的企業,讓多種不同的硬碟看起來一致的檔案系統能使他們受益並且使資料整合變得更加簡單。刪除重複資料能降低資料實際使用的空間,當需要映象乙個單一而巨大的檔案系統時使用 btrfs 也能使資料映象變得簡單。

使用者當然可以繼續選擇建立多個分割槽從而無需映象任何東西。考慮到這種情況,btrfs 能橫跨多種硬碟,和 ext4 相比,它能支援 16 倍以上的磁碟空間。btrfs 檔案系統乙個分割槽最大是 16 exabyte,最大的檔案大小也是 16 exabyte。

xfs 檔案系統

xfs 檔案系統是擴充套件檔案系統的乙個擴充套件。xfs 是 64 位高效能日誌檔案系統。對 xfs 的支援大概在 2002 年合併到了 linux 核心,到了 2009 年,紅帽企業版 linux 5.4 也支援了 xfs 檔案系統。對於 64 位檔案系統,xfs 支援最大檔案系統大小為 8 exabytes。xfs 檔案系統有一些缺陷,例如它不能壓縮,刪除大量檔案時效能低下。目前rhel 7.0 檔案系統預設使用 xfs。

總結

那麼,究竟使用哪個更好呢?儘管效能幾乎相同,但 ext4 還是贏家。為什麼呢?答案在於易用性以及廣泛性。對於桌面或者工作站, ext4 仍然是乙個很好的檔案系統。由於它是預設提供的檔案系統,使用者可以在上面安裝作業系統。同時, ext4 支援最大 1 exabytes 的卷和 16 terabytes 的檔案,因此考慮到大小,它也還有很大的進步空間。

btrfs 能提供更大的高達 16 exabytes 的卷以及更好的容錯,但是,到現在為止,它感覺更像是乙個附加的檔案系統,而部署乙個整合到 linux 作業系統的檔案系統。比如,儘管 btrfs 支援不同的發行版,使用 btrfs 格式化硬碟之前先要有 btrfs-tools 工具,這意味著安裝 linux 作業系統的時候它並不是乙個可選項,即便不同發行版之間會有所不同。

儘管傳輸速率非常重要,評價乙個檔案系統除了檔案傳輸速度之外還有很多因素。btrfs 有很多好用的功能,例如寫複製、擴充套件校驗、快照、清洗、自修復資料、冗餘刪除以及其它保證資料完整性的功能。和 zfs 相比 btrfs 缺少 raid-z 功能,因此對於 btrfs, raid 還處於實驗性階段。對於單純的資料儲存,和 ext4 相比 btrfs 似乎更加優秀,但時間會驗證一切。

迄今為止,對於桌面系統而言,ext4 似乎是乙個更好的選擇,因為它是預設的檔案系統,傳輸檔案時也比 btrfs 更快。btrfs 當然值得嘗試、但要在桌面 linux 上完全取代 ext4 可能還需要一些時間。資料場和大儲存池會揭示關於 ext4、xcf 以及 btrfs 不同的場景和差異。

ext檔案系統

ext檔案系統 1.採用名為索引節點的系統來存放虛擬目錄中所儲存檔案的資訊。2.索引節點系統在每個物理裝置中建立乙個單獨的表 稱為索引節點表 來儲存這些檔案的資訊。3.儲存在虛擬目錄中的每乙個檔案在索引節點表中都有乙個條目 缺點 1.檔案大小不得超過2 gb 2.儲存資料用的塊很容易分散在整個裝置中...

EXT檔案系統

1 ext2 add link的執行過程,函式的定義如下 int ext2 add link struct dentry dentry,struct inode inode if de rec len 0 err eexist 如果名字匹配 if ext2 match namelen,name,de...

EXT檔案系統

產生背景 linux kernel最初使用的是minix檔案系統,其內部使用的是16位的內部偏移,大小限制在64mb,檔名長度限制在14個字元以內,為了解除這些限制,需要新的檔案系統來替代 起源1992年4月由 r my card 公司專門為linux kernel 所設計,採用中介資料結 meta...