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 la vida diaria.

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. Instalación de servicios de red y configuración de inicio automático en el inicio - Parte 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. especificar y configurar los directorios locales que queremos compartir en la red, y
  2. montar esos recursos compartidos de red en los clientes automáticamente, ya sea a través del archivo /etc/fstab o la utilidad basada en el kernel automount (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 (abreviatura de solo lectura): los clientes remotos pueden montar los sistemas de archivos exportados solo con permisos de lectura.
  2. rw (abreviatura de lectura-escritura): permite a los hosts remotos realizar cambios de escritura en los sistemas de archivos exportados.
  3. wdelay (abreviatura de retardo de escritura): el servidor NFS retrasa la confirmación de cambios en el disco si sospecha que es inminente otra solicitud de escritura relacionada. Sin embargo, si el servidor NFS recibe varias solicitudes pequeñas no relacionadas, esta opción reducirá el rendimiento, por lo que la opción no_wdelay se puede usar para desactivarla.
  4. sincronización : el servidor NFS responde a las solicitudes solo después de que los cambios se hayan comprometido en el almacenamiento permanente (es decir, el disco duro). Su opuesto, la opción async , puede aumentar el rendimiento, pero a costa de la pérdida o corrupción de datos después de un reinicio del servidor sin limpiar.
  5. root_squash : Evita que los usuarios root remotos tengan privilegios de superusuario en el servidor y les asigna el ID de usuario para el usuario nadie. Si desea " aplastar " a todos los usuarios (y no solo a root), puede utilizar la opción all_squash .
  6. anonuid / anongid : establece explícitamente el UID y GID de la cuenta anónima (nadie).
  7. subtree_check : si solo se exporta un subdirectorio de un sistema de archivos, esta opción verifica que un archivo solicitado se encuentra en ese subdirectorio exportado. Por otro lado, si se exporta todo el sistema de archivos, deshabilitar esta opción con no_subtree_check acelerará las transferencias. La opción predeterminada hoy en día es no_subtree_check ya que la verificación de subárboles tiende a causar más problemas de los que vale, según las exportaciones de man 5.
  8. fsid u003d 0 | raíz (cero o raíz): especifica que el sistema de archivos especificado es la raíz de varios directorios exportados (solo se aplica en 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 los 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 utiliza 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 man y idmapd.conf de man , 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.