Speicherkarte mit Gedächtnisproblemen

Im vergangenen Jahr hatte ich mit einer sehr speziellen SD-Speicherkarte ausgesprochen viel Spaß. Zur Vorgeschichte: Diese Speicherkarte sollte eigentlich ihren Dienst in einem Banana Pi leisten, einem Kleincomputer mit den Abmessungen und der Rechenleistung eines Smartphones – Optimal geeignet als Heimserver mit geringer Energieaufnahme. Im Prinzip eine feine Sache, die aber einen kleinen Haken hatte: Der Server arbeitete nicht stabil. Ungefähr einmal die Woche streikten einzelne Anwendungen oder Dateisysteme, bis hin zum kompletten Ausfall des Systems. Post mortem war festzustellen, dass Daten auf der Speicherkarte beschädigt waren, mit unbekannter Ursache.

Es gibt es sowohl zum Raspberry Pi als auch zum Banana Pi viele Berichte über Stabilitätsprobleme mit Datenkorruption, die auf schlechte Netzteile zurückgeführt werden konnten. Das eingesetzte Netzteil war schon mehr als großzügig ausgelegt, zur Sicherheit ergänzte ich noch eine kleine Kondensatorbank um Lastspitzen besser abzupuffern – Ohne Erfolg. Auch alle Dateisysteme so weit wie möglich nur schreibgeschützt zu nutzen brachte keine dauerhafte Besserung. Prozessor und Arbeitsspeicher waren die nächsten Verdächtigen, aber bei entsprechenden Tests unauffällig. Wer jetzt fragt: Und die Speicherkarte? Selbige wurde noch vor der ersten Verwendung einmal vollständig geprüft, ebenfalls ohne Beanstandungen.

Bei der Aufklärung des Problems spielte der Zufall dann eine doppelte Rolle. Ich hatte die Speicherkarte mit einer Sicherungskopie wiederhergestellt und im Anschluss einige Daten wieder auf die Karte kopiert. Ein Abgleich danach zeigte veränderte Dateien auf, obwohl die Karte noch gar nicht wieder in Benutzung war. Über die ganze Karte verteilt waren jeweils ohne Zusammenhang einzelne Bytes gekippt und enthielten komplett falsche Daten. Also doch die Speicherkarte! Ein wiederholter Test zeigte: Sequentielles schreiben/lesen war kein Problem, wurden aber bei vollem Medium viele kleinere Änderungen vorgenommen, kam es zufällig über die Karte verteilt zu Datenverlusten. Eigentlich ein klassischer Fall von write-only-memory.

Mit einer anderen SD-Karte läuft der Banana Pi nun stabil.

tl;dr

Auch wenn Werkzeuge wie h2testw oder F3 keine Fehler finden, muss eine Speicherkarte deshalb nicht fehlerfrei sein. Treten bei längerer Nutzung beschädigte Dateien oder Dateisysteme auf, kann dies auf Probleme mit dem Flash-Speicher oder dem Wear-Leveling hinweisen, insbesondere wenn diese Daten eigentlich nicht verändert wurden. Um Fehler dieser Art zu überprüfen ist ein zusätzlicher Schritt zu den genannten Werkzeugen erforderlich:

  1. Karte fast vollständig mit einem definierten Inhalt beschreiben
    (das leisten h2testw oder F3)
  2. Den freien Speicher mehrfach in kleinen Portionen beschreiben
    (Bilder sind gut geeignet)
  3. Inhalt überprüfen
    (hier können wieder h2testw oder F3 eingesetzt werden)

Schreibe einen Kommentar

Sofern nicht anders angegeben, stehen die Inhalte dieses Blogs unter der Lizenz
Creative Commons BY-NC-ND 3.0 Deutschland
Creative Commons Lizenzvertrag