複数のサーバー(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できますか?