Btrfs 和 LVM-ext4 該如何選擇?

Fedora 33 在其各類桌面版本中引入了新的默認文件系統 Btrfs。多年以來,Fedora 一直在 邏輯卷管理Logical Volume Manager(LVM) 卷之上使用 ext4,引入 Brtfs 對 Fedora 來說是一個很大的轉變。更改默認文件系統需要 令人信服的原因。雖然 Btrfs 是令人興奮的下一代文件系統,但 LVM 上的 ext4 是成熟而穩定的。本指南旨在探索各自的高級特性,使得更容易在 Btrfs 和 LVM-ext4 之間進行選擇。

先說結論

最簡單的建議是堅持使用默認值。全新安裝的 Fedora 33 環境默認爲 Btrfs,升級之前的 Fedora 版本將繼續使用最初安裝的設置,通常是 LVM-ext4。對於現有的 Fedora 用戶來說,獲取 Btrfs 的最簡單方式是全新安裝。然而,全新安裝比簡單升級更具破壞性。除非有特殊需要,否則這種干擾可能是不必要的。Fedora 開發團隊仔細考慮了這兩個默認值,因此對任何一個選擇都要有信心。

那麼其他文件系統呢?

現在有很多 Linux 系統的文件系統。在加上卷管理器、加密方法和存儲機制的組合後,這一數字呈爆炸式增長。那麼,爲什麼要關注 btrfs 和 LVM-ext4 呢?對於 Fedora 的用戶來說,這兩種設置可能是最常見的。在 Fedora 11 中,LVM 之上的 ext4 成爲了默認磁盤佈局,在此之前則使用的是 ext3。

既然 Btrfs 是 Fedora 33 的默認設置,那麼絕大多數現有用戶會考慮是應該原地踏步還是向前跳躍。面對全新安裝的 Fedora 33 環境,有經驗的 Linux 用戶可能會想知道是使用這個新的文件系統,還是退回到他們熟悉的文件系統。因此,在衆多可能的存儲選項中,許多 Fedora 用戶會想知道如何在 Btrfs 和 LVM-ext4 之間進行選擇。

兩者的共性

儘管兩個文件系統之間存在覈心差異,但 Btrfs 和 LVM-ext4 實際上有很多共同之處。兩者都是成熟且經過充分測試的存儲技術。從 Fedora Core 的早期開始,就一直在使用 LVM,而 ext4 在 2009 年成爲 Fedora 11 的默認設置。Btrfs 在 2009 年併入 Linux 主線內核,並且 Facebook 廣泛使用了該文件系統。SUSE Linux Enterprise 12 在 2014 年使其成爲默認文件系統。因此,它在生產環境中也有着長久的運行時間。

這兩個系統都能很好地防止因意外停電而導致的文件系統損壞,儘管它們的實現方式不同。它們支持的配置包括使用單盤設置和跨越多個設備,並且這兩種配置都能夠創建近乎即時的快照。有各種工具可以幫助管理這兩種系統,包括命令行和圖形界面。這兩種解決方案在家用臺式機和高端服務器上都同樣有效。

LVM-ext4 的優勢

LVM 上 ext4 的結構

ext4 文件系統 專注於高性能和可伸縮性,沒有太多額外的花哨之處。它能有效地防止長時間後的碎片化,並當碎片化出現後提供了 很好的工具。ext4 之所以堅如磐石,是因爲它構建在前代的 ext3 文件系統之上,帶來了多年的系統內測試和錯誤修復。

LVM-ext4 環境中的大多數高級功能都來自 LVM 本身。LVM 位於文件系統的“下方”,這意味着它支持任何文件系統。邏輯卷Logical volume(LV)是通用的塊設備,因此 虛擬機可以直接使用它們。這種靈活性使得每個邏輯卷都可以使用合適的文件系統,用合適的選項應對各種情況。這種分層方法還遵循了“小工具協同工作”的 Unix 哲學。

