sshfs のフリーズを回避するにはどうすればいいですか?

sshfs のフリーズを回避するにはどうすればいいですか?

Ubuntu 12.04 に sshfs をインストールし、いくつかのリモート サーバーに接続しようとしています。

最初はマウントが成功したように見えます。Gnome がそれを認識し、画面の下部に「新しいデバイスが見つかりました」というボックスを表示することもあります。しかし、ここから先は、機能するものがほとんどありません。少なくとも、もう機能しません。最初の数回は接続した時は正常に動作し、いくつかのファイルを転送できました。その後、を使用して切断しfusermount -u <folder>、少し後に再接続すると、問題が発生し始めました。

を実行した後sshfs -o ServerAliveInterval=15 -o reconnect -C -o workaround=all -o idmap=user root@<host>:/ <folder>、ディレクトリをマウント ポイントに変更すると、シェルがフリーズしてしまいます。奇妙なことに、ls -al <folder>リモート システムのルートだけを一覧表示するときには機能しますが、それ以上は機能しません。また、私が試したすべてのファイル エクスプローラーは、 と同じようにフリーズしますcd <folder>

私にとっては、最初はうまくいったので、システムの周りにゾンビ スレッドか何かが潜んでいるように思えたので、再起動を試みましたが、うまくいきませんでした。

sshfs -Vこれは次のようになります:

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

答え1

で sshfs を開始した場合-o reconnect、ハングしている SSH プロセスを強制終了すると再接続されます。

まず、一致する SSH を見つけます。例:

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

特徴的なオプション セットと、sshfs に接続していたホストによって、それを区別できます。その後、それを強制終了します。通常の SIGTERM で十分です。

kill 9644

これにより、SSHFS は新しい SSH セッションを開始し、マウントされたファイルシステムが再び応答するようになり、そこにハングしているすべてのプロセスは何も起こらなかったかのように続行されます。

答え2

sshfs -o reconnect,ServerAliveInterval=1 your-remote-ssh: your-local-folder1 秒ごとにサーバーにメッセージを送信するために使用します。これにより、切断をすばやく検出し、自動的に再接続して、ハングやフリーズを回避できるようにsshなります。sshfs

答え3

これは古い投稿であり、これに対する最終的な解決策を提示しているわけではありませんが、私も同じ問題を抱えていたと思います (Ubuntu 14.04 で)。私の場合は、遅延アンマウントと再マウントが機能しました (少し面倒ですが)。

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

キャッシュされた結果を参照していただけだと思いますls -al <folder>

答え4

私も同じ問題を抱えていました。Big cdBoom イベントの直前まで時間がかかりました。

問題は非常に単純でした。シェルに Git 拡張機能を使用していて、それがgit status裏で実行されていたのです。つまり、Git は最初に大量のデータをダウンロードする必要があったのです。

「拡張機能なし」シェルに切り替えると、 の問題は解決しましたcd

関連情報