Ein Union-Mount stellt eine kombinierte Ansicht mehrerer Verzeichnisse (Zweige) in einer einzelnen Hierarchie dar. Ok, aber wie verwende ich eine in der Praxis und welche?
Viele Union-Mount-Technologien sind auf einem modernen Linux-System verfügbar:OverlayFS, aufs, UnionFS, verschiedene FUSE-basierte Dateisysteme, …
Wie entscheide ich bei einem Anwendungsfall, welche(s) geeignet sind? Insbesondere:
- Welche benötigen Root-Zugriff auf einem typischen System? (Mit anderen Worten, kann ein nicht privilegierter Benutzer einen Union-Mount erstellen?)
- Welche können auf
/
gemountet werden (natürlich mit root-Zugriff)? - Welche unterstützen das Schreiben in die zugrunde liegenden Branches? (D.h. wenn
/foo
und/bar
werden in/union
gemountet , kann ich in/foo
schreiben und/bar
?) - Welche unterstützen konfigurierbare Richtlinien für Schreibvorgänge? (Kann ich z. B. neu erstellte Dateien an Zweig B senden, obwohl ich Inhalte von Zweig A erhalte, wenn eine Datei in beiden Zweigen vorhanden ist?)
- Welche unterstützen eine Prioritätsreihenfolge zwischen Zweigen, die von den Dateien abhängt? (Kann ich z. B. immer die neueste Datei unter allen Zweigen bekommen, die sie haben?)
Anwendungsbeispiele wären willkommen.
Bitte vermeiden Sie Antworten, die sich auf einen bestimmten Punkt konzentrieren. Ich suche nach umfassenden Antworten, die die verfügbare Software überprüfen (etwas Ähnliches wie Was ist eine Bindungshalterung?). Gute Antworten werden belohnt.
Akzeptierte Antwort:
Zu jedem der spezifischen Punkte:
-
Root-Zugriff:Wenn FUSE verwendet wird, ist kein Root erforderlich. Wenn FUSE nicht verwendet wird, ist Root erforderlich, es sei denn, Sie führen eine spezielle Einrichtung mit Funktionen (potenziell gefährlich) oder Namespaces durch.
-
Montage auf
/
:Ich nehme an, Sie meinen das Root-Dateisystem beim Start. In diesem Fall sollte jeder von ihnen, der im Kernelmodus ausgeführt wird, theoretisch funktionieren, obwohl einige zuverlässiger sind als andere. Die meisten LiveCDs tun dies, daher würde ich vorschlagen, dort nach Informationen zu diesem speziellen Punkt zu suchen. -
Schreiben in die zugrunde liegenden Zweige:Dies hängt davon ab, was Sie meinen. Wenn Sie die Weitergabe von Schreibvorgängen an die bereitgestellte Ansicht bis zu den unteren Zweigen meinen, habe ich keine Ahnung. Wenn Sie meinen, vom Hauptdateisystem selbst in die unteren Zweige out-of-band zu schreiben, tun dies technisch gesehen alle großen drei, aber sie alle erfordern ein erneutes Mounten, um sicherzustellen, dass die Änderung an die gemountete Ansicht weitergegeben wird.
-
Konfigurierbare Schreibrichtlinien:Ich weiß nicht genau, aber ich denke, die großen 3 (UnionFS, AUFS und OverlayFS) unterstützen sie nicht.
-
Dateiabhängige Prioritätsreihenfolge:Ich denke, diese 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 Implementierung des stapelbaren Union-Dateisystems für Linux. Es gibt es schon seit Ewigkeiten und es wird von vielen Linux-LiveCDs verwendet. Es läuft im Kernel-Modus und erfordert die Verwendung von Patches für den Upstream-Kernel.
-
AUFS:Entstanden als Fork von UnionFS und wurde dann zu einer eigenen Sache. Dieser versuchte, die Hauptlinie zusammenzuführen, und wurde aufgrund der Codequalität abgelehnt. Es hat UnionFS in einigen Distributionen LiveCDs ersetzt, hauptsächlich Debian- und Gentoo-Derivate. Wie UnionFS läuft es im Kernel-Modus und erfordert Patches für den Upstream-Kernel.
-
OverlayFS:Ich weiß nicht viel über die ursprüngliche Entwicklung davon, außer dass es auch von einigen BSD-Derivaten unterstützt wird. Es ist insbesondere die Upstream-Overlay/Union-Dateisystemimplementierung 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 dass es im Wesentlichen die gleiche Funktionalität bietet. 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 den Ausgleich von Dateien über mehrere Sicherungsverzeichnisse basierend auf der Speicherplatznutzung. Es basiert auch auf FUSE.
Ein paar spezifische Dinge, die zu beachten sind und nicht spezifisch für eine bestimmte Implementierung sind:
-
Alle In-Kernel-Optionen haben Einschränkungen, was die unterstützenden Dateisysteme sein können, insbesondere funktionieren sie nicht mit vernetzten Dateisystemen oder BTRFS.
-
Alle FUSE-Implementierungen haben Probleme, wenn sie als Root-Dateisystem verwendet werden. Dies ist nicht spezifisch für Union-Dateisystemimplementierungen, sondern eher ein Problem mit FUSE im Allgemeinen.