9Sep

Ubuntu no modifica SSD por defecto: por qué no y cómo habilitarlo usted mismo

Ubuntu quiere habilitar TRIM para SSD por defecto en Ubuntu 14.04.En otras palabras, Ubuntu ya no está utilizando TRIM, por lo que su SSD se está desacelerando con el tiempo. Pero, ¿por qué Ubuntu ya no está utilizando TRIM?

Es probable que esta noticia sorprenda a muchas personas, que asumieron que Ubuntu y otras distribuciones de Linux ya estaban usando TRIM.TRIM evita que las SSD se ralenticen con el tiempo y es una parte necesaria del mantenimiento de SSD.

Por qué TRIM es importante

Hemos cubierto por qué TRIM es importante antes. Cuando elimina un archivo en un antiguo disco duro magnético, la computadora simplemente marca ese archivo como eliminado. Los datos del archivo se guardan en el disco duro, por eso los archivos eliminados se pueden recuperar. La computadora finalmente sobrescribirá los archivos eliminados cuando sobrescribe sus sectores con nuevos datos.

Las unidades de estado sólido( SSD) funcionan de manera diferente. Siempre que escriba un archivo en una SSD, la computadora primero debe borrar cualquier dato en los sectores en los que está escribiendo los datos. No puede simplemente "sobreescribir" los sectores en una operación: primero debe borrarlos, luego escribir en los sectores vacíos.

Esto significa que una SSD disminuirá con el tiempo. Escribir en los sectores de SSD será rápido la primera vez. Después de eliminar algunos archivos y tratar de escribir nuevamente, tomará más tiempo. Esta es una gran parte de la razón por la cual el Nexus 7 original de Google se desaceleró mucho con el tiempo. Google solucionó esto implementando TRIM en Android 4.3.(Android también usa el kernel de Linux.)

Con TRIM habilitado, el sistema operativo le dice al SSD cada vez que elimina un archivo. El disco puede borrar los sectores que contienen los contenidos del archivo, por lo que escribir en los sectores será rápido en el futuro.

En otras palabras, si no usa TRIM, su SSD disminuirá con el tiempo. Es por eso que los sistemas operativos modernos, incluidos Windows 7+, Mac OS X 10.6.8+ y Android 4.3+, usan TRIM.TRIM se implementó en Linux en diciembre de 2008, pero Ubuntu no lo usa por defecto.

ARTÍCULOS RELACIONADOS
¿Qué es una unidad de estado sólido( SSD) y necesito una?
¿Necesito "Optimizar" mi SSD con software de terceros?

¿Por qué Ubuntu TRIM no está predeterminado?

La razón real por la que Ubuntu no procesa las SSD de TRIM es, de manera predeterminada, porque la implementación de TRIM del kernel de Linux es lenta y da como resultado un bajo rendimiento en el uso normal.

En Windows 7 y 8, Windows envía un comando TRIM cada vez que elimina un archivo, indicando a la unidad que elimine inmediatamente los bits del archivo. Linux lo admite cuando los sistemas de archivos están montados con la opción "descartar".Sin embargo, Ubuntu - y otras distribuciones - no hacen esto por defecto por razones de rendimiento.

El wiki de OpenSUSE contiene información detallada de un desarrollador que está más familiarizado con el kernel de Linux que nosotros. Está un poco anticuado, pero es probable que aún sea cierto en lo que respecta al rendimiento:

"La implementación kernel del ajuste en tiempo real en 11.2, 11.3 y 11.4 no está optimizada. La especificaciónrequiere un ajuste que soporte una lista vectorizada de rangos de corte, pero desde el kernel 3.0 el kernel solo invoca el ajuste con un solo rango de descarte / recorte y con SSDs actuales de mediados de 2011, esto ha demostrado causar una degradación del rendimiento en lugar de un aumento del rendimiento. Existen pocas razones para utilizar el soporte de descarte en tiempo real de los núcleos con kernels anteriores a la versión 3.1.No se sabe cuándo se optimizará la funcionalidad de descarte de los núcleos para que funcione de manera beneficiosa con las SSD de generación actual. "[Fuente]

