Wie funktioniert TRIM Enabler?

8

Ich habe kürzlich eine dritte Teil-SSD (OCZ) gekauft und Trim Enabler verwendet , um TRIM zu aktivieren. Ich habe festgestellt, dass einige Software-Updates dazu führen können, dass TRIM deaktiviert wird, und war daher neugierig, wie TRIM Enabler funktioniert.

  • Ersetzt es einen Standard-KEXT durch einen benutzerdefinierten, um TRIM zu unterstützen, oder schaltet es einfach eine PLIST-Einstellung um?
  • Gibt es in beiden Fällen eine Datei, die im gesperrten Zustand sicherstellen kann, dass TRIM aktiviert bleibt (ohne negative Konsequenzen)?
Alexander - Monica wieder einsetzen
quelle

Antworten:

9

Der Trim Enabler patcht die folgende Kext-Datei

/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

Hiermit wird überprüft, ob es sich bei der SSD um eine SSD eines Drittanbieters oder einer Apple-Marke handelt:

IOAHCI Hex / ASCII-Ansicht

Sie können das Trimmen auch manuell aktivieren, indem Sie nach allen "Apple" -Vorkommen in der Datei suchen und diese in einem Hex-Editor oder über ein Terminal patchen:

##1. Backup old file
    $sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage.original

##2. Patch the file to enable TRIM support
    $sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x51)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

##3. Clear the system kernel extension cache

   $sudo kextcache -system-prelinked-kernel

   $sudo kextcache -system-caches
Chrisii
quelle
1
Wie findest du dieses Zeug überhaupt?! Wenn ich TRIM Enabler ausführe, um meine IOAHCIBlockStorage-Datei zu "patchen" und sie dann zu sperren (mit Administratorrechten), würde ich dann nachteilige Auswirkungen haben? Sicher, ich könnte die neuen PCIe-SSDs (die mein MacBook nicht einmal hat) nicht unterstützen, aber würde dies verhindern, dass zukünftige Updates den Patch umkehren?
Alexander - Reinstate Monica
Meine beste Vermutung: Selbst wenn Sie die Datei für die Bearbeitung sperren, würde der Updater die Datei einfach vollständig durch eine neue Datei ersetzen. Sie müssten die Schreibberechtigung für root aus dem vollständigen Ordner entfernen. In diesem speziellen Fall gehe ich davon aus, dass das Installationsprogramm fehlschlägt, da es nicht in den Ordner schreiben kann. Meiner Meinung nach ist es die Mühe nicht wert. Starten Sie Trim Enabler einfach nach einem Update und wenden Sie den Patch erneut an.
Chrisii
@Chrisii wissen Sie, ob dies in Yosemite funktioniert? Ändert es die Kext-Signatur?
Thepen
@thepen Ich habe es noch nicht getestet, aber ich kann mit Sicherheit sagen, dass das Ändern der Datei die Kext-Signatur ändert. Damit es überhaupt funktioniert, müssen Sie zuerst die Überprüfung der Kext-Signatur deaktivieren (Weitere Informationen finden Sie hier cindori .org / trim-enabler-and-yosemite )
Chrisii
2

Die einzigen Informationen, die ich dazu finden kann, stammen aus einem FAQ / Blogpost-Eintrag

A: Trim Enabler patcht einen nativen OSX Trim-Treiber, der auch dann im Hintergrund funktioniert, wenn die App geschlossen oder entfernt wird. Dieser Patch wird bei Systemaktualisierungen zurückgesetzt, daher ist es möglicherweise eine gute Idee, die App beizubehalten.

Megan Walker
quelle
Der Pfad wird normalerweise bei Updates zurückgesetzt, wenn Apple beschließt, die genannten Kernel-Erweiterungen zu aktualisieren, um beispielsweise neue SSD-Laufwerke zu unterstützen (unter Berücksichtigung der neuen ppcie-SSDs, die auf der WWDC angekündigt wurden).
Chrisii
2

