Usando ramfs y tmpfs

Hola a todos,foto de Eloy Mier Pérez

 

 

linuxSi las velocidades de lectura/escritura no alcanzan tus necesidades, la solución mas barata y que menos tiempo te va a ocupar es simplemente colocar los ficheros mas pesados en memoria RAM. Las operaciones de lectura y escritura sobre la memoria RAM son significativamente mas rápidas que sobre cualquier sistema de ficheros basado en disco. Las transferencias de información sensibles a la entrada salida de disco, por ejemplo aquellas relacionadas con bases de datos, consiguen beneficios extremos simplemente moviendo los ficheros involucrados a sistemas de ficheros basados en memoria RAM.

¿Y por que la RAM? pues simplemente por que la memoria RAM es muy rápida. Los tiempos de acceso a la memoria trabajan en el nivel de nanosegundos al contrario que el disco mas rápido que opera a nivel de milisegundos. La memoria RAM no rota. Las unidades mecánicas si que lo hacen, lo que significa que los tiempos de posicionamiento son significativamente mas lentos que los equivalentes basados en memoria RAM. Por ejemplo, la memoria RAM DDR3 mueven datos a velocidades que pueden exceder 10GB/s. Por el contrario, uno de los discos mas potentes que se pueden encontrar actualmente de 15,000 RPM UltraStar de Hitachi, transfiere información entre unos lentísimos 119MB/s a 198MB/s sostenidos y a 600MB/s como pico.La RAM tiene un mayor tiempo medio entre fallos (MTBF -Mean Time Between Failures). Por el hecho de que la RAM no es un dispositivo mecánico, no disfruta de altos ratios de fallos de posicionamiento de disco, y todo ello proporcionando una esperanza de vida bastante mayor a la que proporciona una típica unidad de disco.
Existen dos tipos de sistemas de ficheros basados en memoria RAM: tmpfs y ramfs. Vamos a ver ahora como configurar un sistema de ficheros basado en RAM, algunos consejos generales de uso y como evitar los problemas mas comunes que se nos pueden plantear por el camino.

ramfs

Tmpfs y ramfs realizan su labor de forma muy diferente. Ramfs solo puede usar memoria del sistema, además no aparece con el comandodf –h, no tiene limitación de tamaño y no proporciona mensajes de error cuando se sobrepasa el limite de tamaño opcional. Por lo tanto, se pueden establecer limites en un sistema de ficheros ramfs pero no vamos a recibir ninguna advertencia cuando excedamos ese limite al igual que tampoco el sistema nos va a prevenir de ello.

Como ejemplo, la sintaxis normal para montar un nuevo sistema de ficheros es:

# mount –t fs_type device mount_dir

La sintaxis para configurar un sistema de ficheros ramfs de 200MB para una base de datos en el directorio /opt/data es la siguiente:

# mount –t ramfs –o size=200m ramfs /opt/data

Como se ha comentado con anterioridad, este sistema de ficheros no se verá con el comando df –h. La única forma de ver el sistema ramfs es usando el comando mount.

# mount

/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
ramfs on /opt/db type ramfs (rw,size=200m)

Si tratas de escribir mas de 200MB de información en este sistema de ficheros, la escritura se realizará sin problemas y no vas a recibir ningún mensaje de error en la operación respecto al tamaña del sistema. El límite de 200MB es un valor superfluo y no tiene efecto en el tamaño real ni en cuanta información puedes o no escribir en él. Este es el mayor problema de ramfs.

Debido a que los administradores de sistemas suelen ser un grupo bastante saturado de trabajo, en ocasiones dejan ficheritos sueltos en los sistemas de ficheros después de instalar parches, después de instalar software o después de rutinas de test sobre los propios sistemas. El sistema de ficheros ramfs podría proporcionar solución a este problema de una forma acorde. Todos aquellos ficheros marcados como no esenciales para el almacenamiento a largo plazo podrían residir en una zona de almacenamiento temporal (ramfs) hasta que esos ficheros no sean necesarios. Desmontando el sistema de ficheros ramfs lograremos que el sistema vuelva a la normalidad y no tendremos que preocuparnos de las tareas de limpieza que vienen después de las labores comentadas.

tmpfs

Los administradores de sistemas encuentran que para tareas que requieren información «valiosa!, tmpfs es una opción bastante mejor que ramfs. Ramfs tiene un tamaño definido, puede usar RAM o espacio de swap para almacenamiento y muestra mensajes de error cuando se sobrepasa el tamaño especificado. La sintaxis es igual a la de ramfs.

# mount –t tmpfs –o size=200m tmpfs /opt/data

El comando df –h muestra el sistema tmpfs montado como cualquier otro sistema de ficheros.

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      360G  225G  117G  66% /
/dev/sda1              99M   25M   70M  27% /boot
tmpfs                 200M     0  200M   0% /opt/data

Y el comando mount muestra lo siguiente:

# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
tmpfs on /opt/db type tmpfs (rw,size=200m)

Cuando excedas los limites del sistema tmpfs montado, recibiras un mensaje del sistema “No hay espacio disponible en el dispositvo” informándote de que el sistema de ficheros esta lleno. El sistema de ficheros tmpfs se comporta exactamente igual que los sistemas de ficheros basados en disco excepto por su naturaleza volátil.

Tanto ramfs como tmpfs son un tipo de almacenamiento volátil. En otras palabras, si el sistema se cuelga, se reinicia o se apaga por cualquier motivo, la información contenida en ese tipo de sistema de ficheros es borrada. Únicamente por esta razón, se deben hacer copias periódicas de esta información a una ubicación permanente. Recordemos el dicho, “Seguro, rápido, barato; selecciona solo 2.” Usar sistemas de ficheros basados en RAM es rápido y barato pero no es seguro.

Saludos a todos y hasta la próxima.

You must be logged in to post a comment.