|
|
Este documento está disponible en los siguientes idiomas: English Castellano Deutsch Francais Nederlands Portugues Russian Turkce |
por Mark Nielsen Sobre el autor: Mark trabaja como consultor independiente, dedicando su tiempo a causas como GNUJobs.com, escribiendo articulos, programando software libre, y trabajando como voluntario en eastmont.net. Contenidos: |
Resumen:
RamFs es un sencillo sistema de ficheros con interesantes características. Es una de las novedades de los núcleos 2.4.
¿Qué es un ramdisk? Un ramdisk (o disco RAM) es una parte de la memoria que se puede asignar para usarla como si fuese una partición. O, en otras palabras, se toma parte de la memoria y se simula un disco duro que se puede formatear, montar, en él se puede guardar ficheros, etc.
Hablaremos de dos tipos de ramdisk. El primero es un ramdisk que se puede formatear y montar. El segundo es un ramdisk que no se puede formatear, pero que tiene excelentes propiedades. Veámoslo en detalle:
La antigua propuesta /dev/ram1 :
Para usar ramdisk con los núcleos 2.0 y 2.2, sólo tiene que teclear tres comandos:
mkfs -t ext2 /dev/ram1 mkdir -p /RAM1 mount /dev/ram1 /RAM1como root, y ya está. En la mayoría de los sistemas el tamaño está limitado a 4 megas. Esto se puede cambiar en el arranque o recompilando el núcleo, lea mi anterior artículo para hacerlo. Puede añadir otro ramdisk así:
mkfs -t ext2 /dev/ram2 mkdir -p /RAM2 mount /dev/ram2 /RAM2
Es muy fácil. Cree un directorio y monte ramfs en él:
mkdir -p /RAM1 mount -t ramfs none /RAM1Si quiere otro, es sencillo. Cree otro directorio y monte ramfs allí.
mkdir -p /RAM2 mount -t ramfs none /RAM2
Éste es un ejemplo de cómo crear un ramdisk de 10 megas.
mkdir -p /RAM1 mount -t ramfs none /RAM1 -o maxsize=10000Tomado directamente de http://www.linuxhq.com/kernel/v2.4/patch/patch-2.4.3-ac2/linux.ac_Documentation_filesystems_ramfs.txt.html
+ ramfs - Un sistema de ficheros de tamaño ajustable alojado en memoria + + + Ramfs es un sistema de ficheros que mantiene todo en RAM. Permite accesos + de lectura y escritura. En contraste con los discos RAM, que tienen asignado + un tamaño fijo de RAM, ramfs crece y disminuye para adaptarse a los ficheros + que contiene. + + Puede montar ramfs con: + mount -t ramfs none /mnt/wherever + + No hay más que crearlo y usar los ficheros. Cuando el sistema de ficheros se + desmonta, todo su contenido se pierde. + + ¡NOTA! Posiblemente este sistema de ficheros sea más útil, no como un sistema + de ficheros real, sino como un ejemplo de cómo se pueden escribir sistemas de + ficheros virtuales. + +Límite de recursos: + +Por defecto un ramfs estará limitado a usar la mitad de la memoria (física) +para almacenar el contenido de los ficheros, y un poco más cuando los metadatos +se incluyan. Se puede controlar la limitación del uso de recursos por ramfs con +las siguientes opciones al montarlo: + + maxsize=NNN + Establece el tamaño máximo de memoria asignado para el sistema de +ficheros a NNN kilobytes. Esta cifra se redondeará por abajo a un múltiplo +del tamaño de página. Por defecto, es la mitad de la memoria física. NB. a +diferencia de la mayoría de los otros límites, establecerlo a cero *no* +significa que no haya límite, sino que limitará realmente el tamaño de +los datos del sistema de ficheros a cero páginas. Puede haber una razón +para esto en alguna situación específica. + + maxfilesize=NNN + Establece el tamaño máximo de cada fichero a NNN kilobytes. +Esta cifra se redondeará por abajo a un múltiplo del tamaño de página. +Si NNN=0 no habrá límite. Por defecto, no hay límite. + + maxdentries=NNN + Establece el número máximio de entradas de directorio (enlaces +duros) en el sistema de ficheros a NNN. Si NNN=0 no habrá límite. Por defecto, +está establecido a maxsize/4. + + maxinodes=NNN + Establece el número máximo de ínodos (i.e. ficheros distintos) +en el sistema de ficheros a NNN. Si NNN=0 no habrá límite. Por defecto +no hay límite (pero nunca puede haber más ínodos que entradas).
Hoy en día la memoria RAM es barata. Hace poco conseguí 128 megas de ram por 120$, e imagino que el precio seguirá cayendo. Con 128 megas de ram, puedo fijar cualquiera de mis servidores web en memoria. Si el servidor web tuviera ficheros de gran tamaño, podría configurar httpd.conf para buscar en otro directorio que no esté en el disco ram. Mi servidor DNS es muy pequeño. Mi mayor servidor de base de datos es sólo de 28 megas. Considerando el hecho de que hoy se pueden tener ordenadores con 1 giga de memoria muy baratos, creo que estaría bien ejecutar todo lo que tengo en ram. La única parte delicada con el servidor de base de datos es que primero habría que guardar todos los datos en un servidor de base de datos aparte, antes de escribir en el servidor de base de datos en ram. Esto es lento, pero teniendo en cuenta que la mayor parte del tiempo se está leyendo y no escribiendo en la base de datos, se mejoraría el funcionamiento. Posiblemente, podríamos tener un espejo del disco ram en un disco duro.
Ya he explicado esto en mi otro artículo, lo puede leer aquí: http://www.gnujobs.com/mark/articles/Ramdisk.html#Example. Tan sólo cambie los siguientes comandos
### Crear las particiones ramdisk /sbin/mkfs -t ext2 /dev/ram0 /sbin/mkfs -t ext2 /dev/ram1 /sbin/mkfs -t ext2 /dev/ram2 ### Montar los ramdisks donde corresponde mount /dev/ram0 /home/httpd/cgi-bin mount /dev/ram1 /home/httpd/icons mount /dev/ram2 /home/httpd/htmlpor estos otros (incremente el número si 10MB no son suficientes):
mount -t ramfs none /home/httpd/cgi-bin -o maxsize=10000 mount -t ramfs none /home/httpd/icons -o maxsize=10000 mount -t ramfs none /home/httpd/html -o maxsize=10000
Hay tres problemas para combinar un ramdisk con una partición de un disco duro.
raiddev /dev/md3 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 chunk-size 4 persistent-superblock 1 device /dev/hdb6 raid-disk 1 device /dev/ram3 raid-disk 0Después he ejecutado,
mkraid /dev/md3 mkfs -t ext2 /dev/md3 mkdir -p /RAID1 mount /dev/md3 /RAID1El problema es que, en el arranque, el ramdisk se echará a perder. Entonces, después de arrancar el sistema
raidstart /dev/md3 raidhotadd /dev/md3 /dev/ram3 mount /dev/md3 /RAID1Ahora recuerde, si no reconfigura el ramdisk para tener más de 4 megas, no servirá de nada que la partición de su disco duro sea mayor de 4 megas.
Estaría genial tener un raid con 3 particiones. 1 con el ramdisk y 2 con particiones del disco duro y consiguiendo que el ramdisk esté activo solamente para los ciclos de lectura. No sé si es posible aislar las lecturas a una única de las particiones en un raid, pero sería fantástico conseguirlo.
¡Gracias a Katja por toda su ayuda!
|
Contactar con el equipo de LinuFocus
© Mark Nielsen, FDL LinuxFocus.org Pinchar aquí para informar de algún problema o enviar comentarios a LinuxFocus |
Información sobre la traducción:
|
2001-07-16, generated by lfparser version 2.17