Chapuboot: Activar TRIM Ubuntu 14.04

Activar TRIM Ubuntu 14.04

Después de adquirir este fantástico disco SSD y de haber googleado todo lo que 
he podido y sabido, voy a activar TRIM en mi Ubuntu 14.04 ya que por lo visto no viene
 activado por defecto para todos los discos. Tan solo viene activado para discos
 Intel y Samsung.

He instalado Ubuntu en una única partición, sin hacer una partición home,
 ni tampoco swap ya que un disco SSD no necesita esta última y TRIM
 no funciona en particiones swap.

Se realizarán las siguientes acciones:

  1. Habilitar TRIM.
  2. Desactivar registro de acceso de los archivos.
  3. Ajustar el planificador de disco.


 1) Habilitar TRIM


TRIM es una instrucción que le permite al sistema operativo comunicarle 
a un disco de estado sólido (SSD) qué bloques de datos ya no están en 
uso. En sistemas de archivos tradicionales el disco duro nunca sabe qué
 información es borrada, pues el sistema de archivo la marca como espacio 
disponible en su estructurada de datos en RAM. Al poder ser notificado de
 bloques borrados, el firmware del SSD puede balancear la escritura de
 información en otras celdas de forma que pueda prolongar la vida útil del
 mismo. TRIM está disponible en Linux desde la versión 2.6.33 pero hay
que habilitarla manualmente para cada partición en la que se desee utilizar.
 Para ello se requiere agregar la opción discard en las opciones de montaje
 de una partición en el archivo fstab.

En mi caso, la particion de root queda de la siguiente forma:

$ cat /etc/fstab

# / was on /dev/sda1 during installation

UUID=[MI-UUID] /       ext4           discard,errors=remount-ro 0 1

Para la home, en caso de tenerla, sería así:

# /home was on /dev/sdax during installation
UUID=[MI-UUID] /home          ext4             discard,defaults 0 2


2) Desactivar registro de acceso de los archivos (atime)


Access Time (o atime) es un campo definido en el sistema de archivos
 que indica la fecha del último acceso de un archivo.
En el caso particular de un SSD es interesante desactivar la actualización
 del atime porque prolonga la vida del SSD al no tener que estar escribiendo
 información irrelevante para cada acceso de lectura.
Para desactivar la actualización del atime, tanto para carpetas como para 
archivos se debe agregar la opción noatime a las opciones de montado de 
cada una de las particiones en las cuales queremos desactivarlo. En mi caso:

$ cat /etc/fstab

# / was on /dev/sda1 during installation

UUID=[MI-UUID] /           ext4         noatime,discard,errors=remount-ro 0 1


Para la home, en caso de tenerla, sería así:

# /home was on /dev/sdax during installation
UUID=[MI-UUID] /home          ext4             noatime,discard,defaults 0 2

3) Ajustar el planificador de disco


Para ello usaremos cron que es un planificador que usaremos a diario mediante un script

Vamos a la terminal y escribimos:

gksu gedit /etc/cron.daily/trim

Se abrirá un documento en blanco en el que pegaremos el siguiente código

#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
#fstrim -v /home >> $LOG

La última linea tiene comienza con # porque yo no estoy usando la partición
 Home, si la usas quitala.

Guardamos y cerramos el documento.

Podemos probar fstrim para ver si trabaja

sudo fstrim -v /

Y nos devolverá algo parecido a esto:

/: 8158715904 bytes were trimmed

Tan solo nos queda hacer el archivo ejecutable con el siguiente comando:

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

Ubuntu ejecuta el cron diario por lo que cada día hará un TRIM.

Se puede comprobar el /var/log/trim.log archivo de registro para ver la salida fstrim.



















Como se puede ver en la imagen superior, el invento funciona, el primer 
trimmed lo provoqué yo con /: 0 bytes were trimmed, pero el segundo ya
 lo hizo automaticamente el sistema /: 108164890624 bytes were trimmed