Seite 1 von 1
rrd4j.persist Daten nach Neustart gelöscht
Verfasst: 13. Aug 2024 19:06
von iceman
Hallo,
bin dabei oh4.2 neu aufzusetzen, dabei ist mir aufgefallen das alle RRD Dateien bei einem Neustart (Openhabian auf Rpi4) anscheinend gelöscht und dann neu geschrieben werden, die vorherigen Daten sind dann leider verschwunden.
Die Einstellungen sollten eigentlich richtig sein. Komisch ist auch das wenn ich alle RRD's lösche werden meine 45 items neu geschrieben und es läuft bis zum Neustart wo ich dann auf einmal knapp 600 RRD's habe.
Habe jetzt mal zram deinstalliert, jetzt werden die RRD-Dateien bei einem Neustart einfach weiter beschrieben wie es wohl auch sein soll. Ausserdem bleibt es jetzt auch bei meinen 45 persistirten dateien und nicht knapp 600.
Frage mich nun nur ob ich ohne zram irgendwelche Nachteile habe?
Re: rrd4j.persist Daten nach Neustart gelöscht
Verfasst: 14. Aug 2024 08:44
von udo1toni
Ja, ZRAM schützt Deine Micro-SD-Karte vor WearOut.
Wenn nach einem Neustart Daten verschwunden sind, dann hast Du den Neustart falsch ausgeführt.

ZRAM ist ein Dienst, wenn der Pi, auf dem openHAB läuft korrekt per Befehl neu gestartet wird (sudo reboot oder sudo shutdown -r now) dann wird ZRAM von Systemd dazu aufgefordert, sich zu beenden. Dabei schreibt ZRAM dann alle Daten, die nur in der RAM Disk vorhanden sind in einem Rutsch auf sie SD-Karte.
Ohne ZRAM werden ständig winzige Häppchen auf die SD-Karte geschrieben, dabei kann man aber nur blockweise schreiben, und je größer die SD-Karte, desto größer der einzelne Block (als Faustregel). Dabei sind typische Blockgrößen 128 KByte oder auch 512 KByte. Also jedes Mal, wenn 200 Byte ins log geschrieben werden müssen, wird der Block, in dem sich der letzte Teil der Datei befindet in einen neuen Block kopiert und der alte Block als gelsöcht gekennzeichnet -> tausende Blöcke innerhalb weniger Minuten werden geschrieben.
Mit ZRAM werden pro Datei nur die benötigte Anzahl Blöcke geschrieben, und nur, wenn das System korrekt herunter gefahren oder neu gestartet wird.
Das Phänomen, dass plötzlich für jedes Item eine rrd-Datei angelegt wird, obwohl Du explizit nur eine kleine Teilmenge persistieren willst, rührt im Zweifel daher, dass die Konfiguration von rrd4j noch nicht eingelesen ist, wenn der Dienst startet. Sollte nicht passieren, kommt aber vor, das hängt mit dem asynchronen Design von openHAB zusammen.
Re: rrd4j.persist Daten nach Neustart gelöscht
Verfasst: 14. Aug 2024 12:00
von iceman
Ja habe mich da gestern auch noch ein wenig mit zram beschäftigt. Einen Neustart des Rpi habe ich auch immer mit sudo reboot gemacht, aber auch danach waren dann alle RRD's futsch. Beim runterfahren habe ich bisher immer den Befehl shutdown -h 0 benutzt, habe ich so mal irgendwo aufgeschnappt.
Re: rrd4j.persist Daten nach Neustart gelöscht
Verfasst: 14. Aug 2024 17:15
von udo1toni
Eigentlich sollten beide Varianten zum korrekten Ergebnis führen, also sowohl reboot als auch shutdown -r bzw. poweroff als auch shutdown -h.
now als Parameter von shutdown ist synonym zu 0 (die 0 steht für 0 Minuten Wartezeit bis der Befehl ausgeführt wird).
Re: rrd4j.persist Daten nach Neustart gelöscht
Verfasst: 14. Aug 2024 17:46
von iceman
Danke für die hilfreichen Info's, werde erstmal ohne zram weiter arbeiten und es dann später nochmals damit versuchen. Kann auch sein das eine SSD eine gute Alternative ist, sind ja nicht teuer und muss ja auch nicht groß sein.
Re: rrd4j.persist Daten nach Neustart gelöscht
Verfasst: 18. Aug 2024 10:17
von Midon
Also das scheint gerade ein allgemeines Problem zu sein. Für einen Freund mit dem Pi auf einer SD das derzeitige 4.2.1 Image drauf gespielt. Influxdb und Grafana über die Config rein. Schönes Dashboard in Grafana gebaut und alles hat funktioniert, bis zum Reboot. Da waren alle Daten, auch Metadaten, von Influxdb weg. Da ich sowieso lieber influxdb2 habe die 1 runter die 2 drauf. Mit exakt dem gleichen Ergebnis. Funktioniert alles ohne Probleme, bis zum Reboot, dann ist alles weg. Da deutet aber wirklich viel auf das zram

Re: rrd4j.persist Daten nach Neustart gelöscht
Verfasst: 18. Aug 2024 14:09
von udo1toni
Wie gesagt, das muss beim korrekten Reboot funktionieren. Ansonsten bitte im englischen Forum melden, mit den genauen Umständen.
Was man auch noch versuchen kann: ZRAM vor dem Reboot manuell beenden (sudo systemctl stop zram.service müsste zum Ziel führen).
Aber wie gesagt: das muss auch automatisch korrekt funktionieren, wenn das nicht der Fall ist und man die Standard Installation über das openHABian Image verwendet hat (also ohne Dinge grundlegend anders zu machen, als vom Entwickler vorgesehen), sollte man das melden.