Btrfs 與 Ext4 – 功能、優勢和劣勢

文件系統控制在存儲設備中存儲和檢索數據的位置、方式和時間。 一個高效的文件系統是日常系統進程所必需的。 Linux 內核支持多種文件系統。 最常用的是 Ext4、Btrfs、XFS 和 ZFS,這是 2018 年發布的最新文件系統。這些文件系統中的每一個都有自己的數據組織方式、優點和缺點。

在本教程中,我們將檢查 Btrfs 反對 分機4 文件系統,並試圖了解它們的功能、優勢和劣勢。

Ext4 文件系統

分機4 是許多 Linux 發行版的默認文件系統。 它於 2008 年 10 月與 Linux 內核 2.6.28 一起發布。 Ext4 是擴展文件系統的第四個版本,是 Ext3 的繼承者。

Ext4 是一個強大的文件系統,已經使用了很長時間。 它是一個日誌文件系統,這意味著它保留了文件在磁盤上的位置的“日誌”,並跟踪對磁盤的任何其他更改。

Btrfs 文件系統

Btrfs 或者 B樹 文件系統是一種更新的、現代的、開源的文件系統。 它是為 Linux 系統量身定制的寫時復制 (CoW) 文件系統,其名稱源自使用 B 樹來存儲內部文件結構。 在 CoW 文件系統設置中,當數據被修改時,文件系統會復制修改並將數據寫回到文件系統上的可用位置。

由於數據被複製和修改到文件系統上的不同位置,這消除了斷電時數據損壞的風險,只是為了提供一個 example. 需要指出的是,在修改過程中,原始數據被保留並保持不變。

Btrfs 文件系統的最大缺點是大文件容易碎片化,因此需要定期進行碎片整理。

Btrfs 的開發始於 2007 年的 Oracle,但包括 SUSE 在內的其他主要公司, Facebook,Redhat 正在為它的發展做出貢獻。 Btrfs 的存在是因為開發人員希望擴展文件系統的功能以包括快照、校驗和等功能。

BTRFS 功能

btrfs 提供的一些有趣功能包括:

1) 支持大文件

Btrfs 文件系統最多可以支持 264 字節,相當於 16EiB 或者 字節! 現在這是一個巨大的存儲大小!

2) 高效的文件存儲

Btrfs 提供基於盤區的文件存儲。 這被描述為為文件存儲保留的連續區域。 文件元數據的開銷大大降低,小的元數據直接有助於更高的存儲效率和性能。

仍然是高效的文件存儲,Btrfs 通過將它們打包為元數據來為較小的文件提供高效的存儲。

3) 內置 RAD 支持

Btrfs 文件系統包括對 RAID 0(數據剝離)、1(數據鏡像)和 RAID 10(數據剝離和鏡像)的支持

4) 在線碎片整理和調整大小

使用 Btrfs,即使文件系統在線,也可以執行碎片整理和調整大小。

5)動態inode分配

Btrfs 提供 inode 的動態分配。 它在需要時將 inode 分配給文件,這有助於防止在文件系統上有很多小文件的情況下耗盡 inode。

6) 可寫和只讀快照

Btrfs 提供的另一個很棒的功能是對快照的支持。 您可以輕鬆地創建文件系統的快照,並在意外刪除或損壞數據的情況下利用它來恢復其他地方的數據。

7) 支持校驗和

另一個重要功能是支持校驗和。 校驗和是避免靜默文件或數據損壞的小數據塊,這是其他文件系統不提供的。 校驗和存儲在文件系統中,並持續關注文件系統錯誤和數據損壞的跡象。

8) 優化對SSD驅動器的支持

SSD(固態硬盤)驅動器確實在 PC 中提供了不錯的速度、可靠性和穩定性。 Btrfs 文件系統通過優化讀寫性能來進一步提高其性能,從而提高 SSD 的使用壽命。