OCZ-SSDs verwenden einen Sandforce-Controller mit integrierter Garbage Collection im Vordergrund, die das Löschen von Blöcken verzögert und die Notwendigkeit der TRIM-Unterstützung verringert, aber nicht beseitigt. Das Trimmen kann als Hilfe bei der Speicherbereinigung angesehen werden.

Trimmen Sie VS Garbage Collection

Für die kurze Erklärung ist der Flash-Speicher in Gruppen von Seiten organisiert, auf denen Daten geschrieben werden können. Sobald eine Seite geschrieben wurde, kann sie erst wieder geschrieben werden, wenn sie gelöscht wurde. Eine Seite kann jedoch nur innerhalb einer Gruppe von normalerweise 128 Seiten gelöscht werden, die als Block bezeichnet werden. Die Komplexität des Schreibens von Daten eskaliert tatsächlich, wenn zufällige Schreibvorgänge zuvor geschriebene Daten ersetzen. Durch zufällige Schreibvorgänge werden die neuen Daten auf zuvor gelöschten Seiten an anderer Stelle abgelegt und ein Block gültiger Daten mit "Patches ungültiger Daten" versehen. Um neue Daten in diese Patches zu schreiben, muss der gesamte Block - alle 128 Seiten - gelöscht werden. Aber zuerst müssen alle umgebenden Seiten mit gültigen Daten gelesen und dann auf leere Seiten umgeschrieben werden. Der neu gelöschte Block leerer Seiten ist dann bereit, neue Daten zu speichern.

[…] Alle NAND-Flash-basierten SSDs verwenden GC. Einige verwenden Vordergrund-GC und andere Hintergrund- oder Leerlauf-GC. Der Unterschied zwischen ihnen wird in meinem Blog http://blog.lsi.com/dont-let-ssds-throw-away-your-gold/ behandelt . In einfachen Worten, die Hintergrund-Garbage Collection erhöht die Schreibverstärkung (WA) und nutzt die SSD früher ab. Foreground GC ist schwieriger zu erreichen und ich glaube, dass dies heute nur der SandForce-Controller kann

[…] TRIM ist für alle SSDs von Vorteil, unabhängig davon, welche Art der Speicherbereinigung verwendet wird. Ich spreche in meinem Blog http://blog.lsi.com/did-you-know-hdds-do-not-have-a-del… darüber, wie TRIM entstanden ist und warum es notwendig ist . Der Befehl TRIM wird vom Betriebssystem an die SSD gesendet, um zu ermitteln, welche Datenseiten während der Speicherbereinigung ignoriert werden können. Die SSD kann nicht feststellen, welche Dateien gelöscht wurden, bis das Betriebssystem dieselben Sektoren zum Speichern neuer Dateien verwendet. Zu diesem Zeitpunkt hat die SSD jedoch bereits Zyklen durch das Sammeln von Daten verschwendet, die ungültig waren, aber der SS bekannt waren.

Wussten Sie, dass Festplatten keinen Löschbefehl haben? Deshalb benötigen SSDs TRIM

Behalten Sie Ihre SSD TRIM Vor einigen Jahren hat sich die Speicherbranche zusammengeschlossen und eine Lösung zwischen dem Betriebssystem und der SSD entwickelt, indem sie einen neuen SATA-Befehl namens TRIM erstellt hat. Es ist kein Befehl, der die SSD zwingt, Daten sofort zu löschen, wie manche glauben. Tatsächlich kann der Befehl TRIM als eine Nachricht des Betriebssystems darüber betrachtet werden, welche zuvor verwendeten Adressen auf der SSD keine gültigen Daten mehr enthalten. Die SSD verwendet diese Adressen und aktualisiert ihre eigene interne Zuordnung ihres Flash-Speichers, um diese Speicherorte als ungültig zu markieren. Mit diesen Informationen verschiebt die SSD diese ungültigen Daten während des GC-Prozesses nicht mehr, wodurch Zeitverschwendung beim Umschreiben ungültiger Daten auf neue Flash-Seiten vermieden wird. Es reduziert auch die Anzahl der Schreibzyklen auf dem Flash und erhöht die Lebensdauer der SSDs.

der Stift
quelle