En otras palabras, el kernel de Linux maneja dichos comandos TRIM en tiempo real de una manera lenta y no optimizada. Al habilitar TRIM de forma similar a cómo lo hace Windows, es decir, utilizando la opción "descartar", el sistema se vuelve más lento que si TRIM no se utilizara en absoluto. Ubuntu y otras distribuciones de Linux no habilitan "descartar" por defecto para sus sistemas de archivos, y usted tampoco debería hacerlo.

Hay otra forma

Debido a que la operación TRIM "descartar" en tiempo real del kernel de Linux no funciona bien, la mayoría de las distribuciones de Linux, incluido Ubuntu, no usan TRIM automáticamente. Android tampoco usó TRIM hasta Android 4.3.

Pero hay otra forma de usar TRIM.En lugar de simplemente emitir el comando TRIM cada vez que se elimina un archivo, se puede utilizar la función FITRIM.Esto sucede a través del comando fstrim. Básicamente, el comando fstrim analiza el sistema de archivos e informa a la unidad qué bloques ya no son necesarios, por lo que la unidad puede descartarlos. Esto convierte a TRIM de una operación en tiempo real en una tarea programada. En otras palabras, fstrim puede realizar TRIM como un trabajo cron. No hay razón para no hacer esto. No ralentizará nada;es solo otra tarea de limpieza de la casa que el sistema debe realizar según un cronograma.

De hecho, este es el enfoque que Google tomó con Android 4.3.Android simplemente ejecuta una tarea fstrim ocasionalmente para CORTAR el sistema de archivos, solucionando el problema que ralentizaba todos los Nexus 7s originales.

Ubuntu también está buscando habilitar TRIM automáticamente haciendo que el sistema ejecute regularmente fstrim. Se espera que esto sea parte de Ubuntu 14.04 para que los usuarios de Ubuntu no se vean obligados a lidiar con la degradación del rendimiento de SSD o ejecutar fstrim por su cuenta.

Cómo habilitar TRIM

No recomendamos montar sus sistemas de archivos con la operación "descartar", ya que es probable que el rendimiento sea más lento en el uso normal. Sin embargo, puede usar TRIM usted mismo ocasionalmente ejecutando el comando fstrim o creando su propio cronjob que ejecuta fstrim en un horario.

Para CORTAR su SSD en Ubuntu, simplemente abra un terminal y ejecute el siguiente comando:

sudo fstrim -v /

Puede ejecutar el comando anterior de vez en cuando para evitar la degradación del rendimiento en los SSD.La frecuencia con la que debe ejecutarlo depende de la frecuencia con que se eliminen los archivos de su SSD.Verá un error si intenta ejecutar el comando con una unidad que no admite TRIM.

Si desea ejecutar TRIM regularmente, puede simplemente crear un cronjob que ejecute el comando fstrim por usted. Aquí se explica cómo hacer un trabajo cron barebones que lo haga automáticamente.

Primero, ejecute el siguiente comando para abrir el editor de nano texto con permisos de raíz:

sudo nano /etc/cron.daily/ fstrim

Escriba el siguiente código en el archivo:

#!/bin/ sh

fstrim /

Guarde el archivo presionando Ctrl + O y presione Enter para confirmar. Presione Ctrl + X para cerrar nano después de guardar el archivo.

Por último, ejecute el siguiente comando para hacer que el script sea ejecutable:

sudo chmod + x /etc/cron.daily/ fstrim

Ubuntu ahora ejecutará fstrim según un cronograma, al igual que lo hace con otras tareas de mantenimiento del sistema.

Tenga en cuenta que TRIM solo es compatible con sistemas de archivos modernos, por lo que necesitará algo como ext4 y no ext3 o ext2.Si no sabe qué sistema de archivos está usando, no se preocupe: ext4 está seleccionado de forma predeterminada.

Gran parte de este consejo también se aplica a otras distribuciones de Linux. Si bien Linux implementó la compatibilidad con TRIM en el kernel hace mucho tiempo, su compatibilidad con TRIM parece que nunca se ha habilitado de manera predeterminada para usuarios típicos de las distribuciones de Linux.

Crédito de la imagen: Mace Ojala en Flickr( recortada)