[RFC] Definable standard directory for "tmpfs" Plugins?

  • Hallo Klaus,


    bezogen auf diesen Thread/Post: [xmltv2vdr] Kann nun mit "tmpfs" arbeiten ...


    kam der Vorschlag auf den bereits bestehenden Standard Verzeichnissen, Config-, Resource-, Cache-, VideoDirectory ein weiteres zu definieren, für Plugins die aus verschiedenen Gründen, IMHO alle durchweg sinnvoll, ein "tmpfs" (aka ram disk) für Runtime Daten nutzen oder um die Zugriffe auf die Disk zu minimieren, nennen wir es mal TmpfsDirectory?


    Plugins wie z.B. xmltv2vdr, osdteletext, ein zukünftiges epg2vdr etc. müssten dann nicht einzeln spezifisch ein Verzeichniss zugewiesen bekommen, sondern würden das aus dem VDR Service heraus übernehmen. Dort könnte dies Variable passend zum LinuxDerivat oder der VDR Distro definiert werden, FHS Standard hin oder her, es gibt wohl einige Spielarten, "/run/, "/var/run", "/tmp", /dev/shm" u.a.


    Natürlich muß dann noch geklärt werden ob die Plugins direkt in "--tmpfs" (nur ein Beispiel), also direkt in das TopLevel Verzeichnis schreiben oder eben Unterverzeichnisse anlegen müssen/können.


    Eine Bitte an alle, schlagt Euch bitte nicht wieder die Köppe hierfür ein ... :huh:


    Regards
    fnu

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Natürlich muß dann noch geklärt werden ob die Plugins direkt in "--tmpfs" (nur ein Beispiel) direkt in das TopLevel Verzeichnis schreiben oder eben Unterverzeichnisse anlegen müssen/können.


    Ich denke es wäre sinnig das genauso wie ConfigDirectory() und Co. zu handeln. Ohne Parameter landet es im Verzeichnis und mit Parameter "ConfigDirectory(PLUGIN_NAME_I18N)" legt der VDR ggf. das Unterverzeichnis an.


    BTW: Ich fänds auch sinnvoll. Ich habe bei mir auch ne Menge Extragebastel um diverse Plugins (osdteletext, weatherng, burn, radio, upnp, xmltv2vdr usw.) dazu zu bringen ins tmpfs zu schreiben.
    Mit einem TempDirectory() könnte da vieles automatisch laufen was jetzt noch manuelles Usergebastel benötigt.


    cu

  • Mit einem TempDirectory() könnte da vieles automatisch laufen was jetzt noch manuelles Usergebastel benötigt.


    Genau darum geht es. Und wenn es dann da wäre, würde sich sicher auch weitere sinnvolle Nutzungsvarianten ergeben ... also Bedarf wecken ... :)

    HowTo: APT pinning

    2 Mal editiert, zuletzt von fnu ()

  • Wenn man ConfigDirectory(PLUGIN_NAME_I18N) aufruft um den Pfad zum eigenen Konfigverzeichnis zu erfahren, dann legt der VDR das Verzeichnis an wenn es noch nicht existiert.


    TempDirectory() könnte es ja analog handhaben. D.h. nach dem Aufruf von TempDirectory(<subdir>) kann das Plugin davon ausgehen das das Verzeichnis existiert und das es dort drin Schreibrechte hat.


    cu

  • Moin!


    Wenn TempDirectory eingeführt werden sollte, dann bin ich auch dafür, es wie ConfigDirectory zu handhaben und ein Unterverzeichnis pro Plugin anzulegen.
    Wenn sonst zwei Plugins zufällig den gleichen Dateinamen benutzen, gäbe es Probleme.


    Lars.

  • Wenn TempDirectory eingeführt werden sollte, dann bin ich auch dafür, es wie ConfigDirectory zu handhaben und ein Unterverzeichnis pro Plugin anzulegen.


    Streng genommen lautet die Regel bei mehr als einer Datei ein Unterverzeichnis (=PLUGIN_NAME_I18N) zu nutzen. Bei einer Datei hingegen das Hauptverzeichnis.


    Wobei ich es besser fände wenn generell immer ein Unterverzeichnis genutzt wird (auch bei ConfigDirectory()). Erst mal gibts die die angesprochenen Namenskonflixte und zweitens ist es einfach übersichtlicher.


    Edit: Gegen die Namenskonflike schlägt der VDR vor das der Name der Datei PLUGIN_NAME_I18N entspricht. Da halten sich die Plugins aber nicht dran.


    [PLUGINS.html]



    cu


  • Zunächst mal die Frage: warum setzt man nicht einfach TMP auf den entsprechenden Pfad und benutzt das?
    Immerhin wäre das doch dafür gedacht, oder?


    Klaus

  • Immerhin wäre das doch dafür gedacht, oder?


    Jein, "/tmp" ist schon dafür gedacht, aber nicht zwingend ein tmpfs, also ein Laufzeit Dateisystem im RAM des Rechners. Es gibt Derivate da ist das per se ein tmpfs, das ist aber kein übergreifender Standard, obwohl bei den vielen VDR Nutzern manuell umgesetzt.


    Vielversprechender finde ich "/var/run", FHS konform und bei Ubuntu, Debian ab Wheezy und ArchLinux auch als tmpfs umgesetzt, in der Regel nach "/run" montiert, verlinkt nach "/var/run". Hier ist der Name vmtl. nicht ohne Grund auch Programm für Runtime Daten ... :)


    Mir reicht tolle Umsetzung bei xmltv2vdr, aber wie es halt so ist, will jeder es konfigurieren können, auch wenn "/var/run/vdr" oder "/tmp" für fast alle Nutzer den Zweck erfüllt, ist wohl zu einfach ... ;) ... aber es gibt auch noch andere Plugins, für alle muss man parallel hier irgendwas machen. Daher Copperheads Idee das evtl. zentral für Plugins vorzudefinieren, die Runtime Daten erzeugen, dies dann sicher oder auch nicht ...


    Regards
    fnu

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Wenn man das ganze wirklich "TempDirectory" nennen würde, und da wir uns nunmal auf einer Unix-Plattform bewegen, schreit das ja schon fast nach /tmp. Das haben auch viele Distributionen auf einer Ramdisk liegen.


    Gegen /var/run spricht einerseits, dass dieser Bereich eigentlich für PID-Files gedacht ist (zumindest verstehe ich so den FHS) und zum anderen glaube ich mich zu erinnern, dass man dort als User garnicht schreiben kann. Zumindest war das bis vor kurzem noch so üblich, dass dort nur "root" etwas ablegen durfte. Man müsste also beim Booten dort ein Verzeichnis hinbasteln in das der User "vdr" auch schreiben kann.


    Ich suche schon die ganze Zeit nach dem tieferen Sinn von /dev/shm. Richtig festlegen will sich da wohl keiner. Wenn es aber da ist, dann ist es zu 100% ein tmpfs und an vielen Stellen ist auch etwas von "für Performancesteigerung" zu lesen. Möglicherweise wäre es eine Option einfach zu prüfen ob /dev/shm da ist. Wenn ja, dann das nehmen. Wenn nein, dann auf /tmp ausweichen. Mir scheint /dev/shm auf jedem Fall sinnvoller zu sein als /var/run.


    Und was die Ablage von Dateien in temporären Verzeichnissen angeht. Da gibt es auch bereits Festlegungen, bzw. Hilfsfunktionen um dies zu tun:
    http://linux.die.net/man/3/mkdtemp
    http://linux.die.net/man/3/mkstemp

  • Letztenendes ist ja Thema der Diskussion das man dem VDR sagen kann, wo dieses Verzeichnis ist. Nicht Sinn/Unsinn der verschiedenen Verzeichnisse.


    Wenn man unbedingt wollte, könnte man auch noch diskutieren, ob Plugins Daten die nicht persistent sein müssen überhaupt wegschreiben müssen. So könnte osdteletext die Datein "einfach" im Speicher halten. Auf der anderen Seite ist es Realität das viele ein solches Verzeichnis verwenden und die Umsetzung bzw der Bedarf zwischen Arbeitsspeichernutzung vs. Festplattennutzung ist höchst unterschiedlich. Es gibt viele Punkte für oder gegen verschiedene Verzeichnisse. Manch einer hat /var/run auf wenige MB begrenzt, ein Verzeichnis in /dev/ zu benutzen klingt auch sehr befremdlich, in der Tat liegt dieses Verzeichnis bei Debian und Ubuntu zumindest in /run/ (/run/shm). Nach FHS ist /var/run "Run-time variable data" das sagt nichts über PID file only Nutzung. Bei genauerer Betrachtung gefiele mir im Moment /run/shm/vdr/ + Unterverzeichnisse sogar besser. Aber genug davon - das ganze ist hier doch eher OT und sollte bei Interesse anderswo diskutiert werden.


    Ich wäre dafür das man der Realität Rechnung trägt und auch dem Fakt das ein Konsens bezgl des Verzeichnisses distributionübergreifend nicht vorhanden ist.

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • Wenn man das ganze wirklich "TempDirectory" nennen würde


    Eher nein, da es tatsächlich um die Funktion eines Laufzeit Dateisystem im Arbeitsspeicher geht und nicht um ein X-beliebiges Directory für irgendwelche temporäre Daten, was IMHO btw. auch schon definiert ist "CacheDirectory" ...


    Gegen /var/run spricht einerseits, dass dieser Bereich eigentlich für PID-Files gedacht ist (zumindest verstehe ich so den FHS)

    Letztenendes ist ja Thema der Diskussion das man dem VDR sagen kann, wo dieses Verzeichnis ist. Nicht Sinn/Unsinn der verschiedenen Verzeichnisse.


    FullAck, genau darum geht es, weil partout keiner was akzeptieren will was ein anderer mal definiert hat, auch wenn es hundertmal sinnvoll ist und vmtl. genauso von der Mehrheit am Ende genutzt wird ... :rolleyes:


    Naja, und bei den LinuxDerivaten ist man sich hier auch mehr als uneinig ... :whistling:


    Regards
    fnu

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Wenn man das ganze wirklich "TempDirectory" nennen würde, und da wir uns nunmal auf einer Unix-Plattform bewegen, schreit das ja schon fast nach /tmp. Das haben auch viele Distributionen auf einer Ramdisk liegen.


    Das mag sein, dass das viele Distributionen tun, wenn das so ist, dann ist das eine schlecht Idee. Es gibt Programme die Dateien erheblicher Größe nach /tmp schreiben (ghostscript z.B.). Die Verhalten sich nicht unbedingt gut, wenn kein Platz mehr da ist. Für eine VDR-Distribution mag das eine gangbare Lösung sein, für eine generell purpose Distribution eher nicht.


    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

  • Letztenendes ist ja Thema der Diskussion das man dem VDR sagen kann, wo dieses Verzeichnis ist. Nicht Sinn/Unsinn der verschiedenen Verzeichnisse.


    Dem VDR brauchst du das garnicht sagen, da der VDR selbst davon eigentlich garnichts wissen will. Es geht wohl eher um Plugins, die aus welchem Grund auch immer ein tmpfs nutzen wollen.


    Zitat


    Wenn man unbedingt wollte, könnte man auch noch diskutieren, ob Plugins Daten die nicht persistent sein müssen überhaupt wegschreiben müssen. So könnte osdteletext die Datein "einfach" im Speicher halten.


    Ja, das könnte man. Gerade beim osdteletext-Plugin fände ich sowas sehr praktisch.



    Das mag sein, dass das viele Distributionen tun, wenn das so ist, dann ist das eine schlecht Idee.


    Bei Archlinux ist /tmp eine Ramdisk und mir wäre neu, dass da jemals jemand Probleme mit gemeldet hätte. Zudem gibt es ja auch noch /var/tmp für den Fall, dass man sicherstellen will, auch auf Platte zu schreiben. Der Bereich /var/tmp muss laut FHS nämlich auch einen Reboot überleben.


    Zum Thema /dev/shm:
    http://git.kernel.org/cgit/lin…filesystems/tmpfs.txt#n35

  • Natürlich muss der VDR davon nichts wissen - aber der VDR ist ja im Prinzip der Plugin-Integrator/Dreh und Angelpunkt. Zentrale Definitionen kann man dort machen.


    EDIT1:
    Denkbar wäre auch das: https://github.com/lucianm/vdr…tes/blob/master/README.md - aber das ist noch sehr theoretisch oder ?


    EDIT2:
    Nochmal @Mreimer: Es geht nicht darum welches Veruzeichnis , es geht darum wie man es angibt.

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

    3 Mal editiert, zuletzt von steffen_b ()

  • Der Bereich /var/tmp muss laut FHS nämlich auch einen Reboot überleben.


    Mach's doch bitte nicht wieder komplizierter als es ist und dreh Kreise drum rum ... 8o


    Wenn man es als Variable definieren könnte, könnte jeder, auch Du, es dahin legen wo er möchte oder es das LinuxDerivat hergibt, FHS rauf und runter. Wo es dann richtig liegen sollte, darüber kannst Du später eine Abhandlung schreiben ... ;D ... Es gibt IMHO auch keinerlei Anforderung das diese Daten überleben sollen, darum sollen sich weiter die Plugins kümmern.


    Das Thema ist eine Idee die sehr konkret auf den Punkt gebracht wird, eine Variable, die erlaubt ein Verzeichnis des Typus "tmpfs", also ein flüchtiges nur zur Laufzeit vorhandenes Directory für die komplette VDR Installation zu definieren, auf welche sich dann alle Plugins die es benötigen beziehen. Wenn diese Variable nicht definiert ist, gibt es diese Definition schlicht nicht, auch keine Default Definition, also das Verhalten wie bisher.


    Regards
    fnu


    PS.: Evtl. ergibt sich ja sogar ein Sinn für den VDR selbst, keine Ahnung vllt. epg.data ...

    HowTo: APT pinning

    4 Mal editiert, zuletzt von fnu ()

  • Eher eine schlechte Idee. Sonst hat man nach einem Neustart keine EPG-Daten mehr, bis diese eben neugeladen wurden.


    Klar, wenn man nix ändert, aber wenn man es umsetzt wie z.B. bei der "epg.db" von "xmltv2vdr", geht die Datei nicht verloren ... wollte aber eigentlich nur das Querdenken anschubsen ... ;)

    HowTo: APT pinning

  • Eher eine schlechte Idee. Sonst hat man nach einem Neustart keine EPG-Daten mehr, bis diese eben neugeladen wurden.


    nicht unbedingt.
    epg.data und channels.conf halte ich seit Längerem im ramlog-tmpfs. Dadurch wirds automatisch gesichert und auch zurück geschrieben.

Jetzt mitmachen!

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