在Linux上联合安装


11

联合安装呈现在单个层级的多个目录(分支)的组合视图。好的,但是我该如何在实践中使用哪一个呢?

现代Linux系统上可以使用许多联合安装技术:OverlayFSaufsUnionFS,各种基于FUSE的文件系统,…

给定一个用例,我如何确定哪个合适?特别是:

  • 哪些需要在典型系统上进行root访问?(换句话说,没有特权的用户可以创建联合安装吗?)
  • 可以安装哪些/(当然具有root访问权限)?
  • 哪些支持写入基础分支?(即如果/foo/bar联合安装到/union,我可以写给/foo/bar吗?)
  • 哪些支持写的可配置策略?(例如,当两个分支上都存在文件时,即使我从分支A获取内容,我也可以将新创建​​的文件发送到分支B吗?)
  • 哪些支持分支之间的优先级顺序(取决于文件)?(例如,我总能在拥有该文件的所有分支中始终获取最新文件吗?)

使用示例将不胜感激。

请避免针对特定问题的答案。我正在寻找全面的答案,以复习可用的软件(类似于什么是绑定安装?)。好的答案将不胜枚举。

Answers:


12

在每个具体点上:

  • 根访问:如果使用FUSE,则不需要root;如果不使用FUSE,则需要root,除非您使用功能(可能很危险)或名称空间进行特殊设置。

  • 安装/:我假设您的意思是启动时的根文件系统,在这种情况下,任何在内核模式下运行的文件在理论上都可以工作,尽管其中一些文件比其他文件更可靠。大多数LiveCD都会执行此操作,因此我建议在该位置查找有关此特定点的信息。

  • 写入基础分支:这取决于您的意思。如果您的意思是传播写入安装视图到较低分支的信息,我不知道。如果要从主文件系统本身带外写入较低的分支,那么从技术上讲,三大分支都需要这样做,但是它们都需要重新安装,以确保将更改传播到已安装的视图。

  • 可配置的写策略:我对此并不特别了解,但是我认为三大类(UnionFS,AUFS和OverlayFS)不支持它。

  • 与文件有关的优先顺序:我认为这种情况也属于第三个子问题,并且像在那儿一样,我不知道有什么特别支持它。

关于它们的更多细节:

  • UnionFS:据我所知,这是Linux的原始可堆叠联盟文件系统实现。它已经存在了很长时间,并且被许多Linuxes LiveCD使用。它以内核模式运行,并且需要使用上游内核的补丁程序。

  • AUFS:起源于UnionFS的一个分支,然后变成了自己的东西。这个试图合并主线,但由于代码质量而被拒绝。在某些发行版的LiveCD(主要是Debian和Gentoo衍生产品)中,它取代了UnionFS。像UnionFS一样,它以内核模式运行,并且需要修补上游内核。

  • OverlayFS:我对该程序的最初开发了解不多,除了它也得到了一些BSD派生工具的支持之外。值得注意的是,这是Linux内核中的上游overlay / union文件系统实现。它也以内核模式运行。

  • UnionFS-FUSE:这个名称有些混乱的项目实际上与UnionFS没有任何关系,只不过提供了基本相同的功能。它是联合文件系统使用最广泛的FUSE实现,但这就是我所知道的全部。

  • mhddfs:这是一个奇怪的异常,与传统的联合文件系统相比,它更类似于文件粒度RAID-0实现。它支持根据空间使用情况在多个支持目录之间平衡文件。它也是基于FUSE的。

需要注意的一些特定的事情并非特定于特定的实现:

  • 所有内核内选项在支持的文件系统上都有限制,最明显的是不能与网络文件系统或BTRFS一起使用。

  • 当用作根文件系统时,所有FUSE实现都有问题。这不是特定于联合文件系统的实现,而是通常与FUSE有关的一个问题。

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.