Haltbarkeit SD-Karte mit FHEM-Nutzung & Smart-Home?

Begonnen von Dracolein, 15 Dezember 2019, 07:49:43

Vorheriges Thema - Nächstes Thema

Waldmensch

Ich ziehe das mounten über die fstab grundsätzlich vor. Entweder stell ich mich mit autofs zu bräsig an oder es ist wirklich fragil. Bei mir hat es bisher nur Probleme bereitet. Meist war der Mount nicht da wenn er da sein sollte, oder er war weg wenn man es nicht erwartet hat. Das Resultat ist immer dasselbe, das letztlich auf den mountpoint im lokalen FS geschrieben wurde. Ist mir über die fstab noch nie passiert, solange das Share serverseitig verfügbar war


Gesendet von iPhone mit Tapatalk

claudio-fhem

Der NFS-share wird ja grundsätzlich über ein Verzeichnis gemountet, warum nicht über das Originalverzeichnis von fhem?
Solange das NAS nicht gemountet ist, schreibt fhem auf die SD-KArte, sobald der mount steht, auf das NAS.

Was mit Daten passiert, die geschreiben werden sollen, während des mountens: Keine Ahnung :-D
Vielen Dank und Grüße!

claudio

Dracolein

#47
Ich habs nun in Kombination hinbekommen
a.) in der raspi-config den Bootvorgang gestoppt, bis eine aktive Netzwerkverbindung vorhanden ist
b.) in der fstab
192.168.178.10:/volume1/raspiaufds /synology/raspiaufds nfs rw,sync,hard,intr,x-systemd.automount 0 0
eingetragen, womit es funktioniert. Mit den parametern "defaults" o.ä. lief nichts.

Wie gesagt ist das ein gemounteter pfad ausserhalb der fhem Ordnerstruktur, wohin ich derzeit ausschließlich meine wenigen filelog-Logfiles schreiben lasse.


Zitat von: claudio-fhem am 17 Dezember 2019, 22:00:03
Der NFS-share wird ja grundsätzlich über ein Verzeichnis gemountet, warum nicht über das Originalverzeichnis von fhem?
Solange das NAS nicht gemountet ist, schreibt fhem auf die SD-KArte, sobald der mount steht, auf das NAS.

Was mit Daten passiert, die geschreiben werden sollen, während des mountens: Keine Ahnung :-D
ist ein interessanter Ansatz. So würde auch ein mount-fail-Problem verhindert werden, weil fhem den Fehler gar nicht spürt.
Aber wie prüft man dann, ob derzeit gemountet ist, oder nicht?
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Waldmensch

Man könnte das Vorhandensein einer Datei überprüfen, die es nur auf dem Share gibt. Zum Beispiel eine Datei mit touch /mein/share/.is_share anlegen und dann mit ls /mein/share/.is_share auswerten. Wenn nicht gemounted liefert ls kein Ergebnis


Gesendet von iPhone mit Tapatalk

Wzut

@Dracolein , meine fstab , meine Syno hat die 0.2 :
192.168.0.2:/volume1/logs/ /opt/fhem/log nfs rw,addr=192.168.0.2 0 0
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Dracolein

Zitat von: Prof. Dr. Peter Henning am 17 Dezember 2019, 21:36:28
Aber ja - warum auch nicht? Ist Unix-Standard.

LG

pah
Aus Sicht des Dateisystems habe ich keine Zweifel.

Ich dachte primär an die FHEM-Installation. Wenn wir einmal annehmen das System läuft viele Monate stabil durch (=alle aktuellen Files liegen auf dem NAS) und dann wird ein Reboot durchgeführt, bei dem das mounten des NAS minimal später passiert, als der FHEM-Start, dann greift fhem beim Systemstart zunächst auf die lokalen, völlig veralteten Files zu. Ohne tief Ahnung vom System zu haben, könnte ich mir vorstellen, dass dies massenhaft Fehler produziert
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Eisix


Wzut

Zitat von: Eisix am 18 Dezember 2019, 09:34:02
wenn eh ein NAS da ist warum nicht gleich ganz vom Netz booten.
das macht mein uralt RPi auf dem DoorPi läuft, eine kleine SD aus einer alten Kamera nur mit /boot Part.
Läuft so auch schon ein paar Jahre ohne Probleme.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

rudolfkoenig

Ich hatte 4 Jahre lang FHEM auf einem Rechner betrieben, der sein Root-Filesystem und FHEM auf einem billigen 4GB USB-Stick gehabt hat.
Kaputtgegangen ist nach 4 Jahren das Mainboard.

