Aufnahmen reorganisieren

  • Hallo,


    Werde mir wohl bald eine neue Festplatte zulegen (müssen). Denke dabei daran, die schon vorhandenen Festplatten zu reorganisieren. Also dem vdr-eigenen Konzept des Verteilens von Dateien entgenzuwirken, und Aufnahmen komplett (alle 00x.vdr, info.vdr, resume.vdr, marks.vdr) in einem Verzeichnis zu speichern. Der durch das Umkopieren entstehende Effekt, das die Fragmentierung aufgehoben wird, ist bestimmt der Geschwindigkeit und Lebensdauer der Platten zuträglich. Da das Kopieren/Verlinken schnell unbersichtlich wird, stellt sich die Frage, ob es dazu Hilfe in Form von Scripten oder UI-Tools gibt.
    Dazu gehört dann auch das Thema, welcher Patch ( hatte mal recording_organisation_0_0_8.diff, der läßt sich leicht anpassen ), um diese neue Ordnung auch in Zukunft beizubehalten. Da der Patch nur die Platten der Reihe nach füllt, gibt es mittlerweile vielleicht eine neuere Methode, die zu einer Aufnahme gehörenden Daten zusammenzuhalten?


    Wer hat sich der Thematik schon mal soweit genähert, dass er Tips geben kann ?

  • mvvideo sorgt im "consistency check" Modus dafür, dass Aufnahmen immer vollständig in einem Video-Directory zum liegen kommen. Als Basis gilt dabei das Video-Directory in dem 001.vdr liegt. Ansonsten kannst du damit auch geziehlt Aufnahmen von einem Video-Directory in ein anderes verschieben ...


    Das ist jedenfalls das Script mit dem ich meine 3TB hier unter Kontrolle halte. Eventuell hilft es dir ja weiter.


    Ralf

  • Hallo rdnzl,


    Zitat

    Original von rdnzl
    Geschwindigkeit und Lebensdauer der Platten zuträglich. Da das Kopieren/Verlinken schnell unbersichtlich wird, stellt sich die Frage, ob es dazu Hilfe in Form von Scripten oder UI-Tools gibt.


    Ich hatte mich mal dem Thema angenommen:


    Neue Aufnahmeverteilungsstrategie für VDR Aufnahmen


    Im script definierts Du die Wunsch-Platten für die Verzeichnisse um etwa wichtiges auf ein RAID-System zu legen.


    Hardy

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

  • Danke für die Hilfe. Wie ich das momentan einschätze, ist mein Vorhaben mit viel Aufwand verbunden. Hinter beiden Scripts (copy_videofiles.sh/mvvideo) steckt wohl 'ne Menge Gehirnschmalz und Testing, das Vertrauen meinerseits ist schon da, aber das Chaos in den Videoverzeichnissen kann im Fehlerfall katastrophal werden. Werde also um SEHR langes Testen nicht umhin kommen, da mir vieles unklar ist. Habe beispielsweise mvvideo mal mit einem Parameter als consistency check gestartet, hatte erwartet das nichts umkopiert wird, aber weit gefehlt (Hatte Ralf1970 ja auch korrekt so beschrieben). Ein dry-run-Parameter wäre Gold wert.
    Zudem werden die Aufnahmen nicht komplett in ein Verzeichnis verschoben, sondern nur die Videodaten. Das scheint aber das copy_videofiles zu erledigen, es sieht auch so aus als wenn die Dateien dann neu in /video0 verlinkt werden.
    Hätte ich dann alles neu geordnet, mssen die neu hinzu kommenden Aufnahmen ebenfalls dieser Prozedur unterzogen werden, da das Aufnahmeverhalten des VDR noch nicht gepatcht ist. Bei diesem Berg an Hindernissen schrecke ich erstmal davor zurück, etwas zu ändern. Werde mir aber die Bestandteile der Scripts reinziehen, um die Funktionsweise zu verstehen.


    Nochmals Vielen Dank

  • ... das Script ist bisher klar mit mir selbst als Zielgruppe entwickelt worden: --dry-run hatte deshalb noch niemand nachgefragt :)


    Ansonsten versucht das Script die Struktur der Aufnahmeverzeichnisse möglichst nah an dem zu halten, was der vdr ohnehin getan hätte, wenn er nur gewußt hätte was ich von ihm will. Sprich die Verwaltungsinfos - index.vdr, marks.vdr ... - werden immer im primären Aufnahmeverzeichnis gehalten und die großen Brocken - 001.vdr, 002.vdr ... - werden in die übrigen Aufnahmeverzeichnisse verteilt. Nur eben nicht ganz so wahllos, sondern alle zu einer Aufnahme gehörenden Daten in ein Verzeichnis.


    Ansonsten ist mein Archiv so organisiert, dass ich per LVM dafür sorge, dass die sekundären Aufnahmeverzeichnisse immer nahezu voll sind und ich dort nur dann Platz schaffe, wenn das primäre Verzeichnis vollgelaufen ist und ich von dort Aufnahmen (per mvvideo) wegkopiere. D.h. der vdr schreibt ganz freiwillig immer nur in das primäre Aufnahmeverzeichnis - da dort immer am meisten Platz ist. Nebenbei hat das den Effekt, das die Platten für die sekundären Verzeichnisse de facto auch immer im Sleep-Modus sind - es sei denn ich starte eine Wiedergabe einer Aufnahme, die in einem der sekundären Verzeichnisse liegt.


    Da das primäre Videoverzeichnis hier immerhin rund 600GB faßt ist nur alle paar Monate eine Reorganisation nötig und ich brauche (zumindest für die Aufnahmestrategie) keine Patches am vdr vorzunehmen - da patche ich schließlich auch so schon genug dran rum ;)


    Ralf

  • Hi rdnzl!


    Mal ne Frage zu Deinem Anliegen:


    Du hast derzeit zwei (oder mehr) verzeichnisse /video0, /video1, ...
    Die vdr.00X sind verteilt auf die platten
    /video0/test/xxxxxx.rec/vdr.001
    /video1/test/xxxxxx.rec/vdr.002
    die summary und andere textdateien liegen auf
    /video0/test/xxxxxx.rec/summary.vdr
    und du willst alles auf (dem neuen) /video0, neben dem es KEINE weiteren /video1 bis x geben soll


    Dann wäre für dich am einfachsten
    1.) /video0 auf die neue platte zu schieben
    2.) alles aus /video1 auf (in) /video0 zu verschieben


    per "mv -rfv /video1/* /video0/"
    werden alle video files in das /video0 verschoben, die dort befindlichen symlinks überschrieben (-r rekursiv; -f : force - ohne nachfrage, -v verbose)


    da sich keine summary o.ä. in den anderen verzeichnissen befinden, wird sich kein problem mit dem überschreiben von solchen files ergeben.


    Voraussetzung ist lediglich, dass die ORIGINAL vdr-ordnung noch besteht (verzeichnisse/pfade unterhalb /video0 ident zu denen unter /video1,2,3). Wenn man per Umbenennen oder verschieben aufzeichnungen geändert hat, passiert dies nur auf /video0, nicht aber auf /video1,2,3 (/video0/umbenannt/xxxxxx.rec/vdr.002 ist link auf
    /video1/nichtumbenannt/xxxxxx.rec/vdr.002).


    So, genug geschwafelt, hoffe es hilft,


    greetz
    Bax


    Edit: So, habe deinen Beitrag nochmal gelesen und - was hätte der Deutsch-Prof gesagt - THEMA VERFEHLT ....
    Na ja, wurscht, veilleicht hilfts jemand anderem

    VDR neu: AMD 64X2 4050e - 2GB Ram - 3,5TB HDs - Nexus 2.1 - Nova HD S2 - WinTV-T USB - Cinergy S2 PCI CI -
    Ubuntu 10.04 - yavdr stable ppa -
    remote - epgsearch - extrecmenu - live - skinelchi - streamdev - streamplayer - vodcatcher - xine - gallery2 - twonkymedia
    VDR2 SMT: 7020S, 80 GB - Dreambox 7000s (derzeit defekt)
    VDR3 Acer Revo 3610 mit yaVDR 0.2 - TT DVB-S2 USB

    Einmal editiert, zuletzt von Bax ()

  • Hallo rdnzl,


    Zitat

    Original von rdnzl
    ...Werde also um SEHR langes Testen nicht umhin kommen, da mir vieles unklar ist.


    Der Ablauf für den Aufruf ohne Parameter ist:


    - alle Links auf /video0 auf den /videox-Verzeichnissen suchen und eventl. umbenenen --> der VDR ändert leider nur den Verzeichnissnamen auf /video0 beim löschen zum Beispiel xxx.xx..xx.rec --> xxx-xx--xx.del


    - alle Links und leere Verzeichnisse auf /video* werden gelöscht


    - jetzt werden die Aufnahmen aus verschiedenen /videox-Verzeichnissen nach Vorgabe (TestSonder) oder nach der Größe der bereits vorhanden Dateien in ein Verzeichnis verschoben (dabei wird auf ebentl. vorhandene Dateien geprüft und auch der Platzbedarf berücksichtigt), die summery.vdr & index.vdr können lt. Vorgabe am Scriptanfang mit verschoben werden.


    - alle Links und leere Verzeichnisse auf /video* werden gelöscht


    - nun wird auf /video0 wieder die Verzeichnissstrucktur aufgebaut und die Links zu den Dateien erstellt. (hier könnten vielleicht die *.rec bzw. *.del Verzeichnisse direkt verlink werden, das habe ich noch nicht versucht)



    Das ganze geht natürlich nur wenn keine Aufnahme läuft, so das dies getestet wird.



    Hardy

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

  • Ich bin de meinung hier in Forum gelesen zu haben.
    Von Cooper das man mit cp -irgendwas cp sagen kan das er symlinks folgen soll.
    Also cp-?? /video0 wohin die soll! so in der art!

    HauptVDR AMD Goede 1750 Easyvdr 0.06.4
    FF_TT2.3 Skystar2.6c 1x160GB + 1x1TB lautloser Rechner weil er im Keller steht. :D


    2x MediaMVP als Client+VOMPServer-Plugin


    TestVDR AMD Goede 1750 mit TT1.5 Easyvdr 06.*
    Bootet auf einer komischen Weise
    PicoPSU als NT

  • Nochmal Danke für die weitergehenden Eräuterungen. Werde bestimmt eines der beiden Scripte einsetzen, muß aber erstmal Zeit zur "Einarbeitung" freischaufeln.

  • Zitat

    Original von rdnzl
    Nochmal Danke für die weitergehenden Eräuterungen. Werde bestimmt eines der beiden Scripte einsetzen, muß aber erstmal Zeit zur "Einarbeitung" freischaufeln.


    Einarbeitung? Weichei!
    Natuerlich probiert man am 'lebenden' Objekt! :o)

  • Hi,


    der thread ist ja schon etwas älter, aber das Thema immer wieder aktuell.
    Für das Problem, von einer Partition/Festplatte/Rchner auf eine andere Umzuziehen, und dabei alle Files, die eventuell über video0, video1 ... videoN
    verteilt sind zusammen zu halten/bekommen gibts eigentlich eine ganz einfache Lösung. Der wunderschöne "tar" befehl ;o)
    Also wenn man z.B. alle video0 bis videoN auf eine neue Festpatte umziehen will in ein einzelnes video0 dann mounte man die neue Festplatte z.B auf /mnt/video0_Neu. Dann wechselt man in dieses Verzeichnise "cd /mnt/vide0_Neu" und jetzt kommt der etwas längere befehl:
    (cd /Pfad/zum/alten/video0; tar chvf - .)| tar xvf -


    Und dann Kaffeetrinken gehn, am besten 3 Tassen :sleep je nach Datenmenge
    Ok; kurz eine Erklärung was da abläuft.
    die Klammer (cd ...) sorgt dafür, dass der "cd" Befehl ausgeführt wird und man also in das zu kopierende Verzeichnis video0 wechselt, der "tar" Befehl im Anschluss beginnt damit ein Archiv des aktuellen Directories jetzt "video0", das alte ;o), zu erstellen, und zwar mit allen Unterverzeichnissen, und bei Links wird das tatsächliche File berücksichtig (option h ). Nach dem Klammer zu springt die Shell wieder in das aktuelle Verzeichnis, in dem man den Befehl gestartet hat. Die Pipe "|" befördert alle Daten, die der "tar" Befehl eigentlich in ein Archiv-File schreiben würde direkt wieder in einen "tar" Befehl, der das Archiv wieder auspackt (option "x"), und zwar an der Stelle an der der Befehl gestartet wurde, als jetzt im neuen video0_Neu Verzeichnis:o)
    Wärend diese Befehlskette abläuft sieht man jedes File, das "archiviert" wird 2mal auf der Komandozeile, das liegt jeweils an der Option "v" im Tar-Befehl, die beim Ein- und Auspacken das File anzeigt. Man kann diese option also auch weglassen, aber ich sehe gern was so abläuft.
    Dies kann man natürlich auch mit einzelnen Unterordnern durchführen.


    Damit erspart man sich viele Scripte :]


    Gruß
    Hego

    VDR-Sever: ct-VDR 6 und vdrdevel 1.7.0, AthlonXP1600+,256MB RAM, 1.7TB HDD, DVB-S Technotrend 1.6
    VDR-Client:VDR-1.4.4,Sarge, VIA EP ML-6000EA Mini-ITX Motherboard 677MHz, 512MB RAM, 1050GB HDD, DVB-S Technotrend 1.6; Kernel 2.6.16-ct-1
    NFS-File-Server; openSuse10.2: Atholon 3400+, 1GB RAM, 4.0TB HD, :P
    Server: SuSE9.3, Kernel 2.6.11.4-21-7

  • Zitat

    Original von hego(cd /Pfad/zum/alten/video0; tar chvf - .)| tar xvf -


    Vorsicht: Der Parameter h sorgt dafür, dass Links verfolgt werden, das ist beim Umkopieren von video0 nicht unbedingt gewünscht.


    Gruß,
    ARK

    VDR
    ASUS A7N8X-X, AMD 2600+, 2 GB, 320 GB HD, Hauppauge DVB-S 1.3, Hauppauge Nova-S-Plus, Funktastatur
    Debian 4.0/Etch-Kernel 2.6.18-5-486
    c't-VDR 6.1 mit e-tobi 1.6.0 (neu gepatched ohne sortrecordings), acpi, vdradmin-am, burn, osdteletext, ffnetdev, audiorecorder, infosatepg, ...
    Client
    dbox2 (Sagem 2xI_C) mit Neutrino-Derivat

  • Ich weiss, um diesen Parmater "h" ging es mir ja gerade. Da die Eröffnung des threads darauf abzielte alle Dateien zusammen in einem Verzichnis zu haben, sozusagen in einer schönen großen video0-Partition ;o)
    Hab mich vielleicht nicht verständlich genug ausgedrückt :o(
    Gruß,
    Hego

    VDR-Sever: ct-VDR 6 und vdrdevel 1.7.0, AthlonXP1600+,256MB RAM, 1.7TB HDD, DVB-S Technotrend 1.6
    VDR-Client:VDR-1.4.4,Sarge, VIA EP ML-6000EA Mini-ITX Motherboard 677MHz, 512MB RAM, 1050GB HDD, DVB-S Technotrend 1.6; Kernel 2.6.16-ct-1
    NFS-File-Server; openSuse10.2: Atholon 3400+, 1GB RAM, 4.0TB HD, :P
    Server: SuSE9.3, Kernel 2.6.11.4-21-7

  • Zitat

    Original von ralf1970
    mvvideo sorgt im "consistency check" Modus dafür, dass Aufnahmen immer vollständig in einem Video-Directory zum liegen kommen. Als Basis gilt dabei das Video-Directory in dem 001.vdr liegt. Ansonsten kannst du damit auch geziehlt Aufnahmen von einem Video-Directory in ein anderes verschieben ...


    Das ist jedenfalls das Script mit dem ich meine 3TB hier unter Kontrolle halte. Eventuell hilft es dir ja weiter.


    Ralf


    Hi wie sind denn die genauen Parameter - wie muss ichs für den konsistenz check aufrufen ??
    Bei mir sind die Verzeichnisse /video0 und /video1
    Ich möchte auf jeder Platte jeweils nur 1 Verzeichnis mit allen Dateien haben.
    Also invo.. 001.VDR.... und nicht nur Links kreuz und quer.


    Würde das script dann gerne automatisch alsafter recording laufen lassen,um verteilte Daten zusammen zu ziehen.


    Grüße Magicdragon67

  • Das wäre die Variante:


    Code
    mvvideo /video0


    Weitere Parameter sind nur nötig um gezielt Aufnahmen von einer Platte auf eine andere zu verschieben.


    After recording ist aber nicht der richtige Platz dafür - das Script faßt nichts an, was sich innerhalb der letzten Zeit (eine Stunde oder so - ich müßte nachschauen) geändert hat. Also ein cron job um das einmal täglich zu machen wäre vermutlich angemessener.


    Ralf


    Edit: hab nachgeschaut - es faßt nur nichts an, was sich geändert hat, seitdem das Script gestartet wurde. In sofern ginge "after recording":


    Code
    mvvideo /video0/<PfadZurAufnahme


    Damit wird dann nur genau die Aufnahme angefaßt um die es gerade geht.

  • Hmmm das ist genau das, was ich gemacht habe.
    Ich probiere es mal gezielt mit einer zerstückelten Aufnahme.
    - After Recording wäre schon gut -


    Grüße Magicdragon67

  • Zitat

    Original von magicdragon67
    Hmmm das ist genau das, was ich gemacht habe.
    Ich probiere es mal gezielt mit einer zerstückelten Aufnahme.


    Das wäre gut - nicht zerstückelte Aufnahmen werden nämlich nicht angefaßt - die liegen ja schon vollständig auf einer Platte. Ach so, nur so als Hinweis - index.vdr wird nicht mit auf eine andere Platte verschoben. Das script faßt nur die eigentlichen Video-Dateien an.


    Ralf

  • Hi,


    ich hätte es gerne so, dass ALLE Dateien in einem Verzeichnis stehen.
    Ließe sich das machen ??.


    Hintergrung:


    Ich hab auf dem Server 2 Platten und wollte an nem 2. VDR die Aufnahmen ebenfalls sehen.
    Sobald ich aber auf ein Film gehe, dessen xxx.vdr daten auf der 2. Platte liegen, hab ich nur ein Link auf die 2.Platte also @001.vdr -> /video1/blabla/recxxxx/001.vdr


    Das wird aber von den 2.VDR nicht aufgelösst zu 192.168.x.x/video1/blbl/recxxx/001.vdr


    und somit kann der Film nicht abgepielt werden, da auf meinen 2. VDR natürlich kein /Video1 mit diesen Daten liegt.


    Grüße Magicdragon67

  • Hi,
    nein per NFS Freigabe:


    192.168.x.x:Video0 /nfs/vdr1/video0
    ln -s /nfs/vdr1/video0 /video0/Filme


    192.168.x.x:Video1 /nfs/vdr1/video1
    ln -s /nfs/vdr1/video0 /video1


    Da konnte ichs dann abspielen - ist ja auch klar - aber beim Aufnehmen gabs dann Müll - das ging nicht - ist mir nun auch klar, warum.


    Es wird der symlink von
    192.168.x.x :Video0 auf 192.168.x.x:video1
    nicht als solcher aufgelösst sondern nur als
    /video1/Filmxx/recxxxx.....
    also so, als ob der VDR mit einerplatte doch 2 Platten hätte.


    Kann ich den NFS-Server anweisen auch symlinks zu folgen ??


    Oder wäre es per SAMBA ne bessere Lößung ??


    Bin echt ratlos.


    Grüße Magicdragon67

Jetzt mitmachen!

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