Unionfs vs Aufs vs Overlayfs vs mhddfs,我用哪一個
我一直在隨機閱讀聯合文件系統,它使使用者能夠同時在彼此之上安裝多個文件系統。
但是,在決定使用哪一個(Unionfs vs Aufs vs Overlayfs vs mhddfs)以及為什麼我沒有在任何地方找到有關該主題的具體資訊時遇到了麻煩。例如,我知道在主流 Linux 核心中已經採用了 overlayFS,這意味著它可能會得到更廣泛的採用。如果有人能給我一些觀點,將不勝感激。
此外,我找不到任何關於聯合文件系統的構想案例,例如 LVM(由使用者在單獨的問題中推薦)或 RAID 設置,除非 LVM 需要格式化所有驅動器,如果你已經在驅動器上有有價值的數據。
以下是一些想法 - 我仍在學習這一點,並將隨時更新。
如何選擇聯合文件系統
有兩種方法可以查看:
- 每個人的功能比較如何?
- 對於一些常見的案例,我應該選擇哪一個?
我將比較 unionfs/unionfs-fuse/overlayfs/aufs/mergefs,後者是 mhddfs 的替代品。
各有特點
發展狀況
分發/核心支持
有核心模式和使用者系統模式文件系統,後者在 FUSE 上執行。核心模式的成本較小(當程式碼在使用者空間和核心空間之間切換時會有成本),但目前Linux 核心中唯一支持的是overlayfs。使用者模式文件系統更易於分發打包。
- unionfs和aufs需要核心更新檔
- unionfs不是由 Debian 分發的(其餘的是)
- unionfs-fuse和mergefs都是基於FUSE 的,所以在核心中不需要額外的模組
- 自 3.18 (Debian Stretch) 以來, overlayfs一直是核心的一部分
寫入時複製
這與以下 Live CD 案例有關:
- mergefs沒有寫副本
- 其他人做
案例
只讀根 / Live CD 案例
這個想法是有一個Linux系統的只讀CD-ROM/分區。聯合文件系統讓使用者看起來像是一個讀寫系統,因此他們可以進行更改。有一個讀寫文件系統(例如,一個 tmpfs RAM 磁碟),它儲存使用者所做的任何更改的“Delta”,但不儲存完整的快照。
這裡除了 mergefs 之外的任何联合文件系統都可以(缺乏牛支持)。
碼頭工人案例
我知道這是一個主要案例,但不知道細節 - 有人可以提供這方面的指導嗎?
合併硬碟
例如,您可能在不同的文件系統上有兩組
/home
目錄。或者您可能正在用第二個硬碟升級您的家用電腦,並且想要一個邏輯卷。這是您實際上不需要寫時複製的地方,因此可能 mergefs 是最佳選擇。
用於磁碟池的聯合文件系統與 LVM
我將列出一些可以通過聯合文件系統實現但不是 LVM 的案例:
如果您要使用第二個磁碟升級現有系統,mergefs 之類的可能會更好,因為 LVM 會要求您重新格式化第一個硬碟,從而破壞其上的數據。聯合文件系統將避免此步驟。
LVM 可能會將文件拆分到兩個物理硬碟上(假設 RAID 0),因此如果一個硬碟出現故障,您將失去它。
例如,一些使用者可能希望將他們的
/home
目錄保存在他們可以帶走的 USB 記憶棒上。在兩個物理磁碟上的一個虛擬分區的案例中,使用 LVM,您無需擔心文件是保存在一個磁碟上還是另一個磁碟上。使用 mergefs,系統可以根據可用空間的多少自動為您選擇哪一個。