CAPITULO 16

PSEUDO FILE SYSTEMS AND SWAP SPACE


Solaris 8 soporta algunos tipos de sistemas de archivos (filesystems) que se manejan en memoria, a todos ellos se les refiere como pseudo filesystems. Se soportan nueve tipos de pseudo filesystems. De ellos, cinco no necesitan ninguna administración. Huelga decir que el contenido de este tipo de filesystems se pierde cuando el filesystems se desmonta o cuando se va la luz.


Nombre

Abreviación

Uso

Cache Filesystem FS

CacheFS

Hace cache de FS remotos (montados)

File Descriptors FS

FDFS

Permite abrir archivos con descriptores de archivos nombrados.

Fisrt-In First-Out FS

FIFOFS

Permite accesar "pipes" con nombre.

Loopback FS

LOFS

Permite accesar datos a través de rutas alternativas.

Name FS

NAMEFS

Permite que se monten los descriptores de archivos por módulos de STREAMS.

Process FS

PROCFS

Permite accesar información de procesos que se están ejecutando.

Special Device FS

SPECFS

Permite accesar dispositivos de caracteres o bloques.

Swap FS

SWAPFS

Permite accesar el espacio de swap del sistema.

Temporary FS

TMPFS

Permite un acceso rápido a archivos temporales.



Los sistemas de archivos CacheFS, LOFS, TMPFS y PROCFS requieren cierta administración, los demás no.



Process Filesystems PROCFS


Todo sistema solaris 8 cuenta con una instancia de Process Filesystem disponible en el directorio /proc. Bajo el directorio /proc existirá un subdirectorio cuyo nombre es el número de proceso de cada proceso activo en el sistema. Todos estos direcrtorios son administrados directamente por el núcleo (kernel) del sistema operativo y contienen información (tal como el status) de cada proceso. Estos directorios le pertenecen al usuario "root" y sus permisos son 555 (r-xr-xr-x).


Existen un conjunto de comandos que sirven para extraer información variada de los directorios del PROCFS, a estos comandos se les conoce como PROC TOOLS.


Comando

Descripción

pcred

Lista las credenciales del proceso que son su PID y GID.

pflags

Despliega banderas y señales pendientes entre otros datos.

pfiles

Despliega información de todos los archivos abiertos (i-nodos).

pldd

Despliega las librerías dinámicas abiertas

prun

Permite que el proceso continúe su ejecución.

psig

Lista las acciones de señales

pstack

Lista el stack

pstop

Detiene la ejecución del proceso, no lo termina, lo detiene.

ptime

Despliega el tiempo de ejecución del proceso.

ptree

Despliega el árbol de ejecución: procesos e hijos.

pwait

Espera a que el proceso termine su ejecución.

pwdx

Despliega el directorio actual de ejecución del proceso.

pmap

Despliega el mapa del espacio de memoria del proceso.


Ejercicio: Cada uno de los asistentes abra un "vi <nombre_asistente.txt>" y obtenga el PID de su proceso vi. Luego váyase al directorio /proc

y vea la salida de cada comando.



Temporary File System TMPFS


Solaris 8 ofrece por default dos instancias de sistemas de archivos temporales. Uno reside en /tmp y es propiedad de "root" y tiene permisos 1777. El otro es /var/run cuyo dueño es "root" y sus permisos son 755. Ambos son filesystems basados en memoria y desaparecen cuando el filesystems es desmontado o cuando se hace un reboot.


Loopback File System LOFS


El loopback filesystem sirve para accesar filesystems a través de senderos alternos, lo cuasl permite que un mismo conjunto de datos se pueda accesar por rutas diferentes. Esto permite montar diferentes filesystems en un lugar orígen y verlo en las rutas diferentes. Pero si se monta un filesystem en el destino, éste no aparecerá en el origen.


Problema Real en la UDLA y solución con LOFS


Se tiene el siguiente escenario en la máquina goliath:

goliath# df -kl

Filesystem kbytes used avail capacity Mounted on

/dev/dsk/c0t0d0s0 146319 111214 20475 85% /

/dev/dsk/c0t0d0s6 722511 303373 346888 47% /usr

/proc 0 0 0 0% /proc

fd 0 0 0 0% /dev/fd

/dev/dsk/c0t0d0s7 936646 470891 372095 56% /opt

/dev/dsk/c0t1d0s6 2053515 336766 1655144 17% /swbiblio

/dev/dsk/c0t1d0s7 2028387 781751 1185787 40% /wwwbiblio

