AA_overlap_Setsiri_Silapasuwanchai_13785559-123rf.jpg

© Setsiri Silapasuwanchai, 123RF

Mit Mhddfs Festplatten und Verzeichnisse zusammenfassen

Zusammengelegt

Mit Mhddfs fassen Sie verstreute Daten virtuell zusammen, um einen besseren Überblick zu erhalten.

Ordnung ist das halbe Leben, Unordnung die andere Hälfte – so will es jedenfalls der Volksmund. Wie groß der Anteil an Unordnung tatsächlich ausfällt, bestimmt jeder selbst. Ein heute typisches Problem: Es kostet reichlich Zeit, über die vielen Video- und Audio-Dateien sowie die ständig wachsende Sammlung an Bildern eine feste Systematik zu etablieren und den Überblick zu behalten. Oft liegen die Multimedia-Daten auf verschiedenen Festplatten, was den Durchblick weiter erschwert.

Hier kommt Mhddfs ins Spiel: Mithilfe des Union-Dateisystems fassen Sie Dateien von verschiedenen Orten zu einem virtuellen Verzeichnis zusammen (siehe Kasten "Was ist ein Union-Dateisystem?"). Dabei kombiniert das Tool nicht nur die vorhandenen Daten, sondern gibt außerdem Auskunft über den freien Speicher der einzelnen Dateisysteme.

Was ist ein Union-Dateisystem?

Union-Dateisysteme wie UnionFS, Aufs, OverlayFS und Mhddfs finden in Linux vermehrt Anwendung, seit Klaus Knopper die erste Version des Live-Systems Knoppix veröffentlichte. Solche Dateisysteme erlauben, mehrere Filesysteme übereinanderzulegen und gleichzeitig einzuhängen. Dem Anwender erscheint das Ergebnis als Einheit. Das erlaubt es beispielsweise, auf einer Live-CD Pakete zu installieren, ohne das System zu verändern. Weitere Anwendung findet vor allem OverlayFS seit Neuestem bei Containern und atomaren Updates.

Da bereitet es dann keine Probleme mehr, dass etwa kleinere Festplatten weiterhin als Datenspeicher dienen, sodass die Musiksammlung sich über drei Festplatten erstreckt. Alternativ könnten Sie auf einer Platte Rockmusik, auf einer Klassik und auf der dritten Hörbücher speichern. Was aber tun, wenn die Platte für Rockmusik voll ist, die für Hörbücher aber noch viel Platz bietet? Da schleicht sich gleich wieder Unordnung ein.

Eine Alternative böte das Aufsetzen eines RAIDs [1], das aber immer ein Kompromiss zwischen Sicherheit der Daten und Speicherplatz darstellt und somit für das Beispiel nicht praktikabel erscheint. Der Einsatz von LVM [2] ergibt aus Gründen der Datensicherheit nur in einem RAID Sinn, was in diesem Fall ebenfalls nicht weiterhilft.

Mhddfs jedoch bietet genau die Funktionalität, die in solchen Fällen gefragt ist: So verschieben Sie bei Platzmangel auf einer der zusammengefassten Festplatten im Hintergrund Daten auf eine andere Platte mit freiem Platz, ohne dass der Anwender etwas davon merkt. Standardmäßig reserviert Mhddfs auf jeder Platte 4 GByte für Notfälle. Bei Bedarf verkleinern Sie den Wert beim Start mittels mlimit=Limit bis auf 100 MByte.

Transparente Schreibzugriffe

Damit das Prinzip eines virtuellen Verbundes funktioniert, macht Mhddfs – im Gegensatz zu den bei Live-Medien oft verwendeten UnionFS, Aufs oder dem kürzlich in den Kernel aufgenommenen OverlayFS – nicht nur Lesezugriffe transparent, sondern auch das Schreiben von Daten. Während herkömmliche Union-Dateisysteme dabei mit Copy-On-Write (COW) arbeiten [3], lässt sich bei Mhddfs nicht nur die oberste Dateisystemschicht beschreiben, sondern auch alle darunterliegenden.

