Hat Ubuntu Unterstützung für den TRIM-Befehl zur Verwendung mit SSD?

34

SSD-Laufwerke müssen "gelöscht / zurückgesetzt" werden, nachdem das Laufwerk voll ist, um die Leistung aufrechtzuerhalten. Dies erfolgt über den Befehl TRIM für neue SSD-Laufwerke. Unterstützt Ubuntu den TRIM-Befehl (über hdparm usw.) zum Löschen / Zurücksetzen dieser Laufwerke?

ssanj
quelle
Gute Frage, beachten Sie jedoch, dass das Ausmaß, in dem TRIM die Leistung verbessert, bei SSDs unterschiedlich ist. Bei manchen macht es keinen so großen Unterschied, wie Sie denken (obwohl sie ohnehin meistens die langsameren zu sein scheinen).
Nicholas Knight
1
Ich denke, die Leistung würde auf den gleichen Wert (wenn nicht in der Nähe) wie die Werkseinstellungen zurückgesetzt. Schauen Sie hier nach einer Erklärung -> anandtech.com/show/2738/10
ssanj

Antworten:

24

Anscheinend wird die TRIM-Funktionalität in 10.10 und neueren Versionen unterstützt:

Außerdem geschieht das TRIM-Zeug automatisch - leere Blöcke werden automatisch freigegeben, wenn sie nicht mehr benötigt werden (z. B. wenn Sie eine Datei löschen), wenn die Festplatte meldet, dass TRIM unterstützt wird. Sie müssen keinen hdparm-Befehl manuell eingeben, damit dies funktioniert.

Jeremy Kerr
quelle
Ich dachte, Sie müssten immer noch Tools verwenden, die den TRIM-Befehl an das SDD "senden". Es ist gut, wenn es nach Ihren Vorgaben funktioniert. :) Dieser Anandtech-Artikel -> ( anandtech.com/show/2738/10 ) gibt an, dass sowohl das Betriebssystem als auch die SSD TRIM-Unterstützung benötigen, damit TRIM funktioniert. Ich denke, meine Frage bezieht sich auf die OS / Linux-Unterstützung für TRIM, wenn sie mit TRIM-fähigen SSD-Laufwerken verwendet wird.
ssanj
3
Der TRIM-Befehl muss wissen, welche Blöcke freigegeben werden sollen, daher wäre es gefährlich, diese auszugeben, ohne genau zu wissen, welche Blöcke auf der Festplatte nicht verwendet werden. Ja, sowohl das Betriebssystem als auch die Festplatte müssen Trim-Unterstützung haben. Unter Linux wurde dies in der Kernel-Version 2.6.33 hinzugefügt und wird daher in Maverick enthalten sein. Sowohl der Festplattentreiber als auch das Dateisystem, das Sie verwenden, müssen trim unterstützen, damit dies ordnungsgemäß funktioniert. Wenn Sie ext4 als Dateisystem für Maverick verwenden, sollten Sie in Ordnung sein.
Jeremy Kerr
Ich frage mich dann, ob es für vorhandene SSDs möglich sein wird, einen "nachgerüsteten TRIM" durchzuführen, um die vorhandene Kruft zu bereinigen, die vor dem Betriebssystem angesammelt wurde, das TRIM unterstützt. Oder wäre eine Neuinstallation erforderlich?
Kent Boogaart
20

Jeremys Antwort ist nicht ganz richtig, AFAIK. Ich habe seit einiger Zeit den neuesten stabilen Kernel auf Lucid ausgeführt und verfolge den Status von TRIM sehr genau, da ich eine OCZ Agility als Hauptdiskette habe.

Folgendes weiß ich (glaube ich):

  • Der Kernel unterstützt TRIM ab 2.6.33 (Maverick ist 2.6.35).

  • EXT4 hat TRIM - Unterstützung , aber nur , wenn Journaling ist ausgeschaltet.

  • Die Arbeitsweise von TRIM im Kernel ist sehr einfach und ziemlich langsam. Datenträger, die den Spezifikationen folgen, können mehrere Bereiche akzeptieren, aber der Kernel kann derzeit nur einen Bereich gleichzeitig ausführen. Das kommt von etwas, was ich vor einem Monat gelesen habe. Ich wünschte, ich hätte die Quelle, da dies möglicherweise nicht stimmt oder nicht mehr zutrifft.

Journaling ist das, was es für mich tötet. Datenkorruption ist eine PITA.

Die neueren Versionen von hdparm (v9.25 - Maverick ist v9.27) enthalten jedoch ein Skript, wiper.shdas eine schnelle Analyse eines Laufwerks durchführt und dann den gesamten leeren Speicherplatz schneidet . Anstatt Features zu verlieren, fällt es mir viel leichter, wiper.sheinmal pro Woche (oder einmal pro Tag / Monat / was auch immer) zu arbeiten. Die SSD-Verschlechterung für ein OS-Laufwerk geschieht nicht so schnell, es sei denn, Sie nehmen ständig Probleme auf. Sie haben nicht braucht echtzeit Besatz.

