Btrfs 和 LVM-ext4 該如何選擇?
![](https://linuxstory.org/wp-content/uploads/2024/06/133137m2wfkiq8ykyvwyhv-800x400.jpg)
Fedora 33 在其各類桌面版本中引入了新的默認文件系統 Btrfs。多年以來,Fedora 一直在 邏輯卷管理 (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 的優勢
ext4 文件系統 專註於高性能和可伸縮性,沒有太多額外的花哨之處。它能有效地防止長時間後的碎片化,併當碎片化出現後提供了 很好的工具。ext4 之所以堅如磐石,是因為它構建在前代的 ext3 文件系統之上,帶來了多年的系統內測試和錯誤修復。
LVM-ext4 環境中的大多數高級功能都來自 LVM 本身。LVM 位於文件系統的「下方」,這意味著它支持任何文件系統。 邏輯卷 (LV)是通用的塊設備,因此 虛擬機可以直接使用它們。這種靈活性使得每個邏輯卷都可以使用合適的文件系統,用合適的選項應對各種情況。這種分層方法還遵循了「小工具協同工作」的 Unix 哲學。
從硬體抽象出來的 卷組 (VG)允許 LVM 創建靈活的邏輯卷。每個邏輯卷都提取自同一個存儲池,但具有自己的設置。調整卷的大小比調整物理分區的大小容易得多,因為沒有數據有序放置的限制。LVM 物理卷 (PV)可以是任意數量的分區,甚至可以在系統運行時在設備之間移動。
LVM 支持只讀和讀寫的 快照,這使得從活動系統創建一致的備份變得很容易。每個快照都有一個定義的大小,更改源卷或快照卷將佔用其中的空間。又或者,邏輯卷也可以是 稀疏配置池 的一部分。這允許快照自動使用池中的數據,而不是使用在創建卷時定義的固定大小的塊。
有多個磁碟驅動器的 LVM
當有多個設備時,LVM 才真正大放異彩。它原生支持大多數 RAID 級別,每個邏輯卷可以具有不同的 RAID 級別。LVM 將自動為 RAID 配置選擇適當的物理設備,或者用戶可以直接指定它。基本的 RAID 支持包括用於性能的數據條帶化(RAID0)和用於冗餘的鏡像(RAID1)。邏輯卷也可以使用 RAID5、RAID6 和 RAID10 等高級設置。LVM RAID 支持已經成熟,因為 LVM 在底層使用的 設備映射器(dm) 和 多設備(md) 內核支持, 與 mdadm 使用的一樣。
對於具有快速和慢速驅動器的系統,邏輯卷也可以是 緩存卷。經典示例是 SSD 和傳統磁碟驅動器的組合。緩存卷使用較快的驅動器來存儲更頻繁訪問的數據(或用作寫緩存),而慢速的驅動器則用於處理大量數據。
LVM 中大量穩定的功能以及 ext4 的可靠性在既往的使用中早已被證明了。當然,功能越多就越複雜。在配置 LVM 時,要找到合適的功能選項是很有挑戰性的。對於單驅動器的台式機系統,LVM 的功能(例如 RAID 和緩存卷)不適用。但是,邏輯卷比物理分區更靈活,快照也很有用。對於正常的桌面使用,LVM 的複雜性會成為典型的用戶可能遇到的問題恢復的障礙。
Btrfs 的優勢
從前幾代文件系統中學到的經驗指導了構建到 Btrfs 的功能設計。與 ext4 不同,它可以直接跨越多個設備,因此它具有通常僅在卷管理器中才能找到的功能。它還具有 Linux 文件系統空間中獨有的功能(ZFS 具有相似的功能集,但不要指望它在 Linux 內核中出現)。
Btrfs 的主要功能
也許最重要的功能是對所有數據進行 校驗和 。校驗和與 寫時複製 (COW)一起,提供了在意外斷電後確保文件系統完整性的 關鍵方法。更獨特的是,校驗和可以檢測數據本身中的錯誤。悄然的數據損壞(有時也稱為 bitrot)比大多數人意識到的更常見。如果沒有主動驗證,損壞最終可能會傳播到所有可用的備份中。這使得用戶沒有有效的副本。通過透明地校驗所有數據,Btrfs 能夠立即檢測到任何此類損壞。啟用正確的 dup 或 raid 選項,文件系統也可以透明地修復損壞。
寫時複製也是 Btrfs 的基本功能,因為它在提供文件系統完整性和即時子卷快照方面至關重要。從公共子卷創建快照後,快照會自動共享底層數據。另外,事後的 重複數據刪除 使用相同的技術來消除相同的數據塊。單個文件可以通過使用 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive