03.07.2020 (Doc Storage)
2.9 von 5, (10 Bewertungen)

Problem: SSDs mit Trim-Funktion in Disk-Arrays

Leserfrage: In einem Synology-RAID hat scheinbar der Trim-Befehl der eingesetzten SSDs dafür gesorgt, dass das System nach einer Zeit, unbenutzbar langsam wurde. Das Problem konnte nur mit einer kompletten Neuinstallation gelöst werden. Danach hat das Array wieder wie gewohnt performt.

Nun ist die Frage, kann so ein Problem auch in »richtigen« Speichersystemen auftreten? Gibt’s in Enterprise-SSDs den Trim-Befehl überhaupt? Welche Stelle regelt die Kommunikation mit der SSD (Dateisystem, OS, Controller)?

Antwort Doc Storage:

Der TRIM-Befehl ist eine Option, mit der die Leistung und Langlebigkeit von SSDs gesteigert werden soll. Mit ihm übermittelt das Betriebssystem der SSD die Bereiche, die es nicht mehr für gültige Daten benötigt, und welche somit gelöscht werden können. Alle drei beteiligten Elemente, also das Speichermedium selbst, das Betriebs- und Dateisystem müssen hierfür TRIM unterstützen.

Als Dateisysteme kommen also Ext4 unter Linux oder NTFS unter Windows in Frage. Alle aktuellen Windows-Systeme senden diesen Befehl automatisch an die SSD, die Defragmentierung wird im Gegenzug ausgeschaltet. Linux-Kernel ab 2.6.38 verfügen für Ext4 und XFS über ein sogenanntes batched discard, welches vor allem bei älteren, also solchen SSDs mit langsameren TRIM-Verhalten, für Optimierung sorgt.

ATA-TRIM kann jedoch nur für einzeln betriebene SSDs eingesetzt werden, RAID-Controller unterstützen den Befehl nicht. Hier sollte eine etwas großzügigere Definition des Spare-Bereiches (10 bis 15 Prozent der SSD-Kapazität) für Abhilfe sorgen.

Für den beschriebenen Fall, also der Nutzung des TRIM-Befehles in Synology-RAID-Systemen, rät der Hersteller zum Einsatz von TRIM, falls ein Volume ausschließlich aus SSDs besteht. Allerdings ist dieser Befehl nur auf bestimmten Modellen mit bestimmten RAID-Typen verfügbar. Darüber hinaus sind manche SSD-Modelle nicht in der Lage, mit dem Befehl in RAID-5- oder -6-Gruppen zu arbeiten. Auch die Nutzung von SSD-Cache oder des Time-Backup-Paketes verhindert den Einsatz von TRIM.

Synology weist an mehreren Stellen ausdrücklich darauf hin, dass der Einsatz von TRIM die Leistung eines Speichersystems zum Teil deutlich verschlechtern kann. Dies ergibt sich aus der Tatsache, dass während der Ausführung kein anderer ATA-Befehl durch das Laufwerk angenommen wird. Nur an Controllern mit AHCI-Modus können Befehle parallel abgearbeitet werden, dies wird jedoch von den meisten Subsystemen nicht angeboten. Auch die Nutzung von TRIM auf nur einem Volume wirkt sich auf den gesamten Speicher-Pool aus. Als Schlussfolgerung gilt, den TRIM-Befehl auf Synology nicht zu nutzen, da die hier verbauten Controller über eigene Optimierungsmechanismen verfügen und sich durch diesen im günstigsten Falle keine Verbesserungen ergeben.

Aus den beschriebenen Gründen sollte auf keinem Speichersubsystem versucht werden, den TRIM-Befehl an einzelne SSDs zu senden. Alle modernen Controller verfügen wie bereits erwähnt über eigene Algorithmen, die zur Pflege und zur Leistungsoptimierung von SSDs beitragen. Es handelt sich also nicht um ein »Problem«, sondern um die schlichte Tatsache, dass Systeme mit RAID-Controllern nach anderen Prinzipien mit den SSD-Medien umgehen als Arbeitsplatzrechner mit einem oder zwei Laufwerken. Solche Systeme kommunizieren annähernd ausschließlich über die eigenen Controller mit den SSDs, so dass Betriebs- und Dateisysteme hier ausgenommen sind bzw. proprietäre, herstellereigene Schnittstellen nutzen.

Gruß
Doc Storage

Stellen Sie Ihre Frage
Doc. tec. Storage beantwortet alle Ihre technischen Fragen zu Storage, Backup & Co.

Stellen Sie Ihre Frage an: DocStorage@speicherguide.de
Kommentare (1)
03.07.2020 - jan

Lieber Doc,
TRIM das unverstandene Wesen.
Die meisten DB/Mail-Admins die ich kenne und mit limitierten Ressourcen arbeiten müssen - und wissen was Sie tun - nutzen gar keinen TRIM!
Warum? TRIM synchronisiert das FS (Ext4 && mein geliebtes XFS) mit der Firmware der SSD bezüglich nicht mehr genutzter (expired) Blöcke. Das geht aufgrund der bescheidenen Steuerungsmöglichkeiten, auf die sich der grüne Tisch einigen konnte, der das spezifiziert hat nur mit zeitweisem Aussetzten der operativen Funktionen auf dem Gerät (Pipeline flush). Das ist aber genau das Letzte was man auf dem Gerät oder im RAID will.
Was also tun sprach Zeus? Nun ganz einfach die SSD nicht zu 100% nutzen sondern nur 80-90% über LVM nutzen. Der Controller der SSD ist schlau genug um den nicht genutzten Bereich zu nutzen - und im laufenden Betrieb peu a peu die von Filesystem verworfenen Blöcke doch noch neu zu überschreiben (ohne Pipeline stall).
Wenn die Hersteller der NAS Systeme das so nicht verstehen - und entsprechend parametrisieren - dann ist das für die Kunden einfach nur schade...