SSDs unterscheiden sich wesentlich von HDDs, da sie Daten auf NAND-Halbleiter-Arrays speichern. Eine SSD weist typischerweise mehrere (4-16) NAND-Flash-Chips auf. Jeder dieser Chips ist in Blöcke unterteilt (Millionen NAND-Zellen), die weiter in Seiten (Tausende von NAND-Zellen) unterteilt sind. Seiten sind weiter in einzelne Zellen unterteilt. Abhängig von der Technologie kann jede Zelle 1-3 Datenbits speichern.

Aufgrund der Struktur und Technologie des NAND-Zellen-Arrays gibt es einige Faktoren, die das Datenmanagement in einer SSD zu einer interessanten Aufgabe machen:

 

  • Es ist nur möglich auf Seitenebene zu schreiben und auf Blockebene zu löschen.
  • Vor jedem Schreibvorgang muss die Zelle gelöscht werden.
  • Schreib-Lösch-Zyklen verschlechtern die Zelle und schließlich kann die Zelle nicht länger zuverlässig zum Speichern von Daten verwendet werden.
  • Die Daten werden über mehrere Standorte in Segmente geschrieben um höhere Übertragungsraten zu gewährleisten.

 

All diese Faktoren machen Kopieren, Verschieben und Duplizieren von Daten erforderlich. Dies erhöht die Komplexität der Verteilung der Daten in den NAND-Zellen. Die Daten werden fragmentiert und es wird eine große Menge veralteter Daten geben.

SSDs haben einen eingebauten Controller (Flash-Controller-Chip), der die Daten verwaltet und den physischen Standort verfolgt. Wenn das Betriebssystem einen Lese- oder Schreibbefehl sendet, durchläuft es den Flash-Controller, der dann den Befehl übersetzt. Das Betriebssystem sieht die Befehle des Flash-Controllers nicht wirklich. Daher kann das Betriebssystem den physischen Speicherort der Daten nicht verfolgen. Es wurde gezeigt, dass Betriebssystem-Bereinigung (Überschreiben von Daten mit einigen Mustern) auf SSDs nicht unbedingt alle Daten löscht, da der Flash-Controller den Befehl möglicherweise so übersetzt, dass er nicht für alle Dateninstanzen gilt.

 

Weiterführende Links:


  • No labels