14.2. Montando un Volumen NFS

El montaje de vol�menes NFS se parece mucho al de los sistemas de ficheros comunes. Invoque mount usando la siguiente sintaxis:[1]
      
    # mount -t nfs nfs_volume local_dir options   

nfs_volume se da como remote_host:remote_dir. Dado que esta notaci�n es s�lo para NFS, se puede omitir la opci�n –t nfs.

Hay varias opciones adicionales que se puede especificar para la orden mount al montar un volumen de NFS. �stas pueden ser dadas siguiendo al modificador –o en la l�nea de �rdenes o en el campo de opciones de entrada para el volumen en el fichero /etc/fstab. En ambos casos las m�ltiples opciones son separadas por comas y no pueden contener espacios en blanco. Las opciones especificadas en la l�nea de �rdenes siempre tienen preferencia sobre las que est�n contenidas en el fichero fstab.

Aqu� hay un ejemplo de entrada del fichero /etc/fstab :
      
    # volumen              punto de montaje   tipo  opciones  
    news:/var/spool/news  /var/spool/news     nfs   timeo=14,intr  

Este volumen puede ser montado usando esta orden:
      
    # mount news:/var/spool/news  

En ausencia de una entrada en fstab, las llamadas a mount parecen muy feas. Por ejemplo, suponga que monta su directorio inicial de usuario desde una m�quina llamada moonshot, la cual usa un tama�o de bloque de 4 K para las operaciones de lectura/escritura. tendr�a que incrementar el tama�o del bloque a 8 K para obtener un mejor rendimiento escribiendo la orden:
      
    # mount moonshot:/home /home -o rsize=8192,wsize=8192  

La lista de todas las opciones v�lidas se describe completamente en la p�gina de ayuda nfs(5) del manual. La siguiente es una lista parcial de opciones que probalemente querr�a usar:

rsize=n y wsize=n

Especifican el tama�o de datagrama usado por los clientes de NFS en las peticiones de lectura y escritura respectivamente. El tama�o predeterminado depende de la versi�n del n�cleo, pero normalmente es de 1.024 bytes.

timeo=n

Establece el tiempo (en d�cimas de segundo) que el cliente de NFS esperar� por la respuesta a una petici�n. El valor predefinido es 7 (0.7 segundos). Lo que pase despu�s depende de si usa la opci�n hard o soft.

hard

Expl�citamente marca este volumen como montado f�sicamente. Es el valor predeterminado. Esta opci�n hace que el servidor muestr por la consola un mensaje cuando expoira el tiempo de operaci�n y contin�a indefinidamente.

soft

Monta l�gicamente (como opuesto al montaje f�sico) el controlador. Esta opci�n causa un error de E/S a ser informado al proceso que intenta poner en funcionamiento un fichero cuando expira el tiempo de operaci�n.

intr

Permite una se�al para interrumpir una llamada a NFS. Es �til parar abortar cuando el el servidor no responde.

Salvo para rsize y wsize, todas estas opciones se aplican a la conducta del cliente en caso de que el servidor se vuelva temporalmente inaccesible. Funcionan juntos de la manera siguiente: Cuando el cliente env�a una petici�n al servidor NFS, espera que la operaci�n finalice tras un intervalo dado de tiempo (especificado en la opci�n timeout ). Si no se recibe confirmaci�n dentro de este tiempo, ocurre una expiraci�n menor[2], y la operaci�n se reintenta con el tiempo de expiraci�n duplicado. Despu�s de un tiempo de expiraci�n m�ximo de 60 segundos ocurre una expiraci�n mayor[3].

Por omisi�n, una expiraci�n mayor causa que el cliente env�e un mensaje a la consola y comience de nuevo, esta vez con un tiempo de expiraci�n inicial doble que la cascada anterior. Potencialmente, esto podr�a continuar para siempre. Los vol�menes que obstinadamente reintentan el funcionamiento hasta que el servidor est� nuevamente disponible se llaman de montaje fuerte. La variedad opuesta, llamada de montaje d�bil, genera un error de E/S para el proceso que llama siempre que expire el tiempo de conexi�n. Debido a la post-escritura [4] introducida desde la cach� del b�fer, esta condici�n de error no se propaga hacia el proceso mismo antes de que �ste llame a la funci�n write la pr�xima vez, as� que un programa nunca puede estar seguro de que una operaci�n de escritura sobre un volumen montado d�bilmente se ha completado del todo.

El montar fuerte o d�bilmente un volumen depende parcialmente de su gusto, pero tambi�n del tipo de informaci�n al que quiere acceder desde un volumen. Por ejemplo, si monta sus programas X por NFS, ciertamente no querr�a que su sesi�n X enloquezca tan s�lo porque alguien llev� la red al colapso lanzando siete copias de DOOM al mismo tiempo o desenchufando el conector Ethernet por un momento. Mediante el montaje f�sico del directorio que contiene estos programas, puede asegurarse que su computadora espera hasta que pueda restablecer el contacto con su servidor NFS. Por otro lado, los datos no-cr�ticos como las particiones de las noticias montadas sobre NFS o ficheros de FTP tambi�n pueden ser montadas d�bilmente, as� si la m�quina remota est� temporalmente inaccesible o apagada, no cuelga su sesi�n. Si su conexi�n de la red al servidor es dificultosa o pasa por un encaminador muy cargado, puede en cualquier caso aumentar el tiempo de expiraci�n inicial usando la opci�n timeo o montar fuertemente los vol�menes. Los vol�menes NFS son montados fuertemente por omisi�n.

El montaje fuerte presenta un problema porque por omisi�n las operaciones con los ficheros no son interrumpibles. As�, si un proceso intenta, por ejemplo, una escritura en un servidor remoto y ese servidor es inalcanzable, la aplicaci�n del usuario se cuelga y el usuario no puede hacer nada para abortar la operaci�n. Si usa la opci�n intr junto con un montaje fuerte, cualquier se�al recibida por el proceso interrumpe la llamada NFS para que as� los usuarios puedan todav�a abortar los accesos a los ficheros colgados y continuar el trabajo (aunque sin guardar el fichero).

Usualmente, el demonio rpc.mountd de una manera u otra rastrea qu� directorios han sido montados por qu� anfitrioness. Esta informaci�n puede mostrarse usando la orden showmount que tambi�n est� incluida en el paquete del servidor NFS.
      
    # showmount -e moonshot  
    Lista de exportaci�n para el anfitri�n local:  
    /home <anon clnt>  
      
    # showmount -d moonshot  
    Directorios en el anfitri�n local:  
    /home  
      
    # showmount -a moonshot  
    Todos los puntos de montaje para el anfitri�n local:  
    localhost:/home  

Notas

[1]

No se dice sistema de ficheros porque no son propiamente sistemas de ficheros.

[2]

minor timeout

[3]

major timeout

[4]

write-behind