Es gibt auch ein GUI-Frontend namens DiskTRIM, das nicht in den Repos zu sein scheint. Für weniger erfahrene Benutzer ist dies möglicherweise einfacher als das Einrichten von Cron-Jobs.

Es gibt PPAs für hdparm und disktrim und alle können unter Lucid (und höher) ausgeführt werden, ohne dass Kernel ab 2.6.33 benötigt werden.

Oli
quelle
Können Sie bitte auf diese PPAs verlinken?
Jorge Castro
discardDeaktiviert die Aktivierung der Mount-Option für ext4 das Journalling? Ich habe nur nach Referenzen gesucht, aber abgesehen von dieser Antwort kann ich keine finden - können Sie eine Quelle angeben?
Hamish Downer
2
in Ubuntu 12.04 die wiper.sh wurde mit fstrim ersetzt
tomodachi
1
@Oli: Ich habe noch mehr gelesen und bin mir jetzt ziemlich sicher, dass die Discard-Option das Journal nicht deaktiviert. Ursprünglich funktionierte die Option zum Verwerfen nur mit dem Journal (ich fand diesen Patch , der das Verwerfen ohne das Journal ermöglicht). Die Kernel-ext4-Seite dokumentiert die Discard-Option, erwähnt jedoch nicht, dass das Journal nicht kompatibel ist.
Hamish Downer
8

Linux unterstützt seit Kernel 2.6.33 automatisches TRIM mit ETX4-Dateisystem.

Die erste Ubuntu-Version mit automatischer TRIM-Unterstützung ist 10.10 (Maveric), muss jedoch in fstab aktiviert werden (wie hier beschrieben ).

Uli
quelle
4

Im Allgemeinen ja, weil es eine Vielzahl von Möglichkeiten gibt, neuere Kernel zu erhalten. Wenn wir Ihre Frage zum Lesen klären: "Hat 10.04 LTS sofort Unterstützung für den Befehl?" dann lautet die antwort nein. Die Kernel von Maverick und Natty (-generic, -generic-pae, -server und -virtual) wurden jedoch auf 10.04 LTS zurückportiert und sind über $ release-updates in den Ubuntu-Repositories verfügbar, z. B. linux-image-generic-lts-backport-maverickist Mavericks Backport zu Lucid .

Daniel T Chen
quelle
2

Ich arbeite mit 11.04 und es sieht nicht so aus, als würde TRIM "out of the box" funktionieren.

Ich habe anhand der folgenden Anweisungen getestet , ob eine Datei erstellt, gelöscht oder ob die Sektoren auf Null gesetzt bzw. gelöscht wurden .

Ich habe versucht, TRIM mit den Anweisungen hier zu aktivieren , aber keine Würfel

Ich lasse wiper.sh laufen, das verstehe ich

/sbin/wiper.sh --verbose --commit / dev / sda1
wiper.sh: Linux-Dienstprogramm SATA SSD TRIM, Version 3.3, von Mark Lord.
rootdev = / dev / sda1
fsmode2: fsmode = Lese- / Schreibzugriff
/: fstype = ext4
freie Größe = 13785252 KB, reserviert = 137852 KB
Vorbereitung für Online-TRIM von freiem Speicherplatz auf / dev / sda1 (ext4-Lese- / Schreibzugriff auf /).

Dieser Vorgang kann Ihre Daten unbemerkt zerstören. Sind Sie sicher (J / N)? y
Temporäre Datei erstellen (13647400 KB)
Laufwerke synchronisieren
Beginn der TRIM-Operationen
get_trimlist = / sbin / hdparm --fibmap WIPER_TMPFILE.9689

/ dev / sda:
Schneiden von 27294800 Sektoren aus 462 Bereichen
gelungen
Temporäre Datei wird entfernt.
Laufwerke synchronisieren
Getan.

Wenn ich es jedoch erneut ausführe, muss die gleiche Anzahl von Sektoren / Bereichen gekürzt werden, und der Erfolg wird erneut gemeldet. Ich bekomme jedes Mal genau das Gleiche. Es sieht nicht so aus, als würden die Sektoren jemals gelöscht / freigegeben. Wenn Sie sie lesen, werden immer noch dieselben Daten angezeigt.

Neugierig, wenn es jemand anderes zum Laufen bringt.


quelle
Wenn Sie fstab die Option discard hinzugefügt haben und es immer noch nicht funktioniert, liegt wahrscheinlich ein Fehler in der Alpha vor. Sie sollten einen Fehlerbericht einreichen.
Uli
Ich habe dies gerade in natty getestet (siehe folgende Anleitung: askubuntu.com/questions/18903/how-to-enable-trim ) und es funktioniert sogar noch besser in natty, TRIM ist fast augenblicklich.
Uli
Möglicherweise haben Sie eine SSD, die TRIM nicht unterstützt - einige der früheren SSDs haben TRIM nicht unterstützt.
Hamish Downer