Utilizar un disco SSD ó una memoria USB como cache de tu HDD con EnhanceIO

Supongamos que recientemente adquirimos un disco SSD ó una memoria USB de alta velocidad y queremos utilizarlo para hacer un cache de nuestro sistema de una forma similar a la que podemos crear con el sistema Prefetch de Windows. Para esto utilizaremos una herramienta llamada EnhanceIO, un derivado de Flashcache, que ofrece una solución de fácil instalación y configuración.

En el caso de una memoria USB es necesario comprobar que dicho equipo es mas rápido que nuestro disco duro, para ello realizaremos una prueba de velocidad de lectura mediante el siguiente comando (como root).

# hdparm -tT /dev/sdx

Esta comprobación debe realizarse tanto en el disco duro como en la memoria USB; Sustituya /dev/sdx por la ruta correspondiente a sus dispositivos. El resultado del comando debería ser algo como este (en el caso del disco duro).

/dev/sda:
 Timing cached reads:   9754 MB in  2.00 seconds = 4879.13 MB/sec
 Timing buffered disk reads: 238 MB in  3.01 seconds =  79.00 MB/sec

El primer valor indica la velocidad del caché del disco, el segundo valor indica la velocidad de lectura del disco físico como tal.

Para saber la velocidad de escritura podemos hacer lo siguiente.

# hdparm -I /dev/sdx1 | grep -i speed

Esto nos indicara la velocidad máxima de escritura del disco indicada por el fabricante, pero si queremos saber la velocidad real debemos realizar lo siguiente.

$ dd if=/dev/zero of=/home/usuario/prueba.bin bs=8k count=512k

Dando un resultado similar a este.

524288+0 registros leídos
524288+0 registros escritos
4294967296 bytes (4,3 GB) copiados, 13,1894 s, 326 MB/s

En el caso de la memoria USB reemplace /home/usuario por el punto de montaje correspondiente, para comprobar la velocidad de escritura en pequeños volúmenes puede realizar lo siguiente.

$ dd if=/dev/zero of=/home/usuario/prueba.bin bs=512k count=1

El resultado del comando debería ser algo como este (en el caso del disco duro).

1+0 registros leídos
1+0 registros escritos
524288 bytes (524 kB) copiados, 0,00107685 s, 487 MB/s

Después de comprobar que el equipo que utilizaremos para hacer el cache es más rápido que nuestro disco duro, procedemos a instalar los programas necesarios.

En el caso de Ubuntu o Mint debemos agregar el PPA antes de instalar.

# add-apt-repository -y ppa:enhanceio/daily
# apt -y install linux-headers-generic

Para Debian solo debe ejecutar los siguientes comandos.

# apt -q update
# apt -y install dkms enhanceio

Luego de instalar procedemos a crear el cache (en el siguiente ejemplo sda corresponde a su disco duro y sdb a la memoria USB o disco SSD)

# eio_cli create -d /dev/sda -s /dev/sdb -c prueba

Por defecto se utiliza WriteThrough que se considera seguro para los datos en el cache, pero si desea mejorar el rendimiento del cache puede modificarlo y activar WriteBack mediante el siguiente comando.

# eio_cli edit -c prueba -m wb

Para desmontar el cache en necesario ponerlo en modo de solo lectura para evitar perdida de datos.

# eio_cli edit -c prueba -m ro

Luego ejecute el siguiente comando hasta que la respuesta sea 0.

$ grep nr_dirty /proc/enhanceio/prueba/stats

Luego solo hace falta ejecutar el siguiente comando para eliminar el cache.

# eio_cli delete -c prueba

Adicionalmente puede ejecutar los siguientes comandos para obtener información acerca del estado del cache.

# eio_cli info
$ cat /proc/enhanceio/prueba/stats

Como es de esperar, al poco tiempo después de crear el cache el rendimiento no será tan rápido como esperamos ya que los archivos necesitan transferirse al espacio dedicado al cache.

Espero que esta información les sea útil, saludos…

Mas información:

Anuncios

4 pensamientos en “Utilizar un disco SSD ó una memoria USB como cache de tu HDD con EnhanceIO

    • Depende de la modalidad del cache, si utilizas WriteThrough el desgaste no sera mucho, pero si utilizas WriteBack habrá mayor desgaste pero tampoco es algo preocupante, yo tengo un disco SSD como cache con WriteBack desde hace varios meses y hasta ahora no he tenido problemas.

  1. Pingback: Utilizar un disco SSD ó una memoria USB como cache de tu HDD con EnhanceIO « Descarga Tecnológica Blog

  2. Muchas gracias por la guía. Ando con Ubuntu 15.10 y la verdad estaba ya loco entre lvmcache, bcache, dm-cache, flashcache… por mucho que probaba no funcionaba ninguna. Esta por suerte funciona a la perfección.

    Muchas gracias de nuevo 🙂

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