Einfache NFS-Automounts für den VDR

  • Hallo,
    ich bin über eine nette Funktion von autofs5 gestolpert, die vermutlich wenig bekannt sein dürfte, aber das Einbinden von (nicht zwangsläufig immer verfügbaren) NFS-Freigaben (auch bei der Nutzung mit dem VDR) auch ohne zusätzliche Dienste wie Avahi deutlich erleichtert: https://wiki.archlinux.org/ind…Autofs#NFS_Network_mounts
    Das schöne an dieser Methode ist, dass der Konfigurationsaufwand minimal ist. Man muss nur in der auto.master eine Zeile einfügen, die definiert wo die NFS-Freigaben gemountet werden sollen - in diesem Fall unter /net (der Ordner muss natürlich existieren):

    Code
    1. # NOTE: mounts done from a hosts map will be mounted with the
    2. # "nosuid" and "nodev" options unless the "suid" and "dev"
    3. # options are explicitly given.
    4. #
    5. /net -hosts --timeout=60


    Nach einem Neustart von autofs stehen einem damit alle NFS-Freigaben im Netzwerk zur Verfügung, sobald der Hostname (Auflösung über DNS oder die /etc/hosts) oder die IP des Gegenübers bekannt ist.
    Wenn der Server homer z.B. die Freigabe /media/Archiv exportiert, ist sie im Verzeichnis /net/homer/media/Archiv direkt auf dem Client erreichbar, wenn man dieses betritt (wird von autofs automatisch im Hintergrund gemountet).


    Jetzt braucht man noch einen Symlink aus dem Aufnahmeverzeichnis des VDR zum gewünschten Freigabeordner:

    Code
    1. ln -s /net/homer/media/Archiv /srv/vdr/video.00/Archiv


    Und sobald der VDR sein Aufnahmeverzeichnis aktualisiert, während der Server mit der Freigabe verfügbar ist, zeigt er die verlinkte Freigabe einfach mit an, wenn sie Aufnahmen enthält.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich habe mal ein bisschen weiter gespielt um zu einer bequemeren Lösung zu kommen, die die Avahi-Announcements wie sie in yaVDR und AFAIK auch MLD verwendet werden in Verbindung mit den autofs NFS-Mounts zu nutzen:
    https://github.com/seahawk1986/arch-avahi-linker
    Das ganze ist an die Funktion des vdr-addon-avahi-mounter angelehnt (ohne die Besonderheiten für die Sundtek-Sticks). Mir war dabei wichtig möglichst auf statische Pfade im Code zu verzichten und Unterkategorien sortiert zu verlinken, um in XBMC einen einzigen Pfad für jeden Medientyp angeben zu können. Außerdem können beliebige Subtypes genutzt werden. Avahi-Announcements mit dem Subtype "vdr" werden im Aufnahmeverzeichnis des VDR abgelegt. Wichtig ist das Skript über SIGINT zu beenden, dann kann es die angelegten Links aufräumen (die Ordner bleiben erhalten).


    /etc/avahi-linker/default.cfg:


    Ein Avahi-Announcement sieht dann z.B. so aus:
    /etc/avahi/services/video-series.service

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    The post was edited 4 times, last by seahawk1986 ().

  • Ich habe mal ein bisschen weiter gespielt um zu eine bequemeren Lösung zu kommen, die die Avahi-Announcements wie sie in yaVDR und AFAIK auch MLD verwendet werden in Verbindung mit den autofs NFS-Mounts zu nutzen:
    https://github.com/seahawk1986/arch-avahi-linker

    Danke für den Linker. Er funktioniert in Zusammenhang mit autofs unter Archlinux sehr gut. MLD verwendet ebenfalls autofs5. Daher werde ich ein Addon erstellen und den avahi-mounter damit ersetzen.


    Gruß
    wino

    MSI H55M-E33 |Intel Core i3 530| 4 GB RAM | TT DVB-S2 6400 | Ubuntu 12.04 | Kernel-3.5.0-28 | VDR-2.2.0 | v4l-dvb| eigene Distri.
    ProLaint: Ubuntu Server 12.04.5 auf HP ProLiant ML330 G6, Xeon E5506 2.13-GHz, 16GB ECC DDR3, Digital Devices MaxS8, Samsung 840 EVO 120GB, 4x WD Red WD30EFRX 3TB in HP P410 Raid6, Zotac GT730 1GB

  • Jetzt sollten auch großgeschriebene Subtypen in der Konfig-Datei möglich sein.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Jetzt sollten auch großgeschriebene Subtypen in der Konfig-Datei möglich sein.

    Klappt leider noch nicht.

    MSI H55M-E33 |Intel Core i3 530| 4 GB RAM | TT DVB-S2 6400 | Ubuntu 12.04 | Kernel-3.5.0-28 | VDR-2.2.0 | v4l-dvb| eigene Distri.
    ProLaint: Ubuntu Server 12.04.5 auf HP ProLiant ML330 G6, Xeon E5506 2.13-GHz, 16GB ECC DDR3, Digital Devices MaxS8, Samsung 840 EVO 120GB, 4x WD Red WD30EFRX 3TB in HP P410 Raid6, Zotac GT730 1GB

  • Kannst du mal die Beispielkonstellation posten?
    Bei mir klappt es, wenn du sowas willst

    Code
    1. picture -> Bilder
    2. audio -> Musik
    3. video -> Video


    Muss die Konfig-Datei entsprechend aussehen:

    Code
    1. [localdirs]
    2. Musik = /srv/audio
    3. Video = /srv/video
    4. Bilder = /srv/picture


    Für die per Avahi announcierten Freigaben muss der Subtyp und die Kategorie noch entsprechend geschrieben werden, z.B.


    Das ergibt dann:

    Code
    1. $ tree -d -L 2 /media/
    2. /media/
    3. ├── Bilder
    4. │ └── local -> /srv/picture
    5. ├── Musik
    6. │ └── local -> /srv/audio
    7. └── Video
    8. ├── local -> /srv/video
    9. └── Serien
    10. └── VDR(nfs) -> /net/VDR/srv/files


    Evtl. meinst du die Kategoriebasierte Übersetzung aus dem avahi-mounter? Die wollte ich eigentlich zugunsten der Flexibilität vermeiden, aber wenn du willt baue ich noch die Möglichkeit ein für bestimmte Kategorien einen alternativen Text zu nutzen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Kannst du mal die Beispielkonstellation posten?.


    Hier meine default.cfg


    Das sieht hier so aus:


    Quote

    Evtl. meinst du die Kategoriebasierte Übersetzung aus dem avahi-mounter? Die wollte ich eigentlich zugunsten der Flexibilität vermeiden, aber wenn du willt baue ich noch die Möglichkeit ein für bestimmte Kategorien einen alternativen Text zu nutzen.

    Ja, das hatte ich gemeint.

    MSI H55M-E33 |Intel Core i3 530| 4 GB RAM | TT DVB-S2 6400 | Ubuntu 12.04 | Kernel-3.5.0-28 | VDR-2.2.0 | v4l-dvb| eigene Distri.
    ProLaint: Ubuntu Server 12.04.5 auf HP ProLiant ML330 G6, Xeon E5506 2.13-GHz, 16GB ECC DDR3, Digital Devices MaxS8, Samsung 840 EVO 120GB, 4x WD Red WD30EFRX 3TB in HP P410 Raid6, Zotac GT730 1GB

  • So sieht es aus wenn ein Rechner verbunden ist:


    Zu musik -> local kommmt noch audio von dem betreffenden Rechner. Bei bilder -> local und picture remote Rechner ebenso.

    MSI H55M-E33 |Intel Core i3 530| 4 GB RAM | TT DVB-S2 6400 | Ubuntu 12.04 | Kernel-3.5.0-28 | VDR-2.2.0 | v4l-dvb| eigene Distri.
    ProLaint: Ubuntu Server 12.04.5 auf HP ProLiant ML330 G6, Xeon E5506 2.13-GHz, 16GB ECC DDR3, Digital Devices MaxS8, Samsung 840 EVO 120GB, 4x WD Red WD30EFRX 3TB in HP P410 Raid6, Zotac GT730 1GB

    The post was edited 1 time, last by wino ().

  • Ok, ich habe die gettext-Unterstützung mal hinzugefügt.
    Man muss sie in der /etc/avahi-linker/default.cfg bei den Optionen aktivieren:

    Code
    1. [options]
    2. use_i18n = True


    Dann bekommt man mit einem yaVDR 0.5 als Gegenüber so etwas:

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    The post was edited 1 time, last by seahawk1986 ().

  • Ok, ich habe die gettext-Unterstützung mal hinzugefügt.

    Danke, nun funktioniert avahi-linker perfekt!

    MSI H55M-E33 |Intel Core i3 530| 4 GB RAM | TT DVB-S2 6400 | Ubuntu 12.04 | Kernel-3.5.0-28 | VDR-2.2.0 | v4l-dvb| eigene Distri.
    ProLaint: Ubuntu Server 12.04.5 auf HP ProLiant ML330 G6, Xeon E5506 2.13-GHz, 16GB ECC DDR3, Digital Devices MaxS8, Samsung 840 EVO 120GB, 4x WD Red WD30EFRX 3TB in HP P410 Raid6, Zotac GT730 1GB

  • Ich habe eine Frage: Kann ich das Paket so verwenden das "statische" NFS shares (NAS) automatisch gemounted werden sobald sie verfügbar sind (VDR startet -> WOL NAS).
    Falls ja wie in etwas müsste die Konfiguration dafür aussehen? Ich möchte gerne das videodir mounten, das könnten sich dann mehrere VDR´s teilen.


    VG

    DVB Server Triax TSS400 SAT>IP Server
    VDR Server Synlogy Diskstation DS214play, debian chroot headless streaming Sever, VDR 2.1.7 mit vtuner/satip und vdr-plugin-satip
    VDR Client AMD X2 250, 4GB DDR3, G210 Passiv, 64GB SSD, Antec Fusion Micro iMON, Samsung LE 40 A659, Teufel E300, Logitech Harmony, yaVDR0.5 streamdev-client, (satip & USB DVBSKY S960 fallback)
    VDR Client Raspberry PI B+, raspian wheezy, VDR 2.1.6 mit RpiHDDevice, streamdev-client
    V/A Clients Windows PC's, Tablet, Smartphones via Streamdev or SatIP (UPNP)

  • Der avahi-linker ist nicht dafür ausgelegt das Aufnahmeverzeichnis des VDR zu mounten und die "statischen" Mounts sind hauptsächlich dabei, weil der avahi-mounter das auch konnte - die werden wie beim Vorgänger nur beim Start des Programms berücksichtigt (also eingebunden, falls die Freigabe am Server zu dem Zeitpunkt erreichbar ist).
    Der Fokus liegt darauf über avahi angekündigte Verzeichnisse dynamisch einzubinden, d.h. ein Rechner mit dem avahi-linker muss nicht für jeden einzelnen Rechner im Netzwerk vorkonfiguriert werden, sondern bindet einfach das als Symlinks im Aufnahmeverzeichnis ein, was andere Geräte im LAN über Avahi an NFS-Freigaben ankündigen. Mit dem hide-first-recording-level Patch von mini73 lassen sich die Aufnahmen dann auch ohne die ggf. störende zusätzliche Unterordner-Ebene darstellen.


    Bei einem zentralen NAS gibt es ja normalerweise keine großen Änderungen - da würde ich eine statische Konfiguration nutzen, also den Server per WOL wecken (ist ein Dreizeiler mit Upstart) und dann den Start des VDR so lange verzögern, bis die Freigabe über das Aufnahmeverzeichnis gemountet ist - IIRC gab es hier im Forum auch schon Beispiel-Skripte dafür.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo,


    danke für die Erklärung. Es gibt ja auch ein avahi Paket für die Diskstation. Wobei ich die shares auf dem vdr nicht sehe trotz der Freigabe wie auch hier im Forum beschrieben. Brauch AVAHI noch einen Port? Damit käme ich dem Szenario ja schon näher. Schade ist das das Aufnahmeverzeichnis nicht direkt gemoutet werden kann. Start verzögern möchte ich nicht, das dauert schon ein bisschen bis die DS hoch kommt. Muss das alles nochmal überdenken...

    DVB Server Triax TSS400 SAT>IP Server
    VDR Server Synlogy Diskstation DS214play, debian chroot headless streaming Sever, VDR 2.1.7 mit vtuner/satip und vdr-plugin-satip
    VDR Client AMD X2 250, 4GB DDR3, G210 Passiv, 64GB SSD, Antec Fusion Micro iMON, Samsung LE 40 A659, Teufel E300, Logitech Harmony, yaVDR0.5 streamdev-client, (satip & USB DVBSKY S960 fallback)
    VDR Client Raspberry PI B+, raspian wheezy, VDR 2.1.6 mit RpiHDDevice, streamdev-client
    V/A Clients Windows PC's, Tablet, Smartphones via Streamdev or SatIP (UPNP)

  • Siehst du das avahi-Announcement des NAS für die Freigabe am VDR mit avahi-browse? Falls ja: was steht im Log des avahi-linker bzw. avahi-mounter?

    Brauch AVAHI noch einen Port?

    Siehe https://wiki.ubuntuusers.de/Avahi/#Avahi-und-Netzwerkports

    Schade ist das das Aufnahmeverzeichnis nicht direkt gemoutet werden kann.

    IMHO ist das ziemlich riskant ein für den VDR essentielles Verzeichnis im laufenden Betrieb auszutauschen - was machst du z.B., wenn eine Aufzeichnung startet, bevor der Mount der NFS-Freigabe erfolgt ist?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Berechtigtes Argument. Zumal die Aufnahmen auf dem Server stattfinden sollen.
    Zu avahi: avahi-browse -apt
    Findet keine Announcements. Auf der NAS habe ich zwischenzeitlich die Firewall komplett abgeschaltet, auch ohne Erfolg.
    Auch
    netstat -tulpen | grep 5353
    oder
    netstat -tulpen | grep ava


    bringt mir keine Ergebnisse.
    Als würde das Paket nicht laufen. Tut es laut Paketmanager aber. Zugriff auf die NAS vom Client per nfs ohne Probleme... ?(

    DVB Server Triax TSS400 SAT>IP Server
    VDR Server Synlogy Diskstation DS214play, debian chroot headless streaming Sever, VDR 2.1.7 mit vtuner/satip und vdr-plugin-satip
    VDR Client AMD X2 250, 4GB DDR3, G210 Passiv, 64GB SSD, Antec Fusion Micro iMON, Samsung LE 40 A659, Teufel E300, Logitech Harmony, yaVDR0.5 streamdev-client, (satip & USB DVBSKY S960 fallback)
    VDR Client Raspberry PI B+, raspian wheezy, VDR 2.1.6 mit RpiHDDevice, streamdev-client
    V/A Clients Windows PC's, Tablet, Smartphones via Streamdev or SatIP (UPNP)

  • Hast du eventuell ein unpassendes Benennungsschema für deine Domain wie <hostname>.local ? Schau mal ins Log des avahi-daemon auf dem yaVDR, vielleicht findet man da Hinweise.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • So wie es aussieht läuft avahi auf der Diskstation gar nicht, trotz des Pakets.
    3rdparty.* Dateien wir hier beschrieben finde ich garnicht. Auch die Ursprüngliche Paketquelle scheint nicht mehr zu existieren.


    Ich denke ich werde es jetzt nochmal mit statischen mounts probieren das sollte ja auch ohne avahi announcement funktionieren. NFS geht ja auch..

    DVB Server Triax TSS400 SAT>IP Server
    VDR Server Synlogy Diskstation DS214play, debian chroot headless streaming Sever, VDR 2.1.7 mit vtuner/satip und vdr-plugin-satip
    VDR Client AMD X2 250, 4GB DDR3, G210 Passiv, 64GB SSD, Antec Fusion Micro iMON, Samsung LE 40 A659, Teufel E300, Logitech Harmony, yaVDR0.5 streamdev-client, (satip & USB DVBSKY S960 fallback)
    VDR Client Raspberry PI B+, raspian wheezy, VDR 2.1.6 mit RpiHDDevice, streamdev-client
    V/A Clients Windows PC's, Tablet, Smartphones via Streamdev or SatIP (UPNP)