martes, 29 de abril de 2014

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





No hay comentarios: