Wie können SSDs gut funktionieren, wenn sie verschlüsselt sind oder ohne TRIM?

530
Ivan X

Wenn ich SSDs verstehe, verwalten sie intern die von einem Betriebssystem erwarteten nummerierten "Festplattenlaufwerke" in Innenseiten, die in Blöcken gruppiert sind. Die SSD-Firmware ist für die Konsolidierung der internen Seiten verantwortlich, sodass leere Blöcke für die Wiederverwendung verfügbar sind. Dieser Vorgang ist langsam und findet daher im Hintergrund statt. Wenn ein Laufwerk fast voll ist, kann das Laufwerk für den Benutzer langsam erscheinen, da die Firmware funktionieren muss, um Speicherplatz zur Verfügung zu stellen, und das Betriebssystem muss darauf warten.

Das Betriebssystem hat keine Kenntnis von der inneren Organisation des Laufwerks. Sie teilt einer SSD mit, dass ein Dateisystemsektor über TRIM verfügbar ist. Die SSD kann dann intern die Seiten, die diesen Sektor repräsentieren, als zur Wiederverwendung verfügbar kennzeichnen.

Das lässt mich mit den folgenden Fragen:

  • Auf einem Laufwerk, auf dem TRIM nicht aktiviert ist, wie es häufig bei externen Laufwerken oder RAID-Setups der Fall ist, sowie bei älteren Laufwerken und Betriebssystemen, wenn ein Laufwerk fast voll ist, wie kann es wissen, wann einiges passiert ist gelöscht, damit es eine Reihe interner Seiten zur Verfügung stellen kann? Und wenn es nicht weiß, wie kann es optimal funktionieren?

  • Warum melden Betriebssysteme nicht regelmäßig alle verfügbaren freien Sektoren eines Dateisystems über TRIM an SSDs, sodass die SSD immer so viele freie interne Seiten / Blöcke wie möglich haben kann? (Soweit ich es verstehe, meldet ein Betriebssystem nur freie Dateisystemsektoren, sobald diese verfügbar sind. Dies bedeutet, dass SSD-Seiten intern nicht verfügbar sind, wenn TRIM nicht von Anfang an aktiviert wurde oder auf ein internes Laufwerk vorübergehend von extern zugegriffen wird.

  • Wenn die Ganzfestplattenverschlüsselung in einem Betriebssystem aktiviert ist, wie wird die Leistung dadurch nicht beeinträchtigt? Wäre nicht jede interne Seite aus Sicht der SSD in Gebrauch?

  • Warum stellen SSD-Hersteller keine Tools bereit, um eine SSD aus Sicherheits- und Leistungsgründen in den ursprünglichen Werkszustand zurückzusetzen, wobei alle Seiten deaktiviert sind? (Die einzige Möglichkeit, dies zu tun, ist über ein esoterisches Linux-Hilfsprogramm, das den Befehl ATA_SECURE_ERASE an die Laufwerksfirmware ausgeben kann, und nicht jeder Laufwerksfirmware kann vertraut werden, dass sie richtig oder umfassend implementiert wird.)

Jeder Einblick wäre dankbar.

0
Ich nehme an, die FTL des Laufwerks erkennt, dass das Betriebssystem in denselben logischen Block schreibt, sodass der alte Inhalt per Definition nicht mehr benötigt wird. grawity vor 5 Jahren 0
Das macht Sinn, und ich hatte es nicht in Betracht gezogen, obwohl es immer noch ineffizient erscheint, dass der Antrieb darauf warten muss. Ivan X vor 5 Jahren 0
Und genau deshalb haben sie TRIM erfunden. grawity vor 5 Jahren 0

2 Antworten auf die Frage

1
grawity

Warum melden Betriebssysteme nicht regelmäßig alle verfügbaren freien Sektoren eines Dateisystems über TRIM an SSDs, sodass die SSD immer so viele freie interne Seiten / Blöcke wie möglich haben kann? (Soweit ich es verstehe, meldet ein Betriebssystem nur freie Dateisystemsektoren, sobald diese verfügbar sind. Dies bedeutet, dass SSD-Seiten intern nicht verfügbar sind, wenn TRIM nicht von Anfang an aktiviert wurde oder auf ein internes Laufwerk vorübergehend von extern zugegriffen wird.

Tun sie. Dies geschieht durch wöchentliche automatische Wartung von Windows (über das Defragmentierungsprogramm, das SSDs von Festplatten erkennt) und wöchentlich fstrim.timerunter Linux.

Wenn die Ganzfestplattenverschlüsselung in einem Betriebssystem aktiviert ist, wie wird die Leistung dadurch nicht beeinträchtigt? Wäre nicht jede interne Seite aus Sicht der SSD in Gebrauch?

Dies hängt davon ab, ob das Verschlüsselungssystem TRIM-Informationen durchläuft oder nicht. Oft ist es vom Benutzer konfigurierbar. Sie können zwischen Leistung und absoluter Privatsphäre wählen.

(Wenn Sie der SSD mitteilen, welche Seiten leer sind, werden Außenseiter die gleichen Informationen erhalten. Ich persönlich denke nicht, dass dies ein Problem ist, aber manche Leute möchten nicht, dass etwas durchgesickert wird.)

Warum stellen SSD-Hersteller keine Tools bereit, um eine SSD aus Sicherheits- und Leistungsgründen in den ursprünglichen Werkszustand zurückzusetzen, wobei alle Seiten deaktiviert sind? (Die einzige Möglichkeit, dies zu tun, ist über ein esoterisches Linux-Hilfsprogramm, das den Befehl ATA_SECURE_ERASE an die Laufwerksfirmware ausgeben kann, und nicht jeder Laufwerksfirmware kann vertraut werden, dass sie richtig oder umfassend implementiert wird.)

SSD-Hersteller bieten hierfür bereits Tools an - und diese Tools verwenden ATA_SECURE_ERASE.

Es gibt keinen Unterschied. Wenn Sie anbieterspezifische Tools zum Senden herstellerspezifischer Befehle zur Verfügung hatten, müssen Sie dennoch der Firmware des Laufwerks vertrauen, um sie richtig und umfassend zu implementieren.

Und es wäre auf der Host-Seite noch schlimmer, da Sie lediglich ein esoterisches Windows- Dienstprogramm haben, das schnell vergessen wird und oft nicht mehr mit der nächsten Windows-Version funktioniert. (Ich habe noch ein paar Tools, die USB-Flash-Laufwerke im Low-Level-Format formatieren können, und alle benötigen Windows XP.)

Mittlerweile ist ATA_SECURE_ERASE ein gewisser Standard - es gibt Windows-Programme zum Aufrufen, es gibt Linux-Programme, einige davon grafisch, einige über die Befehlszeile, und sie funktionieren alle unabhängig von der Marke oder dem Modell des Laufwerks.

Das ist sehr hilfreich. Vielen Dank. Ich bin in erster Linie auf der Mac-Seite des Zauns und Apple dokumentiert nicht viel von der zugrunde liegenden Technologie. Daher ist es schwer zu wissen, ob sie einige dieser Dinge für ihre SSDs bereitstellen. Ich bin nicht auf dem neuesten Stand in Windows und Linux, daher schätze ich die Informationen. Letztes Mal habe ich mir die Hersteller-SSD-Utils unter Windows angeschaut, sie hatten keine vollständige Löschung (und einige tun es immer noch nicht, wie das externe Samsung-T5-SSD-Dienstprogramm, das meines Erachtens dazu führt, dass ATA_SECURE_ERASE nicht über USB übergeben werden kann). . Ivan X vor 5 Jahren 0
Um erweiterte ATA-Befehle über USB-Massenspeicher (SCSI) zu übergeben, müssen das Programm und das USB-Gehäuse entweder [SAT] (https://en.wikipedia.org/wiki/SCSI_/_ATA_Translation) oder mindestens eine davon unterstützen der älteren herstellerspezifischen Passthrough-Methoden. (Zum Beispiel listet Linux smartctl 'sat', 'usbjmicron', 'usbcypres', 'usbprolific' ...) auf. grawity vor 5 Jahren 0
Richtig, aber da Samsung sowohl das Programm als auch das Gehäuse (externes T5-Laufwerk) herstellt, sollten sie diese Fähigkeit bieten. Aber es klingt so, als gäbe es technisch keinen Grund, warum sie es nicht konnten. Ivan X vor 5 Jahren 0
0
DDS

Ich glaube nicht, dass dies (durch Standardbefehle) einfach möglich ist, weil die Paginierung, wie Sie bereits sagten, ausschließlich von der Firmware vorgenommen wird (und wie die Paginierung durchgeführt wird, was den Unterschied zwischen den SSD-Anbietern ausmacht). Die Verbindung zwischen freien Clustern und freien Seiten wird auch von der Firmware beibehalten, sodass Sie 3 'logisch zusammenhängende' Sektoren auf verschiedene Zeilen verteilen können (Denken Sie daran, dass eine SDD eine ganze Zeile löschen muss, um nur eine einzelne Seite zu löschen). Dies wurde mir beigebracht, aber damals waren SSD nicht Mainstream und ich denke, es war das erste Mal, dass sie darüber sprachen.