從硬件抽象出來的卷組volume group(VG)允許 LVM 創建靈活的邏輯卷。每個邏輯卷都提取自同一個存儲池,但具有自己的設置。調整卷的大小比調整物理分區的大小容易得多,因爲沒有數據有序放置的限制。LVM 物理卷physical volume(PV)可以是任意數量的分區,甚至可以在系統運行時在設備之間移動。

LVM 支持只讀和讀寫的 快照,這使得從活動系統創建一致的備份變得很容易。每個快照都有一個定義的大小,更改源卷或快照卷將佔用其中的空間。又或者,邏輯卷也可以是稀疏配置池thinly provisioned pool的一部分。這允許快照自動使用池中的數據,而不是使用在創建卷時定義的固定大小的塊。

有多個磁盤驅動器的 LVM

當有多個設備時,LVM 才真正大放異彩。它原生支持大多數 RAID 級別,每個邏輯卷可以具有不同的 RAID 級別。LVM 將自動爲 RAID 配置選擇適當的物理設備,或者用戶可以直接指定它。基本的 RAID 支持包括用於性能的數據條帶化(RAID0)和用於冗餘的鏡像(RAID1)。邏輯卷也可以使用 RAID5RAID6 和 RAID10 等高級設置。LVM RAID 支持已經成熟,因爲 LVM 在底層使用的 設備映射器(dm) 和 多設備(md) 內核支持, 與 mdadm 使用的一樣。

對於具有快速和慢速驅動器的系統,邏輯卷也可以是 緩存卷。經典示例是 SSD 和傳統磁盤驅動器的組合。緩存卷使用較快的驅動器來存儲更頻繁訪問的數據(或用作寫緩存),而慢速的驅動器則用於處理大量數據。

LVM 中大量穩定的功能以及 ext4 的可靠性在既往的使用中早已被證明了。當然,功能越多就越複雜。在配置 LVM 時,要找到合適的功能選項是很有挑戰性的。對於單驅動器的臺式機系統,LVM 的功能(例如 RAID 和緩存卷)不適用。但是,邏輯卷比物理分區更靈活,快照也很有用。對於正常的桌面使用,LVM 的複雜性會成爲典型的用戶可能遇到的問題恢復的障礙。

Btrfs 的優勢

Btrfs 結構

從前幾代文件系統中學到的經驗指導了構建到 Btrfs 的功能設計。與 ext4 不同,它可以直接跨越多個設備,因此它具有通常僅在卷管理器中才能找到的功能。它還具有 Linux 文件系統空間中獨有的功能(ZFS 具有相似的功能集,但不要指望它在 Linux 內核中出現)。

Btrfs 的主要功能

也許最重要的功能是對所有數據進行校驗和checksumming。校驗和與寫時複製copy-on-write(COW)一起,提供了在意外斷電後確保文件系統完整性的 關鍵方法。更獨特的是,校驗和可以檢測數據本身中的錯誤。悄然的數據損壞(有時也稱爲 bitrot)比大多數人意識到的更常見。如果沒有主動驗證,損壞最終可能會傳播到所有可用的備份中。這使得用戶沒有有效的副本。通過透明地校驗所有數據,Btrfs 能夠立即檢測到任何此類損壞。啓用正確的 dup 或 raid 選項,文件系統也可以透明地修復損壞。

寫時複製也是 Btrfs 的基本功能,因爲它在提供文件系統完整性和即時子卷快照方面至關重要。從公共子卷創建快照後,快照會自動共享底層數據。另外,事後的重複數據刪除deduplication 使用相同的技術來消除相同的數據塊。單個文件可以通過使用 cp 的 reflink 選項 來使用 COW 功能。reflink 副本對於複製大型文件(例如虛擬機鏡像)特別有用,這些文件往往隨着時間的推移具有大部分相同的數據。

Btrfs 支持跨越多個設備,而無需卷管理器。多設備支持可提供數據鏡像功能以實現冗餘和條帶化以提高性能。此外,還實驗性地支持更高級的 RAID 級別,例如 RAID 5 和 RAID 6。與標準 RAID 設置不同,Btrfs 的 RAID1 實際上允許奇數個設備。例如,它可以使用 3 個設備,即使它們的大小不同。

