Tip: Virtuelles Merge-Filesystem "mhddfs"

  • Moin,


    unter http://debaday.debian.net/2008…form-a-single-larger-one/ (engl.) ist ein Filesystem "mhddfs" für Linux beschrieben, welches mehrere existierende Filesysteme einigermassen transparent in ein einzelnes Filesystem abbildet.


    Ohne es ausprobiert zu haben: Wenn es funktioniert, ist es sicher hilfreich um das /video - Verzeichnis auf mehrere (kleine) Platten zu verteilen, ohne mit der m.E. etwas hakeligen vdr-eigenen Lösung rumzuhampeln.


    Gruss,
    Walter

    --seit 2010 kein vdr mehr in Betrieb--
    vdr 1.6.0 + eigene Patchkombination
    GNU/Linux 2.6.23.14 (Debian)
    DVB-S-Karte TT 1.6 (FF, Tuner defekt)
    DVB-S-Karte TT Budget (seit 4/09)
    DVB-T-Karte TT 1300
    DVB-T-USB-StickTerratec Cinergy T USB XE Rev. 2
    PC-Hauptplatine: MSI K8N Neo4-F, AMD 64 (seit 1/07)

  • Du bist mein HELD!!!
    Das ist genau die Lösung nach der ich gesucht habe!
    Bisher kannte ich nur die "üblichen" Dateisystem unionfs und aufs bei denen neue Dateien aber sonstwohin gespeichert werden.
    mhddfs (wenn es denn funktioniert) böte genau die Funktion wie ich sie mir von VDR wünschen würde.


    Jetzt muss es nur noch über NFS funktionieren.



    Danke
    Monroe

  • Erreicht man das Selbe nicht auch durch LVM? Das sollte doch auch viel
    effizienter arbeiten, weil unterhalb der File-System-Ebene und im Kernel-
    statt im Userspace.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Hallo,


    ja, das wirkt viel sympathischer als die symlink-Lösung.


    Ich frage mich, was passiert, wenn ich video0 und video1 (beide gefüllt) mit mhddfs vereine. Was passiert mit den doppelten Dateien (i.e. Symlinks auf video0)?


    Gruß,
    Hendrik

  • gda


    Bei LVM kann ein File auf mehreren Platten liegen. Wenn nur eine Platte kaputt geht, ist dein ganzes LVM futsch und du kommst nicht mehr an die Daten heran. Deshalb sollte man LVM auch nur in Verbindung mit z. B. RAID 5 einsetzen.


    Bei dem hier beschriebenen Dateisystem liegt eine Datei immer ganz auf einer Platte. Wenn du die Platten, auf dem "mhddfs" in einem Rechner lief, ausbaust und in einen anderen Rechner einbaust, auf dem kein "mhddfs" läuft, sind alle Daten noch vorhanden. Jedoch weist du nicht, ob z. B. Datei A auf Platte 1 oder Platte 2 (oder Platte 3 usw.) liegt.


    Auch kann man, wie ich aus der Beschreibung entnehme, z. B. drei Platten zusammenlegen, auf denen schon Daten drauf sind, ohne dass diese verloren gehen. Das geht bei LVM nicht.


    Ausprobiert habe ich dies noch nicht. Werde das aber mal machen.


    Gruß


    Paul

    Server: Raspberry Pi, Acer Aspire easyStore H340, DIGIBIT R1 SAT>IP

    Clients: Hauppauge MediaMVP, Raspberry Pi mit Vomp-Client und SAT>IP, BananaPi Pro, Mele M5


  • Hi,


    klingt sehr interessant - versuchs mal, bin gespannt.


    Grüße Magicdragon67

  • Zitat

    Original von Monroe
    Bisher kannte ich nur die "üblichen" Dateisystem unionfs und aufs bei denen neue Dateien aber sonstwohin gespeichert werden.


    Bei unionfs halt ich mich raus - das kenn ich nur vom Hörensagen , aber aufs speichert typischerweise nich sonstwohin , sondern genau in das Verzeichnis , das du angibst .


    Sinnig ist aufs , wenn man z.B. eine Archivplatte hat und eine "Frische" , auf der die neuen Aufnahmen landen sollen , aber beide schlicht unter /video haben will .


    HJS

  • Tja, funktioniert eigentlich astrein, leider geht der NFS export bei mhddfs nicht, oder hat jemand eine Loesung gefunden ?



    Code
    exportfs: Warning: /media/bigdisk does not support NFS export.


    Gruss


    Armelle

    Server: GA-M720-US3, Athlon X2 235e, Ubuntu 10.04server 64bit+yavdr-ppa, VDR 1.7.17, 3xTT-1600, 4Gb Ram,5x 2Tb WD green,
    Client1: GA-D525-TUD(Atom), Linux Mint 9 Xfce(Ubuntu 10.04) 32bit, VDR 1.7.17, FF 1.3, 2Gb Ram, 250Gb WD blue NB-HD,
    Client2: MSI WindBox DC200 PC, Linux Mint 9 Xfce(Ubuntu 10.04) 32bit, VDR 1.7.17, TT-S2400usb,
    Testclient:Trekstor Tv(xtreamer sidewinder),ASR N68PV-GS,AMD Sempron LE-1150, 2GB Ram, 500Gb WD green,FF Rev 1.3, SkyStar 2.6.

  • Hallo,


    ich habe momentan ein /video0 und ein /video1 Verzeichnis. Jetzt liegen im /video0 ja die Symlinks auf das /video1 Verzeichnis.
    Was passiert nun, wenn ich mhddfs aktiviere? Dann gäbe es ja doppelte Dateien?! (Die symlink-Quellen und die Symlinks).



    Ist es eigentlich auch möglich, nur bestimmte Ordner auf einer Partition zu mergen?
    Z.B. /mnt/hda5/video und /mnt/hdb5/video1?



    [Edit:]
    Habe es gerade einmal ausprobiert: letzteres funktioniert. Ersteres macht ein Problem. Die Symlinks haben "Priorität".


    Folgendes Beispiel:
    /video1/test/ enthält cde
    /video/test/ enthält abc und symlink auf /video/test/cde


    /mnt/virtual enthält
    abc und symlink auf /video/test/cde


    Sobald ich den Symlink /video/test/cde lösche, enthält /mnt/virtual
    abc und cde


    Das ist etwas unschön, denn ich möchte ja die symlink Struktur loswerden.
    Ich könnte jetzt alle Symlinks löschen (wie geht das automatisiert?). Aber dabei hab ich ein etwas ungutes Gefühl, denn dann gibt's kein Zurück mehr. Aber ich könnte die Symlinks doch nach *.vdr.BACKUP umbenennen, oder? Wie kann ich das automatisch erledigen?


    Gruß,
    Hendrik

  • Also es ist nicht so das die Symlinks priorität hätten. Sondern es ist so das Dateien in dem Ersten Ordner/Patition den du beim mounten des mdhfs Filesystems angegeben hast priorität haben. So könntest du auch einfach erst video1 und dann video0 angeben.


    Was aber eigentlich Problematischer ist, ist wenn du deine Aufnahmen unbenant oder verschoben hast. Denn brachst du die Symlinks da ja die Ordnerstrukur der beiden Partitionen nicht identisch ist. Es gibt aber ein Skript das das Anpast habe jetzt aber nicht den Thread im Kopf.


    Löschen aller Symlinks kanst du recht einfach mit find machen. Damit kannst du zum beispiel erst eine Liste erzeugen mit allen Symlinks und dere Zielen denn sicher ist sicher. Und anschliesend kanst du die links auch einfach löschen. Verraussetzung ist wiegesgt das die Ordner Struktur zuvor bereiniegt wurde.


    Das siet dan so aus
    !!achtung ungetestet!! schau dir man find an
    find -name "*.vdr" -type l -printf "%p\t%l\n"> liste.txt
    find -name "*.vdr" -type l -exec rm {} \;

  • Zitat

    Original von swer
    Was aber eigentlich Problematischer ist, ist wenn du deine Aufnahmen unbenant oder verschoben hast. Denn brachst du die Symlinks da ja die Ordnerstrukur der beiden Partitionen nicht identisch ist. Es gibt aber ein Skript das das Anpast habe jetzt aber nicht den Thread im Kopf.


    hier ist es, einfach mit dem Parameter 'w' starten. Dabei wird die Verzeichnisstruckturen der Platten angepasst, auf Wunsch die Sendungen zusammengelegt (ganze Aufzeichnung auf einer Platte) leere Verzeichnisse gelöscht und keine neunen Sysmlinks angelegt.


    Hardy

    Suche: 6 Richtige für die nächste Lottoziehung
    PS: Wer Rechtschreibfehler findet, darf sie behalten!

  • Hallo,


    das hat gut geklappt. Danke!


    Jetzt hab ich aber noch ein Problem: Ich habe den Eintrag für MHDDFS in der /etc/fstab. Leider wird der VDR aber scheinbar vor dem mounten gestartet, denn beim ersten Strart ist die Anzeige der Aufnahmen im VDR immer leer. Erst nach einem VDR neustart sind die Aufnahmen da.


    Wo/wie mountet ihr das mhddfs?


    Gruß,
    Hendrik

  • Also ich habe das auch nur in meiner fstab drin.

    Code
    mhddfs#/video3,/video2,/video0,/video1  /video  fuse    allow_other,mlimit=10g  0 0


    Wichtig ist nur das fuse geladen ist falls es als module kompiliert wurde.
    /etc/modules.autoload.d/kernel-2.6

    Code
    /etc/modules.autoload.d/kernel-2.6:  kernel modules to load when system boots.
    #
    # Note that this file is for 2.6 kernels.
    #
    # For example:
    # 3c59x
    fuse


    Alle anderen Eigenarten sind dann deiner Distribution zu zuschreiben. Wobei ich ein normales gentoo habe, aber ich weis das gen2vdr ein anderes init System hat.

  • Zitat

    Original von swer
    Alle anderen Eigenarten sind dann deiner Distribution zu zuschreiben. Wobei ich ein normales gentoo habe, aber ich weis das gen2vdr ein anderes init System hat.


    Da weisst Du mehr als ich. Wer erzaehlt denn so sowas ???

  • helau


    Ich erzähle sowas. Welchen Teiil meiner Aussage bezweifelst du denn. Das es Distributionsspezifisch ist wie und wann was beim booten passiert oder das gen2vdr ein anderes init-System hat als ein normles gentoo.

  • Hab mir gerade einen VDR und File-Server für Zuhause aufgesetzt.


    Software: EasyVDR 0.6


    Hardware:
    Altes 19" FuSi Gehäuse
    Mainboard: GIGABYTE GA-M52S-S3P AM2 - 4x PCI und G-Lan
    2 GB Speicher
    CPU: 4050e 45W LE -> Wenig Energie
    System: 2x 40GB am IDE - Soft-Mirror


    WinTV Nova HD-S2 + Skystar HD



    Für die /Medien und Samba
    2x WD 1TB am SATA - später noch mal zwei


    Nur mounten geht nicht weil ich die Kapazität für alle Daten brauche.


    RAID ist blöd entweder ist bei Plattencrash alles weg und/oder Raid5 kostet zu viel Platz für eine Sicherheit die ich nicht brauche.


    LVM wäre OK aber auch wieder bei Plattencrash alles weg.


    mhddfs ist super weil nur die Daten von der defekten Platte weg sind - womit ich leben könnte.



    Allerdings scheint es für etch kein mhddfs zu geben für lenni und sid gibts die Pakete - weiß jemand Rat?

    Server: Silverstone LC10 - MSI Sempron 3000+, HDD: 1,5 TB, 1,0 TB, 3.0 TB, 8.0 TB, SkyStar HD, NOVA HD, TT-1600.

    Client 1: Nvidia Shield 2018 - Kodi mit VNSI-PVR-Addon

    Client 2: XIAOMI Mi Box 3 - Kodi mit VNSI-PVR-Addon

    Server-Software: EasyVDR


    Im Ruhestand: Hardware:

    Client 1: Asrock 330pro, SDD 16GB, Atric USB mit Phillips Fernbedienung

    Client 2: ZOTAC ION, SDD 16GB, Atric - T-Home-Fernbedienung.



    Silverstone Gehäuse - Fusi DVB-C Lang - Terratec Cinergy 1200 Budget
    Software: Linvdr Mahlzeit 3.2 + Toxic-Tonic 1.4.5 extension-patch v22. und Samsung SMT mit zen2vdr R2 Beta
    Eltern: Activy 300 - 256 MB RAM - Terratec Cinergy 1200 Budget - Provider: Kabel-BW
    Jetway P4M9MP 775 Celeron, Asus GT520 passiv, SDD 16GB, Hama BT-Dongel und Playstation 3 Remote

  • Hi Leute,
    einige von schreiben ja, dass die Aufnahmen nicht ausseinander gerissen werden.
    Eine Aufnahme besteht ja aus einigen Dateien, wie 0001.ts, 0002.ts, index... usw.
    Wie werden die Aufnahmen denn verteilt in mhddfs?
    Immer auf die % leerste Platte? Dann wird 0001.ts auf Platte 1 und 0002.ts ggf. auf Platte 3 geschrieben; also so wir der VDR es mit video.00 video.01 macht? Oder wie wird das verwaltet?


    Gruß,
    Chris


    VDR 1: Was altes im Keller
    VDR 3: yavdr64 0.6, ASRock Q1900M

  • Es wird solange auf die 1. Platte geschrieben bis die eingestellte Restmenge erreicht wird. Dann wird auf der 2. Platte fortgesetzt.
    Wenn du auf der 1. Platte etwas löscht und Platz frei wird dann schreibt er wieder auf die 1. Platte. Kann vor allem bei kleinen Dateien passieren (index) das die auf der 1. Platte landen und das Video File auf der 2.


    Damit entsteht in der Tat eine gewisse Unordnung.
    Denke ein geschickter Skriptprogrammierer kann hier leicht Plattenweise sortieren.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!