Configuración de sistemas de archivos estándar de Linux y configuración del servidor NFSv4 - Parte 2


Un ingeniero certificado por la Fundación Linux (LFCE) está capacitado para instalar, configurar, administrar y solucionar problemas de servicios de red en sistemas Linux, y es responsable del diseño e implementación de la arquitectura del sistema y la resolución de problemas relacionados con el día a día.

Presentamos el Programa de certificación de la Fundación Linux (LFCE).

En la Parte 1 de esta serie, explicamos cómo instalar un servidor NFS (Sistema de archivos de red) y configurar el servicio para que se inicie automáticamente al arrancar. Si aún no lo ha hecho, consulte ese artículo y siga los pasos descritos antes de continuar.

  1. Installing Network Services and Configuring Automatic Startup at Boot – Part 1

Ahora le mostraré cómo configurar correctamente su servidor NFSv4 (sin seguridad de autenticación) para que pueda configurar recursos compartidos de red para usar en clientes Linux como si esos sistemas de archivos estuvieran instalados localmente. Tenga en cuenta que puede usar LDAP o NIS con fines de autenticación, pero ambas opciones están fuera del alcance de la certificación LFCE.

Configurar un servidor NFSv4

Una vez que el servidor NFS esté en funcionamiento, centraremos nuestra atención en:

  1. specifying and configuring the local directories that we want to share over the network, and
  2. mounting those network shares in clients automatically, either through the /etc/fstab file or the automount kernel-based utility (autofs).

Más adelante explicaremos cuándo elegir un método u otro.

Antes de empezar, debemos asegurarnos de que el demonio idmapd se esté ejecutando y configurado. Este servicio realiza la asignación de nombres de NFSv4 ( [correo electrónico protegido] ) a los ID de usuario y grupo, y es necesario para implementar un servidor NFSv4.

Edite /etc/default/nfs-common para habilitar idmapd.

NEED_IDMAPD=YES

Y edite /etc/idmapd.conf con su nombre de dominio local (el valor predeterminado es el FQDN del host).

Domain = yourdomain.com

Luego inicie idmapd.

# service nfs-common start 	[sysvinit / upstart based systems]
# systemctl start nfs-common 	[systemd based systems]

El archivo /etc/export contiene las principales directivas de configuración para nuestro servidor NFS, define los sistemas de archivos que se exportarán a los hosts remotos y especifica las opciones disponibles. En este archivo, cada recurso compartido de red se indica mediante una línea separada, que tiene la siguiente estructura por defecto:

/filesystem/to/export client1([options]) clientN([options])

Donde /filesystem/to/export es la ruta absoluta al sistema de archivos exportado, mientras que client1 (hasta clientN) representa el cliente específico (nombre de host o dirección IP) o red. (se permiten comodines) al que se exporta el recurso compartido. Finalmente, opciones es una lista de valores separados por comas (opciones) que se tienen en cuenta al exportar el recurso compartido, respectivamente. Tenga en cuenta que no hay espacios entre cada nombre de host y el paréntesis que precede.

A continuación se muestra una lista de las opciones más frecuentes y su respectiva descripción:

  1. ro (short for read-only): Remote clients can mount the exported file systems with read permissions only.
  2. rw (short for read-write): Allows remote hosts to make write changes in the exported file systems.
  3. wdelay (short for write delay): The NFS server delays committing changes to disk if it suspects another related write request is imminent. However, if the NFS server receives multiple small unrelated requests, this option will reduce performance, so the no_wdelay option can be used to turn it off.
  4. sync: The NFS server replies to requests only after changes have been committed to permanent storage (i.e., the hard disk). Its opposite, the async option, may increase performance but at the cost of data loss or corruption after an unclean server restart.
  5. root_squash: Prevents remote root users from having superuser privileges in the server and assigns them the user ID for user nobody. If you want to “squash” all users (and not just root), you can use the all_squash option.
  6. anonuid / anongid: Explicitly sets the UID and GID of the anonymous account (nobody).
  7. subtree_check: If only a subdirectory of a file system is exported, this option verifies that a requested file is located in that exported subdirectory. On the other hand, if the entire file system is exported, disabling this option with no_subtree_check will speed up transfers. The default option nowadays is no_subtree_check as subtree checking tends to cause more problems than it is worth, according to man 5 exports.
  8. fsid=0 | root (zero or root): Specifies that the specified file system is the root of multiple exported directories (only applies in NFSv4).

En este artículo usaremos los directorios /NFS-SHARE y /NFS-SHARE/mydir en 192.168.0.10 (servidor NFS) como nuestro probar sistemas de archivos.

