SSD Schreibt Datei in Cache und meldet an das Betriebssystem Schreiben erledigt

Stefan MM

Newbie
Registriert
Apr. 2017
Beiträge
4
Hallo.

Ich verwende einen Embedded PC (ATOM Processor) mit Windows 7.
Daran ist ein SSD Speicher SQF-SMSM4-32GB-S8C angeschlossen von dem aus auch gebootet wird.
Nun ist das Problem, dass beim Schreiben einer Datei, das Schreiben durch die SSD als erledigt gemeldet wird. Wenn ich anschließend die Spannungsversorgung hart ausschalte (da ich von Windows gemeldet bekomme dass die Datei geschrieben ist, kann ich das ruhug so machen) und beim Neustart die eben gespeicherte Datei öffnen möchte, meldet Windows die Datei sei korrupt.

Was läuft hier verkehrt?
Wo ist meine Datei hin, wenn die SSD meldet sie sei fertig mit Schreiben die Datei danach aber korrupt ist. D.h doch dass das Schreiben auf den Flash nicht abgeschlossen war, obwohl die SSD das gemeldet hat.

Kann ich diese Problematik irgendwie verhindern? Sowas in der Richtung dass die SSD erst fertig meldet wenn die Datei wirklich im Flash steht?

Eine Beschleunigung der SSD scheint mir nicht möglich, und würde auch nichts bringen solang die Meldung Schreiben der Datei ist abgeschlossen kommt und diese aber nur im Cache steht.

Über hinweise von euch würde ich mich sehr freuen.
Vielen Dank,
 
Woher weißt du, dass die SSD das erfolgreiche Schreiben meldet, bzw. wie schließt du aus, dass das noch im Windows Cache hängt? Eine SSD weiß nämlich eigentlich nix von Dateien. 1. Maßnahme wäre daher, den Schreibcache unter Windows auszuschalten. Den Rest muss die Firmware der SSD beherrschen - ggf. beim Hersteller nachfragen. Du kannst evtl. aber auch probieren, unter Linux per hdparm das Hardwareseitig zu beeinflussen:
Code:
 hdparm -W0 /dev/sd..
 
Zuletzt bearbeitet:
Stefan MM schrieb:
Was läuft hier verkehrt?

Kann ich diese Problematik irgendwie verhindern?

1) anwenderfehler allererster güte
2) den pc ganz normal herunterfahren!
 
Ist der Fehler reproduzierbar?
Wie verhält es sich, wenn du das System nicht hart ausschaltest, sondern normal herunterfährst?
 
Ich kann nur vermuten: der Controller der SSD meldet den beendeten Schreibvorgang, trotzdem wird die Datei intern noch verabeitet (umgeparkt, komprimiert , codiert, was auch immer). Dieser Vorgang schlägt natürlich Fehl wenn du den Strom ziehst. Kommt natürlich drauf an wieviel Zeit die SSD noch hat, bevor der Saft weg ist.

Darf man Fragen wieso der Strom gezogen wird? Das ist für Datenkonsistenz nie optimal.
 
angeschlossen... wie? Per USB? Dann einfach rechts unten neben der Uhr das USB-Symbol anklicken und auf Medium auswerfen oder so ähnlich klicken. Damit sollte dann der Rst auch wirklich geschrieben sein. Und vor allem nicht einfach hart abschalten, das tut keinem OS gut.
 
Was läuft hier verkehrt?
Wenn ich anschließend die Spannungsversorgung hart ausschalte

Warum macht man denn so etwas. Das ist Grundwissen, das beim harten Ausschalten Datenverlust auftreten kann. Fahr das System ordentlich herunter, dafür ist die Funktion auch gedacht.

Ansonsten deaktiviere den Schreibcache im Gerätemanager des entsprechenden Datenträgers, was widerum aber das ganze System speziell bei Schreiben kleiner Dateien extrem langsam macht.
 
OMG...
Wie wärs wenn du endlich mal Herunterfahren im Startmenü benutzen würdest... (Wieso gibt es immer noch keinen Facepalm-Smiley auf Cb?!?!)
 
Windows bekommt eine Rückmeldung von der SSD, dass schreiben sei erledigt. Im einfachsten Fall durch ein ACK.
Das die Datei dann nur im Cache steht ist nur eine Vermutung. Aber da muss sie ja auf jeden Fall durch.
Wenn ich die korrupte Datei auf USB Stick kopiere und mir im Editor anschauen, dann ist der Anfang der Datei korrekt geschrieben. Im Vergleich zu einer gesunden Datei fehlt bei der korrupten Datei das Datei Ende und wird daher von Windows als korrupt gemeldet.

