Welche Schreibmuster sind "flashfreundlich"?

614
Archduke Liamus

Angenommen, es handelt sich um ein gewöhnliches USB-Flashlaufwerk (das möglicherweise den Leveln abnimmt oder nicht) und über ein "dummes" Dateisystem, das nicht speziell für Flash-Speicher (wie FAT32 usw.) optimiert ist. Das Laufwerk hat wahrscheinlich keine TRIM-Unterstützung.

Da Flash-Laufwerksblöcke nur eine begrenzte Anzahl von Überschreibungen aufweisen, ist es sinnvoll, so viele Überschreibungen wie möglich zu minimieren. Wenn ich nun einige Dateien A, B und C erstellen würde, müssen Sie die Dateien mehrmals an Ort und Stelle ändern. Dies würde das Laufwerk mehr tragen, als lediglich B ', C' usw. hinzuzufügen und schließlich die Originale zu entfernen, wenn ich keinen Platz mehr habe ?

Optimiere ich vorzeitig oder gibt es dort ein Körnchen Wahrheit?

(Hinweis: Hier geht es nicht darum, was das Laufwerk oder Betriebssystem intern tut. Es geht darum, wie ein Benutzer es verwenden sollte.)

0
Um dies zu verdeutlichen: Wird Ihre Frage "Wird eine In-Place-Datei geändert, nicht als Schreibvorgang in Bezug auf die Schreibdauer von Flash-Speichern?" Andrew vor 5 Jahren 0
Es ist eher das Gegenteil: "Vermeidet das Vermeiden von Modifikationen vor Ort Abnutzung?" Archduke Liamus vor 5 Jahren 0
Flash-Medien sind billig und weitaus widerstandsfähiger als früher. Verwenden Sie einfach das Laufwerk und machen Sie sich keine Sorgen über Verschleiß. Keltari vor 5 Jahren 3
Ich denke, Sie werden feststellen, dass Sie die Dinge nicht wirklich verbessern werden. Ich habe diesen Artikel über CNET gefunden, der im Wesentlichen besagt, dass es keinen Stress gibt, es sei denn, Sie schreiben etwa 50 GB / Tag auf die Festplatte. https://www.cnet.com/how-to/how-ssds-solid-state-drives-work-increase-lifespan/ Andrew vor 5 Jahren 1
Was passiert, wenn es Zeit ist, die redundanten Dateien zu löschen? Sie müssen GBs von Dateien durchsuchen, um herauszufinden, was gelöscht werden soll. Sie müssen außerdem den freien und belegten Speicherplatz nachverfolgen und nach dem Umstand rekonstruieren, was gelöscht werden soll, anstatt ein automatisches Löschen zuzulassen. Wenn Sie zu lange warten, kann es sein, dass sich Ihre eigentliche Arbeit aufgrund unzureichenden Platzes verzögert. Es klingt wie Sie möchten Ihre eigene Zeit und Energie verwenden, um die Funktionen des Controller-Chips auf einem billigen Laufwerk auszuführen. (weiter) fixer1234 vor 5 Jahren 1
Das hilft dir nicht, deine eigene Arbeit zu erledigen, es fügt dir Arbeit hinzu, um möglicherweise ein bisschen mehr Leben aus einem billigen Gerät herauszuholen. Der Wert von Silizium im Wert von Pennys, der Ihr Leben einfacher machen soll, würde Ihnen die Arbeit delegieren, damit Sie seine Arbeit um viele Größenordnungen langsamer erledigen können. Menschen als untergeordnete Sklaven für Siliziummeister - klingt wie ein Scifi-Horrorfilm. :-) fixer1234 vor 5 Jahren 1

1 Antwort auf die Frage

1
LawrenceC

Alle USB-Laufwerke verfügen über einen Mikrocontroller, der eingehende USB-Anforderungen entgegennimmt und sie in Aktionen umwandelt, die mit der tatsächlichen Speicherung auf dem USB-Gerät übereinstimmen.

Bei USB-Laufwerken, die über NAND-Flash verfügen, implementiert die Firmware / der Mikrocontroller dieser Geräte (hoffentlich) wahrscheinlich eine FTL, die den Leveln abnimmt.

Leider können Sie nicht genau wissen, was der Mikrocontroller macht, ohne dass der Quellcode über Firmware verfügt und die kleine Hardwareplattform auf diesem USB-Flashlaufwerk vollständig bekannt ist.

