Der VDR-User auf einem Client-System kann seine Aufnahmen direkt auf einem entfernten Storage-Server ablegen, ohne dass eine Passworteingabe erforderlich ist. Auf dem Host-System werden hierfür zunächst die erforderlichen Benutzerkonten sowie die Verzeichnisse mit den korrekten Besitz- und Zugriffsrechten erstellt. Anschließend wird der SSH-Zugang für den VDR-User eingerichtet, inklusive einer Schlüssel-basierten Authentifizierung, um eine sichere, passwortlose Verbindung zu ermöglichen. Auf dem Client wird Autofs in Verbindung mit SSHFS konfiguriert, sodass das Videoverzeichnis des VDR automatisch auf den entfernten Speicher gemountet wird. Dadurch kann der VDR-Dienst seine Aufnahmen direkt auf dem Storage-Server ablegen. Die Schreibrechte sind dabei ausschließlich dem VDR-User zugewiesen, während andere Benutzer nur lesenden Zugriff erhalten, sofern erforderlich.
Ein wesentlicher Vorteil dieser Lösung gegenüber der Nutzung eines vom Host durchgereichten virtuellen Verzeichnisses (z. B. virtfs in Proxmox) besteht darin, dass Storage und VDR-Server nicht auf demselben Host liegen müssen. Dies ermöglicht eine flexible Trennung von Speicher- und Verarbeitungsressourcen sowie eine bessere Skalierbarkeit und Ausfallsicherheit des Systems.
1. Vorbereitungen auf dem Host (Storage-Server)
- Einen Benutzer
vdr-storageanlegen, der die Aufnahmen verwalten darf: -
1sudo adduser --system --group vdr-storage
- Verzeichnis für VDR-Aufnahmen erstellen und Berechtigungen setzen:
-
123sudo mkdir -p /mnt/fstab_UUID_System_storage/vdr_recdirsudo chown -R vdr-storage:vdr-storage /mnt/fstab_UUID_System_storage/vdr_recdirsudo chmod 775 /mnt/fstab_UUID_System_storage/vdr_recdir
SSH-Zugang für denvdr-User des Clients einrichten:- Öffentlichen Schlüssel des Clients unter
/root/.ssh/authorized_keysvonvdr-User auf Client eintragen. - Sicherstellen, dass SSH-Zugang ohne Passwort möglich ist.
- Öffentlichen Schlüssel des Clients unter
- Optional: Prüfen, ob Schreibrechte funktionieren:
-
12sudo -u vdr-storage touch /mnt/fstab_UUID_System_storage/vdr_recdir/testfilerm /mnt/fstab_UUID_System_storage/vdr_recdir/testfile
2. Vorbereitungen auf dem Client
- SSH-Key erzeugen oder vorhandenen Key nutzen, falls noch nicht vorhanden:
-
1sudo -u vdr ssh-keygen -f /root/.ssh/id_ed25519 -N "
- Public Key (
id_ed25519.pub) auf den Host in/root/.ssh/authorized_keyseintragen. - Autofs installieren und aktivieren:
-
1234apt updateapt install autofssystemctl enable autofssystemctl start autof
- Autofs-Konfiguration anpassen:
- Datei
/etc/auto.mounterstellen oder bearbeiten:
1vdr_recdir -fstype=fuse.sshfs,rw,nodev,allow_other,default_permissions,uid=106,gid=106,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,follow_symlinks,transform_symlinks,IdentityFile=/root/.ssh/id_ed25519 :vdr-storage@<HOST_IP>:/mnt/fstab_UUID_System_storage/vdr_recdir uid=106,gid=106entspricht dem lokalenvdr-User.
- Datei
- Autofs neu laden:
1systemctl restart autofs - Mount testen:
123ls -ld /mnt/autofs/vdr_recdirsudo -u vdr touch /mnt/autofs/vdr_recdir/testfilerm /mnt/autofs/vdr_recdir/testfile
3. VDR auf dem Client konfigurieren
- Symbolischen Link für das Videoverzeichnis setzen:
-
12ln -s /mnt/autofs/vdr_recdir /var/lib/videochown -h vdr:vdr /var/lib/vide
- VDR-Dienst starten und prüfen:
-
123systemctl enable vdrsystemctl start vdrsystemctl status vdr
- Sicherstellen, dass Aufnahmen vom
vdr-User auf den entfernten Storage geschrieben werden können.
4. Autofs‑Mount beim Systemstart
Beim Systemstart kann es vorkommen, dass der VDR‑Dienst versucht, auf das entfernte SSHFS‑Verzeichnis unter /mnt/autofs/vdr_recdir zuzugreifen, bevor Autofs den Mount erstellt hat. Da Autofs Verzeichnisse erst on demand mountet, ist der Mount beim direkten Start des VDR‑Dienstes möglicherweise noch nicht vorhanden. In diesem Fall schlägt der Dienst fehl, da er keinen Schreibzugriff auf das Videoverzeichnis hat.
Um sicherzustellen, dass der Mount verfügbar ist, bevor VDR startet, kann ein Hilfsskript eingesetzt werden. Dieses prüft wiederholt, ob der Mount aktiv ist, und löst bei Bedarf den Zugriff aus, um Autofs zum Mounten zu bewegen. Sobald der Mount bereitsteht, wird der VDR‑Dienst gestartet oder neu gestartet. Alle Statusmeldungen werden über Syslog protokolliert, sodass sie in den VDR‑Logs (journalctl -t vdr) sichtbar sind.
Logeinträge, die auf einen fehlerhaften VDR‑Start hinweisen, entstehen typischerweise, weil das Verzeichnis beim Start des VDR‑Dienstes noch nicht gemountet ist. Aus diesem Grund empfiehlt es sich, den automatischen Start des VDR‑Dienstes zu deaktivieren und den Dienst stattdessen über das beschriebene Skript zu starten
Datei: /usr/local/bin/trigger-vdr-mount.sh
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#!/bin/bash # Prüft, ob der Autofs-Mount aktiv ist, und startet bei Bedarf VDR neu. MOUNTPOINT="/mnt/autofs/vdr_recdir" TAG="vdr" log() { logger -t "$TAG" "$1" } log "Autofs-Check: Prüfe Mount $MOUNTPOINT" # Prüfen, ob der Mount bereits aktiv ist if mountpoint -q "$MOUNTPOINT"; then log "Autofs-Check: Mount bereits aktiv, kein Neustart notwendig" exit 0 fi # Solange der Mount nicht existiert, Zugriff auslösen, um Autofs zu starten while true; do log "Autofs-Check: Mount noch nicht aktiv, triggere Autofs" ls "$MOUNTPOINT"/* 2>&1 | logger -t "$TAG" if mountpoint -q "$MOUNTPOINT"; then log "Autofs-Check: Mount jetzt aktiv" break fi sleep 1 done sleep 3 log "Autofs-Check: Neustart von VDR" systemctl restart vdr 2>&1 | logger -t "$TAG" log "Autofs-Check: Skript beendet" exit 0 |
Funktionsweise:
- Das Skript prüft mit
mountpoint -q, ob das Zielverzeichnis bereits gemountet ist. - Falls der Mount nicht vorhanden ist, wird wiederholt ein Zugriff auf das Verzeichnis ausgelöst, wodurch Autofs den Mount vornimmt.
- Nach erfolgreichem Mount erfolgt ein kurzes Warten (
sleep 3), bevor der VDR‑Dienst gestartet oder neu gestartet wird. - Alle Ausgaben werden über
loggerins Syslog geschrieben, wodurch sie unter dem Tagvdrim Journal erscheinen.
Integration in den Boot‑Ablauf
Das Skript kann beim Systemstart über einen Cronjob ausgeführt werden:
|
1 |
@reboot /usr/local/bin/wait-for-vdr-mount.sh |
Dadurch wird nach jedem Neustart überprüft, ob der Autofs‑Mount verfügbar ist, und der VDR‑Dienst startet zuverlässig.
4. Zusammenfassung
- Der Host stellt ein Schreibverzeichnis für den VDR-User bereit.
- Der Client mountet dieses Verzeichnis automatisch per SSHFS über Autofs.
- Der lokale
vdr-User besitzt Schreibrechte und kann Aufnahmen direkt auf dem Host speichern. - Alle Vorgänge erfolgen passwortlos über SSH-Keys, der VDR-Dienst kann regulär starten.
- Hilfsskript überprüft vor dem Start des VDR-Dienstes, ob der Mount aktiv ist.
by Speefak

