Degradación elegante de SSHFS en lugar de congelar cuando se pierde la conexión. ¿Es posible?

10

Un programa de terceros escribirá archivos en un directorio montado SSHFS. Si se pierde la conexión a Internet, el programa de terceros probablemente se bloqueará (gravemente), porque todos los programas que intentan acceder a un directorio montado en SSHFS en ese estado (cuando no hay conexión a Internet) se colocan en lo que algunos describen como "ininterrumpible dormir". SSHFS tiene una opción para reconectarse automáticamente, pero esto no ayuda, ya que el programa de terceros se bloqueará (y bloqueará) si se pierde la conexión (aunque cuando se restablezca la conexión, SSHFS volverá a montar el directorio). Autofs no ayudará, básicamente se trata del comportamiento de SSHFS cuando se pierde la conexión. ¿Por qué no puede comportarse como un directorio compartido de red (Samba u otro medio) y simplemente devolver un error antes que ... nunca?

¿Existen alternativas a SSHFS si SSHFS no puede funcionar como se describe?

Otra información:

SO: estoy usando Ubuntu Linux (12.04 LTS)

Andrei
fuente
Por favor explique qué está haciendo exactamente. Me imagino que estás montando un sistema de archivos remoto usando sshfs en una máquina Linux local, ¿es así? Quizás incluir su /etc/fstab? ¿Has probado autofs con la softopción?
terdon
@terdon Un programa de terceros escribirá archivos en un directorio montado SSHFS. Si se pierde la conexión a Internet, el programa de terceros probablemente se bloqueará (gravemente). SSHFS tiene una opción para reconectarse automáticamente, pero esto no ayuda, ya que el programa de terceros se bloqueará (y bloqueará) si se pierde la conexión (aunque cuando se restablezca la conexión, SSHFS volverá a montar el directorio). Autofs no ayudará, básicamente se trata del comportamiento de SSHFS cuando se pierde la conexión. ¿Por qué no puede comportarse como un directorio compartido de red (Samba u otro medio) y simplemente devolver un error antes que ... nunca?
Andrei
Gracias por la actualización, pero inclúyala en su pregunta, ya que no todos leen los comentarios. Incluya también los archivos de configuración que está utilizando. ¿Cuál es el valor de ssh timeout, etc.? No digo que sepa cómo es la respuesta, es solo que mientras más información tenga en su pregunta, más probable es que obtenga una buena respuesta. Tal como está, es difícil entender cuál es exactamente su configuración.
terdon
@terdon Gracias, básicamente ahora casi reemplacé mi pregunta por completo.
Andrei
Mucho mejor :). Agregue también el sistema operativo que está utilizando. ¿Es esto Linux, OSX, otro Unix?
terdon

Respuestas:

0

En resumen: no, debido a que la congelación es de la aplicación, la falla de sshfs es graciosa, le dirá a la aplicación que espere. - el hecho de que la aplicación no respete esto no es culpa de SSHFS.

La aplicación haría exactamente lo mismo, si estuviera accediendo a un archivo en un almacenamiento extraíble, como una unidad usb, y lo eliminara. La aplicación necesita capturar y manejar los eventos de tiempo de espera en E / S en lugar de quedarse atascado esperando la respuesta.

djsmiley2kStaysInside
fuente
0

Triste problema. Probé sshfs varias veces en el pasado.

Tan pronto como se pierde la conexión, las aplicaciones que acceden a archivos en la carpeta montada se congelan y se bloquean. Incluso terminales. PERO las aplicaciones ni siquiera saben que están esperando. Es algo en el nivel del kernel que no puede manejar sshfs diciéndoles que esperen para siempre ... incluso desmontar no funciona e incluso se congela a veces porque la carpeta montada está bloqueada de alguna manera en el nivel del kernel del sistema de archivos.

¿Por qué no sucede esto cuando desconecto una unidad USB?

Este problema existe desde hace años ...

La reconexión automática no ayuda si no puede restablecer una conexión en cualquier momento. (En mi caso, tengo Kerberos Tickes agotándose).

Lo siento pero tengo que decir: sshfs es inutilizable!
(excepto en los casos en que nunca se pierde una conexión)

Siempre termino usando scp en su lugar. Problema triste

bugpulver
fuente