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できますか?

答え2

私の答えのいくつかは経験に基づいたコメントです。事実があれば(記憶しようと)リンクをかけます。

  1. NFS 4 が考慮されます。改善するバージョン2と3以上。しかし、改善が必要な強力なユースケースを見たことはありません。おそらく私の目標は、Sambaを使用するWindowsクライアントとNFSを使用するUnix / Linuxクライアントにファイルシステムをエクスポートすることです。
  2. soft私はほとんどすべての状況でそれをお勧めしません。データを受け入れるエラーにより廃棄。代わりにお勧めしますhard,intr
  3. あなたが指摘したように、intrこれはNFS 4では動作しませんが、これはカーネルの変更NFSの代わりに。
  4. NFS自動マウント(autofs)は、NFSバージョン2および3を使用するユースケースに適しており、必要に応じてNFSファイルシステムをマウントしてサーバーエラーからクライアントシステムを保護するのに役立ちます。

私が提供できるアドバイスは、NFS 4からNFS 3への移行を検討し、これが特定のユースケースに役立つことを確認することです。ダウングレードだとは思わないでください。

関連情報