Pero,
que es un ramdisk? Un ramdisk o disco ram es un 'trozo' de memoria
RAM que puede ser usada como si fuera un dispositivo de disco duro.
Un ramdisk posee un tamaño fijo y actúan como las particiones de
discos convencionales. Sin embargo el acceso de lectura/escritura de
un ramdisk es mucho más rápido que un disco duro físico, por
contra, los datos contenidos dentro del ramdisk se pierden al apagar
la máquina, aunque esto último se puede remediar. Estos
'dispositivos' pueden resultar de gran utilidad para manejar datos
temporales como por ejemplo:
- Para archivos de paginación.
- Archivos temporales de los navegadores web.
- Archivos de cache de diversos programas (edición de vídeo, editores gráficos, etc...).
- Bases de datos.
- Etc.
El
principal requisito para crear ramdisks, es obviamente, el de tener
suficiente memoria RAM, aunque con las máquinas de hoy en día no
resulta un gran problema. De cualquier manera se puede ajustar el
tamaño que tenga el/los ramdisk según los recursos del sistema.
Paso 1: Por defecto, la mayoría de las distribuciones (nosotros usaremos un Linux Mint) traen una serie de dispositivos creados con el propósito de instanciar ramdisk. Si listamos el contenido de la carperta /dev, debería aparecernos un listado parecido este:
Como
se puede apreciar está distribución trae creados 16 ramdisk, pero
están 'inactivos' o sin consumir recursos de nuestra RAM.
Paso
2: Vamos a ajustar el tamaño que tendrán nuestros discos ramdisk,
para ello tenemos que editar el archivo de configuración de grub y
añadir al final de la linea que carga el kernel
ramdisk_size=tamaño_en_KB,
es decir, para el caso de querer ramdisks de 16MB habría que poner
ramdisk_size=16000, quedándonos el archivo de configuración de grub
(/boot/grub/grub.cfg) algo
parecido a esto:
Paso
3: Ahora tenemos que dar formato a los ramdisks que queramos usar, en
este caso solamente usaremos uno el /dev/ram0,
por tanto ejecutamos mke2fs -m 0
/dev/ram0, dando una salida parecida a esta:
Paso
4: Para poder usar el ramdisk que acabamos de crear tenemos que
montarlo, para ello creamos un directorio que sera nuestro punto de
montaje y montamos sobre este directorio el ramdisk. Para hacer esto
ejecutamos mkdir /mnt/ramdisk y
luego mount /dev/ram0
/mnt/ramdisk/.
Una
vez montado el ramdisk podemos comprobar su estado ejecutando df
-h | grep ram0 (ó tune2fs
-l /dev/ram0 para una vista más detallada) y tendría que
salirnos algo como esto:
Paso
5: El siguiente paso es permitir la lectura/escritura al usuario que
va a poder acceder al ramdisk, para ello ejecutamos la siguiente
lista de comandos:
- Hacemos propietario al usuario deseado: # chown usuario:root /mnt/ramdisk/
- Cambiamos los permisos del ramdisk: # chmod 0750 /mnt/ramdisk/
- Comprobamos el resultado de los comandos anteriores: # ls -ald /mnt/ramdisk/
Paso
6: Si no queremos tener que repetir los pasos 3 y 5 cada vez que
arranquemos nuestra máquina, tenemos que automatizar la creación,
el montaje y la asignación de permisos. Hay muchas maneras de hacer
esto, pero la que más veces hemos visto – tanto en máquinas
reales como en guías- es editar el fichero /etc/rc.local
y añadir las siguientes lineas:
- Damos formato al ramdisk: /sbin/mke2fs -q -m 0 /dev/ram0
- Montamos el ramdisk, se supone que el directorio de punto de montaje ya esta creado: /bin/mount /dev/ram0 /mnt/ramdisk
- Cambiamos de propietario: /bin/chown usuario:root /mnt/ramdisk
- Asignamos permisos: /bin/chmod 0750 /mnt/ramdisk
Paso 7: Por
último para comprobar que realmente un ramdisk es más rápido que
un disco normal (nosotros lo hemos probado en un Western Digital de
320GB y 7200 RPM), podemos realizar los siguientes test de
lectura/escritura:
*Nota:
Hemos cambiado el tamaño de nuestro ramdisk de 16MB a 1GB para que
sea más fácil interpretar los datos.
Para el test de lectura podemos ejecutar el siguiente comando hdparm -tT /dev/dispositivo 2>/dev/null. En nuestro caso obtenemos los siguientes datos de salida:
Para
el test de escritura ejecutamos los siguientes comandos, obteniendo
como resultado:
Para 'conservar' el contenido de nuestro ramdisk al apagar o reiniciar la máquina, solamente tendremos que crearnos un script que copie/mueva los datos que contiene el ramdisk a otra ubicación en un disco no volátil (acordarse de hacerlo ejecutable con chmod +x). Una vez creado el script creamos enlaces a este en los directorios /etc/rc0.d/ y rc6.d/ con un formato K99nombre. Luego podemos añadir al fichero /etc/rc.local la acción inversa, es decir, que copie/mueva los datos de la ubicación física a nuestro ramdisk.
Lo has visto primero en CeroWarnings. Recuerda que puedes dejarnos tus peticiones en nuestro Buzón de Sugerencias.
0 Comentarios