NFS 接続の中断によってクライアントシステムがハングするのを防ぎます。

NFS 接続の中断によってクライアントシステムがハングするのを防ぎます。

複数のサーバー(NFSサーバーとすべてのDebian 8クライアント)間でボリュームを共有するNFS 4共有があります。最近、ネットワークの中断によってクライアントシステムがハングするいくつかの問題が発生しました。

NFSオプションは非常に少ないrw(したがってデフォルト値hardなどfg)。

今、次のオプションを試していますが、予期した動作は表示されません。 rw,soft,bg,retrans=6,timeo=150

(一部のソフトリスクを相殺するために再送を追加しました)

私がテストしたいプログラムは次のとおりです。

  • マシンの電源を入れてください
  • cd到着/mnt/mountpoint
  • NFS接続が正常であることを確認する
  • cd /
  • インターネットを殺すifdown eth0
  • cd到着/mnt/mountpoint
  • ls

この時点では、コマンドラインは停止して中断できません。 一定時間が経過すると、「nfs:サーバー[サーバー名]が応答しません。タイムアウトしました」というメッセージが1分ごとに(無期限)繰り返されることが表示されます。

操作が失敗し、コントロールが返された場合に何が起こるかを望むか、期待してください。

誰かがこの設定にどのような問題があるのか​​教えてもらえますか?

(PS:autofsでマウントも試みましたが、同様の動作をしました。)

ありがとう

ベストアンサー1

intrクリックすると再制御できますが、^C通常はすぐには制御できません。

   intr           If an NFS file operation has a major timeout and it is hard mounted, then allow signals to interupt the
                  file  operation  and cause it to return EINTR to the calling program.  The default is to not allow file
                  operations to be interrupted.

あなたが言ったように、ここでは期待が問題です。ネットワークの問題は一時的かもしれませんが、動作エラーは永続的です。したがって、ほとんどのタスクはデフォルトでタスクが完了するまで単にブロックされます。

これは標準的な答えですが、現在のマニュアルページを見ると次のようになります。

                  The  intr / nointr mount option is deprecated after ker-
                  nel 2.6.25.  Only SIGKILL can interrupt  a  pending  NFS
                  operation on these kernels, and if specified, this mount
                  option is ignored  to  provide  backwards  compatibility
                  with older kernels.

したがって、私の考えでは、これはNFS3 / NFS4の問題ではなく、intr作業方法に関する決定です。したがって、プロセスを完了できるはずですKILLが、おそらくあまり役​​に立ちません。

このオプションが削除された理由についての議論が見つかりません。プロセスをkill -KILLできますか?

おすすめ記事