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?