所有 RAID 和 dup 選項都是在文件系統級別指定的。因此,各個子卷不能使用不同的選項。請注意,使用多設備的 RAID1 選項意味着即使一個設備發生故障,卷中的所有數據都是可用的,並且校驗功能可以保持數據本身的完整性。這超出了當前典型的 RAID 設置所能提供的範圍。

附加功能

Btrfs 還支持快速簡便的遠程備份。子卷快照可以 發送到遠程系統 進行存儲。通過利用文件系統中固有的 COW 元數據,這些傳輸通過僅發送先前發送的快照中的增量更改而非常有效。諸如 snapper 之類的用戶應用程序使管理這些快照變得容易。

另外,Btrfs 卷可以具有 透明壓縮 功能,並且 chattr +c 可以標記進行壓縮的單個文件或目錄。壓縮不僅可以減少數據消耗的空間,還可以通過減少寫入操作量來幫助延長 SSD 的壽命。壓縮當然會帶來額外的 CPU 開銷,但是有很多選項就可以權衡取捨。

Btrfs 集成了文件系統和卷管理器功能,這意味着總體維護比 LVM-ext4 更簡單。當然,這種集成的靈活性較低,但是對於大多數臺式機甚至服務器而言,設置已足夠。

LVM 上使用 Btrfs

Btrfs 可以 就地轉換 ext3/ext4 文件系統。就地轉換意味着無需將數據複製出來然後再複製回去。數據塊本身甚至都不需要修改。因此,對於現有的 LVM-ext4 系統,一種選擇是將 LVM 保留在原處,然後簡單地將 ext4 轉換爲 Btrfs。雖然可行且受支持,但有一些原因使它不是最佳選擇。

Btrfs 的吸引力之一是與卷管理器集成的文件系統所帶來的更輕鬆的管理。要是在 LVM 之上運行,對於系統維護,仍然要對額外的卷管理器進行一些設置。同樣,LVM 設置通常具有多個固定大小的邏輯卷,並具有獨立文件系統。雖然 Btrfs 支持給定的計算機上的多個卷,但是許多不錯的功能都需要單一卷具有多個子卷。如果每個 LVM 卷都有一個獨立的 Btrfs 卷,則用戶仍然需要手動管理固定大小的 LVM 卷。雖然能夠收縮掛載的 Btrfs 文件系統的能力確實使處理固定大小的卷的工作變得更輕鬆。通過在線收縮功能,就無需啓動 實時鏡像 了。

在使用 Btrfs 的多設備支持時,必須仔細考慮邏輯卷的物理位置。對於 Btrfs 而言,每個邏輯卷都是一個單獨的物理設備,如果實際情況並非如此,則某些數據可用性功能可能會做出錯誤的決定。例如,如果單個驅動器發生故障,對數據使用 RAID1 通常可以提供保護。如果實際邏輯卷在同一物理設備上,則沒有冗餘。

如果強烈需要某些特定的 LVM 功能,例如原始塊設備或高速緩存的邏輯卷,則在 LVM 之上運行 Btrfs 是有意義的。在這種配置下,Btrfs 仍然提供其大多數優點,例如校驗和和易於發送的增量快照。儘管使用 LVM 會產生一些操作開銷,但 Btrfs 的這種開銷並不比任何其他文件系統大。

總結

當嘗試在 Btrfs 和 LVM-ext4 之間進行選擇時,沒有一個正確的答案。每個用戶都有獨特的要求,並且同一用戶可能擁有具有不同需求的不同系統。看一下每個配置的功能集,並確定是否有令人心動的功能。如果沒有,堅持默認值沒有錯。選擇這兩種設置都有很好的理由。


via: https://fedoramagazine.org/choose-between-btrfs-and-lvm-ext4/

作者:Troy Curtis Jr 選題:lujun9972 譯者:Chao-zhi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章