Siempre podemos listar los recursos compartidos de red disponibles en un servidor NFS usando el siguiente comando:

# showmount -e [IP or hostname]

En el resultado anterior, podemos ver que los recursos compartidos /NFS-SHARE y /NFS-SHARE/mydir en 192.168.0.10 se han exportado al cliente con la dirección IP 192.168.0.17 .

Nuestra configuración inicial (consulte el directorio /etc/export en su servidor NFS) para el directorio exportado es la siguiente:

/NFS-SHARE  	192.168.0.17(fsid=0,no_subtree_check,rw,root_squash,sync,anonuid=1000,anongid=1000)
/NFS-SHARE/mydir    	192.168.0.17(ro,sync,no_subtree_check)

Luego de editar el archivo de configuración, debemos reiniciar el servicio NFS:

# service nfs-kernel-server restart 		[sysvinit / upstart based system]
# systemctl restart nfs-server			[systemd based systems]

Es posible que desee consultar la Parte 5 de la serie LFCS ("Cómo montar/desmontar sistemas de archivos locales y de red (Samba y NFS) en Linux") para obtener detalles sobre el montaje de recursos compartidos NFS remotos bajo demanda utilizando el comando mount o permanentemente a través del archivo /etc/fstab .

La desventaja de montar un sistema de archivos de red utilizando estos métodos es que el sistema debe asignar los recursos necesarios para mantener el recurso compartido montado en todo momento, o al menos hasta que decidamos desmontarlos manualmente. Una alternativa es montar el sistema de archivos deseado bajo demanda automáticamente (sin usar el comando mount ) a través de autofs , que puede montar sistemas de archivos cuando se utilizan y desmontarlos después un período de inactividad.

Autofs lee /etc/auto.master , que tiene el siguiente formato:

[mount point]	[map file]

Donde [archivo de mapa] se usa para indicar múltiples puntos de montaje dentro de [punto de montaje] .

Este archivo de mapa maestro ( /etc/auto.master ) se usa luego para determinar qué puntos de montaje están definidos y luego inicia un proceso de montaje automático con los parámetros especificados para cada punto de montaje.

Edite su /etc/auto.master de la siguiente manera:

/media/nfs	/etc/auto.nfs-share	--timeout=60

y cree un archivo de mapa llamado /etc/auto.nfs-share con el siguiente contenido:

writeable_share  -fstype=nfs4 192.168.0.10:/
non_writeable_share  -fstype=nfs4 192.168.0.10:/mydir

Tenga en cuenta que el primer campo en /etc/auto.nfs-share es el nombre de un subdirectorio dentro de /media/nfs . Cada subdirectorio es creado dinámicamente por autofs.

Ahora, reinicie el servicio autofs:

# service autofs restart 			[sysvinit / upstart based systems]
# systemctl restart autofs 			[systemd based systems]

y finalmente, para permitir que autofs se inicie en el arranque, ejecute el siguiente comando:

# chkconfig --level 345 autofs on
# systemctl enable autofs 			[systemd based systems]

Cuando reiniciamos autofs , el comando mount nos muestra que el archivo de mapa ( /etc/auto.nfs-share ) está montado en el especificado directorio en /etc/auto.master :

Tenga en cuenta que todavía no se han montado directorios, pero lo harán automáticamente cuando intentemos acceder a los recursos compartidos especificados en /etc/auto.nfs-share :

Como podemos ver, el servicio autofs " monta " el archivo de mapa, por así decirlo, pero espera hasta que se realiza una solicitud a los sistemas de archivos para montarlos.

Las opciones anonuid y anongid , junto con root_squash como se establece en el primer recurso compartido, nos permiten mapear las solicitudes realizadas por el usuario root en el cliente a una cuenta local en el servidor.

En otras palabras, cuando root en el cliente crea un archivo en ese directorio exportado, su propiedad se asignará automáticamente a la cuenta de usuario con UID y GID u003d 1000, siempre que dicha cuenta exista en el servidor:

Conclusión

Espero que haya podido instalar y configurar correctamente un servidor NFS adecuado para su entorno utilizando este artículo como guía. También puede consultar las páginas de manual correspondientes para obtener más ayuda ( exportaciones de hombre y idmapd.conf de hombre , por ejemplo).

No dude en experimentar con otras opciones y casos de prueba como se describió anteriormente y no dude en utilizar el formulario a continuación para enviar sus comentarios, sugerencias o preguntas. Estaremos encantados de saber de usted.