Hallo
Ich hab ein Python Skript auf meinem RasPhi3 laufen, das jede Minute
1byte an Daten in eine LogDatei schreibt. Das lief nun einige Tage
problemlos.
Heute morgen dann plötzlich Fehlermeldung:
...f.write(logtext)
IOError: Errno 30 Read-only file system
Das Problem scheint sich aber nicht nur auf die LogDatei zu beschränken.
Bei z.B. "nano logger.py" bekomme ich auch eine Fehlermeldung:
-bash: /bin/nano: Eingabe-/Ausgabefehler
kennt jemand das Problem und weiß den Grund?
Schau mal ins dmesg, die SD Karte ist vermutlich gerade am ausfallen.
Bei Dateisystemen, die mit der remount-ro option gemountet wurden,
wechseln diese beim ersten Fehler in den readonly modus, um weiteren
Schaden zu vermeiden oder zumindest zu reduzieren.
Also je nachdem wie Du es gemacht hast kann entweder etwas abgestürzt
sein (unwahrscheinlich) oder das Speichermedium wird falsch verwendet
(wahrscheinlich).
Beim Schreiben auf so ein Flash-Medium wird normalerweise eine gesamte
"Page" beschrieben. Du möchtest ein Byte schreiben, es wird aber eine
ganze Seite (~sector) geschrieben. Die Karte verbraucht sich dann recht
schnell.
Also immer nur ganze Pages auf das Flash schreiben. Alternativ kann man
eeproms oder Magnetblasenspeicher einsetzen. Die sind dafür da (siehe
auch den Sinn von EEProms in AVR-Controllern).
> Magnetblasenspeicher
Die könnte man nur noch im IBM-Museum stehlen.
> jede Minute 1byte> einige Tage
60 24 7
wären grade mal 10 k Zugriffe.
Das hat die SD-Karte bestimmt nicht ruiniert.
Du scheinst keine Ahnung zu heben was dein Python da wirklich treibt.
Wenn es zuverlässig sein soll, nimmt man auch keine Inselaffentechnik.
Ein PIC mit einem EEPROM würde noch im übernächsten Jahrtausend
Daten schreiben.
Bei Consumer-Karten sagt man, eine Page lässt sich 1000 mal beschrieben.
Auch wenn du dein Programm änderst, beim Raspian hast du das selbe
Problem mit dem /var/log.
Es gibt einen Tip - eine größere Karte kaufen und nur einen Teil nutzen.
Das waer leveling sollte dann reihum die am wenigsten benutzen Pages
beschreiben. Allerdings finden sich weder im Standard noch bei den
Herstellern konkrete Angaben dazu.
Am besten du betrachtest die Karte als Verschleißteil – legst die
Backups so an, dass du die Karte jederzeit einfach auswechseln kannst.
(Hatte mal Datenlogger mit Raspis und rrdtool gebaut. Saublöde Idee.
Alle Karten waren nach einigen Monaten hinüber.)
Mein RaspPi läuft im Dauerbetrieb. Er läuft jetzt seit über 4 Jahren mit
der gleichen SD Karte und speichert darauf in eine SQLite Datenbank alle
10s Messdaten.
Der Trick ist, unnötige Schreibzugriffe zu reduzieren. Es gibt genug
Anleitungen im Internet dazu:
z.B. https://www.datenreise.de/raspberry-pi-stabiler-24-7-dauerbetrieb/>Museumswärter schrieb:>Wenn es zuverlässig sein soll, nimmt man auch keine Inselaffentechnik.
Na ja, etwas überheblich, oder?
Ich würde es anders formulieren: Wenn es zuverlässig sein soll, sollte
man die Fallstricke der Technik kennen.
>Ein PIC mit einem EEPROM würde noch im übernächsten Jahrtausend Daten schreiben.
Da kenn ich durchaus einige Entwickler, die zig PICs durch Unachtsamkeit
zerschossen haben...
Warum vergleichst Du hier Äpfel mit Birnen?
Ich hatte mal mit einer Serie von Servernetzteilen zu tun, die nach
vielen Jahren auf der 5V-Schiene schwach wurden. Und die wird praktisch
nur von Disk-I/O verwendet.
Die Symptome waren immer gleich. Windows flog irgendwann weg, Linux lief
seelenruhig weiter, aber auf r/o. Nach Reboot ging es wieder, aber erst
nach Netzteiltausch stabil.
Es könnte sich dabei also auch um einen Sicherheitsmechanismus im Linux
handeln, der bei sporadischen I/O-Problemen auf r/o geht.
> Na ja, etwas überheblich, oder?
Mein Notendurchschnitt im Fach "Elektronische Schaltungstechnik"
war 1.0. Über alle (Uni-)Semester, also Praktika, Testate und
Prüfungen.
So einen Murks, sowohl in konstruktiver als auch
schaltungstechnischer Hinsicht, hätte ich jedenfalls
nicht abgeliefert.
Da ist Inselaffentechnik noch ein vornehmes Wort.
Es ist und bleibt ein Spielzeug. Wer es für mehr einsetzt,
nimmt Ausfälle billigend in Kauf.
Museumswärter schrieb:> Mein Notendurchschnitt im Fach "Elektronische Schaltungstechnik"> war 1.0. Über alle (Uni-)Semester, also Praktika, Testate und> Prüfungen.
Bei uns wurden solche Streber in der großen Pause verprügelt.
Im Ernst:
Es lässt sich sicher streiten für welche ein Raspberry Pi geeignet ist,
oder nicht.
Aber wenn Titulierungen wie "Inselaffentechnik" vorkommen, dann lässt
mich das vermuten, du bist ein "Experte" der besonderen Art.
.
Das ist zu 99% die SD-Karte. Linux schreibt gerne regelmäßig auf das
Filesystem (Log-Files). Irgendwann gehen die Sektoren nacheinander
kaputt. Wenn es nur Logdaten sind, merkt man es nicht. Früher oder
später trifft es aber dann Bereiche in denen ausführbare Programme
liegen.
Das Schreiben von Logfiles könnte man natürlich deaktivieren oder
/var/log als ramfs einhängen. Ich hatte das früher auch regelmäßig (ca.
2x im Jahr, war aber auch zu faul mir das System sauber einzurichten),
bis ich eben auf ramfs umgestiegen bin bzw. später den RPi3 gegen einen
NUC mit ordentlicher SSD ausgetauscht habe!
Horst schrieb:> Das ist zu 99% die SD-Karte.
Dass das Problem an der SD-Karte liegt ist sicher richtig.
Aber ob die Logfiles so viel ausmachen, möchte ich bezweifeln.
Ich behaupte diese Logfiles belegen nur einige Kilobyte. Bis hier ein
Schaden auf einer (sagen wir 8 GB) SD-Karte bemerkbar wird, sollten
einige Jahre vergehen.
Auch der SD-Kartentreiber versteht mittlerweile das TRIM Kommando, damit
bekommt man unbenutzte Sektoren wieder frei fürs Wear-Leveling
(ansonsten kann die Karte nicht wissen daß sie frei sind). Also einmal
am Tag per cron-Job fstrim drüber rutschen lassen.
Museumswärter schrieb:> Mein Notendurchschnitt im Fach "Elektronische Schaltungstechnik"> war 1.0. Über alle (Uni-)Semester, also Praktika, Testate und> Prüfungen.>> So einen Murks, sowohl in konstruktiver als auch> schaltungstechnischer Hinsicht, hätte ich jedenfalls> nicht abgeliefert.
Ich bezweifel nicht Deine Fähigkeiten und ich bezweifel nicht die Mängel
der RaspPi Hardware.
Aber ein System, dessen Mängel ich kenne, ist mir allemal lieber als ein
System dessen Leichen noch niemand entdeckt hat. Immerhin hat diese
Technik sich 17Millionen mal verkauft.
Und auch wenn Du der Papst der Hardware-Entwicklung bist, halte ich die
Wortwahl nicht für angemessen.