NFS 4共有があり、複数のサーバー(NFSサーバーとすべてのDebian 8クライアント)間でボリュームを共有しています。最近、ネットワークの停止によってクライアントシステムがフリーズするという問題が発生しました。
NFSオプションは最小限で、rw
(したがって、デフォルトのhard
、fg
など)。
現在、これらのオプションを試していますが、期待する動作が得られません:
rw,soft,bg,retrans=6,timeo=150
(ソフトリスクの一部を相殺するために再トランスを増やしました)
テストするために私が従う手順は次のとおりです:
- ブートマシン
-
cd
/mnt/mountpoint
へ - NFS接続が正常であることを確認します
-
cd /
- kill network
ifdown eth0
-
cd
/mnt/mountpoint
へ -
ls
この時点でコマンドラインがフリーズし、中断できません。 しばらくすると、「nfs:server [servername] not response、timeout」というメッセージが表示され、1分に1回(無期限に)繰り返されるようです。
操作が失敗し、制御を返すために私が望む/期待すること。
これらの設定のどこが間違っているのか誰かに教えてもらえますか?
(追記:autofsを使用してマウントも試みましたが、同様の動作が見られました)
ありがとう
承認された回答:
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
できるはずです プロセスですが、それではあまり有用ではないかもしれません。
オプションが削除された理由についての議論を見つけることができませんでした。あなたは殺すことができますか-あなたのプロセスを殺しますか?
関連:YouTubeへのアップロード中に接続が失われた場合、ビデオにエラーが含まれますか?