Come funziona TRIM Enabler?


8

Di recente ho acquistato un SSD di terza parte (OCZ) e ho usato Trim Enabler per abilitare TRIM. Ho notato che alcuni aggiornamenti software possono causare la disabilitazione di TRIM e sono stato quindi curioso di sapere come funziona TRIM Enabler.

  • Sostituisce alcuni KEXT predefiniti con uno personalizzato per supportare TRIM o attiva o disattiva alcune impostazioni PLIST?
  • Ad ogni modo, esiste un file che, se bloccato, può garantire che TRIM rimanga abilitato (senza conseguenze negative)?

Risposte:


9

Trim Enabler corregge il seguente file Kext

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

che controlla se l'SSD è un SSD di terze parti o con marchio Apple:

Vista IOAHCI hex / ascii

puoi anche abilitare il trim manualmente cercando tutte le occorrenze 'Apple' nel file e correggendole in un editor esadecimale o tramite terminale:

##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

1
Come trovi queste cose ?! Se eseguo TRIM Enabler per "patchare" il mio file IOAHCIBlockStorage e quindi bloccarlo (con i privilegi di amministratore), subirei effetti negativi? Sicuro che non sarei in grado di supportare i nuovi SSD PCIe (che il mio MacBook non ha nemmeno), ma impedirebbe a eventuali aggiornamenti futuri di invertire la patch?
Alexander - Ripristina Monica il

la mia ipotesi migliore: anche se blocchi il file dalla modifica .. il programma di aggiornamento sostituirà completamente il file con un nuovo file. Dovresti rimuovere i permessi di scrittura per root dalla cartella completa. In quel caso specifico suppongo che l'installer fallirà perché non può scrivere nella cartella. Secondo me non vale la pena. Avvia Trim Enabler dopo un aggiornamento e riapplica la patch.
Chrisii,

@Chrisii sai se funzionerà in Yosemite? Cambia la firma del kext?
Il

@thepen Non l'ho ancora testato ma posso affermare con certezza che la modifica del file cambierà la firma del kext e quindi per farlo funzionare, dovrai prima disabilitare la verifica della firma del kext (Ulteriori informazioni sono disponibili qui cindori .org / trim-enabler-and-yosemite )
Chrisii

2

Le uniche informazioni che posso trovare su questo sono da una voce FAQ / blogpost

A: Trim Enabler corregge un driver OSX Trim nativo, che funziona in background anche quando l'app viene chiusa o rimossa. Questa patch viene ripristinata sugli aggiornamenti di sistema, quindi potrebbe essere una buona idea mantenere l'app.


Di solito il percorso viene ripristinato sugli aggiornamenti quando Apple decide di aggiornare le citate estensioni del kernel, ad esempio per supportare le nuove unità ssd (Pensando alle nuove ppcie ssds annunciate al WWDC).
Chrisii,

2

Gli SSD OCZ utilizzano un controller Sandforce che ha incorporato la garbage collection in primo piano che ritarda la necessità di cancellare i blocchi, riducendo ma non rimuovendo la necessità del supporto TRIM. Il rivestimento può essere considerato un aiuto per la raccolta dei rifiuti.

Trim VS Garbage Collection

Per una breve spiegazione, la memoria flash è organizzata in gruppi di pagine in cui è possibile scrivere dati. Una volta che una pagina è stata scritta, non può essere riscritta fino a quando non viene cancellata. Ma una pagina può essere cancellata solo all'interno di un gruppo di 128 pagine generalmente chiamato blocco. La complessità della scrittura dei dati inizia davvero ad aumentare nel caso di scritture casuali che sostituiscono dati precedentemente scritti. Le scritture casuali inseriscono i nuovi dati in pagine cancellate in precedenza altrove, aggiungendo un blocco di dati validi con "patch di dati non validi". Per scrivere nuovi dati su queste patch, l'intero blocco - tutte le 128 pagine - deve essere cancellato. Ma prima tutte le pagine circostanti con dati validi devono essere lette e riscritte in pagine vuote. Il blocco di pagine vuote appena cancellato è quindi pronto per salvare nuovi dati.

[…] Tutti gli SSD basati su Flash NAND utilizzano GC. Alcuni usano GC in primo piano e altri usano GC in background o inattività. La differenza tra loro è coperta nel mio blog http://blog.lsi.com/dont-let-ssds-throw-away-your-gold/ . In termini semplici, la garbage collection in background aumenterà l'amplificazione della scrittura (WA) e consumerà prima l'SSD. Foreground GC è più difficile da raggiungere e credo che solo il controller SandForce sia in grado di farlo oggi

[…] TRIM è vantaggioso per tutti gli SSD indipendentemente dal tipo di garbage collection utilizzata. Parlo di come TRIM è entrato in esistenza e perché è necessario nel mio blog http://blog.lsi.com/did-you-know-hdds-do-not-have-a-del .... Il comando TRIM viene inviato dal sistema operativo all'SSD per identificare quali pagine di dati possono essere ignorate durante la garbage collection. L'SSD non è in grado di dire quali file sono stati eliminati fino a quando il sistema operativo non utilizza gli stessi settori per archiviare nuovi file, ma a quel punto l'SSD ha già sprecato cicli a causa della raccolta di dati non validi, ma noti all'SS.

Sapevi che gli HDD non hanno un comando Elimina? Ecco perché gli SSD hanno bisogno di TRIM

Mantenere il proprio TRIM SSD Alcuni anni fa, il settore dello storage si è unito e ha sviluppato una soluzione tra il sistema operativo e l'SSD creando un nuovo comando SATA chiamato TRIM. Non è un comando che forza l'SSD a cancellare immediatamente i dati come credono alcune persone. In realtà il comando TRIM può essere considerato come un messaggio dal sistema operativo su quali indirizzi precedentemente utilizzati sull'SSD non contengono più dati validi. L'SSD prende quegli indirizzi e aggiorna la propria mappa interna della sua memoria flash per contrassegnare quelle posizioni come non valide. Con queste informazioni, l'SSD non sposta più quei dati non validi durante il processo GC, eliminando il tempo perso a riscrivere dati non validi su nuove pagine flash. Riduce anche il numero di cicli di scrittura sul flash, aumentando la resistenza degli SSD.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.