NFS

NFS
Información sobre la plantilla
Nfs.JPG
Concepto:Network File System (NFS, Sistema de archivos de red). Permite a los hosts remotos montar sistemas de archivos sobre la red e interactuar con esos sistemas de archivos como si estuvieran montados localmente

Network File System (NFS, Sistema de archivos de red). Permite a los hosts remotos montar sistemas de archivos sobre la red e interactuar con esos sistemas de archivos como si estuvieran montados localmente. Esto permite a los administradores de sistemas consolidar los recursos en servidores centralizados en la red.

Funcionamiento

Hay tres versiones de NFS actualmente en uso. La versión 2 de NFS (NFSv2), es la más antigua y está ampliamente soportada por muchos sistemas operativos. La versión 3 de NFS (NFSv3) tiene más características, incluyendo manejo de archivos de tamaño variable y mejores facilidades de informes de errores, pero no es completamente compatible con los clientes NFSv2. NFS versión 4 (NFSv4) incluye seguridad Kerberos, trabaja con cortafuegos, permite ACLs y utiliza operaciones con descripción del estado. Red Hat Enterprise Linux soporta clientes tanto NFSv2, NFSv3 como NFSv4, y cuando monta un sistema de archivos a través de NFS, Red Hat Enterprise Linux usa NFSv4 por defecto.

Todas las versiones de NFS pueden utilizar el Protocolo de control de transmisiones (TCP) ejecutándose sobre una red IP. En el caso de NFSv4, éste lo requiere. NFSv2 y NFSv3 pueden utilizar el Protocolo de datagrama de usuarios (UDP) sobre una red IP para proporcionar conexiones de red sin supervisión (stateless) entre el cliente y el servidor.

Cuando se utiliza NFSv2 o NFSv3 con UDP, bajo condiciones normales la conexión UDP desatendida minimiza el tráfico de la red, ya que el servidor NFS envia un cookie al cliente después que este tiene acceso al volumen compartido. Esta cookie es un valor aleatorio guardado en el lado del servidor y es pasado junto con las peticiones RPC desde el cliente. El servidor NFS puede ser reiniciado sin afectar a los clientes y las cookies permanecen intactas. Sin embargo, debido a que UDP es sin supervisión, si el servidor se cae de forma inesperada, los clientes UDP continúan saturando la red con peticiones para el servidor. Por esta razón, TCP es el protocolo preferido cuando se conecte a un servidor NFS.

Cuando se autentifique utilizando NFSv4, se crea una conexión atenta y, de forma opcional, está disponible la autenticación de usuarios y grupos con Kerberos. NFSv4 no tiene interacción con portmapper, rpc.mountd, rpc.lockd y rpc.statd, pues estos han sido incorporados en el kernel. NFSv4 escucha en el puerto TCP 2049. La única vez que NFS lleva a cabo la autentificación es cuando el cliente intenta montar un recurso compartido NFS. Para limitar el acceso al servicio NFS, se utilizan envolturas TCP (TCP wrappers). Los TCP wrappers leen los archivos /etc/hosts.allow y /etc/hosts.deny para determinar si a un cliente particular o red tiene acceso o no al servicio NFS. Para más información sobre cómo configurar los controles de acceso con envolturas TCP (TCP wrappers).

Después de que al cliente se le permite acceso gracias a un TCP wrapper, el servidor NFS recurre a su archivo de configuración, /etc/exports, para determinar si el cliente tiene suficientes privilegios para acceder a los sistemas de archivos exportados. Una vez otorgado el acceso, todas las operaciones de archivos y de directorios están disponibles para el usuario.

Servicios requeridos

Red Hat Enterprise Linux utiliza una combinación de soporte a nivel del kernel y procesos demonio para proporcionar los archivos compartidos con NFS. NFSv2 y NFSv3 confía en las Llamadas de procedimientos remotos ((RPC)) para enrutar peticiones entre clientes y servidores. Los servicios RPC bajo Linux son controlados por el servicio portmap. Para compartir o montar sistemas de archivos NFS, los servicios siguientes funcionan juntos, dependiendo de cuál versión de NFS se tenga implementada:

  • nfs — Inicia los procesos RPC apropiados para servir peticiones para los sistemas de archivos compartidos NFS.
  • nfslock — Un servicio opcional que inicia los procesos RPC adecuados para permitir que clientes NFS bloqueen archivos en el servidor.
  • portmap — El servicio RPC para Linux; responde a las peticiones para servicios RPC y configura las conexiones al servicio RPC solicitado. No se utiliza con NFSv4.

