Union Mount unter Linux

11

Ein Union Mount bietet eine kombinierte Ansicht mehrerer Verzeichnisse (Zweige) in einer einzigen Hierarchie. Ok, aber wie verwende ich eine in der Praxis und welche?

Auf einem modernen Linux-System sind viele Union Mount-Technologien verfügbar: OverlayFS , aufs , UnionFS , verschiedene FUSE-basierte Dateisysteme,…

Wie entscheide ich in einem Anwendungsfall, welche geeignet sind? Bestimmtes:

  • Welche benötigen Root-Zugriff auf einem typischen System? (Mit anderen Worten, kann ein nicht privilegierter Benutzer einen Union Mount erstellen?)
  • Auf welchen kann gemountet werden /(natürlich mit Root-Zugriff)?
  • Welche unterstützen das Schreiben in die zugrunde liegenden Zweige? (Dh wenn /foound /bargewerkschaftlich verbunden sind /union, kann ich an /foound schreiben /bar?)
  • Welche unterstützen konfigurierbare Richtlinien für Schreibvorgänge? (Kann ich beispielsweise neu erstellte Dateien an Zweig B senden, obwohl ich Inhalt von Zweig A erhalte, wenn in beiden Zweigen eine Datei vorhanden ist?)
  • Welche unterstützen eine Prioritätsreihenfolge zwischen Zweigen, die von den Dateien abhängt? (Kann ich zB immer die neueste Datei unter allen Zweigen bekommen, die sie haben?)

Anwendungsbeispiele sind willkommen.

Bitte vermeiden Sie Antworten, die sich auf einen bestimmten Punkt konzentrieren. Ich suche nach umfassenden Antworten, die die verfügbare Software überprüfen (ähnlich wie Was ist ein Bind-Mount? ). Gute Antworten werden ausgezahlt.

Gilles 'SO - hör auf böse zu sein'
quelle

Antworten:

12

Zu jedem der spezifischen Punkte:

  • Root-Zugriff: Wenn FUSE verwendet wird, wird kein Root benötigt. Wenn kein FUSE verwendet wird, wird Root benötigt, es sei denn, Sie führen spezielle Einstellungen mit Funktionen (möglicherweise gefährlich) oder Namespaces durch.

  • Mounten auf /: Ich nehme an, Sie meinen beim Start das Root-Dateisystem. In diesem Fall sollte theoretisch jeder funktionieren, der im Kernel-Modus ausgeführt wird, obwohl einige zuverlässiger sind als andere. Die meisten LiveCDs tun dies, daher würde ich vorschlagen, nach Informationen zu diesem bestimmten Punkt zu suchen.

  • Schreiben an die zugrunde liegenden Zweige: Dies hängt davon ab, was Sie meinen. Wenn Sie damit meinen, Schreibvorgänge in die bereitgestellte Ansicht bis in die unteren Zweige zu übertragen, habe ich keine Ahnung. Wenn Sie vom Hauptdateisystem selbst außerhalb des Bandes in die unteren Zweige schreiben möchten, tun dies technisch gesehen alle großen drei, aber alle erfordern eine erneute Bereitstellung, um sicherzustellen, dass die Änderung an die bereitgestellte Ansicht weitergegeben wird.

  • Konfigurierbare Schreibrichtlinien: Ich weiß nicht genau, aber ich denke, die großen 3 (UnionFS, AUFS und OverlayFS) unterstützen dies nicht.

  • Dateiabhängige Prioritätsreihenfolge: Ich denke, diese eine Art fällt auch unter die dritte Unterfrage, und wie dort kenne ich keine, die dies speziell unterstützt.

Zu einigen weiteren Einzelheiten zu jedem von ihnen:

  • UnionFS: Soweit ich das beurteilen kann, war dies die ursprüngliche stapelbare Union-Dateisystemimplementierung für Linux. Es gibt es schon seit Ewigkeiten und es wird von vielen Linux LiveCDs verwendet. Es wird im Kernel-Modus ausgeführt und erfordert Patches für den Upstream-Kernel.

  • AUFS: Ursprünglich als Gabelung von UnionFS entstanden und dann zu einer eigenen Sache geworden. Dieser versuchte, die Hauptleitung zusammenzuführen, und wurde aus Gründen der Codequalität abgelehnt. Es ersetzt UnionFS in einigen Distributionen von LiveCDs, hauptsächlich Debian- und Gentoo-Derivaten. Wie UnionFS wird es im Kernelmodus ausgeführt und erfordert Patches für den Upstream-Kernel.

  • OverlayFS: Ich weiß nicht viel über die ursprüngliche Entwicklung dieses Modells, außer dass es auch von einigen BSD-Derivaten unterstützt wird. Dies ist insbesondere die Implementierung des Upstream-Overlay- / Union-Dateisystems im Linux-Kernel. Es läuft auch im Kernel-Modus.

  • UnionFS-FUSE: Dieses etwas verwirrend benannte Projekt hat eigentlich nichts mit UnionFS zu tun, außer im Wesentlichen die gleiche Funktionalität bereitzustellen. Es ist die am weitesten verbreitete FUSE-Implementierung eines Union-Dateisystems, aber das ist ungefähr alles, was ich darüber weiß.

  • mhddfs: Dies ist ein seltsamer Ausreißer, der eher einer RAID-0-Implementierung mit Dateigranularität ähnelt als einem herkömmlichen Union-Dateisystem. Es unterstützt das Ausgleichen von Dateien über mehrere Sicherungsverzeichnisse basierend auf der Speicherplatznutzung. Es basiert auch auf FUSE.

Einige spezifische Dinge, die für eine bestimmte Implementierung nicht spezifisch sind:

  • Alle kerninternen Optionen unterliegen Einschränkungen hinsichtlich der Backup-Dateisysteme, insbesondere wenn sie nicht mit vernetzten Dateisystemen oder BTRFS funktionieren.

  • Alle FUSE-Implementierungen weisen Probleme auf, wenn sie als Root-Dateisystem verwendet werden. Dies ist nicht spezifisch für Implementierungen von Union-Dateisystemen, ist jedoch eher ein Problem bei FUSE im Allgemeinen.

Austin Hemmelgarn
quelle