【问题标题】:Mounting sshfs on unreliable connection在不可靠的连接上安装 sshfs
【发布时间】:2013-07-15 05:57:43
【问题描述】:

我使用 sshfs 挂载远程文件系统。如果 ssh 连接超时,可能会导致其他应用程序挂起(例如,仅打开本地文件的 vim 会话)。系统恢复大约需要 10 分钟。即使我以只读方式安装远程文件系统也会发生这种情况。为什么?有没有办法进行 sshfs 挂载,以便在使用不可靠的连接(例如 wifi)时不会导致其他应用程序挂起?我不需要强大的东西,我只需要能够查看远程计算机上的文件,可以是只读的。

我使用的是 lubuntu 12.10。

$sshfs -V
SSHFS version 2.4
FUSE library version: 2.9.0
fusermount version: 2.9.0
using FUSE kernel interface version 7.18

【问题讨论】:

    标签: fuse sshfs


    【解决方案1】:

    使用-o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3

    这些ServerAlive 选项会导致I/O 错误在网络中断一分钟后弹出。如果没有这些选项,经历 I/O 挂起的进程似乎会无限期地休眠,即使在 sshfs 获得reconnect'ed 之后也是如此。

    【讨论】:

      【解决方案2】:

      你可以玩一下 sshfs 的选项,例如启用压缩、自动重新连接和 tcp 的 nodelay 标志:

      -C     equivalent to '-o compression=yes'
      -o reconnect
      -o workaround=LIST
          [no]nodelaysrv
                    set nodelay tcp flag in ssh (default: off)
      
      sshfs server:/srv/homes /mnt/mountpoint -C -o reconnect -o workaround=nodelaysrv
      

      但是给我带来更好结果的是使用 NFS,我没有 sshfs 的滞后,并且在 *nix 环境中非常标准,您可以使用只读选项导出目录,为您提供额外的速度。虽然请注意 NFS 不是加密协议。

      服务器:

      # File: /etc/exports
      /srv/homes    hostname1(rw,sync,no_subtree_check)    hostname2(ro,sync,no_subtree_check)
      

      客户:

      mount server:/srv/homes /mnt/mountpoint
      

      【讨论】:

      • -1... 建议在没有任何警告的情况下通过加密连接进行未加密连接
      【解决方案3】:

      如果您认为远程端已经消失,请监控远程主机并终止本地 sshfs 进程。你可以通过许多不同的方式来做到这一点。例如以 bash 的方式开始 ping 它:

      mountpoint=~/mnt/google
      
      sshfs -o reconnect,ServerAliveInterval=5,ServerAliveCountMax=3 user@google.com:/ "$mountpoint"
      
      while :
      do
        if ping -c 3 google.com
        then
          echo "google.com is still up"
        else
          # find sshfs pid
          sshfsPids=$(ps -C sshfs -f | grep "$mountpoint" | grep -v grep | awk '{print $2}' | tr '\n' ' ')
          kill -SIGTERM "$sshfsPids"
        fi 
      done
      

      如果您可以使用外部看门狗方法进行连接,请考虑以下项目:https://github.com/RuralYak/sshfs-watchdog,它的功能几乎相同,但方式更复杂

      【讨论】:

        猜你喜欢
        • 2014-11-24
        • 1970-01-01
        • 2022-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-04
        • 1970-01-01
        • 2018-03-19
        相关资源
        最近更新 更多