Ramdisk ( tmpfs y ramfs )
By: Date: mayo 17, 2016 Categories: Consultoria y Manuales

No siempre se puede tener acceso a un disco duro sólido o a veces se requiere más velocidad que un disco duro sólido.

¿ Que es y un poco de historia ?

En GNU/Linux hay una solución de bajo costo, son los RamDisk, los RamDisk han existido desde las primeras versiones de las distribuciones de Linux, se usaba en la época de las instalaciones vía Floopy Disk para copiar el contenido del disquete a la RAM y poder retirar el disco y así poder insertar los siguientes discos que contenían los paquetes de instalación. En distribuciones como Slackware se le llamaban disco del Kernel y disco de Root, uno arrancaba el PC y el segundo instalaba un sistema de archivos en RAM con las aplicaciones del instalador.

Actualmente crear un volumen con sistema de archivos en RAM es prácticamente una línea de comando en la consola, básicamente un mount. Este tipo de discos en memoria actualmente tiene 2 variables. tmpfs y ramfs. Prácticamente hacen lo mismo, pero tienen una ligera diferencia.

Ramfs

Crea un sistema de archivos en memoria RAM, pero se comporta como un volumen dinámico, significa que consumirá tanta ram como información se le almacene, el problema es que no tiene un límite, si trata de escribir un archivo de 2 GB pero el sistema solo tiene instalado un total de 1 GB de RAM, esto terminara agotando toda la RAM disponible y posiblemente bloqueando el sistema completo si no se toman las precauciones necesarias.

Tmpfs

A este tipo de disco de ram se le puede poner límites y los respeta, sin embargo tiene un par de inconvenientes, si el sistema operativo y sus aplicaciones requieren RAM , tmpfs podría enviar zonas de datos a la partición swap, quitándole el beneficio de la velocidad de ser un volumen en RAM porque para escribirlos o recuperarlos tendrá que esperarse a ser obtenidos del disco duro, esto se puede evitar desactivando el swap, si eres un sysadmin experimentado y sabes bien el propósito de tu equipo sabrás si te conviene desactivar el swap o tolerar los momentos en que la unidad sea swpeada

Creando un RamDisk con 1GB de almacenamiento

mount -t tmpfs -o nodev,nosuid,noexec,nodiratime,size=1G tmpfs /algunpuntodemntura

También puedes agregar la instrucción al archivo /etc/fstab para que cada que inicie el sistema monte automáticamente el disco

tmpfs /algunpuntodemontura tmpfs nodev,nosuid,noexec,nodiratime,size=1024M 0 0

¿ Que puedes almacenar ?

Todo lo que necesites que sea leído a velocidades superiores inclusive que un SSD, si es un sitio web concurrido se puede almacenar los archivos html,jpg,css,js,etc prácticamente todo el directorio del sitio web

Puedes almacenar bases de datos que harán consultas con respuestas prácticamente inmediatas

Spool de correos o temporales, prácticamente cualquier cosa que sea transitoria o que requiera una velocidad máxima de acceso a la información en el equipo.

Para los programadores, zonas donde se puedan compilar miles o millones de líneas de código en un tiempo muy razonable, sabrán de que hablo quienes compilan su kernel de Linux en su sistema.

Advertencias.

Obviamente si se llega a desconectar de la energía todo el contenido de un RamDisk se pierde por lo que tienes que crear script que después de montar el volumen en memoria copie los archivos del disco duro al disco en ram y si estos archivos han sufrido cambios que sean guardados antes de desmontar tendrás que correr un script que baje esos archivos al disco duro de forma que no se pierdan al apagar o reiniciar el PC. También sería deseable scripts recurrentes que van guardando copias de seguridad durante el día del contenido del ramdisk en caso de una falla de energía, evitando la mayor pérdida de información posible.

4 thoughts on “Ramdisk ( tmpfs y ramfs )

  1. Google Chrome 50.0.2661.102 Windows NT

    En algún momento hicimos un laboratorio en la oficina con estos discos, y la verdad no supe que hacer con tanta velocidad, era bestial, puse una base de datos pequeña a correr ahí, sin indices ni nada ya volaba. Saludos LastDragon! como siempre tienes algo que enseñarnos. Gracias

  2. Google Chrome 51.0.2704.103 Windows NT

    otia que invento….
    tengo que hacer una prueba con alguna maquina virtual, tengo 16Gb de RAM
    muchas gracias por tus palabras/videos.

Deja un comentario

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