8 votos

¿Cómo funciona TRIM Enabler?

Recientemente compré un SSD de terceros (OCZ) y utilicé Trim Enabler para, bueno, habilitar TRIM. He notado que algunas actualizaciones de software pueden deshabilitar TRIM, por lo que he estado curioso acerca de cómo funciona TRIM Enabler.

  • ¿Reemplaza algún KEXT predeterminado con uno personalizado para admitir TRIM o simplemente cambia algún ajuste de PLIST?
  • De cualquier manera, ¿hay algún archivo que, al estar bloqueado, pueda garantizar que TRIM permanezca habilitado (sin consecuencias negativas)?

9voto

JonTheNiceGuy Puntos 371

El Trim Enabler parchea el siguiente archivo Kext:

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

que verifica si el SSD es de terceros o de marca Apple:

Vista hex/ascii de IOAHCI

También puedes habilitar trim manualmente buscando todas las ocurrencias de 'Apple' en el archivo y parcheándolas en un editor hexadecimal o a través de la terminal:

##1. Respaldar el archivo antiguo
    $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. Parchear el archivo para habilitar el soporte TRIM
    $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. Limpiar la caché de extensiones de kernel del sistema

   $sudo kextcache -system-prelinked-kernel

   $sudo kextcache -system-caches

1 votos

¿Cómo encuentras incluso estas cosas?! Si ejecuto TRIM Enabler para "parchear" mi archivo IOAHCIBlockStorage y luego lo bloqueo (con privilegios de administrador), ¿sufriría algún efecto adverso? Seguro que no podría admitir las nuevas SSD PCIe (que ni siquiera tiene mi MacBook), ¿pero evitaría que futuras actualizaciones reviertan el parche?

0 votos

Mi mejor suposición: incluso si bloqueas el archivo para editar, el actualizador simplemente reemplazaría por completo el archivo con un archivo nuevo. Tendrías que quitar el permiso de escritura para root de la carpeta completa. En ese caso específico, supongo que el instalador fallará ya que no puede escribir en la carpeta. En mi opinión, no vale la pena el problema. Simplemente inicia Trim Enabler después de una actualización y vuelve a aplicar el parche.

0 votos

@Chrisii, ¿sabes si esto funcionará en Yosemite? ¿Cambiará la firma de kext?

2voto

dewde Puntos 479

La única información que puedo encontrar al respecto es de una entrada de preguntas frecuentes / blog

P: Trim Enabler parchea un controlador Trim nativo de OSX, que funciona en segundo plano incluso cuando la aplicación está cerrada o eliminada. Este parche se reinicia en las actualizaciones del sistema, por lo que podría ser una buena idea mantener la aplicación de todos modos.

0 votos

La ruta suele restablecerse en las actualizaciones cuando Apple decide actualizar las extensiones de kernel mencionadas, por ejemplo, para admitir nuevas unidades de estado sólido (Pensando en las nuevas unidades de estado sólido ppcie anunciadas en la WWDC).

2voto

thepen Puntos 145

Los SSD de OCZ utilizan un controlador Sandforce que tiene una recolección de basura en primer plano incorporada que retrasa la necesidad de borrar bloques, reduciendo pero no eliminando la necesidad de soporte TRIM. Trim puede considerarse una ayuda para la recolección de basura.

Trim VS Recolección de Basura

Para una breve explicación, la memoria flash está organizada en grupos de páginas donde se puede escribir datos. Una vez que se escribe una página, no se puede volver a escribir hasta que se borre. Pero una página solo se puede borrar dentro de un grupo de típicamente 128 páginas llamado bloque. La complejidad de escribir datos realmente comienza a aumentar en el caso de escrituras aleatorias que reemplazan datos previamente escritos. Las escrituras aleatorias colocan los nuevos datos en páginas previamente borradas en otro lugar, salpicando un bloque de datos válidos con "parches de datos inválidos". Para escribir nuevos datos en estos parches, todo el bloque - las 128 páginas - debe borrarse. Pero primero todas las páginas circundantes con datos válidos deben leerse y luego reescribirse en páginas en blanco. El bloque recién borrado de páginas en blanco está listo para guardar nuevos datos.

[...] Todos los SSD basados en NAND Flash utilizan GC. Algunos utilizan GC en primer plano y otros utilizan GC en segundo plano o en tiempo de inactividad. La diferencia entre ellos se cubre en mi blog http://blog.lsi.com/dont-let-ssds-throw-away-your-gold/. En términos simples, la recolección de basura en segundo plano aumentará la amplificación de escritura (WA) y desgastará el SSD más rápido. GC en primer plano es más difícil de lograr y creo que solo el controlador SandForce es capaz de hacerlo hoy en día

[...] TRIM es beneficioso para todos los SSD independientemente del tipo de recolección de basura que se utilice. Hablo sobre cómo TRIM surgió y por qué es necesario en mi blog http://blog.lsi.com/did-you-know-hdds-do-not-have-a-del.... El comando TRIM se envía desde el SO al SSD para identificar qué páginas de datos pueden ser ignoradas durante la recolección de basura. El SSD no puede saber qué archivos se han eliminado hasta que el SO utilice los mismos sectores para almacenar nuevos archivos, pero para ese momento el SSD ya ha desperdiciado ciclos al recolectar datos que eran inválidos, pero conocidos por el SS

¿Sabías que los HDDs no tienen un comando de eliminación? Por eso los SSDs necesitan TRIM

Manteniendo tu SSD TRIM Hace varios años, la industria del almacenamiento se reunió y desarrolló una solución entre el SO y el SSD creando un nuevo comando SATA llamado TRIM. No es un comando que fuerza al SSD a borrar inmediatamente datos como algunas personas creen. En realidad, el comando TRIM puede considerarse como un mensaje del SO sobre qué direcciones utilizadas previamente en el SSD ya no contienen datos válidos. El SSD toma esas direcciones y actualiza su propio mapa interno de su memoria flash para marcar esas ubicaciones como inválidas. Con esta información, el SSD ya no mueve esos datos inválidos durante el proceso GC, eliminando el tiempo perdido reescribiendo datos inválidos en nuevas páginas flash. También reduce el número de ciclos de escritura en la flash, aumentando la resistencia del SSD. Otro beneficio del comando TRIM es que hay más espacio disponible para OP dinámico.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X