Daher meine Vermutung, dass das Schreiben in den Flash nicht abgeschlossen ist.
Eine andere Ursache fällt mir nicht ein.
Ergänzung ()

Der Fehler ist Reproduzierbar.
Wird das System normal herunter gefahren dritt das Problem nicht auf.
 
Wenn die Datei tatsächlich in den Cache geschrieben wird, dann ist Strom abziehen gar nicht gut. Der Cache ist meistens flüchtig -> Stromg weg, Daten weg.
Wenn die SSD die Daten aus dem Cache in den eigentlichen Speicher packen will und damit nicht fertig wird, ist es klar, dass die Datei kaputt geht.
 
Genau um diesen Datenverlusten vorzubeugen bei Stromausfall, wurden USV-Geräte bzw. BBU´s konstruiert.

USV = Unterbrechungsfreie Stromversorgung

BBU = Battery Backup Unit
 
Schreibcache des Datenträgers im Gerätemanager deaktivieren (das kostet Performance) oder einfach den Rechner ordentlich herunterfahren...
 
Das Runterfahren ist natürlich der normale Weg. Habe ich jetzt aber einen "faulen" Anwender, der durch das Betätigen eines Buttons im Hintergrund das Speichern aktiviert, und nach dem Betätigen des Buttons der Meinung ist fertig zu sein, schaltet er das Gerät unmittelbar danach aus.

Dieser Vorgang dauert höchstens ein paar Sekunden, was mich eigentlich verwundert, da dies genug Zeit sein sollte, dass die kleine Datei geschrieben wird. Aber scheinbar ist irgendeiner der Beteiligten nicht schnell genug. Da der Fehler aber reproduzierbar ist und Windows wie gesagt eine Meldung bekommt SSD sei fertig, muss es doch an der SSD liegen?
 
Stefan MM schrieb:
Wird das System normal herunter gefahren dritt das Problem nicht auf.

na, da hast du das problem ja schon selbst gelöst.

ps: welch wunder, normales herunterfahren ist besser als den stecker ziehen :rolleyes:

edit:
mach dir eine shutdown-batch und fertig.
 
Erneute Vermutung: Windows wartet beim normalen Shut-Down vermutlich bis die SSD alle Vorgänge abgeschlossen hat. Das Signal an die SSD, dass diese alle Arbeiten beenden soll, fehlt beim Stecker ziehen.
Aber das reproduzierbare Verhalten ist in der Tat komisch, da stimme ich dir zu. Nichtsdestotrotz ist es vermeidbar.
 
Wie wärs denn dann als Kompromiss sozusagen, den PC beim Drücken des Powerbuttons herunterfahren zu lassen? Das geht nämlich auch.

Ansonsten hat das was von: "wenn ich in die Garage fahre und stehen bleibe fährt mein Auto immer gegen die Wand wenn ich schnell von der Kupplung gehe, obwohl die Strecke ausreichen müsste den Motor abzuwürgen ..." :freak::evillol:

Herunterfahren hat bei einem modernen Betriebssystem natürlich die Funktion, alle laufenden Prozesse ordnungsgemäss zu beenden. Sonst bräuchte man diese Funktion nicht.

Und natürlich ist der Vorgang reproduzierbar. Jede Porzellantasse die ich draußen aufs Pflaster fallen lasse zerbricht. Weil sie dafür halt einfach nicht gedacht sind. :p

Ansonsten installier Dir MS-DOS, da konnt man ausschalten, sobald die HDD-LED aus blieb.
 
Zuletzt bearbeitet:
Es wurde schon alles gesagt. Sauber herunterfahren und das "Problem" ist behoben! Ende im Gelände...
 
Naja, dass eine kleine Datei nicht vollständig im Speicher landet, klingt erst mal komisch. Aber wer weiß, wie die SSD tickt. Vielleicht lässt diese die Datei auch erst vollständig im Cache, dann wäre es klar warum es reproduzierbar ist.
 
Stefan MM schrieb:
Das Runterfahren ist natürlich der normale Weg. Habe ich jetzt aber einen "faulen" Anwender, der durch das Betätigen eines Buttons im Hintergrund das Speichern aktiviert, und nach dem Betätigen des Buttons der Meinung ist fertig zu sein, schaltet er das Gerät unmittelbar danach aus.

Sag dem Anwender er soll das Ding ordnungsgemäß runterfahren oder mit den Konsequenzen leben
 
Zurück
Oben