Linux y discos duros SSD

Introducción

Hasta la fecha, no había podido disfrutar de la velocidad de los discos de estado solido SSD, pero esto de haberme incorporado al mundo de los ordenadores portátiles a costa de abandonar mi equipo de sobremesa (que lo destinaré a otros menesteres), es lo que tiene.

Lo cierto es que ya son varios los artículos consecuencia de este cambio de dispositivo, como puede ser «Nvidia, Ubuntu y Bumblebee«. Sin embargo, esto me ha dejado preocupado, dado que si no hubiera leído el artículo en Ubunlog no habría caído en este asunto, seguro. En el caso del dispositivo gráfico era algo mas que cantado, pero ¿aquí?

¿Que es TRIM?

TRIM permite que un sistema operativo informe a una unidad de estado sólido que bloques de datos no están en uso y pueden ser borrados.

Esto tiene especial importancia en el caso de los discos de estado sólido, dado que, tal y como indican en synaptic fault, las memorias flash de tipo NAND que componen los SSD no pueden sobreescribir datos existentes. Es decir, que antes de escribir datos nuevos sobre datos existentes, es necesario borrar los existentes. A esto hay que añadir que mientras que la unidad mínima de borrado es un bloque, la unidad de escritura mínima es una página (un bloque son 64 páginas).

NAND_Flash_Pages_and_Blocks.png

Con esto, es evidente que conforme pasa el tiempo, el disco SSD se irá fragmentando, y disminuirá el rendimiento, porque para poder escribir datos nuevos, tendrá que reagrupar las páginas en un bloque, para lo que las copiará a una memoria intermedia, borrar el bloque y copiar las páginas.

Cuando se borra un archivo, lo que hace el sistema operativo es marcarlo como borrado dentro del sistema de archivos, pero sin comunicarlo al disco duro. TRIM se encarga de este trabajo, decirle a la memoria de estado sólido que está borrado, simplemente.

Activar TRIM en Ubuntu

Si tienes /home en el disco SSD, y está encriptada, te recomiendo que le des una intensa lectura a «Como activar correctamente TRIM para tu SSD en Linux: fstrim, lvm y dm-crypt«, puesto que es necesario activarlo en todas las capas.

En mi caso, /home lo tengo en una disco duro convencional, aunque cifrado, mientras que la raíz, /, está en el disco SSD, con lo que realizar la puesta en funcionamiento es mucho mas sencillo.

Existen distintos métodos para activar el soporte en el sistema de ficheros,

Si queremos realizar una operación TRIM diaria, podemos utilizar un script como el siguiente:

/etc/cron.daily/dofstrim

#!/bin/sh
for mount in /; do
    fstrim $mount
done

Esto en mi caso donde tengo / en el disco SSD

Indicar que fstrim y TRIM solo funcionan en sistemas de ficheros btrfs ext3 ext4 gfs2 jfs ocfs2 xfs. Y por último, y según la configuración por la que hayas optado, es posible que haya que regenerar el initramfs con update-initramfs -u (Debian y derivados) o dracut -f (Redhat y derivados) y reiniciar después de efectuar cambios los cambios en la configuración de LVM o dm-crypt.

Conclusión

Gracias por un lado al artículo de Ubunlog y WebUpd8, que me puso sobre aviso, y por otro lado al excelente artículo de Synaptic fault, he comprendido y solucionado este problema. Pero, siempre me cabe la duda de ¿que hubiera pasado de no haberlo leído?¿Esto no puede estar solucionado de forma automática al colocar un disco duro SSD?¿En otros Sistemas Operativos también nos encontraremos con este tipo de problemas?¿Como está solucionado este problema?¿Esto no debería contemplarlo por defecto Linux?

Como he indicado en la introducción, es algo que realmente me ha dejado preocupado, hasta la fecha solo me había preocupado por la tarjeta gráfica, y todo lo había achacado a un asunto de software libre/software privativo, pero en este caso, no se trata de esto, por que no está resuelto, ¿y se deja al usuario?.

Ahí lo dejo…


Más información,


Nota,

las imágenes y el script son de Synaptic fault, así como gran parte de la información que aquí se recoge. Recomiendo encarecidamente su lectura, así como una visita al sitio, en el que encontraras artículos altamente recomendables.

5 comentarios en “Linux y discos duros SSD

  1. Si hay la posibilidad de usar disco duro convencional y SSD juntos, entonces lo más recomendable es bcache, donde el SSD hace de cache del disco duro, minimizando las escrituras. Eso sí, requiere usar uno de los últimos kernels, hacer alguna filigrana para usarlo en partición raíz (/) y está en desarrollo. Lo he montado en mi portátil, el de mi padre y mi hija y están encantados.

    Por lo que respecta al montaje de particiones SSD, además de discard, también hay las opciones noatime, nodiratime (no access time, no directory access time) las cuales evitan las escrituras en disco cuando se leen ficheros/directorios (se evita registrar la fecha de los accesos).

    Un saludo!
    Josep

  2. Saludos, Atareao.

    Enhorabuena por tu trabajo, antes de nada. el blog me ha resultado muy útil en no pocas ocasiones, My Weather Indicator le encanta a un sobrino friki de la meteorología…

    El caso es que acabo de comparme un SSD Samsung de 128 GB (me llegará en los próximos días. Actualmente en mi PC conviven Windows 7 (el vicio me obliga) y un Ubuntu 12.04. Aprovecharé para hacer instalaciones limpias (sobre todo por el Windows) pero el caso es que me tiene un poco confundido la cantidad de tutoriales distintos que he leído sobre el tema.

    Hay cosas que están claras, activar AHCI en la BIOS, el TRIM (si bien en este caso ya me han entrado dudas sobre que procedimiento me interesará más, el que recomiendas para defragmentar una vez al día o el más conocido.

    La instalación será clásica, Windows en una primaria y luego otra para la raíz de Ubuntu. El home y la SWAP se quedarían en el HDD donde están ahora. Todo ello sin encriptación.

    Mis dudas son:

    1º La ganancia de rendimiento del método TRIM que propones realmente justifica usar el sript? Cuando hace la defragmentación diaria ese método, al apagar el equipo?

    2º He visto que hay muchas operaciones que se recomiendan, mover temporales a la RAM, cosas que mover al HDD, etc. Realmente son necesarias todas esas cosas que se leen por ahí?

    Gracias de antemano.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *