web-dev-qa-db-ja.com

1分間操作がないと、NFSが遅れるのはなぜですか?

カーネル3.10.17を搭載したSalixサーバーでバージョン4のNFSサーバーを実行しています。コマンドでNFS共有をマウントしています

Sudo mount -t nfs 10.0.0.150:/share /mountpoint

xubuntuの最新バージョンである私のクライアントマシン上で(しかし、過去数年間、Ubuntuクライアントのいくつかの異なるフレーバーとバージョン間でこのNFS共有でこの問題が発生しました)。ファイルマネージャなどを介してこのマウントポイントに初めてアクセスするとき(例として、他の種類のアクセスでも同じ症状が発生します)、共有からのデータが読み込まれるまで20秒待つ必要があります。それが発生すると、少なくともマウントを約1分間休止状態にするまで(つまり、その下にあるものにアクセスしようとしないまで)、遅延なしで共有フォルダーを参照できます。その後、再び遅延が発生します。 。私のクライアントもNFSv4です。

クライアントでのnfsstat -mの出力は次のとおりです。rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.0.0.214,local_lock=none,addr=10.0.0.150

Windowsクライアント用にSAMBAを介してサーバー上の同じフォルダーを共有していますが、SAMBA共有に問題はありません。

4
Sean Dalton

私は問題を見つけました。 NFS v4サーバーの場合、ファイル/ proc/fs/nfsd/nfsv4revoverydirがあります(少なくともSlackベースのSalixの場合)。このフォルダの内容は、別のパスを指定するテキストである必要があります。このために私が見つけたすべての解決策は、そのファイルで見つかったパスを作成すると言われ、問題を修正しました。私の場合、このファイルは空でした。この/ procファイルを適切に設定する方法を理解しようとするのではなく、バージョン3のNFSを使用するようにサーバーを構成する回避策を使用しました。これを行うには、ファイル/etc/rc.d/rc.nfsdを編集し、rpc.nfsdを開始する行にオプション「-N4」を追加します。

1
Sean Dalton