Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Wie erkennt SSD von User eingerichtetes Overprovisioning?

  Alt 31. Jul 2019, 07:36
Ich denke der Denkfehler liegt schon in der Art, wie die Frage gestellt wurde:
Wie kriegt die SSD Platte mit, dass die diesen Bereich verwenden kann?
SSDs sind keine Platten sondern ähneln in Aufbau und Funktion eher RAM als Festplatten. Die Partitionierung läuft betriebssystemseitig auf einer höheren Ebene als das Wear-Leveling von SSD-Controllern. Daher kannst du auf der SSD frei lassen wo und wie viel du willst, physisch packt sich der SSD-Controller die Daten da hin wo es ihm grad genehm ist.

Insofern ließe dein Overprovisioning dem SD-Controller lediglich mehr Freiraum fürs Wear-Leveling, weil er die maximale Datenmenge (Gesamtkapazität minus freigelassenen Bereich) besser in den verfügbaren Speicherzellen verteilen kann. Damit wäre auch geklärt, dass es kein Zauberwerkzeug braucht. Das ist wahrscheinlich nur ein Buntiklicki-Workaround für DAUs, die mit FDISK & Co. nicht umgehen können.

Nehmen wir eine SSD mit 240 GB Platz und geben ihr eine Partition über die Gesamtkapazität, ohne jeglichen Platz. Nun schreibst du ein Programm, das eine Datei auf der SSD erzeugt, die per FileStream aufs Byte genau die gesamte Partition mit 0 füllt. Dann pickst du dir ein beliebiges Byte in den 240 GB heraus und beschreibst das tagelang nach dem Zufallsprinzip, sodass du tausendfach über der Anzahl der maximal möglichen spezifizierten Schreibvorgänge je Speicherzelle der SSD liegst. Die Speicherzelle wird dir trotzdem nicht kaputt gehen, weil der Controller das eigentlich zu schreibende Byte in eine beliebige physische Speicherzelle schreibt.

Eine 240-GB-Festplatte verhielte sich in dieser Konstellation ganz anders. Die Magnetscheibe würde tatsächlich über die gesamte Fläche mit 0 beschrieben und anschließend die betreffende Stelle mit dem Zufalls-Byte auf dem Platter vom Schreibkopf angefahren und immer wieder gelöscht und beschrieben. Der Grund liegt darin, dass die Festplattensteuerung seit Urzeiten vom BIOS des Rechners übernommen wird und Anweisungen zur Lese-Schreibkopf-Position aus dem Betriebssystem kommen. Deshalb auch die Frage nach den Sektorgrößen beim Formatieren von logischen Laufwerken.

Theoretisch bräuchten SSDs überhaupt keine Sektoren mehr, sondern könnten wie RAM direkt adressiert werden. Versuche in der Richtung gibt es seit einiger Zeit mit SSD-optimierten Dateisystemen unter Linux.

Um es mit dem obligatorischen Autovergleich zu sagen: Weil die ersten Blinker per lastabhängiger Relaissteuerung arbeiteten, muss man heute das Klick-Klack-Geräusch per Lautsprecher erzeugen und den Laststrom der Glühbirnen elektronisch messen. Schließlich steht in irgendwelchen alten Normen drin, dass der Fahrer ein Klick-Klack hören muss beim Blinken und dass der Blinkgeber schneller takten muss wenn ein Birnchen durchgebrannt ist. Deshalb müssen Retrofit-LED-Birnchen auch einen Zusatzwiderstand haben, damit der Stromverbrauch so hoch ist wie bei ollen Glühbirnchen. Andernfalls blinkt deine moderne S-Klasse mit 120 Hertz. Vorn und hinten nur Workarounds. Möglich wäre schließlich auch, dass die LED-Birnchen ihre Funktion per Datenrückkanal digital über die Stromleitungen an den modernen Blinkgeber melden.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter (31. Jul 2019 um 07:46 Uhr)
  Mit Zitat antworten Zitat