Unionfs vs Aufs vs Overlayfs vs mhddfs,我使用哪一个


15

我随机阅读了有关联合文件系统的信息,该文件系统使用户可以同时安装多个文件系统。

但是,在确定要使用哪个选项(Unionfs,Aufs,Overlayfs和mhddfs)时遇到困难,并且为什么我在任何地方都没有找到关于该主题的具体信息。例如,我知道overlayFS已在主流Linux内核中采用,这意味着它可能会得到更广泛的采用。如果有人能给我一些观点,我将不胜感激。

另外,除了LVM需要格式化所有驱动器(如果您已经不需要格式化)的事实之外,我在LVM(如用户在单独的问题中的建议)之类的东西上找不到Union File System的构想用例。驱动器上有有价值的数据。


Answers:


4

这里有一些想法-我仍在学习,并会随时更新。

如何选择联合文件系统

有两种查看方式:

  • 每个人的功能如何比较?
  • 对于某些常见用例,我应该选择哪一个?

我将比较unionfs / unionfs-fuse / overlayfs / aufs / mergerfs,后者是mhddfs的替代品。

每个人的特征

发展状况

发行/内核支持

有内核模式和用户系统模式文件系统,后者在FUSE上运行。内核模式的开销较少(代码在用户空间和内核空间之间切换时会有开销),但是Linux内核当前唯一支持的就是overlayfs。用户模式文件系统更易于分发到程序包。

  • unionfsaufs需要内核补丁
  • unionfs不是由Debian发行的(其余是)
  • unionfs-fusemergefs基于FUSE,因此不需要内核中的其他模块
  • 从3.18(Debian Stretch)开始,overlayfs已经成为内核的一部分。

写时复制

这与以下Live CD用例有关:

  • mergefs没有写副本
  • 其他人做

用例

只读root / Live CD用例

这个想法是要拥有一个Linux系统的只读CD-ROM /分区。联合文件系统使用户看起来像是一个读写系统,因此他们可以进行更改。有一个读写文件系统(例如tmpfs RAM磁盘),用于存储用户所做的任何更改的“增量”,但不存储完整快照。

在这里,任何联合文件系统都可以。

Docker用例

我知道这是一个主要用例,但不知道细节-有人可以提供有关此方面的指导吗?

合并硬盘

例如,您可能/home在不同的文件系统上有两组目录。或者,您可能正在使用第二个硬盘升级家用计算机,并且想要一个逻辑卷。

在这里,您实际上并不需要写时复制,因此,mergefs可能是最佳选择。

联合文件系统与LVM进行磁盘池化

我将列出一些可以用联合文件系统实现的用例,但不能列出LVM:

如果要使用第二个磁盘升级现有系统,则诸如mergefs之类的东西可能会更好,因为LVM会要求您重新格式化第一个硬盘,从而销毁其上的数据。联合文件系统将避免此步骤。

LVM可能会将文件拆分为两个物理硬盘(假设RAID 0),因此如果一个硬盘出现故障,您将丢失该文件。

例如,某些用户可能希望将其/home目录保存在可以取出的USB记忆棒上。

在使用两个物理磁盘上的一个虚拟分区的情况下,使用LVM,您无需担心文件是保存在一个磁盘上还是另一个磁盘上。使用mergefs,系统可以根据可用空间的多少自动为您选择哪个。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.