Los siguientes procesos RPC facilitan los servicios NFS:

  • rpc.mountd — Este proceso recibe las peticiones de montaje desde clientes NFS y verifica que el sistema de archivos solicitado esté actualmente exportado. Este proceso es iniciado automáticamente por el servicio nfs y no requiere de la configuración del usuario. No se utiliza con NFSv4.
  • rpc.nfsd — Este proceso es el servidor NFS. Trabaja con el kernel Linux para satisfacer las demandas dinámicas de clientes NFS, tales como proporcionar hilos del servidor cada vez que se conecta un cliente NFS. Este proceso corresponde al servicio nfs.
  • rpc.lockd — Un proceso opcional que permite a los clientes NFS bloquear archivos en el servidor. Esto corresponde al servicio nfslock. No se utiliza con NFSv4.
  • rpc.statd — Este proceso implementa el protocolo RPC Network Status Monitor (NSM) el cual notifica a los clientes NFS cuando un servidor NFS es reiniciado luego de haber sido apagado abruptamente. Este proceso es iniciado automáticamente por el servicio nfslock y no requiere configuración por parte del usuario. No se utiliza con NFSv4.
  • rpc.rquotad — Proporciona información de cuotas de usuario para los usuarios remotos. Este proceso se inicia automáticamente por el servicio nfs y no requiere configuración por parte del usuario.
  • rpc.idmapd — Este proceso proporciona al cliente y servidor NFSv4 llamadas ascendentes (upcalls) que hacen corresponder los nombres NFSv4 (los cuales son cadenas en la forma usuario@dominio) y los UIDs y GIDs locales. Para que idmapd funcione con NFSv4, el /etc/idmapd.conf debe estar configurado. Se requiere este servicio para su uso con NFSv4.
  • rpc.svcgssd — Este proceso proporciona al servidor los mecanismos de transporte para el proceso de autenticación (Kerberos versión 5) con NFSv4. Se requiere este servicio para su uso con NFSv4.
  • rpc.gssd — Este proceso proporciona al cliente los mecanismos de transporte para el proceso de autenticación (Kerberos versión 5). Se requiere este servicio para su uso con NFSv4.

Iniciar y detener NFS

Para ejecutar un servidor NFS, debe estar ejecutándose el servicio portmap. Para verificar que portmap está activo, escriba el comando siguiente como root:

  • /sbin/service portmap status

Si el servicio portmap se está ejecutando, entonces se puede iniciar nfs. Para iniciar un servidor NFS, como root escriba:

  • /sbin/service nfs start

Para detener el servidor, como usuario root, escriba:

  • /sbin/service nfs stop

La opción restart es un atajo para detener y luego iniciar NFS. Esta es la forma más eficiente de hacer que los cambios en la configuración tomen efecto luego de modificar el archivo de configuración por NFS. Para reiniciar el servidor, como usuario root, escriba:

  • /sbin/service nfs restart

La opción condrestart (reinicio condicional) solamente inicia nfs si este está actualmente ejecutándose. Esta opción es útil para los scripts, porque no inicia el demonio si este no se está ejecutando.

Para reiniciar condicionalmente el servidor, como root escriba:

  • /sbin/service nfs condrestart

Para recargar el archivo de configuración del servidor NFS sin reiniciar el servicio, como root escriba:

  • /sbin/service nfs reload

Por defecto, el servicio nfs no arranca automáticamente en el momento del inicio. Para configurar NFS para que inicie en el momento del arranque, utilice una utilidad de initscript, tal como /sbin/chkconfig, /sbin/ntsysv o la Herramienta de configuración de servicios. Para más información sobre estas herramientas, consulte el capítulo llamado Control del acceso a servicios en Manual de administración del sistema de Red Hat Enterprise Linux.

Documentación instalada

  • /usr/share/doc/nfs-utils-<version-number>/ — Reemplace <version-number> con el número de la versión del paquete NFS instalado.

Este directorio contiene una riqueza de información sobre la implementación NFS para Linux, incluyendo una vista a varias configuraciones NFS y su impacto en el rendimiento de la transferencia de archivos. man mount — Contiene una vista completa de las opciones de montaje para configuraciones tanto de servidor como de cliente NFS. man fstab — Presenta detalles sobre el formato del archivo /etc/fstab usado para montar sistemas de archivos en el momento de arranque.

man nfs — Proporciona detalles de opciones de montaje y de exportación de sistemas de archivos NFS específicos.

man exports — Muestra las opciones comunes usadas en el archivo /etc/exports cuando exportamos sistemas de archivos NFS.

Fuentes