Verhinderung der Beschädigung der SD-Karte bei Stromausfall

8

Ich habe ein Projekt, das PIs an entfernten Orten (Straßenschränke, die in einer Stadt neben wichtigen Teilen der Wasserinfrastruktur verteilt sind) verwendet, um Daten über USB von einem speziellen Datenerfassungsgerät zu lesen und sie dann (über eine ADSL-Verbindung) zurück zu einem zu übertragen zentrale DB. Die Pi werden von einer 5-V-Versorgung gespeist, die von einer Industrie-USV (einer Phoenix Contact MINI-DC-USV) stammt, und die Steuersignale von dieser USV werden von den Datenerfassungsgeräten verwaltet, sodass Nachrichten in den normalen Datenstrom von dieser eingefügt werden können zum Pi.

Wenn die Stromversorgung unterbrochen ist und die Batterie auf eine bestimmte Niederspannung abgefallen ist, gibt die USV ein "ALARM" -Signal aus und das Datenerfassungsgerät informiert den Pi darüber, dass die Stromversorgung jederzeit unterbrochen werden kann. Wenn sich die Versorgung erholt, ohne ausgeschaltet zu werden, erlischt das ALARM-Signal und der Pi wird informiert, dass er wieder in den normalen Betrieb zurückkehren kann.

Wenn der Pi im normalen Betrieb plötzlich ausgeschaltet wird, kann die SD-Karte beschädigt werden. Was ist also die beste Strategie, um damit umzugehen? Kann ich den Pi in einen "sicheren" Modus versetzen (die Festplatte als schreibgeschützt wieder einbinden?), Während ich auf ein "Power OK" -Signal warte, oder muss ich mir die verschiedenen Powerfail-Optionen ansehen, die in aufgeführt sind /etc/inittab?

Kann mir jemand Hinweise geben?

Asher Hoskins
quelle
Haben Sie versucht, im schreibgeschützten Modus zu booten? Aus der Beschreibung kann ich nicht
ersehen,
Ich verwende das Dateisystem des Pi, um einen fortlaufenden Datenpuffer im Falle eines Kommunikationsfehlers zu speichern: Die Kommunikationsverbindung ist nicht besonders zuverlässig und ich muss möglicherweise mehrere Tage / Wochen Daten speichern (bei ~ 50 MB / Tag), also schreibgeschützter Modus ist leider nicht möglich.
Asher Hoskins
Starten Sie dann das System und die Anwendungen schreibgeschützt und stellen Sie einen beschreibbaren USB-Speicher für die Daten
bereit
Ich habe es nicht auf einem Pi versucht, aber Sie sollten in der Lage sein, RAM als Dateisystem "mkdir / mnt / ramdisk && mount -t tmpfs keine / mnt / ramdisk" zu mounten google.com/…
rob
@Gotschi - Für die meisten Linux- und anderen Distributionen müssen Sie die Festplatte als Read-Writer bereitstellen, da sie auch auf die Festplatte schreiben muss, um zu funktionieren.
Wilf

Antworten:

1

Bei der Bereitstellung an mehreren Standorten, bei der Datenverlust sowie Zeit und Kosten für Reparaturen ein Problem darstellen, würde ich nicht herumspielen. Ich würde eine Hardwarelösung vorschlagen: jedes RPi mit einer Hardware-Abschaltschaltung ausstatten. Dies könnte sicherstellen, dass jedes Mal, wenn ein RPi von der Stromversorgung getrennt wird, es ordnungsgemäß heruntergefahren wird und auf die Wiederherstellung der Stromversorgung wartet, bevor das Dateisystem erneut gestartet wird. Benachrichtigungen von der USV könnten vom RPi ignoriert werden, da es weiterarbeiten würde, bis die Versorgungsspannung die Abschaltschwelle erreicht. Diese Lösung soll auch dazu beitragen, das RPi bei Wartungsarbeiten im Schrank sicher zu halten.

Für diese Abschaltkreise gibt es verschiedene Ausführungen. Auf dieser SE-Site finden Sie einige Vorschläge . Diese Schaltungen sind hauptsächlich so konzipiert, dass sie dem Gelegenheitsbenutzer mehr Komfort bieten. Möglicherweise möchten Sie einige Designänderungen in Betracht ziehen, um sie an Ihre Anwendung anzupassen. Beispielsweise verwenden einige Schaltkreise einen großen Kondensator, um sicherzustellen, dass der RPi mit Strom versorgt wird, um seine Abschaltsequenz erfolgreich abzuschließen. Möglicherweise möchten Sie stattdessen einen kleinen Akku verwenden, der während der 5-V-Versorgung während des Vorgangs vollständig aufgeladen bleibt Normalbetrieb - So bleibt dem RPi genügend Zeit, um die endgültigen Datenübertragungen vor dem Schließen des Shops abzuwickeln.

user2338215
quelle
0

Ein Ansatz könnte darin bestehen, eine zweite kleine USV bereitzustellen, die an die erste USV angeschlossen ist.

Ich spreche von der kleineren USV mit Steckerstreifen. Die Stromversorgung für die zweite USV erfolgt über die erste USV. Daher befindet sich die zweite USV erst im Stromausfall- / Abschaltmodus, wenn die erste ausgefallen ist und keine Stromversorgung mehr liefert.

Die zweite USV würde ebenfalls über die USB-Verbindung mit dem PI verbunden. Installieren Sie die entsprechenden Abschaltskripte von der zweiten Website des USV-Herstellers auf dem pi.

Die erste USV hat keine Batterie mehr, die zweite USV schaltet sich ein, um Strom zu liefern und den Pi zum Herunterfahren zu bewegen.

Tyson
quelle
0

Die beste Lösung ist meiner Meinung nach die Verwendung der USV PIco , einer speziell für Raspberry Pi USV entwickelten USV, die viele weitere Funktionen bietet.

Es ist kostengünstig, beinhaltet Batterie, benötigt kein zusätzliches Kabel, legt es einfach auf RPi.

Alexander
quelle
0

Ich mag das Aussehen dieses Artikels bei Amazon: Unterbrechungsfreie Stromversorgung GM312 Mini-USV

Alles, was ich hinzufügen müsste, ist eine einfache Schaltung, um festzustellen, wann die eingehende 12-Volt-Versorgung ausgefallen ist.

Der R Pi könnte dann entweder sofort oder nach einer Verzögerung automatisch heruntergefahren werden.

Ein Problem, das ich sehen kann, ist, dass es nicht einfach wäre, den R Pi zum Neustart zu bringen, wenn die Stromversorgung wieder hergestellt ist.

Ich frage mich, ob die Lösung möglicherweise darin besteht, den Pi nach einer Verzögerung in einen minimalen Aktivitätsmodus zu versetzen und darauf zu warten, dass die 12 Volt wieder eingeschaltet werden.

DTtheET
quelle