Kann der VDR Aufzeichnungen löschen bevor der Speicherplatz auf 0 geht

  • Hallo,


    soweit ich das verstanden habe, löscht der VDR Aufnahmen nach der PRIO erst wenn der Speicherplatz tatsächlich komplett aufgebraucht ist. Da ich auf der Festplatte aber auch noch andere Dienste verwende, möchte ich nicht das der freie Speicherplatz auf 0 geht. Gibt es die Möglichkeit das der VDR schon mit den Löschen von Aufnahmen nach der PRIO anfängt, wenn ein bestimmter Wert an freien Speicherplatz unterschritten wird?


    Ich würde mir das so vorstellen, dass wenn der freie Speicherplatz z.B. 3 GB unterschreitet, das dann schon angefangen wird, entsprechende Aufnahmen zu löschen bis der Wert wieder überschritten wird.

    Kann man das realisieren?


    Gruß dile :)

  • Man kann Quota pro User bzw. Gruppe vorgeben, d.h. wenn der VDR nicht als root läuft, kann man ihm über hard limits Grenzen setzen: https://www.digitalocean.com/c…system-quotas-on-debian-9

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Man kann Quota pro User bzw. Gruppe vorgeben, d.h. wenn der VDR nicht als root läuft, kann man ihm über hard limits Grenzen setzen: https://www.digitalocean.com/c…system-quotas-on-debian-9

    Das heißt aber nicht, dass der VDR auch damit umgehen kann. Er muß dann seinen Test auf die Platzuntergrenze nämlich auch quota-konform durchführen. Ich hatte das vor etlichen Jahren schon mal bei Klaus angeregt. War ihm aber nicht "kis - keep it simpel" genug...


    Gruß

    msv

  • Man kann Quota pro User bzw. Gruppe vorgeben, d.h. wenn der VDR nicht als root läuft, kann man ihm über hard limits Grenzen setzen: https://www.digitalocean.com/c…system-quotas-on-debian-9

    Das kannte ich noch gar nicht. Vielen Dank für den Input.


    Da müsste ich dem VDR aber einen festen Wert für den Speicherplatz zuweisen. Es würden also Aufnahmen gelöscht werden wenn noch viel Speicher frei ist weil der Non-VDR Bereich wenig belegt, bzw. wenn der Non_VDR Bereich sehr viel belegt könnte die Platte trotzdem volllaufen.


    Mit dem Hinweis von msv teste ich erstmal die Lösung von Klaus.

  • In der Datei recorder.c folgendes entsprechen erhöhen:


    #define MINFREEDISKSPACE (512) // MB

    Da ich wegen des vollen Speichers gerade erst aufgeräumt habe, teste ich erst mal mit einem hohen Wert.

    Code
    1. #define MINFREEDISKSPACE (102400) // MB


    Bin mir noch nicht sicher ob das wirklich funktioniert:

    Hier das vollständige Log: https://pastebin.com/2wX0n640


    Code
    1. Apr 26 10:02:47 europa vdr[376747]: [376852] low disk space (100892 MB, limit is 102400 MB)

    Zum Zeitpunkt als das Limit erstmals unterschritten wurde gab es 3 manuell gelöschte Aufnahmen die noch nicht endgültig gelöscht wurden und unter anderem eine Aufnahme vom 03.01.2022 mit einer Lebensdauer von 14 Tagen.


    Code
    1. Apr 26 11:08:53 europa vdr[376747]: [377106] low disk space (96569 MB, limit is 102400 MB)

    Auch als der Speicher weiter unterschritten wurde. Die Aufnahme beendet wurde und eine weitere Aufnahme lief, wurden weder die gelöschten Aufnahmen endgültig gelöscht noch eine Aufnahme mit niedriger Lebenszeit angefasst.


    Erst später wurden dann die gelöschten Aufnahmen endgültig gelöscht. Würde aber vermuten das dies auch ohne Änderung der minfreediskspace passiert wäre.


    Code
    1. Apr 26 15:31:52 europa vdr[376747]: [379564] low disk space (96303 MB, limit is 102400 MB)

    Auch aktuell wurde noch keine andere Aufnahme mit einer niedrigen Lebenszeit gelöscht.


    Code
    1. Apr 26 12:15:11 europa vdr[376747]: [377828] low disk space (96578 MB, limit is 102400 MB)
    2. Apr 26 12:15:11 europa vdr[376747]: [377828] recording to '/srv/vdr/video/Magische_Gärten/2022-04-26.11.43.20-0.rec/00020.ts'
    3. Apr 26 12:16:03 europa vdr[376747]: [376760] VNSI: Requesting clients to reload timers
    4. Apr 26 12:16:52 europa vdr[376747]: [377828] low disk space (96514 MB, limit is 102400 MB)
    5. Apr 26 12:16:52 europa vdr[376747]: [377828] recording to '/srv/vdr/video/Magische_Gärten/2022-04-26.11.43.20-0.rec/00021.ts'
    6. Apr 26 12:17:03 europa vdr[376747]: [376760] VNSI: Requesting clients to reload timers
    7. Apr 26 12:18:03 europa vdr[376747]: [376760] VNSI: Requesting clients to reload timers
    8. Apr 26 12:18:34 europa vdr[376747]: [377828] low disk space (96451 MB, limit is 102400 MB)
    9. Apr 26 12:18:34 europa vdr[376747]: [377828] recording to '/srv/vdr/video/Magische_Gärten/2022-04-26.11.43.20-0.rec/00022.ts'

    Bei einer laufenden Aufnahme kommt dann regelmäßig die Meldung "low disk space" dabei wird jedes mal eine neue *.ts Datei erzeugt. Ist das so gewollt?


    Gruß Dirk

  • Du musst in recording.c das hier ändern:


    #define MINDISKSPACE 1024 // MB

    Super das funktioniert. Vielen Dank :):thumbup:

    :welle



    Gibt es eigentlich einen Grund warum man das nicht im VDR bzw. in einer *.conf konfigurieren kann. Könnte mir vorstellen das ich nicht der einzige bin der das anpassen möchte.


    Gruß Dirk

  • Bei mir ist die Festplatte auch immer wieder vollgelaufen bevor der VDR angefangen hat Aufnahmen zu löschen.


    Ich glaube der VDR prüft/löscht nur Aufnahmen wenn eine Aufnahme gestartet wird oder läuft. Wenn keine Aufnahme ansteht und die Festplatte läuft wie bei mir mit Non-VDR Daten unter das MinDISKSPACE dann kann die Platte voll sein bevor Aufnahmen gelöscht werden.

  • Gibt es eigentlich einen Grund warum man das nicht im VDR bzw. in einer *.conf konfigurieren kann.

    Es schien mir nicht notwendig. 1GB ist ja doch eine ganze Menge ;-).

    Ich glaube der VDR prüft/löscht nur Aufnahmen wenn eine Aufnahme gestartet wird oder läuft.

    Das ist richtig.

    Wenn keine Aufnahme ansteht und die Festplatte läuft wie bei mir mit Non-VDR Daten unter das MinDISKSPACE dann kann die Platte voll sein bevor Aufnahmen gelöscht werden.

    Ich finde es besser, wenn VDR seine eigene Platte bzw. Partition hat. Videos und andere Daten zu mischen ist keine gute Idee.

  • Es schien mir nicht notwendig. 1GB ist ja doch eine ganze Menge ;-).

    Das einzelne Aufnahmen deutlich größer als 1 GB sind, ist ja nicht so ungewöhnlich. Könnte es dann so wie FireFly es beschreibt beim Schneiden Probleme geben wenn nicht zufällig parallel eine Aufnahme läuft.

  • Eine SSD überhaupt so voll laufen zu lassen, verringert deren Lebensdauer aber deutlich ...

    Als "Datengrab" für Aufnahmen verwende ich weiterhin HDDs, weil ja auch die spezifiischen Vorteile der SSDs hier nicht angesprochen werden. Fürs System gibts eine eigene SSD, klar.

  • Eine SSD überhaupt so voll laufen zu lassen, verringert deren Lebensdauer aber deutlich ...

    Das hängt ja davon ab, wie man sie partitioniert und ggf. etwas Platz lässt. Aber das machen SSDs meist sowieso schon von sich aus.

    Und wenn man sich diverse Tests z.B. in der c't anschaut, dann leben SSDs wesentlich länger, als man denkt. Und da bei einem Aufnahmemedium gar nicht so viel/häufig geschrieben wird, wird man kaum Probleme mit der Lebensdauer bekommen.


    Lars.

  • Einfach beim Partitionieren auf die Sektorengröße achten (sowohl Performance als auch Haltbarkeit) und 2..5% der Sektoren unbenutzt lassen.

  • Sozusagen "manuelles Over-Provisioning" :)

    Wie wäre die Empfehlung für die Sektorgröße einer für Aufnahmen verwendeten SSD, etwa bei xfs oder ext4?

  • Es geht eher darum, zu schauen wie die Partitionen angeordnet sind, d.h. Start und Größe der Partition. Am besten glatt durch 1 MiB teilbar.

    So wie hier erklärt. https://www.thomas-krenn.com/de/wiki/Partition_Alignment

  • Das Problem beim Schneiden ist, dass das Filesystem mit SSD schneller voll läuft als VDR es prüft. Da werden dann schon mal 10 GB in 23 sec kopiert. Mit einer vergleichsweise langsamen HDD gibt es keine Probleme.

    Um mal zu diesem Thema zurück zu kommen: wie kann man das lösen? Immer warten mit dem Schneiden bis "vielleicht" die alten Aufnahmen gelöscht sind ist ja keine Lösung zumal laufende Aufnahmen dabei abbrechen können.