Johannes Truschnigg - SRE & DevOps


Zur Suche ▼Zum Archiv ▼

Eintrag von 2010-02-01

DSM/TRIM auch für Kingston-SSDs mit Intel-Controller


Über Solid State Disks habe ich erst kürzlich in meinem Blog geschrieben - ich selbst hatte mir vor einigen Wochen ein solches Gerät von Kingston, genauer ein Kingston SSDNow V-Series 40GB, angeschafft. Im Inneren des Geräts werkt ein SSD-Controller von Intel, der zu den besten seiner Art zählt: Gegenwärtig können ihm allein Konkurrenzprodukte der Firma Indilinx das Wasser reichen.

Kingstons 40GB-SSD-Variante der Intel Postville-SSDs hat sich offenbar so gut verkauft, dass Intel dieses Geschäft von nun an lieber selbst - das zumindest ist meine Erklärung dafür, dass Kingston das Gerät nicht mehr "produziert" (eigentlich nur verkauft), und es von Intel seit kurzem ein Produkt namens Intel X25-V G2 40GB gibt, das zur Kingston V-Series baugleich sein soll.

Damit nicht genug, hat man bei Intel und/oder Kingston auch noch beschlossen, dass diese "neue" 40GB-SSD ein durchaus relevantes Feature mehr haben sollte, um es attraktiver als den Vorgänger zu machen: ATA Data Set Management, auch bekannt unter dem Kürzel TRIM. Mittels DSM/TRIM kann ein Dienstprogramm bzw. Dateisystem dem SSD-Controller mitteilen, welche Blöcke auf dem Gerät es de facto nicht mehr allokiert, worauf diese dann wieder in die Kandidatenliste für das Wear Levelling aufgenommen werden können. Dies erhöht im besten Fall die Labenesdauer eines SSD, sorgt aber auf jeden Fall für höhere Schreibgeschwindigkeiten mit zunehmendem Alter des Mediums. Während man bei Kingston anfänglich auf Nachfrage noch meinte, DSM/TRIM für die SSD per Firmware-Update nachzuliefern, gab es vor einiger Zeit einen kleinen Aufschrei in der Netzgemeinde: Seitens Kingston wurde beiläufig bekanntgegeben, dass dieses Feature für diese Produktreihe nicht (mehr) auf der Roadmap stünde - es wären keine Firmware-Updates für die Kingston V-Series mehr zu erwarten.

Dazu sollte man wissen: Die Kingston V-Series SSD verfügt im Auslieferungszustand über die Firmware in Version 02HA - dies ist die erste Version der Firmware für Intel Postville SSDs, die DSM/TRIM aktiviert. Es ist zugleich auch jene Version, die von Intel nach wenigen Stunden wieder aus dem Downloadbereich zurückgezogen wurde, weil sie bei einigen Nutzern unter Windows 7 zu nicht näher beschriebenen Problemen geführt haben soll. Einige Zeit später erschien die fehlerkorrigierte Firmware-Version 02HD, die auch heute noch aktuell ist, und DSM/TRIM problemlos zur Verfügung stellt. Ohne Einblick in den Firmware-Quellcode konnte man also als Kingston-Kunde nicht sicher sein, ob dieser potenziell Datenverlust verursachende Fehler nicht auch in der Firmware der eigenen SSD schlummert - und eine Behebung dieses beunruhigenden Umstandes war nicht abzusehen.

Zum Updaten der Firmware von Intel-SSDs liefert Intel das Image einer FreeDOS-Boot-CD mit dem Programm iSSDFUT.exe. Lässt man dieses mit einer Kingston-SSD im System ablaufen meldet es nach wenigen Sekunden, dass keine Intel-SSD gefunden wurde, die für ein Firmware-Update in Frage käme. Gleich nachdem ich dies mit eigenen Augen beobachten durfte, habe ich mich an das Aushebeln des vermuteten Sperrmechanismus gesetzt. Nach einigen kleinen Modifikationen an der DOS-Binary hatte ich das Update-Programm zumindest so weit gebracht, dass mein SSD - trotz des Kingston-Brandzeichens in der Gerätekennung - in der Liste der erkannten SSDs aufschien. Das Update wurde mir dennoch verweigert: meine Firmware wäre eine "pre-production Version", und ich solle mich doch bitte an den Intel-Support wenden. In Folge ist es mir nicht gleich gelungen, auch diesen Mechanismus zu umgehen - was nicht mehr weiter tragisch ist, da ein overclock.net-User Namens telnet inzwischen ein von meinem Hack inspiriertes, voll funktionstüchtiges Update-Programm veröffentlicht hat. Mit diesem ist es möglich, die Firmware-Version 02HD auch auf ein Kingston-SSD aufzuspielen. Dies ist ein nicht ungefährlicher Prozess, der das Gerät möglicherweise irreparabel beschädigen kann - ich wurde zum Glück vor solchen Problemen verschont.

Ernüchternd allerdings nach dem Flashen die Erkenntnis, dass trotz der aktualisierten Firmware immer noch kein DSM/TRIM im Feature-Set der SSD aufscheinen wollte. Weitere Nachforschungen des Urhebers des modifizierten Update-Programms ergaben, dass ein bestimmtes ATA-Kommando in Richtung des Kingston-Geräts abgesetzt werden muss, um es nun tatsächlich zu aktivieren: dco restore (drive configuration restore). Das Programm `hdparm` erledigt das unter GNU/Linux (hier Beispielhaft am Device sda):

# hdparm --yes-i-know-what-i-am-doing --dco-restore /dev/sda

hdparm warnt, dass diese Operation "EXTREMELY DANGEROUS" ist, und mit hoher Wahrscheinlichkeit zu Datenverlust führen wird. Mit einem Backup gerüstet habe ich es dennoch gewagt, und keine der befürchteten Probleme bekommen. Gemeinsam mit dem Script `wiper.sh` (leider ist eine gepatchte Version für Intel-SSD-Controller notwendig) aus dem hdparm-Distributionstarball und hdparm 9.27 ist es mir nun möglich, DSM/TRIM zur Leistungssteigerung meines SSD zu nutzen. Ab Linux 2.6.33 und unter Nutzung von btrfs oder ext4 gibt es zudem bald automatisches TRIM im Hintergrund, sodass die manuelle Anwendung von `wiper.sh` nicht mehr notwendig ist.

direkter Link ▲

© 2007-2019 Johannes Truschnigg | valid xhmtl & css