sábado, 19 de mayo de 2012

SWAP en un FICHERO en LINUX


Este artículo muestra cómo crear un fichero estandar y configurar tu sistema basado en linux para que active el swap y pagine la memoria sobre ese fichero.

CREAR EL FICHERO PARA SWAP


Vamos a crear el fichero de swap usando el comando dd. El comando cp no es útil porque el fichero de swap no puede contener huecos.
# dd if=/dev/zero of=/mnt/swapfile bs=1M count=200 # Creamos el fichero de swap de 200 Megabytes de tamaño.

Por seguridad desabilitamos los permisos de lectura y modificación del fichero de paginación para otros usuarios.
# chown root.root /mnt/swapfile
# chmod 600 /mnt/swapfile

El tamaño del swap es ilimitado para versiones del kernel mayores de la 2.3.3.
Kernels después de la 2.4.10 soportan hasta 32 áreas de swap.


CONFIGURAR EL FICHERO DE SWAP


# aptitude install util-linux # obtenemos el comando mkswap.
# mkswap swapfile
Setting up swapspace version 1, size = 204796 KiB
no label, UUID=41a2be71-f0......


CONFIGURAR EL KERNEL LINUX


Cuando compilemos el kernel linux necesitaremos activar la opción de swap:
CONFIG_SWAP=y
ó en las opciones de menuconfig:
General setup -> Support for paging of anonymous memory (swap)


ACTIVAR EL FICHERO DE SWAP


# aptitude install mount # instalamos el comando swapon.
# swapon -v swapfile
Si no activamos la opción de swap en el núcleo obtendremos este mensaje de error:
swapon: swapfile: swapon failed: Function not implemented

o si utilizamos el comando cp para crear el fichero o si lo estamos exportando via Network File System (NFS):
# swapon -v swapfile
swapon: swapfile has holes
swapon: swapfile: swapon failed: Invalid argument

P.ej: si todo ha ido bien:
# swapon -v swapfile
swapon on swapfile
swapon: /mnt/swapfile: found swap signature: version 1, page-size 4, same byte order
swapon: /mnt/swapfile: pagesize=4096, swapsize=209715200, devsize=209715200
Adding 204796k swap on /mnt/swapfile.  Priority:-1 extents:62 across:256620k SS


Comprobamos las áreas de swap activas:
# cat /proc/swaps
Filename                                Type            Size    Used    Priority
/mnt/swapfile                           file            204796  0       -1

Observamos que bajo Type muestra la palabra file en lugar de partition, porque estamos swapeando sobre un fichero.


Para desactivar el área de swap:
# swapoff -v swapfile


CONFIGURAR EL FICHERO /etc/fstab


Configuramos el fichero /etc/fstab para que se active el swap al arrancar el sistema:
/etc/fstab
# <file system> <mount point>   <type>  <options>       <dump>  <pass>

No nos olvidemos de montar la partición donde se encuentra el fichero de swap!
P.ej: si /dev/sda1 estuviera montada en /mnt
# echo "/dev/sda1 /mnt ext3 defaults 0 0" >> /etc/fstab

Añadimos la configuración propia del fichero de swap:
# echo "/mnt/swapfile none swap sw 0 0" >> /etc/fstab

Y comprobamos si la configuración en el fichero fstab funciona correctamente:
# swapon -a && cat /proc/swaps

Después de reiniciar, estos comandos mostrarán si el fichero de swap se montó correctamente.
# dmesg | grep -i swap
ó
# cat /proc/swaps


PUEDE QUE TAMBIÉN LE INTERESE:


Cómo COMPILAR el KERNEL de LINUX para el EMULADOR de ANDROID (versión ECLAIR)


REFERENCIA


$ man 8 mkswap
$ man 8 swapon


TRADUCIDO DE:


Swapping on a File in Linux

No hay comentarios:

Publicar un comentario