Ext4 和 Btrfs 文件系統的比較

讓我們知道在各種關鍵功能上對兩個文件系統進行比較。

1. 日誌和寫時復制支持

這是兩個文件系統之間出現的第一個主要區別。 Ext4 文件系統是一個日誌文件系統,而 Btrfs 是一個 Copy-on-Write (CoW) 文件系統。

2. 多設備支持

將單個文件系統分佈在多個設備上提供了某些優勢,例如增加的容量和更高的可靠性。 Btrfs 具有內置的 RAID 支持,可以輕鬆地在文件系統級別管理多個設備。

Ext4 文件系統沒有對多個設備的內置支持。 您將不得不使用 3rd-party 邏輯捲管理器,例如 LVM 2 跨越多個設備和磁盤的文件系統。

3. 文件系統級重複數據刪除:

重複數據刪除是一種自動從文件系統中刪除重複數據副本以節省磁盤空間的功能。 Btrfs 文件系統通過使用指向塊的單個副本的邏輯鏈接替換文件系統中的相同塊來支持重複數據刪除。 此功能可節省大量磁盤空間。

Ext4 文件系統不支持重複數據刪除。

4. 文件系統級壓縮

Btrfs 使用壓縮算法來支持文件系統級數據壓縮。 這意味著數據將在寫入文件系統時自動壓縮。

Ext4 文件系統沒有內置的壓縮支持。

5. 最大分區和文件大小

允許使用 ext4 進行的最大分區是 1 exbibyte——相當於大約 1,152,921.5 TB。 最大文件大小為 16 TiB,比普通消費者目前可以購買的任何硬盤都大得多。

Btrfs 最多支持 16Eib 的最大分區和文件大小。

Ext4 允許您創建最多 232(= 4,294,967,296 ~= 40 億)個文件。 Btrfs 允許您創建最多 264 個(= 18,446,744,073,709,551,616 ~= 18 quintillion)文件。

6.校驗和/ECC支持

Btrfs 文件系統使用 CRC32C 校驗和來確保數據完整性並避免數據損壞。 Ext4 文件系統不保證數據的完整性。

7. 快照支持

Btrfs 文件系統支持只讀和可寫 快照 的文件。 快照是一個子卷,它使用 COW 功能與另一個子卷共享其數據和元數據。

Ext4 文件系統不支持創建文件系統的快照。

8. 塊子分配和尾部打包

塊子分配是一種功能,其中大文件存儲在塊中,同時有效利用最後一個塊末尾的尾部空間。 塊子分配是一種將另一個文件塊的部分存儲到尾塊並節省磁盤空間的方法。

Btrfs 旨在利用這個可用空間,並且可以將幾個塊的尾部與其他文件打包在一起。 這提高了文件系統性能並提高了存儲效率。

Ext4 不支持尾打包。

結論

Ext4 文件系統是擴展文件系統的最新版本。 Ext4 已經存在很長時間了,它已被證明是可靠和穩定的。 建議日常使用。 萬一停電,ext4 很可能會確保您保存的數據安全。

Ext4 專注於高性能和可擴展性。 這是一個堅如磐石的選擇,因為它已經存在了很長時間,並帶來了多年來的系統測試和錯誤修復。 不管它的所有功能如何,它都不支持重複數據刪除、壓縮或加密。

另一方面,Btrfs 是一個現代文件系統,可以處理的數據是 Ext4 的 16 倍。 這種改進特別重要,因為 Linux 現在在企業實體中使用。 Btrfs 有很多上面提到的很好的特性,比如寫時復制、快照、校驗和和復制。 Btrfs 正在快速增長,但仍被認為不穩定。

到目前為止,ext4 似乎是桌面系統上更好的選擇,因為它是默認文件系統,並且在傳輸文件時比 btrfs 更快。 btrfs 文件系統值得研究,但要完全取代桌面 Linux 上的 ext4 可能需要幾年時間。