Cómo configurar Ubuntu para disco de estado sólido (SSD)

HDD-vs-SSD

El siguiente tutorial tiene por objetivo configurar Ubuntu 12.04 LTS después de ser instalado en o bien utilizar un disco de estado sólido. La SSDs son muy diferentes de los HDs, no tienen discos magnéticos rotatorios y son muchísimo más rápido (no me lo creía hasta que instalé uno en mi computadora). Existe muchos tutoriales de éste tipo, pero son algo antiguos y realizan acciones que o ya no son necesarias y que según mi criterio no valen la pena.

Tomar en cuenta que éste artículo aplica para sistemas de archivos ext4. En mi caso mi SSD es un OCZ Technology 256GB Agility 4 Series SATA 6Gb/s 2.5-Inch.

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, las particiones de root y home quedan de la siguiente forma:

$ cat /etc/fstab

# / was on /dev/sda3 during installation
UUID=[MI-UUID] / ext4 discard,errors=remount-ro 0 1
# /home was on /dev/sda4 during installation
UUID=[MI-UUID] /home ext4 discard,defaults 0 2

2) Desactivar atime

Access Time (o atime) es un campo definido en el sistema de archivos que indica la fecha del último acceso de un archivo. Si, suena genial, pero es terrible. Es decir, para cada acceso de lectura a un archivo… hagamos una escritura a disco :S Es ridículo. Más sobre el problema de tener activado la actualización del atime (por defecto es relatime, parecido) pueden leer este link, este y este.

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. En el caso de los HDs es interesante desactivar la actualización del atime porque elimina el overhead importante de tener que realizar una escritura por cada lectura. Tiene consecuencias desactivar la actualización del atime? Si, programas como mutt pueden no funcionar… y, ya, este es el único ejemplo que conozco. Yo no uso mutt, por lo que no hay problema para mi.

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/sda3 during installation
UUID=[MI-UUID] / ext4 noatime,discard,errors=remount-ro 0 1
# /home was on /dev/sda4 during installation
UUID=[MI-UUID] /home ext4 noatime,discard,defaults 0 2

3) Ajustar el planificador de disco

El planificador de disco es el componente del sistema operativo que se encarga de calendarizar y ordenar las solicitudes de escritura y acceso a disco. Existen diferentes criterios para organizar la escritura a un disco. Por defecto, Linux utiliza el planificador llamado CFQ (Completely Fair Queuing). El CFQ, entre otros aspectos, asigna un margen de tiempo para el cual cada proceso puede enviar solicitudes de escritura a disco. En disco magnéticos tradicionales, esto permite que el rendimiento de acceso mejore. En el caso de un SSD, dado que el acceso es de tiempo prácticamente fijo, similar al RAM, este planificador no tiene sentido. Vamos a reemplazarlo por el planificador noop, o bien deadline. Para información de cada planificador disponible puede visitar este link.

Para verificar qué planificador está siendo utilizado para el disco sda (o cualquier disco) se puede ejecutar el comando:

$ cat /sys/block/sda/queue/scheduler
noop deadline [cfq]

Se mostrará el planificador en uso entre backets. Para cambiar el planificador en tiempo de ejecución se puede ejecutar el comando:

sudo sh -c "echo deadline > /sys/block/sda/queue/scheduler"

Para hacer este cambio permanente se edita el archivo /etc/rc.local y se agrega la una instrucción antes del exit 0 de la siguiente forma:

echo noop > /sys/block/sda/queue/scheduler
exit 0

Espero les sirva.

Etiquetado , , , ,

11 pensamientos en “Cómo configurar Ubuntu para disco de estado sólido (SSD)

  1. joanvs72 dice:

    Hola buenos días, quisiera hacerte una pregunta, ¿Ésto también es valido para 13.04, o en este caso han cambiado cosas? Gracias y saludos.

    • cjenkins dice:

      Para serte sincero no sé, pues no lo he probado. Pero no veo razón para que no siga siendo así, pues son aspectos más relacionados al kernel, que rara vez cambian, no tanto al entorno gráfico.

  2. joanvs72 dice:

    Ok, muchas gracias por tu ayuda. Saludos.

  3. aldakur dice:

    Hola!

    Es necesario realizar estos pasos? es decir, no puedo comprar un disco ssd, cambiarlo por el actual e instalar Ubuntu de la forma tradicional? incluso pasar los datos de las particiones / y /home mediante clonezilla?

    Gracias y un saludo!

    • cjenkins dice:

      No te preocupes éstos cambios son opcionales, tu SSD debería funcionar sin problemas en Ubuntu en una instalación por defecto con solo cambiar la unidad. Si quieres sacar el máximo de tu SSD y mejorar rendimiento, así como alargar la vida útil del mismo te recomiendo sigas éstos pasos.

  4. roberto dice:

    Una pregunta, en el fstab q mostras no esta la particion de swap, q hacer con ella? eliminarla? yo tengo 16g de ram y solo al irtualizar mucho podria usar la swap, cual es la recomendacion, montarla en un disco mecanico? Saludos

    • cjenkins dice:

      Yo no tengo partición de SWAP porque nunca he pegado el RAM, tengo 8GB. Si tienes 16GB de ram y llegas a llenarlo, mama mía :O Si tienes un disco mecánico montalo sobre ese para no desgastar el de estado sólido, aunque claro los volcados de página serán tan lentos como el disco duro, y una situación en la que llenes el RAM seguramente aprovecharías la velocidad del de estado sólido.

  5. Jesús dice:

    Hola
    Quería saber si alguien me puede ayudar. Estoy instalando Ubuntu en una máquina desde cero (sin Windows), y donde solo va a estar Ubuntu.
    Tengo un disco SSD y otros “normales”, e intento instalar Ubuntu en el SSD, pero me da un problema en la instalación GRUB.
    He ido a ver qué información hay sobre esto, y me da la impresión que tiene que ver con las particiones del disco o del propio disco SSD
    ¿alguna sugerencia?
    GRACIAS !!
    Jesús

  6. Anonimo dice:

    Solo Tienes Que Activar en la BIOS la opcion ACHI y dejar solo ssd hasta que Instale

  7. Anonimo dice:

    Disculpa AHCI

  8. te hago una consulta tengo problemas en mi ubuntu 14 se me cuelga y reinicia es por que tengo un disco SSD mal configurado instale todo por defecto.

    saludos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: