Tenemos un recurso compartido NFS 4, que comparte un volumen entre varios servidores (servidor NFS y todos los clientes Debian 8). Recientemente hemos tenido algunos problemas donde las interrupciones de la red congelarían los sistemas del cliente.
Nuestro opciones NFS fueron mínimas, simplemente rw
(y por lo tanto los valores por defecto hard
, fg
etc).
Ahora estoy experimentando con estas opciones, pero no obtengo el comportamiento que esperaba:
rw,soft,bg,retrans=6,timeo=150
(He aumentado las retransmisiones para compensar parte del riesgo blando)
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 a la 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, el mensaje 'nfs: server [servername] no responde, expiró', que parece repetirse una vez por minuto (indefinidamente).
Lo que me gustaría / esperaría que suceda para que la operación falle y devuelva 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
soft
bajo ninguna circunstancia. Permite que los datos se descarten por error . En cambio, sugeriríahard,intr
.hard
es igual de mala para nosotros (los sistemas mueren y permanecen muertos hasta que se reinicia).intr
no es compatible con NFS4 según man.intr
que es compatible con NFS4, pero no con núcleos> 2.6.25)cd
, pero en lugar de hacerlols /mnt/mountpoint
? Es posible que después de lals
falla, su shell intente operaciones del sistema de archivos dependientes de PWD. (Peor aún, si fueras lo suficientemente tonto como para poner.
tu$PATH
)Respuestas:
intr
debería permitirle recuperar el control cuando golpea^C
, pero generalmente no de inmediato.Como dices, las expectativas son el problema aquí. Los problemas de red pueden ser temporales, pero el fallo de una operación es permanente. Por lo tanto, la mayoría de las operaciones se configuran simplemente como bloqueo hasta que se completa la operación.
Esta es la respuesta estándar, pero al mirar una página de manual actual veo esto:
Por lo tanto, no me parece un problema de NFS3 / NFS4, sino una decisión sobre cómo
intr
funciona. Por lo tanto, debería poder realizarKILL
el proceso, pero eso puede no darle mucha utilidad.No pude encontrar la discusión sobre por qué se eliminó la opción. ¿Puedes matar-MATAR tu proceso?
fuente
intr
es compatible con nfs 2/3 pero no 4.Parte de mi respuesta es la opinión, basada en la experiencia. Cuando tenga datos, intentaré (intentar recordar) vincularlos.
soft
en casi ninguna circunstancia. Permite que los datos se descarten por error . En cambio, sugeriríahard,intr
.intr
no es válido para NFS 4, pero parece que este es un cambio de kernel en lugar de uno de NFS.autofs
) funciona bien para mis casos de uso con las versiones NFS 2 y 3, y se las arregla para ayudar a proteger mis sistemas cliente de fallas del servidor al montar los sistemas de archivos NFS solo cuando son necesarios.Mi sugerencia para usted sería considerar pasar de NFS 4 a NFS 3 y ver si eso ayuda a su caso de uso particular. No pienses en ello como una rebaja.
fuente
intr
no es compatible con las versiones recientes del kernel.intr
es compatible con NFS4 (aparece en las dos opciones de solo 2/3 y en las 4 únicas opciones de man, lo cual es un poco confuso), pero no es compatible con las versiones recientes del kernel.hard
, todo el sitio web se cae. Si lo usamossoft
, posiblemente podamos obtener algunas imágenes rotas (aunque nuestro sistema de almacenamiento en caché lo mitiga casi por completo). El riesgo desoft
permitir la corrupción de archivos realmente no es un gran problema. ¡Prefiero tener un archivo de imagen corrupto que un sitio caído!soft
una solución aceptable. Respuesta modificada de "nunca" a "casi nunca". ¡Gracias!