GNU/Linux >> Tutoriales Linux >  >> Linux

¿Evitar que la conexión Nfs rota congele el sistema del cliente?

Tenemos un recurso compartido NFS 4, compartiendo un volumen entre varios servidores (servidor NFS y clientes todos Debian 8). Hemos tenido algunos problemas recientemente en los que las interrupciones de la red congelaban los sistemas de los clientes.

Nuestras opciones de NFS eran mínimas, solo rw (y entonces los valores predeterminados hard , fg , etc.).

Ahora estoy experimentando con estas opciones, pero no obtengo el comportamiento esperado:
rw,soft,bg,retrans=6,timeo=150

(He aumentado las retransmisiones para compensar parte del riesgo suave)

El procedimiento que estoy siguiendo para probar es:

  • Máquina de arranque
  • cd a /mnt/mountpoint
  • Verifique que la conexión NFS está bien
  • cd /
  • matar red ifdown eth0
  • cd a /mnt/mountpoint
  • ls

En este punto, la línea de comando se congela y no puedo interrumpirla. Después de un tiempo, aparece el mensaje 'nfs:el servidor [nombre del servidor] no responde, se agotó el tiempo de espera', que parece repetirse una vez por minuto (indefinidamente).

Lo que me gustaría/esperaría que sucediera para que la operación fallara y devolviera el control.

¿Podría alguien decirme dónde me estoy equivocando con esta configuración?

(PD:también intenté montar con autofs, pero vi un comportamiento similar)

Gracias

Respuesta aceptada:

intr debería permitirle recuperar el control nuevamente cuando presione ^C , pero por lo general no inmediatamente.

   intr           If an NFS file operation has a major timeout and it is hard mounted, then allow signals to interupt the
                  file  operation  and cause it to return EINTR to the calling program.  The default is to not allow file
                  operations to be interrupted.

Como dices, las expectativas son el problema aquí. Los problemas de red pueden ser temporales, pero fallar una operación es permanente. Por lo tanto, la mayoría de las operaciones se bloquean de forma predeterminada hasta que se completa la operación.

Esta es la respuesta estándar, pero al mirar una página man actual veo esto:

                  The  intr / nointr mount option is deprecated after ker-
                  nel 2.6.25.  Only SIGKILL can interrupt  a  pending  NFS
                  operation on these kernels, and if specified, this mount
                  option is ignored  to  provide  backwards  compatibility
                  with older kernels.

Así que no me parece un problema de NFS3/NFS4, sino una decisión sobre cómo intr obras. Entonces deberías poder KILL el proceso, pero eso puede no serle de mucha utilidad.

No pude encontrar la discusión sobre por qué se eliminó la opción. ¿Puedes matar -MATAR tu proceso?

Relacionado:¿Contendrá el video errores si se pierde la conexión mientras se sube a YouTube?
Linux
  1. Administre las conexiones de red desde la línea de comandos de Linux con nmcli

  2. ¿Conexión Ssh rechazada desde el interior de la LAN?

  3. Ssh:¿ejecutar comandos remotos, desconectarse completamente de la conexión Ssh?

  4. ¿Cómo crear un Punto de Acceso a partir de la conexión WiFi actual?

  5. ¿Evitar que el inicio de sesión ssh imprima motd desde el cliente?

Introducción al sistema de archivos de Linux

Cómo configurar el servidor y el cliente NFS en Debian 10

Instalar servidor y cliente NFS en Ubuntu

Cómo reparar el sistema operativo Ubuntu roto sin reinstalar el sistema

Cómo montar NFS en Debian 11

- mongodb/mongodb 1.2.0 requiere ext-mongodb ^1.3.0 -> la extensión PHP solicitada mongodb no se encuentra en su sistema