Dateien, die Sie dem virtuellen Verbund hinzufügen, legt Mhddfs auf der ersten Festplatte ab, solange dort genug Platz bleibt, also das eingestellte mlimit ausreicht. Anderenfalls prüft es die restlichen Platten im Verbund nacheinander auf ausreichend freien Platz. Genügt das mlimit auf keiner der Platten den Anforderungen, verwendet Mhddfs die Platte mit dem meisten Platz.

Dabei speichert es Dateien immer als Ganzes, ein Aufsplitten wie bei LVM findet nicht statt. Das funktioniert im Zusammenspiel mit allen gängigen Linux-Dateisystemen – dazu gehören auch Samba und NFS, da diese korrekte Informationen über die belegten und freien Kapazitäten im jeweiligen Dateisystem liefern. SSHFS erfüllt dieses Kriterium nicht, und so warnt der Mhddfs-Entwickler davor, es einzubinden.

Bemerkt Mhddfs während eines Schreibvorgangs, dass der Platz auf der Platte nicht ausreicht, verschiebt es die bereits geschriebenen Daten im Hintergrund auf eine andere Platte mit mehr Kapazität und setzt den Vorgang dort fort. Das schreibende Programm bekommt davon nichts mit. Das ermöglicht ein Arbeiten mit dem virtuellen Dateisystem, als ob Sie auf einer großen Festplatte arbeiten.

Es spielt also keine Rolle, wo Daten liegen oder wie viel Platz auf den einzelnen Platten frei ist. Sie sehen lediglich den gesamten freien Platz. Sollten Sie zu einem späteren Zeitpunkt eine Festplatte mit ausreichend Kapazität erwerben und die kleineren Platten aus dem Mhddfs-Verbund nicht mehr verwenden oder anderswo einsetzen wollen, so kopieren Sie einfach den Inhalt des virtuellen Dateisystems auf die neue Platte und hängen die kleineren Platten aus.

Flexibler Speicher

Mhddfs findet sich in den Repositories der meisten Distributionen; Sie installieren es dann einfach über das Paketmanagement. Möchten Sie es selbst kompilieren, verwenden Sie den Quellcode aus dem Mhddfs-Subversion-Repository [4]. Der Einsatz des Tools gestaltet sich in der Praxis recht einfach. Im folgenden Beispiel gehen wir von drei Festplatten mit den Bezeichnern sda1, sdb1 und sdc1 aus; Listing 1 zeigt die Ausgangssituation.

Listing 1

$ df -h
Filesystem   Size  Used Avail Use% Mounted on
/dev/sda1     80G   50G   30G  63% /mnt/Video
/dev/sdb1     40G   35G    5G  88% /mnt/Fotos
/dev/sdc1     60G   10G   50G  17% /mnt/Musik

Jetzt erstellen Sie beispielsweise mit mkdir /mnt/medien den neuen Einhängepunkt für den zu erstellenden Verbund und vergeben die Rechte dazu mit chmod 775 /mnt/medien. Ab hier spielt das als Abhängigkeit zu Mhddfs mit installierte FUSE-Dateisystem seine Stärken aus, da es erlaubt, Funktionen aus dem Kernel in den Userspace zu verlagern.

So erfordert der Umgang mit Mhddfs keine Root-Rechte, ein normales Benutzerkonto genügt. Der Account muss lediglich der Gruppe fuse angehören. Das erreichen Sie mithilfe des Kommandos addgroup User fuse. Nun erstellen Sie den neuen Verbund (Listing 2, Zeile 1). Die Option -o allow_other erlaubt auch anderen Benutzern das Erstellen von Dateien.

Hier dürften Sie zusätzlich den bereits erwähnten Parameter mlimit angeben. Optionen sind allerdings besser in /etc/fstab aufgehoben. Klappt das Einhängen der Medien, erhalten Sie eine Ausgabe wie in Listing 2, Zeile 2 bis 7). Alle drei Platten sind eingebunden, jeder angemeldete Benutzer hat Zugriff und das Limit liegt bei 4 GByte. Das Ergebnis, wiederum mit df -h betrachtet, sieht auszugsweise so aus, wie in Listing 3 gezeigt.

