13.9. NFS – Sistema de archivos distribuidos

Como ya se ha mencionado en el apartado 13.8, “NIS – Network Information Service”, el servicio NFS sirve, junto con el servicio NIS, para hacer una red transparente para el usuario. NFS permite la distribución de sistemas de archivos en la red, gracias a lo cual el usuario encuentra siempre el mismo entorno, independientemente del ordenador en el que trabaje.

Al igual que NIS, NFS es un servicio asimétrico de estructura cliente-servidor; pero a diferencia de este, NFS puede ofrecer sistemas de archivos a la red (“exportar”) y a su vez montar los de otros ordenadores (“importar”). La constelación más habitual consiste en utilizar servidores con discos duros de gran capacidad para exportar sistemas de archivos que serán montados por los clientes.

13.9.1. Importar sistemas de archivos con YaST

Todo usuario (al que le han asignado ciertos derechos) puede distribuir directorios NFS de servidores NFS en su propio árbol de directorios. Para ello, el método más sencillo consiste en utilizar el módulo Cliente NFS de YaST. Allí se debe introducir el nombre de host del ordenador que hace las veces de servidor NFS, el directorio a exportar del servidor, y el punto de montaje en el que se debe montar en el ordenador. En la primera ventana de diálogo escoja Añadir e introduzca la información mencionada (Fig. 13.9, “Configuración de un cliente NFS”).

Figura 13.9. Configuración de un cliente NFS

Configuración de un cliente NFS

13.9.2. Importar sistemas de archivos manualmente

Importar manualmente sistemas de archivos desde un servidor NFS es muy simple y tiene como única condición que el mapeador de puertos o portmapper RPC esté activo. Para iniciar este servidor, ejecute el comando rcportmap start como usuario root. Una vez iniciado este servicio es posible incorporar sistemas de archivos externos al sistema de archivos local, siempre que puedan exportarse de las máquinas correspondientes. El procedimiento es análogo a la incorporación de discos locales usando el comando mount. La sintaxis del comando es la siguiente:

mount ordenador:ruta remota ruta local

Se pueden importar por ejemplo los directorios de usuario del ordenador sol con el siguiente comando:

 
mount sol:/home /home 
  

13.9.3. Exportar sistemas de archivos con YaST

Con YaST puede convertir un ordenador de su red en un servidor NFS; en otras palabras, un servidor que pone archivos y directorios a disposición de todos los ordenadores a los que se haya otorgado acceso. Muchas aplicaciones pueden por ejemplo estar disponible para los empleados sin que sea necesario instalarlas en sus PCs.

Para realizar la instalación, escoja en YaST la opción Servicios de red y allí la opción Servidor NFS (Fig. 13.10, “Herramienta de configuración de servidores NFS”).

Figura 13.10. Herramienta de configuración de servidores NFS

Herramienta de configuración de servidores NFS

A continuación active la opción Arrancar el servidor NFS y pulse en Siguiente. Ahora ya sólo queda introducir en la casilla superior los directorios que deben exportarse y en la inferior los ordenadores de la red a los que se les permite el acceso (figura 13.11, “Servidor NFS: Introducir el host y los directorios de exportación”). Existen cuatro opciones disponibles para los ordenadores: single host, netgroups, wildcards y IP networks. Puede encontrar una explicación más detalladas de estas opciones en las páginas man del paquete exports (man exports).

Figura 13.11. Servidor NFS: Introducir el host y los directorios de exportación

Servidor NFS: Introducir el host y los directorios de exportación

Con Finalizar cierra la ventana de configuración.

13.9.4. Exportar manualmente sistemas de archivos

Si prescinde del apoyo de YaST, asegúrese de que los siguientes servicios estén en funcionamiento en el servidor NFS:

  • RPC-Portmapper (portmap)

  • RPC-Mount-Daemon (rpc.mountd)

  • RPC-NFS-Daemon (rpc.nfsd)

Introduzca los comandos insserv /etc/init.d/nfsserver e insserv /etc/init.d/portmap para que los servicios sean activados por los scripts /etc/init.d/portmap y /etc/init.d/nfsserver al arrancar el ordenador.

Aparte de iniciar estos daemons es preciso definir qué sistemas de archivos se deben exportar a qué ordenadores. Esto se realiza con el archivo /etc/exports.

Por cada directorio a exportar se necesita una línea que defina qué ordenador debe acceder a él y de qué forma; los subdirectorios se exportan automáticamente. Los ordenadores con permiso de acceso se indican generalmente por sus nombres (con el nombre del dominio incluido). También puede usar los comodines * y ? con sus funciones conocidas de la shell bash. Si no se indica ningún nombre, todos los ordenadores tienen la posibilidad de montar el directorio con los derechos de acceso indicados.

Los derechos con los que el directorio se exporta están indicados entre paréntesis en una lista detrás del nombre de ordenador. La siguiente tabla resume las opciones de acceso más importantes.

Tabla 13.12. Derechos de acceso a directorios exportados

OpcionesSignificado
roExportación sólo con derecho de lectura (por defecto).
rwExportación con derecho de escritura y lectura.
root_squashEsta opción hace que el usuario root del ordenador indicado no tenga sobre el directorio los derechos especiales típicos de root. Esto se logra modificando los accesos con la identidad de usuario (User-ID) 0 al de 65534 (-2). Esta identidad debe estar asignada al usuario nobody (esta es la opción por defecto).
no_root_squashNinguna modificación de los derechos de root.
link_relativeModificación de enlaces simbólicos absolutos (aquellos que comienzan con /) a una secuencia de ../. Esta opción sólo tiene sentido si se monta el sistema de archivos completo de un ordenador (es así por defecto).
link_absoluteNo se modifican los enlaces simbólicos.
map_identityEl cliente usa el mismo número de identificación (User-ID) que el servidor (esta es la opción por defecto).
map_daemonLos números de identificación de usuario, cliente y servidor no coinciden. Con esta opción, el nfsd genera una tabla para la conversión de los números de identificación de usuario. El requisito para ello es la activación del daemon ugidd.

El archivo 13.27, “/etc/exports” muestra un ejemplo de un archivo exports.

Ejemplo 13.27. /etc/exports

# 
# /etc/exports 
# 
/home            sol(rw)      venus(rw) 
/usr/X11         sol(ro)      venus(ro) 
/usr/lib/texmf   sol(ro)      venus(rw) 
/                tierra(ro,root_squash) 
/home/ftp        (ro) 
# End of exports

Los programas mountd y nfsd leen el archivo /etc/exports. Después de haberlo modificado, es preciso reiniciar mountd y nfsd para que los cambios se activen. Para ello lo más sencillo es introducir el comando:

rcnfsserver restart