¿Cómo evitar la congelación de sshfs?

23

Entonces el problema es este:

He instalado sshfs en Ubuntu 12.04 y estoy tratando de conectarme a un par de servidores remotos. Entonces, inicialmente la montura parece exitosa. A veces, Gnome incluso lo recoge y muestra el cuadro "nuevo dispositivo encontrado" en la parte inferior de la pantalla. pero de aquí en adelante no hay mucho que funcione. O al menos no más. El primer par de veces que lo conecté parecía funcionar bien, pude transferir algunos archivos, luego me desconecté fusermount -u <folder>y después de volver a conectarme un poco más tarde, comenzó el problema. Ahora, después de ejecutar sshfs -o ServerAliveInterval=15 -o reconnect -C -o workaround=all -o idmap=user root@<host>:/ <folder>, cuando cambio el directorio al punto de montaje, el shell simplemente se congela. Extrañamente ls -al <folder>funciona al enumerar solo la raíz del sistema remoto, pero nada más. Además, cada explorador de archivos que he probado se congela al igual que cd <folder>.

Para mí, parecía que había algún tipo de hilo zombie o algo colgando alrededor de mi sistema, debido al hecho de que funcionó la primera vez, así que intenté reiniciar pero no tuve suerte.

sshfs -V da esto:

SSHFS version 2.3
FUSE library version: 2.8.6
fusermount version: 2.8.6
using FUSE kernel interface version 7.12

Entonces, ¿alguna idea?

Andreas Hagen
fuente

Respuestas:

17

Si comenzaste con sshfs -o reconnect, matar el proceso SSH que está colgando hará que se vuelva a conectar.

Primero encuentre el SSH correspondiente, por ejemplo:

ps -ef
...
user 9644 1 0 11:15 ? 00:00:00 ssh -x -a -oClearAllForwardings=yes -2 <host> -s sftp
...

Puede distinguirlo por el conjunto distintivo de opciones y el host al que estaba conectando sshfs. Luego mátalo, SIGTERM regular debería ser suficiente:

kill 9644

Esto debería hacer que SSHFS inicie una nueva sesión de SSH y el sistema de archivos montado volverá a responder y todos los procesos que estén suspendidos continuarán como si nada hubiera pasado.

Beli
fuente
FYI: Esta solución parece muy útil para mejorar la robustez de nuestras conexiones sshfs en primer lugar: askubuntu.com/a/716618/327339 . También vea el # 11 en las preguntas frecuentes aquí: github.com/libfuse/sshfs/blob/master/FAQ
Gabriel Staples
1

¿Cuánto tiempo has esperado a que se resuelva el congelamiento? Podrían ser solo problemas de transmisión entre usted y el servidor en cuestión.

Utilizo sshfs entre mi sistema y el de un amigo que vive en los boonies (¡término oficial!), Está en una conexión inalámbrica terrestre que ocasionalmente se cae (creemos que su receptor está ondeando al viento, perdiendo el bloqueo de señal).

Si espero, eventualmente se sincronizará y hará las cosas, pero ocasionalmente solo se bloqueará por unos minutos.

Paciencia GrassHopper!

lornix
fuente
2
He intentado esperar un poco, tal vez 10-20 minutos, pero no tuve suerte. Tal vez solo necesita un par de horas? ^^,
Andreas Hagen
¡Uno esperaría que no! Puede intentar iniciar sesión con sshfs -d' or sshfs -o LogLevel = Debug` (o 'Debug2') para activar el modo detallado ... ver si se imprime algo esclarecedor.
lornix
0

Esta es una publicación antigua y no estoy dando una solución definitiva a esto, pero creo que estaba teniendo el mismo problema (en Ubuntu 14.04) y, en mi caso, los trabajos de desmontaje y montaje perezosos (aunque es un poco molesto):

fusermount -u -z /local/folder
sshfs -C user@server:/remote/folder /local/folder

Sospecho que solo estabas viendo resultados almacenados en caché ls -al <folder>.

Sheljohn
fuente