Listing 2

$ mhddfs /mnt/Video,/mnt/Fotos,/mnt/Musik /mnt/medien -o allow_other
option: allow_other (1)
mhddfs: directory '/mnt/Video' added to list
mhddfs: directory '/mnt/Fotos' added to list
mhddfs: directory '/mnt/Musik' added to list
mhddfs: move size limit 4294967296 bytes
mhddfs: mount point '/mnt/medien'

Listing 3

$ df -h
Filesystem   Size  Used Avail Use% Mounted on
/dev/sda1     80G   50G   30G  63% /mnt/Video
/dev/sdb1     40G   35G    5G  88% /mnt/Fotos
/dev/sdc1     60G   10G   50G  17% /mnt/Musik
mhddfs       180G   95G   85G  53% /mnt/medien

Wie Sie sehen, hat die Software das neue Dateisystem angelegt; die Gesamtkapazität entspricht der Summe der einzelnen Platten, ebenso der freie Platz. Nun gilt es noch, das Erreichte über einen Neustart hinaus automatisch bereitzustellen. Dazu legen Sie in der Datei /etc/fstab einen neuen Eintrag an (Listing 4).

Listing 4

mhddfs#/mnt/Video,/mnt/Fotos,/mnt/Musik /mnt/medien fuse defaults,allow_other,mlimit=500M 0 0

Treten Probleme auf, bietet es sich an, über eine weitere Option zu definieren, wo die Software eine Log-Datei anlegt und mit welchem Detailgrad es Ausgaben des Systems zu Mhddfs darin festhält (Listing 5). Weitere Einzelheiten verrät die Manpage zu Mhddfs [5].

Listing 5

mhddfs#/mnt/Video,/mnt/Fotos,/mnt/Musik /mnt/medien fuse defaults,allow_other,mlimit=500M,logfile=/var/log/mhddfs.log,loglevel=1 0 0

Bei Bedarf erweitern Sie den Verbund jederzeit um weitere Platten. Dazu hängen Sie ihn aus, starten die Software erneut und fügen die neue Festplatte hinzu. Ergänzen Sie dann noch den Einhängepunkt in /etc/fstab, um den neuen Verbund automatisch einzuhängen.

Möchten Sie das Programm nicht mehr nutzen, entfernen Sie die Zeile aus der Datei /etc/fstab und löschen den Einhängepunkt des Verbunds. Unter Distributionen mit Systemd können Sie Mhddfs über das Init-System starten lassen, der Kasten "Mhddfs mit Systemd starten" beschreibt diese Option.

Mhddfs mit Systemd starten

Mhddfs bringt noch keine Service-Datei für Systemd mit. Daher erstellen Sie eine solche Datei mit dem Namen /etc/systemd/system/mnt-medien.mount einfach selbst. In diese kopieren Sie das Skript aus Listing 6. Mit systemctl daemon-reload laden Sie die Datei neu, um dann mit systemctl enable mnt-virtual.mount den Service beim Hochfahren zu starten. Ein abschließendes systemctl start mnt-virtual.mount sorgt für den automatischen Start.

Listing 6

[Unit]
Description = Mount mhddfs virtual volume
[Mount]
What = mhddfs#/mnt/Video,/mnt/Fotos,/mnt/Video
Where = /mnt/media
Type = fuse
Options = allow_other,mlimit=2G 0 0
[Install]
WantedBy = multi-user.target

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Neues auf den Heft-DVDs
    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial Ihres Rechners. Mit der Heft-DVD erhalten Sie nicht nur topaktuelle Distributionen, sondern auch die passenden Programme zu den Artikeln.
  • Angetestet
    Datenbank-Client Dbeaver 3.7.4, Union-Dateisystem Mergerfs 1.1.0, Netzwerküberwacher Nethogs 0.8.4, Fotoverwaltung Shotwell 0.23.7.
Kommentare

Infos zur Publikation

LU 11/2017: Server für Daheim

Digitale Ausgabe: Preis € 8,50
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 2 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...