NFS 4共有があり、多数のサーバー(NFSサーバー、およびクライアントはすべてDebian 8)間でボリュームを共有しています。最近、ネットワークが停止するとクライアントシステムがフリーズするという問題が発生しました。
NFSオプションは最小限で、rw
だけでした(したがって、デフォルトはhard
、fg
など)。
現在、これらのオプションを試していますが、期待した動作が得られません:rw,soft,bg,retrans=6,timeo=150
(ソフトリスクの一部を相殺するために再トランスを増やしました)
私がテストしている手順は次のとおりです:
cd
から/mnt/mountpoint
cd /
ifdown eth0
cd
から/mnt/mountpoint
ls
この時点でコマンドラインがフリーズし、中断できません。しばらくすると、メッセージ 'nfs:server [servername] not not responding、timed 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.
あなたが言うように、期待はここで問題です。ネットワークの問題は一時的なものですが、操作の失敗は永続的なものです。そのため、ほとんどの操作はデフォルトで、操作が完了するまで単純にブロックします。
これは標準的な答えですが、現在のmanページを見ると次のように見えます。
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
できるはずですが、それではあまり実用性がないかもしれません。
オプションが削除された理由についての議論は見つかりませんでした。あなたはプロセスを殺すことができますか?
私の答えのいくつかは、経験に基づく意見です。私が事実を持っている場合、私はそれらにリンクする(覚えてみてください)。
soft
はお勧めしません。データを エラー時に破棄 にすることができます。代わりにhard,intr
。intr
はNFS 4では無効ですが、これはNFSではなく カーネル変更 のようです。autofs
)は、NFSバージョン2および3の使用例でうまく機能し、必要なときにのみNFSファイルシステムをマウントすることにより、クライアントシステムをサーバー障害から保護します。NFS 4からNFS 3への移行を検討し、それが特定のユースケースに役立つかどうかを確認することをお勧めします。ダウングレードとは考えないでください。