Ich habe vorher etliche Massnahmen getroffen, damit Schreibzugriffe minimiert werden, Stichwort ist (bzw. war damals) Linux laptop mode.
Mein "HOWTO" von damals (2008):echo 3600   > /proc/sys/vm/laptop_mode
echo 360000 > /proc/sys/vm/dirty_writeback_centisecs
echo 360000 > /proc/sys/vm/dirty_expire_centisecs
echo 40     > /proc/sys/vm/dirty_ratio
echo 40     > /proc/sys/vm/dirty_background_ratio
Weiterhin habe ich root mit noatime gemountet, und alle Dienste abgeschaltet, die ich auf dem System nicht gebraucht habe.

Diese Einstellung hat Nachteile (z.Bsp. Datenverlust beim Stromausfall, und manche Programme kommen mit noatime nicht zurecht), die ich aber in Kauf genommen habe.

fantalin

Hallo,
hier wurden ja interessante Lösungen angeboten, um die Haltbarkeit einer SD-Karte zu erhöhen...
Bei meiner FHEM - Installation mit großen Log-Dateien und Log-DB's ging eine preiswerte 32GB SD nach ca. 3 Jahren kaputt.
Beim kopieren der SD mit dd traten Lesefehler auf.
Nach dem Studium einiger Heise-Artikel kaufte ich vor knapp drei Jahren die MicroSDHC-Speicherkarte 32GB, Samsung, PRO Endurance. Seitdem keine Fehler/Probleme und eine gute Performance.

Grüße
Jochen

Sörn

#55
Um die Liste der Tipps noch ein wenig zu erweitern...

1) Logs in einer Ramdisk ablegen.

Ich speichere logs von FHEM und anderen Diensten (lighttpd, cron) in /mnt/logrd.

Hier ein Beispiel, wie man eine 8M große ramdisk anlegt:
mkdir /mnt/logrd
echo 'none /mnt/logrd tmpfs nodev,nosuid,noexec,noatime,size=8M 0 0' >> /etc/fstab

8MB sind nicht viel, aber für meine Zwecke ausreichend. Ich reboote das System alle paar Monate, aber spätestens beim Kernel-upgrade. Wenn man besonders verboses debugging möchte, ist die Ramdisk nach wenigen Stunden voll. Bei mir ist's meistens level 1.

Die fhem.cfg muss natürlich auch entsprechend angepasst werden:

attr global logfile /mnt/logrd/fhem/fhem-%Y-%m.log
attr global statefile /mnt/logrd/fhem/fhem.save
define Logfile FileLog /mnt/logrd/fhem/fhem-%Y-%m.log fakelog
attr autocreate filelog /mnt/logrd/fhem/%NAME-%Y.log
#...
# sowie ggf. weitere modul-logfiles...


Wer die Verzeichnisstruktur übernehmen, sollte sich bewusst sein, dass eine frische Ramdisk leer ist - ergo, das Verzeichnis /mnt/logrd/fhem existiert nicht. Hier hilft ein schnelles
mkdir /mnt/logrd/fhem
chown fhem:fhem /mnt/logrd/fhem

in der /etc/rc.local


2) Noatime
ext4 und Freunde speichern accesstimes per default. Wer das nicht benötigt, dem lege ich dringend nahe, die option abzuschalten. Hierzu die option "noatime" in der entsprechenden Zeile in der /etc/fstab für das rootfs setzen.

Ein Beispiel:
PARTUUID=01abcdef-02  /               ext4    defaults,noatime  0       1


64 Relais + 8xULN2803 + 4x MCP23017 im Schaltschrank für ALLES
Custom Prokoll über RS485 für Taster, Temperatur und Feuchtesensoren

Wernieman

Nur mal am Rande:
Der Nachteil von Logs im RAM: Bei einem reboot o.Ä. des Systemes gehen diese komplett verloren. manchmal sind fürs debuggen aber gerade diese Logfiles wichtig ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Sörn

Zitat von: Wernieman am 11 Dezember 2020, 08:07:39
Der Nachteil von Logs im RAM: Bei einem reboot o.Ä. des Systemes gehen diese komplett verloren. manchmal sind fürs debuggen aber gerade diese Logfiles wichtig ...

Warum sollte ein Neustart mit FHEM im Zusammenhang stehen?
Mal angenommen der RAM geht zur Neige und FHEM ist Hauptverursacher - dann wird der FHEM Prozess vom OOM killer abgeschossen.
64 Relais + 8xULN2803 + 4x MCP23017 im Schaltschrank für ALLES
Custom Prokoll über RS485 für Taster, Temperatur und Feuchtesensoren

Wernieman

Ich hatte nicht nur von FHEM sondern auch von Systemlogs geredet ... bei FHEM-Logs gehen natürlich die Langszeitlogs verloren, wenn  Du bei einem restart diese nicht sicherst (voher)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html