/dev/dsk/c0t5d0s0 1205856 496518 588758 46% /var/mail

/dev/dsk/c0t5d0s1 911233 672256 147857 82% /vol01

/dev/dsk/c0t5d0s3 911233 794460 25653 97% /vol02

/dev/dsk/c0t5d0s4 911233 794965 25148 97% /vol03

/dev/dsk/c0t2d0s0 3939604 2961850 583794 84% /vol04

swap 223208 264 222944 1% /tmp

goliath#


Y en su máquina sustituto llamada 'santa' se tiene lo siguiente:


santa# df -kl

Filesystem kbytes used avail capacity Mounted on

/dev/dsk/c1t0d0s0 4032504 832906 3159273 21% /

/proc 0 0 0 0% /proc

fd 0 0 0 0% /dev/fd

mnttab 0 0 0 0% /etc/mnttab

swap 2676128 8 2676120 1% /var/run

/dev/dsk/c1t0d0s5 14543925 9 14398477 1% /sydney

/dev/dsk/c1t0d0s4 15121031 2133 14967688 1% /opt

/dev/dsk/c1t0d0s3 288509 35 259624 1% /tmp

/dev/dsk/c1t1d0s4 15121031 2133 14967688 1% /wwwbiblio

/dev/dsk/c1t1d0s5 14543925 9 14398477 1% /vol04

santa#


Santa se particionó así para evitar el conocido problema de tener muchas particiones pequeñas susceptibles de llenarse y causar luego problemas de localización de espacio libre para trabajar.


Ahora, para poder copiar todos los datos de goliath hacia santa respetando los nombres de los filesystems vol01,vol02,vol03,swbiblio y todos los que sean necesarios, aplicaremos el uso del LOFS permitiendo así que un mismo filesystem se monte en repetidos mount-points. Por ejemplo, vamos a usar el filesystem /wwwbiblio de 15 Gb como /vol01 y /vol02. Esto se hace aplicando los siguientes comandos:


santa# mount -F lofs /wwwbiblio /vol01

santa# mount -F lofs /wwwbiblio /vol02

santa# df -kl

santa# df -kl

Filesystem kbytes used avail capacity Mounted on

/dev/dsk/c1t0d0s0 4032504 832906 3159273 21% /

/proc 0 0 0 0% /proc

fd 0 0 0 0% /dev/fd

mnttab 0 0 0 0% /etc/mnttab

swap 2676128 8 2676120 1% /var/run

/dev/dsk/c1t0d0s5 14543925 9 14398477 1% /sydney

/dev/dsk/c1t0d0s4 15121031 2133 14967688 1% /opt

/dev/dsk/c1t0d0s3 288509 35 259624 1% /tmp

/dev/dsk/c1t1d0s4 15121031 2133 14967688 1% /wwwbiblio

/dev/dsk/c1t1d0s5 14543925 9 14398477 1% /vol04

/wwwbiblio 15121031 2133 14967688 1% /vol01

/wwwbiblio 15121031 2133 14967688 1% /vol02

santa#


Para que los filesystems ya se monten de esta manera al tiempo de boot, falta que en el /etc/vfstab pongamos las líneas pertinentes a estos dos casos, las cuales quedarían así:


santa# cat /etc/vfstab

[salida parcialmente eliminada para mejorar legibilidad]

/dev/dsk/c1t1d0s4 /dev/rdsk/c1t1d0s4 /wwwbiblio ufs 2 yes -

/wwwbiblio - /vol01 lofs 3 yes -

/wwwbiblio - /vol02 lofs 3 yes -

santa#


Es importante que al poner entradas de puntos de montura tipo lofs, éstas queden al final del /etc/vfstab para asegurar que los mount-points y los filesystems a montar ya estén listos.


Tarea: Terminar de configurar "santa" para que tenga los demás "filesystems" que existen en goliath, tal vez ahora usar el filesystem vol04 de 14 Gb para tener /vol03, /var/mail y /swbiblio.


Cache File System CacheFS


También es un filesystem basado en memoria y sirve para agilizar el acceso a sistemas de archivos remotos (NFS) o discos locales lentos (CDROM). Este tipo de filesystem almacena localmente y en memoria los datos que se van accesando (remotos o cdrom) de manera que las próximas lecturas las hace en memoria. Se verá en detalle en el capítulo 17.


SWAP SPACE


