Wie multiple Videoverzeichnisse zusammenfassen: mhddfs, aufs, ...?

  • Hallo,


    ich bin über eine Aufgabe gestolpert, mit der sich beim Upgrade auf eine aktuelle Version von VDR viele konfrontiert sehen dürften: Dem Zusammenfassen von "multiplen" Videoverzeichnissen.


    Heute habe ich MLD 4.0.1 für den Raspberry Pi ausprobiert. Darin ist VDR 2.1.5 enthalten, das "multiple" Videoverzeichnisse nicht mehr unterstützt. Auf meinem Server mit Debian wheezy und VDR 2.0.3 habe ich aber genau solch eine Struktur aus /var/lib/video.00, /var/lib/video.01 und /var/lib/video.02.


    Ich habe versucht, die drei Videoverzeichnisse auf dem Server mit mhddfs zu einem zusammenzufassen und dieses per NFS dem Client zur Verfügung zu stellen. Das funktioniert bislang nicht, weil im kombinierten Verzeichnis immer noch Verweise auf /var/lib/video.01 und /var/lib/video.02 enthalten sind. Ich habe keine Möglichkeit gefunden, mhddfs so zu konfigurieren, dass es die "internen" Verweis stillschweigend selbst auflöst. Insbesondere habe ich keine geeignete Option gefunden. Und meine zwischenzeitliche Hoffnung, die Ausgangsverzeichnisse könnten in der Reihenfolge ausgewertet werden, in der sie für das Gesamtverzeichnis aufgeführt werden, hat sich auch zerschlagen: Das Problem tritt auch auf, wenn ich die Reihenfolge umkehre und /var/lib/video.00 nach hinten stelle.


    Meine Suche nach einer Lösung war bislang erfolglos. Ich habe aber dabei einige Berichte über Performanzprobleme oder Instabilitäten bei mhddfs gefunden. Aus Experimenten vor einiger Zeit weiß ich noch, dass man sich außerdem darum kümmern muss, dass die Resume-Dateien auf dem Server in /var/lib/video.00 landen. Mit anderen Worte: Es muss nicht unbedingt mhddfs sein. Vielleicht ist ja AuFS eine Alternative. Aber vielleicht hat das auch die gleichen Probleme mit den Verweisen.


    Langer Rede kurzer Sinn: Wie kann man multiple Videoverzeichnisse am besten zusammenfassen? Lassen sich meine Probleme mit den Verweisen in mhddfs lösen? Gibt es empfehlenswerte Alternativen zu mhddfs?


    Schönen Gruß
    Malte

  • Hi,


    warum legst du deine Daten nicht auf ein NFS Share?

  • warum legst du deine Daten nicht auf ein NFS Share?


    Ich bin mir nicht sicher, was Du damit meinst. Auf dem VDR Server läuft ja bereits ein NFS Server, der die Videodaten den (anderen) Clients zur Verfügung stellt.


    Es handelt sich um gut 8 TB auf drei Platten. Und ja, ohne Backup oder RAID... :) Ich habe leider keine Möglichkeit, die Dateien auch nur vorübergehend woanders hinzukopieren.


    mhddfs kennt das "VDR-Spezialformat" mit den vielen Symlinks nicht.


    Damit das ganze mit den "Alternativen" funktioniert musst du die Symlinks also auflösen.


    Sicher, das ist zunächst einmal ein VDR-spezifisches Format. Aber ganz abwegig scheint mir die Hoffnung nicht, dass eine Software wie mhddfs oder dgl. Verweise innerhalb der beteiligten Partitionen/Verzeichnisse auflöst und das Verweisziel "nach draußen" gibt.


    Aber falls sich so etwas nicht findet: Wie könnte ich denn am besten das Auflösen der Verweise angehen? Vielleicht LVM als Zielkonzept? Angesichts der Datenmengen (s.o.) weiß ich nicht, wie ich die Umstellung bewerkstelligen soll.


    Es wäre doch schade, wenn ich auf den MLD-Client verzichten und darauf hoffen müsste, dass sich jemand findet, der ein
    Plugin zur Unterstützung der alten Verzeichnisstruktur schreibt.

  • Hi,


    nachdem was ich vor ein paar Tagen zu mhddfs gelesen habe, ist die Reihenfolge in der die Video Verzeichnisse beim zusammenfassen angegeben werden entscheidend. wenn Du also das video.00 an's Ende der liste packst, sollte es eigentlich gehen.
    aufs ist nur dann eine Lösung, wenn neue Aufnahmen auf einer Bestimmten Platte landen sollen. Da kannst Du lediglich einzelne Ordner für bestimmte Laufwerke definieren. Bei mhddfs hingegen werden alle Laufwerke je nach verfügbarem Platz gefüllt.
    Über Stabilität kann ich nichts sagen.


    Claus

    MLD 5.5 mit vdr 2.6 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.5 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Ich bilde mir ein es gibt hier im Forum irgendwo ein Skript das die Symlinks korrigieren kann.
    Also per mdhddfs Verzeichnisse zusammenfügen und dann die Symlinks automatisch korrigieren. Aber ich finde es leider nicht mehr ...


    lg,
    Joe


  • nachdem was ich vor ein paar Tagen zu mhddfs gelesen habe, ist die Reihenfolge in der die Video Verzeichnisse beim zusammenfassen angegeben werden entscheidend. wenn Du also das video.00 an's Ende der liste packst, sollte es eigentlich gehen.


    Dass es so funktionieren könnte, habe ich gestern auch gehofft und video.00 ans Ende gestellt. Aber auf dem Client wurden (in /var/log/messages) trotzdem mehrere unauffindbare Videodateien gemeldet, wenn auch vermutlich weniger als mit der normalen Reihenfolge. Und in der Tat: Wenn ich mir die Stellen im kombinierten Verzeichnis auf dem Server anschaue, zeigt der mir Verweise statt der "echten" Dateien. Bei anderen Dateien, die bei der normalen Reihenfolge Probleme bereiteten, hat es dagegen geklappt. Leider habe ich noch nicht herausgefunden, warum es bei manchen Dateien funktioniert und bei anderen nicht. Die Version von mhddfs in Wheey ist übrigens 0.1.39.


    In diesem Thread findet sich ein Beispiel, wie die Reihenfolge das Endergebnis beeinflusst. Ist es vielleicht von Bedeutung, dass ich drei Teilverzeichnisse benutze? Oder spielen irgendwelche Interna der Dateisysteme eine Rolle, die das Verhalten zufällig erscheinen lassen?



    aufs ist nur dann eine Lösung, wenn neue Aufnahmen auf einer Bestimmten Platte landen sollen. Da kannst Du lediglich einzelne Ordner für bestimmte Laufwerke definieren. Bei mhddfs hingegen werden alle Laufwerke je nach verfügbarem Platz gefüllt.


    Das würde erst dann zum Problem, wenn ich den Server auf eine aktuelle Version von VDR umstelle. Im Moment will ich das kombiniete Videoverzeichnis nur für Clients benutzen, die keine Aufnahmen machen. Wenn die ihre Resume-Dateien dann stets nach viddo.00 schreiben, wäre das sogar erwünscht und etwas, dass ich bei mhddfs mit Konfigurationstricks zu erreichen versuchen würde. Aber weiß jemand, ob aufs besser mit den Verweisen klarkommt als mhddfs?


    Ich bilde mir ein es gibt hier im Forum irgendwo ein Skript das die Symlinks korrigieren kann.
    Also per mdhddfs Verzeichnisse zusammenfügen und dann die Symlinks automatisch korrigieren. Aber ich finde es leider nicht mehr ...


    Tja, ich leider bislang auch nicht :-(. Das wäre natürlich interessant. Hast Du noch irgendeine Idee, wie das Konzept aussah, d.h. welche Idee bei der Korrektur benutzt wurde?

  • Wenn ich das jetzt richtig mitbekommen habe, dann priorisiert mhddfs manche Symlinks höher als die tatsächlichen Aufnahmen. Daher erscheinen dann die toten Symlinks statt die TS-Dateien.


    Wäre es da nicht sinnvoller einfach alle Symlinks zu entfernen?

  • Hast Du mal überprüft, ob die übrig gebliebenen Symlinks auf den physikalischen Platten auf noch vorhandene Aufnahmen (im selben Verzeichnis mit dem Selben Namen) zeigen. Nicht das die Ursache des Problems auch schon vor dem zusammenführen besteht, also z.B. die Symlinks umbenannt wurden, die Physikalische Datei jedoch noch den alten Namen hat.


    Claus

    MLD 5.5 mit vdr 2.6 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.5 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Wenn ich das jetzt richtig mitbekommen habe, dann priorisiert mhddfs manche Symlinks höher als die tatsächlichen Aufnahmen. Daher erscheinen dann die toten Symlinks statt die TS-Dateien.


    Wäre es da nicht sinnvoller einfach alle Symlinks zu entfernen?


    Stimmt, das ginge. Dann könnte ich allerdings auch auf dem Server nur noch das kombinierte Verzeichnis benutzen. Sollte ich dabei auf Probleme bei Performanz oder Stabilität stoßen, müsste ich alle Verweise neu erzeugen. Die Videoverzeichnisse dürften dann keine "Inkonsistenzen" enhalten, sonst lassen sich die Verweise nicht rekonstruieren. Möglich wär's also, aber noch scheue ich Aufwand und Risiko. Auf lange Sicht mag tatsächlich kein Weg daran vorbeiführen.


    Hast Du mal überprüft, ob die übrig gebliebenen Symlinks auf den physikalischen Platten auf noch vorhandene Aufnahmen (im selben Verzeichnis mit dem Selben Namen) zeigen. Nicht das die Ursache des Problems auch schon vor dem zusammenführen besteht, also z.B. die Symlinks umbenannt wurden, die Physikalische Datei jedoch noch den alten Namen hat.


    Das war eine sehr gute Idee! Bei dem einen Negativbeispiel, das ich mir notiert hatte, handelte es sich um einen umbenannte Aufzeichnung. D.h., auf video.00 existiert ein Verzeichnis mit dem "neuen" Namen, aber nicht (in diesem Fall) auf video.01. Der Verweis konnte also nicht überdeckt werden. Zum Glück habe ich noch mein treues "vdrck", das solche und ähnliche Inkonsistenzen identifiziert und behebt. Nun kommen keine Fehlermeldungen wegen fehlender Dateien mehr. Danke!


    Jetzt muss ich nur noch sicherstellen, dass Resume-Dateien, die der Client anlegt, in video.00 landen. Wie könnte das klappen? Mit der Option mlimit ist mir wohl nicht geholfen. Und Read-Only kann ich einzelne Verzeichnis anscheinend auch nicht einbinden.


    Und ich muss mich überzeugen, das beim Löschen durch den Client das Richtige passiert. Oder sicherstellen, dass nur der Server wirklich löscht. Gibt es vielleicht einen Patch für den Client, der bewirkt, dass er zwar das Verzeichnis der Aufnahme umbenennt, das eigentliche Löschen der Dateien aber dem Server überlässt? Den dont-remove-patch? Bisher ist es ja so, dass jeder VDR die gelöschte Aufzeichnung zur Kenntnis nimmt und dann ggf. Warnungen ausgibt, wenn eine anderer (VDR) ihm beim Löschen zuvorgekommen ist.


    Malte

  • Hallo,


    Mini73 hatte in diesem Thread mal einen Patch für diesen Zweck vorgeschlagen: Multiple Video-Verzeichnisse: freie Diskussion zu Konzepten, Patches, Lösungen und Wünschen


    Die aktuelle Version ist bei yaVDR enthalten und hier zu finden.


    Tschüß Frank


  • Mini73 hatte in diesem Thread mal einen Patch für diesen Zweck vorgeschlagen: Multiple Video-Verzeichnisse: freie Diskussion zu Konzepten, Patches, Lösungen und Wünschen


    Soweit ich das verstehe, erlaubt es der Patch, eine transparente Verzeichnisebene unterhalb des eigentlichen Videoverzeichnisses einzuziehen, damit auch nachträglich zusätzliche Videoverzeichnisse eingebunden werden können.


    Dann könnte ich meine drei Partitionen z.B unterhalb von video.00 als local, other1 und other2 einbinden und jeder gepatchte VDR (also Server wie Client) würde sie selbst kombinieren. Aber der Nachteil wäre wohl, dass alle neuen Aufzeichnungen in local landen, oder?

  • Mit mlimit könntest Du auf jedenfall dafür sorgen das nur auf einer Platte geschrieben wird, solange da noch Platz frei ist. Du müsstest das nur für die anderen Platten so hoch einstellen, dass die nicht genommen werden.


    Claus

    MLD 5.5 mit vdr 2.6 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - WD Green 12TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 5.5 mit vdr 2.4 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Moin,


    Nur eine kurze Nachricht aus dem Urlaub.


    Mein Patch kann nicht die alte Struktur zusammenfassen, sondern nur unabhängige, in sich vollständige Videoverzeichnisse in eine Aufnahmenliste im vdr kombinieren. Man müsste also info und index Dateien dort ablegen, wo die ts-Dateien sind. Sind die ts-Dateien auf verschiedenen Platten, müsste man die auch noch zusammenkopieren.


    Ohne Backup würde ich das erst mal in einer Testumgebung probieren oder neue Platten kaufen... :)


    Lars

  • yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

Jetzt mitmachen!

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