Es gibt keine standardisierte Hardware-, Firmware- oder Softwareplattform für USB-Flash-Laufwerke. Daher können Sie sich nicht auf irgendwelche Standards verlassen, um genau zu bestimmen, was die Firmware bei eingehenden USB-Anfragen tun kann, ohne dass Sie über die entsprechenden Informationen verfügen Mikrocontroller, NAND-Flash-Hardware und Firmware in Frage.

Hierbei geht es nicht darum, was das Laufwerk oder Betriebssystem intern tut.

Ich weiß, aber ohne dieses interne Wissen können Sie Ihr Schreibverhalten nicht sinnvoll ändern. Insbesondere da es verschiedene Mikrocontroller, Firmwares und NAND-Flash-Chips gibt, funktionieren die Auswirkungen auf ein Flash-Laufwerk möglicherweise nicht auf einem anderen Flash-Laufwerk.


ein "dummes" Dateisystem, das nicht speziell für Flash-Speicher optimiert ist

Für Flash-Speicher optimierte Dateisysteme benötigen direkten Zugriff auf die Flash-Hardware, damit sie selbst Löschbefehle an den Flash ausgeben können. Mit einem Gerät über einen USB-, SATA-, SCSI-Bus über Massenspeicherbefehle zu kommunizieren, ist kein direkter Zugriff.

Die wahrscheinlich einfachste Situation, in der Sie dies erleben können, sind Linux-basierte Router auf Verbraucherebene. Das zugrunde liegende Linux-Betriebssystem ist eingeschaltet und hat Zugriff auf einen 4-MB-, 8-MB-, 16-MB- oder ähnlichen Flash-Chip, der mit ihm sprechen und direkt damit umgehen kann. Android-Handys sind ähnlich.

Sie können keinen Löschbefehl für andere USB- oder SATA-Massenspeichergeräte als TRIM ausgeben (und dies ist nur eine Anforderung an die Gerätefirmware und kein direkter Befehl zum Flashen von Chips). Diese Standards sind für Festplatten und nicht für Flashhardware gedacht.

Wenn ich nun einige Dateien A, B und C erstellen würde, ändern Sie die Dateien mehrmals an Ort und Stelle, würde dies das Laufwerk mehr tragen als nur das Hinzufügen von B ', C' usw.

Flash-Chips werden in Seiten gelesen und geschrieben. Sie werden in Sätzen von Seiten gelöscht, die von Linux-Projekten als "Eraseblocks" bezeichnet werden. (Dies unterscheidet sich sehr von mechanischen Festplatten).

Flash-basierte Speichergeräte implementieren eine FTL - eine Flash-Übersetzungsebene. Was ist das: Sie unterhalten eine interne Tabelle, die OS-sichtbare "Blöcke" auf Firmware-sichtbare Flash-Seiten (PBA zu LBA) abbildet, und sie verfolgen auch, welche "Löschblöcke" für neue Daten bereit sind. Eingehende Schreibvorgänge gehen nicht nur auf der Flash-Seite basierend auf der eingehenden Blocknummer, sondern überall dort, wo die Firmware ein guter Ort ist - und die Firmware aktualisiert ihre interne PBA in die LBA-Tabelle, um sie bei Bedarf als nächstes zu finden.

Gute Firmwares werden versuchen, Schreibvorgänge aus Leistungsgründen zu gelöschten Seiten mit gelöschten Seiten umzuleiten, und sie tauschen Blöcke im Hintergrund aus, um sie so zu machen, dass das Löschen vor dem Schreiben nicht erforderlich ist. Wenn die Laufwerke voll sind, ist dies weniger wahrscheinlich und die Leistung wird darunter leiden.

Sie können dann davon ausgehen, dass Schreibvorgänge, auch wenn dieselbe Datei und aus der Sicht des Betriebssystems "blockiert" wird, nicht an dieselbe Stelle im Flash gehen. So gewinnen Sie nichts, wenn Sie sich Sorgen machen, dass Dateien vor Ort geändert werden.


Die Moral der Geschichte: Mach dir keine Sorgen. Behandeln Sie es wie eine normale Festplatte und halten Sie Sicherungskopien. Crappy Flash-Laufwerke werden früher sterben als gute.