El espacio de intercambio es usado para implementar en Solaris 8 el manejo de memoria virtual. Conforme los programas exigen memoria física y ésta se agota, Solaris 8 utiliza el espacio de SWAP para almacenar procesos que no están en ejecución (o partes de ellos) y carga en memoria los que están activos. Nótese que mientras más archivos temporales existan, Solaris 8 requerirá de mayor espacio de memoria física y posiblemente exija el uso de SWAP.


Solaris calcula un espacio por omisión de SWAP dependiendo de la cantidad de memoria real instalada conforme a la siguiente tabla.


Memoria Física Instalada

Tamaño de SWAP recomendado

Menos de 64 MB RAM

32

De 64 a 127 MB

64

De 128 a 511 MB

128

De 512 en adelante

256



Para añadir más espacio de SWAP se pueden hacer dos procedimientos:


  1. Usar una partición nueva y declararla como SWAP usando el archivo /etc/vfstab

  2. Crear un archivo con el comando "mkfile" y añadirla con el comando swap -a.


Administrando el espacio de SWAP


El comando "swap" sirve para añadir, listar, borrar y observar el uso del espacio de SWAP.


Listado:


centia# swap -l

swapfile dev swaplo blocks free

/dev/dsk/c0t0d0s1 32,1 16 14390432 14390432

centia#


Añadir espacio de SWAP y listarlo


centia# mkfile 20m SWAPCURSO

centia# swap -a /SWAPCURSO

/SWAPCURSO: No such file or directory <-- Es importante indicar el sendero completo de la ubicación del SWAPFILE

centia# pwd

/etc

centia# swap -a /etc/SWAPCURSO

centia# swap -l

swapfile dev swaplo blocks free

/dev/dsk/c0t0d0s1 32,1 16 14390432 14390432

/etc/SWAPCURSO - 16 40944 40944

centia#


Observar uso de SWAP



centia# swap -s

total: 773608k bytes allocated + 247264k reserved = 1020872k used, 7628880k available

centia#


Eliminar espacio de SWAP y listar


centia# swap -s

total: 773608k bytes allocated + 247264k reserved = 1020872k used, 7628880k available

centia# swap -d /etc/SWAPCURSO

centia# swap -s

total: 776056k bytes allocated + 248208k reserved = 1024264k used, 7605008k available

centia# swap -l

swapfile dev swaplo blocks free

/dev/dsk/c0t0d0s1 32,1 16 14390432 14390432

centia#


PREGUNTAS DE EXAMEN


Match each pseudo filesystem with its use


a. CacheFS 1. Temporary files

b. PROCFS 2. Alternate path names

c. TMPFS 3. Process information

d. LOFS 4. Local caching of data


Which swap command-line argument will add swap file to the system swap space?


[ ]a. -a

[ ]b. -d

[ ]c. -l

[ ]d. -s


The /tmp directory is one of two TMPFS instances tipically found on a Solaris 8 system. Which of the following is the other?


[ ]a. /etc/run

[ ]b. /var/run

[ ]c. /etc

[ ]d. /var/tmp

[ ]e. /(root)


Which of the following commands are PROC TOOLS ? Match with corresponding funcionality


[ ]a. pstop 1. List process used files in a i-node fashion

[ ]b. pfiles 2. List used memory or address space of process

[ ]c. pstart 3. Show the process current working directory for process

[ ]d. pwdx 4. Show signal actions for this process

[ ]e. psig 5. Tells the process to initiate activities

[ ]f. pmem 6. Stops the process for later activity.


Which of the following is the correct syntax for the mkfile command?


[ ]a. mkfile -s 32m /swapfile

[ ]b. mkfile 32 M swapfile

[ ]c. mkfile 32m /swapfile

[ ]d. mkfile 32m -f /swapfile


Which of the following conditions might require additional swap space?


[ ]a. Physical memory is added.

[ ]b. The /tmp file system is being heavily used.

[ ]c. The load on the system increases.

[ ]d. Several memory-intensive applications are added to the system.


Which of the following pseudo file systems are used to provide fast local access to files and directories?


[ ]a. TMPFS

[ ]b. LOFS

[ ]c. SWAPFS

[ ]d. PROCFS

[ ]e. CacheFS


Which is the correct syntax for mounting the already existing /home/34/vol01 filesystem on a different mount-point /volumen01?


[ ]a. mount -F nfs /home/34/vol01 /volumen01

[ ]b. mount -F hsfs /home/34/vol01 /volumen01

[ ]c. mount -F lofs /volumen01 /home/34/vol01

[ ]d. mount -F lofs /home/34/vol01 /volumen01



Hosted by www.Geocities.ws

1